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

Method addExplosion

game/state/battle/battle.cpp:1176–1201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1174}
1175
1176sp<BattleExplosion> Battle::addExplosion(GameState &state, Vec3<int> position,
1177 StateRef<DoodadType> doodadType,
1178 StateRef<DamageType> damageType, int power,
1179 int depletionRate, StateRef<Organisation> ownerOrg,
1180 StateRef<BattleUnit> ownerUnit)
1181{
1182 // Doodad
1183 if (!doodadType)
1184 {
1185 doodadType = {&state, "DOODAD_30_EXPLODING_PAYLOAD"};
1186 }
1187 placeDoodad(doodadType, position);
1188
1189 // Sound
1190 if (!damageType->explosionSounds.empty())
1191 {
1192 fw().soundBackend->playSample(pickRandom(state.rng, damageType->explosionSounds), position);
1193 }
1194
1195 // Explosion
1196 auto explosion = mksp<BattleExplosion>(
1197 position, damageType, power, depletionRate,
1198 !config().getBool("OpenApoc.NewFeature.InstantExplosionDamage"), ownerOrg, ownerUnit);
1199 explosions.insert(explosion);
1200 return explosion;
1201}
1202
1203sp<BattleUnit> Battle::placeUnit(GameState &state, StateRef<Agent> agent)
1204{

Callers 4

explodeMethod · 0.80
dieMethod · 0.80
dieMethod · 0.80
debugVortexMethod · 0.80

Calls 5

pickRandomFunction · 0.85
emptyMethod · 0.80
getBoolMethod · 0.80
insertMethod · 0.80
playSampleMethod · 0.45

Tested by

no test coverage detected