fix(Core/Units): Modify health dependent aura states on update rather than immediately on death. (#9641)

This commit is contained in:
UltraNix
2021-12-17 02:41:01 +01:00
committed by GitHub
parent 89a1b5c9f4
commit 2feb26d828

View File

@@ -479,12 +479,9 @@ void Unit::Update(uint32 p_time)
// update abilities available only for fraction of time
UpdateReactives(p_time);
if (IsAlive())
{
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, HealthBelowPct(20));
ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, HealthBelowPct(35));
ModifyAuraState(AURA_STATE_HEALTH_ABOVE_75_PERCENT, HealthAbovePct(75));
}
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, IsAlive() ? HealthBelowPct(20) : false);
ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, IsAlive() ? HealthBelowPct(35) : false);
ModifyAuraState(AURA_STATE_HEALTH_ABOVE_75_PERCENT, IsAlive() ? HealthBelowPct(75) : false);
UpdateSplineMovement(p_time);
GetMotionMaster()->UpdateMotion(p_time);
@@ -13807,10 +13804,6 @@ void Unit::setDeathState(DeathState s, bool despawn)
if (s == JUST_DIED)
{
ModifyAuraState(AURA_STATE_HEALTHLESS_20_PERCENT, false);
ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false);
ModifyAuraState(AURA_STATE_HEALTH_ABOVE_75_PERCENT, false);
// remove aurastates allowing special moves
ClearAllReactives();
ClearDiminishings();