| 15 | |
| 16 | CHitImmunity::~CHitImmunity() {} |
| 17 | void CHitImmunity::LoadImmunities(LPCSTR imm_sect, CInifile* ini) |
| 18 | { |
| 19 | R_ASSERT2(ini->section_exist(imm_sect), imm_sect); |
| 20 | |
| 21 | m_HitTypeK[ALife::eHitTypeBurn] = ini->r_float(imm_sect, "burn_immunity"); |
| 22 | m_HitTypeK[ALife::eHitTypeStrike] = ini->r_float(imm_sect, "strike_immunity"); |
| 23 | m_HitTypeK[ALife::eHitTypeShock] = ini->r_float(imm_sect, "shock_immunity"); |
| 24 | m_HitTypeK[ALife::eHitTypeWound] = ini->r_float(imm_sect, "wound_immunity"); |
| 25 | m_HitTypeK[ALife::eHitTypeRadiation] = ini->r_float(imm_sect, "radiation_immunity"); |
| 26 | m_HitTypeK[ALife::eHitTypeTelepatic] = ini->r_float(imm_sect, "telepatic_immunity"); |
| 27 | m_HitTypeK[ALife::eHitTypeChemicalBurn] = ini->r_float(imm_sect, "chemical_burn_immunity"); |
| 28 | m_HitTypeK[ALife::eHitTypeExplosion] = ini->r_float(imm_sect, "explosion_immunity"); |
| 29 | m_HitTypeK[ALife::eHitTypeFireWound] = ini->r_float(imm_sect, "fire_wound_immunity"); |
| 30 | m_HitTypeK[ALife::eHitTypePhysicStrike] = READ_IF_EXISTS(ini, r_float, imm_sect, "physic_strike_wound_immunity", 1.0f); |
| 31 | m_HitTypeK[ALife::eHitTypeWound_2] = READ_IF_EXISTS(ini, r_float, imm_sect, "wound_2_immunity", 1.0f); |
| 32 | } |
| 33 | |
| 34 | float CHitImmunity::AffectHit(float power, ALife::EHitType hit_type) { return power * m_HitTypeK[hit_type]; } |
| 35 | |