(SubgameEntity ent, float[] point, float[] normal,
int damage, int te_sparks, int dflags, GameExportsImpl gameExports)
| 229 | } |
| 230 | |
| 231 | private static int CheckArmor(SubgameEntity ent, float[] point, float[] normal, |
| 232 | int damage, int te_sparks, int dflags, GameExportsImpl gameExports) { |
| 233 | gclient_t client; |
| 234 | int save; |
| 235 | |
| 236 | if (damage == 0) |
| 237 | return 0; |
| 238 | |
| 239 | client = ent.getClient(); |
| 240 | |
| 241 | if (client == null) |
| 242 | return 0; |
| 243 | |
| 244 | if ((dflags & DamageFlags.DAMAGE_NO_ARMOR) != 0) |
| 245 | return 0; |
| 246 | |
| 247 | int index = GameItems.ArmorIndex(ent, gameExports); |
| 248 | |
| 249 | if (index == -1) |
| 250 | return 0; |
| 251 | |
| 252 | GameItem armor = GameItems.GetItemByIndex(index, gameExports); |
| 253 | gitem_armor_t garmor = armor.info; |
| 254 | |
| 255 | if (0 != (dflags & DamageFlags.DAMAGE_ENERGY)) |
| 256 | save = (int) Math.ceil(garmor.energy_protection * damage); |
| 257 | else |
| 258 | save = (int) Math.ceil(garmor.normal_protection * damage); |
| 259 | |
| 260 | if (save >= client.pers.inventory[index]) |
| 261 | save = client.pers.inventory[index]; |
| 262 | |
| 263 | if (save == 0) |
| 264 | return 0; |
| 265 | |
| 266 | client.pers.inventory[index] -= save; |
| 267 | SpawnDamage(te_sparks, point, normal, save, gameExports); |
| 268 | |
| 269 | return save; |
| 270 | } |
| 271 | |
| 272 | private static void M_ReactToDamage(SubgameEntity targ, SubgameEntity attacker, GameExportsImpl gameExports) { |
| 273 | if ((null != attacker.getClient()) |
no test coverage detected