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

Method applyEnzymeEffect

game/state/battle/battleunit.cpp:4027–4054  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4025}
4026
4027void BattleUnit::applyEnzymeEffect(GameState &state)
4028{
4029 spawnEnzymeSmoke(state);
4030
4031 // Damage random item
4032 if (agent->type->inventory && !agent->equipment.empty())
4033 {
4034 auto item = pickRandom(state.rng, agent->equipment);
4035 item->armor -= enzymeDebuffIntensity / 2;
4036
4037 // Item destroyed
4038 if (item->armor <= 0)
4039 {
4040 if (item->type->type == AEquipmentType::Type::Grenade)
4041 {
4042 item->explode(state);
4043 }
4044 else
4045 {
4046 agent->removeEquipment(state, item);
4047 }
4048 }
4049 }
4050
4051 // Finally, reduce debuff
4052
4053 enzymeDebuffIntensity--;
4054}
4055
4056void BattleUnit::spawnEnzymeSmoke(GameState &state)
4057{

Callers

nothing calls this directly

Calls 4

pickRandomFunction · 0.85
emptyMethod · 0.80
explodeMethod · 0.80
removeEquipmentMethod · 0.45

Tested by

no test coverage detected