MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / applyDamage

Method applyDamage

game/state/battle/battleitem.cpp:89–119  ·  view source on GitHub ↗

Returns true if sound and doodad were handled by it

Source from the content-addressed store, hash-verified

87
88// Returns true if sound and doodad were handled by it
89bool BattleItem::applyDamage(GameState &state, int power, StateRef<DamageType> damageType)
90{
91 if (damageType->explosive != true)
92 {
93 return false;
94 }
95 switch (damageType->effectType)
96 {
97 case DamageType::EffectType::None:
98 if (item->armor <= power)
99 {
100 die(state);
101 }
102 break;
103 case DamageType::EffectType::Fire:
104 // Armor resists fire damage accordingly
105 if (item->type->type == AEquipmentType::Type::Armor)
106 {
107 power = damageType->dealDamage(power, item->type->damage_modifier);
108 }
109 item->armor -= power;
110 if (item->armor <= 0)
111 {
112 die(state);
113 }
114 break;
115 default:
116 return false;
117 }
118 return false;
119}
120
121void BattleItem::setPosition(const Vec3<float> &pos)
122{

Callers 2

applyEffectMethod · 0.45
damageMethod · 0.45

Calls 1

dealDamageMethod · 0.80

Tested by

no test coverage detected