| 4025 | } |
| 4026 | |
| 4027 | void 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 | |
| 4056 | void BattleUnit::spawnEnzymeSmoke(GameState &state) |
| 4057 | { |
nothing calls this directly
no test coverage detected