MCPcopy Create free account
hub / github.com/bwapi/bwapi / getDamageFromImpl

Function getDamageFromImpl

bwapi/BWAPILIB/Source/Game.cpp:69–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67 { 0, 0, 0, 0, 0, 0 } // Unknown
68 };
69 int getDamageFromImpl(UnitType fromType, UnitType toType, Player fromPlayer, Player toPlayer)
70 {
71 // Retrieve appropriate weapon
72 WeaponType wpn = toType.isFlyer() ? fromType.airWeapon() : fromType.groundWeapon();
73 if ( wpn == WeaponTypes::None || wpn == WeaponTypes::Unknown )
74 return 0;
75
76 // Get initial weapon damage
77 int dmg = fromPlayer ? fromPlayer->damage(wpn) : wpn.damageAmount() * wpn.damageFactor();
78
79 // If we need to calculate using armor
80 if ( wpn.damageType() != DamageTypes::Ignore_Armor && toPlayer != nullptr )
81 dmg -= std::min(dmg, toPlayer->armor(toType));
82
83 return dmg * damageRatio[wpn.damageType()][toType.size()] / 256;
84 }
85 int Game::getDamageFrom(UnitType fromType, UnitType toType, Player fromPlayer, Player toPlayer) const
86 {
87 // Get self if toPlayer not provided

Callers 2

getDamageFromMethod · 0.85
getDamageToMethod · 0.85

Calls 9

isFlyerMethod · 0.80
airWeaponMethod · 0.80
groundWeaponMethod · 0.80
damageMethod · 0.80
damageAmountMethod · 0.80
damageFactorMethod · 0.80
damageTypeMethod · 0.80
armorMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected