AURA_STATE_HEALTHLESS_20_PERCENT apply only on alive targets

This commit is contained in:
Sidsukana 2018-04-13 09:40:25 +01:00 committed by Antz
parent 4185e88803
commit 3ffded2406

View File

@ -357,7 +357,10 @@ void Unit::Update(uint32 update_diff, uint32 p_time)
// update abilities available only for fraction of time // update abilities available only for fraction of time
UpdateReactives(update_diff); UpdateReactives(update_diff);
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, GetHealth() < GetMaxHealth() * 0.20f); if (IsAlive())
{
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, GetHealth() < GetMaxHealth() * 0.20f);
}
UpdateSplineMovement(p_time); UpdateSplineMovement(p_time);
i_motionMaster.UpdateMotion(p_time); i_motionMaster.UpdateMotion(p_time);
} }
@ -5577,7 +5580,7 @@ int32 Unit::SpellBonusWithCoeffs(Unit* pCaster, SpellEntry const* spellProto, in
modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_SPELL_BONUS_DAMAGE, coeff); modOwner->ApplySpellMod(spellProto->Id, SPELLMOD_SPELL_BONUS_DAMAGE, coeff);
coeff /= 100.0f; coeff /= 100.0f;
} }
total += int32(benefit * coeff * LvlPenalty); total += int32(benefit * coeff * LvlPenalty);
return total; return total;
@ -6633,8 +6636,8 @@ int32 Unit::ModifyHealth(int32 dVal)
int32 maxHealth = (int32)GetMaxHealth(); int32 maxHealth = (int32)GetMaxHealth();
int32 gain; int32 gain;
if (val < maxHealth) if (val < maxHealth)
{ {
SetHealth(val); SetHealth(val);
gain = val - curHealth; gain = val - curHealth;
@ -6664,7 +6667,7 @@ int32 Unit::ModifyPower(Powers power, int32 dVal)
int32 maxPower = (int32)GetMaxPower(power); int32 maxPower = (int32)GetMaxPower(power);
int32 gain; int32 gain;
if (val < maxPower) if (val < maxPower)
{ {
SetPower(power, val); SetPower(power, val);
@ -7063,7 +7066,7 @@ void Unit::SetSpeedRate(UnitMoveType mtype, float rate, bool forced)
}; };
const SpeedOpcodePair& speedOpcodes = SetSpeed2Opc_table[mtype]; const SpeedOpcodePair& speedOpcodes = SetSpeed2Opc_table[mtype];
if (forced && GetTypeId() == TYPEID_PLAYER) if (forced && GetTypeId() == TYPEID_PLAYER)
{ {
// register forced speed changes for WorldSession::HandleForceSpeedChangeAck // register forced speed changes for WorldSession::HandleForceSpeedChangeAck
@ -7606,7 +7609,7 @@ bool Unit::HandleStatModifier(UnitMods unitMod, UnitModifierType modifierType, f
return false; return false;
} }
float val; float val;
switch (modifierType) switch (modifierType)
{ {
@ -8787,8 +8790,8 @@ bool Unit::IsStandState() const
bool Unit::IsSeatedState() const bool Unit::IsSeatedState() const
{ {
uint8 standState = getStandState(); uint8 standState = getStandState();
return standState != UNIT_STAND_STATE_SLEEP && standState != UNIT_STAND_STATE_STAND; return standState != UNIT_STAND_STATE_SLEEP && standState != UNIT_STAND_STATE_STAND;
} }
void Unit::SetStandState(uint8 state) void Unit::SetStandState(uint8 state)