diff --git a/src/game/Object/Player.cpp b/src/game/Object/Player.cpp index 1d39e433..3f85f579 100644 --- a/src/game/Object/Player.cpp +++ b/src/game/Object/Player.cpp @@ -904,9 +904,19 @@ uint32 Player::EnvironmentalDamage(EnvironmentalDamageType type, uint32 damage) uint32 absorb = 0; uint32 resist = 0; if (type == DAMAGE_LAVA) - { CalculateDamageAbsorbAndResist(this, SPELL_SCHOOL_MASK_FIRE, DIRECT_DAMAGE, damage, &absorb, &resist); } + { + if (this->IsImmuneToDamage(SPELL_SCHOOL_MASK_FIRE)) + return 0; + + CalculateDamageAbsorbAndResist(this, SPELL_SCHOOL_MASK_FIRE, DIRECT_DAMAGE, damage, &absorb, &resist); + } else if (type == DAMAGE_SLIME) - { CalculateDamageAbsorbAndResist(this, SPELL_SCHOOL_MASK_NATURE, DIRECT_DAMAGE, damage, &absorb, &resist); } + { + if (this->IsImmuneToDamage(SPELL_SCHOOL_MASK_NATURE)) + return 0; + + CalculateDamageAbsorbAndResist(this, SPELL_SCHOOL_MASK_NATURE, DIRECT_DAMAGE, damage, &absorb, &resist); + } damage -= absorb + resist;