MCPcopy Create free account
hub / github.com/demoth/jake2 / CheckArmor

Method CheckArmor

game/src/main/java/jake2/game/GameCombat.java:231–270  ·  view source on GitHub ↗
(SubgameEntity ent, float[] point, float[] normal,
                                  int damage, int te_sparks, int dflags, GameExportsImpl gameExports)

Source from the content-addressed store, hash-verified

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())

Callers 1

T_DamageMethod · 0.95

Calls 4

ArmorIndexMethod · 0.95
GetItemByIndexMethod · 0.95
SpawnDamageMethod · 0.95
getClientMethod · 0.45

Tested by

no test coverage detected