Core/Auras: Update AuraState enum and implement missing new ones
Port From (https://github.com/TrinityCore/TrinityCore/commit/69e0b9a98516a0cac14bc3f985a2deb2fe79205f)
This commit is contained in:
@@ -1729,16 +1729,12 @@ namespace Game.Entities
|
||||
switch (reactive)
|
||||
{
|
||||
case ReactiveType.Defense:
|
||||
if (HasAuraState(AuraStateType.Defense))
|
||||
ModifyAuraState(AuraStateType.Defense, false);
|
||||
if (HasAuraState(AuraStateType.Defensive))
|
||||
ModifyAuraState(AuraStateType.Defensive, false);
|
||||
break;
|
||||
case ReactiveType.HunterParry:
|
||||
if (GetClass() == Class.Hunter && HasAuraState(AuraStateType.HunterParry))
|
||||
ModifyAuraState(AuraStateType.HunterParry, false);
|
||||
break;
|
||||
case ReactiveType.OverPower:
|
||||
if (GetClass() == Class.Warrior && IsTypeId(TypeId.Player))
|
||||
ToPlayer().ClearComboPoints();
|
||||
case ReactiveType.Defense2:
|
||||
if (HasAuraState(AuraStateType.Defensive2))
|
||||
ModifyAuraState(AuraStateType.Defensive2, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1836,12 +1832,10 @@ namespace Game.Entities
|
||||
for (ReactiveType i = 0; i < ReactiveType.Max; ++i)
|
||||
m_reactiveTimer[i] = 0;
|
||||
|
||||
if (HasAuraState(AuraStateType.Defense))
|
||||
ModifyAuraState(AuraStateType.Defense, false);
|
||||
if (GetClass() == Class.Hunter && HasAuraState(AuraStateType.HunterParry))
|
||||
ModifyAuraState(AuraStateType.HunterParry, false);
|
||||
if (GetClass() == Class.Warrior && IsTypeId(TypeId.Player))
|
||||
ToPlayer().ClearComboPoints();
|
||||
if (HasAuraState(AuraStateType.Defensive))
|
||||
ModifyAuraState(AuraStateType.Defensive, false);
|
||||
if (HasAuraState(AuraStateType.Defensive2))
|
||||
ModifyAuraState(AuraStateType.Defensive2, false);
|
||||
}
|
||||
|
||||
public virtual bool CanUseAttackType(WeaponAttackType attacktype)
|
||||
|
||||
@@ -242,7 +242,7 @@ namespace Game.Entities
|
||||
|
||||
// Drain Soul - increased damage for targets under 20% HP
|
||||
if (spellProto.Id == 198590)
|
||||
if (HasAuraState(AuraStateType.HealthLess20Percent))
|
||||
if (HasAuraState(AuraStateType.Wounded20Percent))
|
||||
DoneTotalMod *= 2;
|
||||
break;
|
||||
}
|
||||
@@ -1851,41 +1851,23 @@ namespace Game.Entities
|
||||
// Update AURA_STATE on dodge
|
||||
if (GetClass() != Class.Rogue) // skip Rogue Riposte
|
||||
{
|
||||
ModifyAuraState(AuraStateType.Defense, true);
|
||||
ModifyAuraState(AuraStateType.Defensive, true);
|
||||
StartReactiveTimer(ReactiveType.Defense);
|
||||
}
|
||||
}
|
||||
// if victim and parry attack
|
||||
if (hitMask.HasAnyFlag(ProcFlagsHit.Parry))
|
||||
{
|
||||
// For Hunters only Counterattack (skip Mongoose bite)
|
||||
if (GetClass() == Class.Hunter)
|
||||
{
|
||||
ModifyAuraState(AuraStateType.HunterParry, true);
|
||||
StartReactiveTimer(ReactiveType.HunterParry);
|
||||
}
|
||||
else
|
||||
{
|
||||
ModifyAuraState(AuraStateType.Defense, true);
|
||||
StartReactiveTimer(ReactiveType.Defense);
|
||||
}
|
||||
ModifyAuraState(AuraStateType.Defensive, true);
|
||||
StartReactiveTimer(ReactiveType.Defense);
|
||||
}
|
||||
// if and victim block attack
|
||||
if (hitMask.HasAnyFlag(ProcFlagsHit.Block))
|
||||
{
|
||||
ModifyAuraState(AuraStateType.Defense, true);
|
||||
ModifyAuraState(AuraStateType.Defensive, true);
|
||||
StartReactiveTimer(ReactiveType.Defense);
|
||||
}
|
||||
}
|
||||
else // For attacker
|
||||
{
|
||||
// Overpower on victim dodge
|
||||
if (hitMask.HasAnyFlag(ProcFlagsHit.Dodge) && IsPlayer() && GetClass() == Class.Warrior)
|
||||
{
|
||||
ToPlayer().AddComboPoints(1);
|
||||
StartReactiveTimer(ReactiveType.OverPower);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3888,7 +3870,7 @@ namespace Game.Entities
|
||||
continue;
|
||||
|
||||
SpellInfo spellProto = app.Value.GetBase().GetSpellInfo();
|
||||
if (app.Value.GetBase().GetCasterGUID() == GetGUID() && spellProto.CasterAuraState == flag && (spellProto.IsPassive() || flag != AuraStateType.Enrage))
|
||||
if (app.Value.GetBase().GetCasterGUID() == GetGUID() && spellProto.CasterAuraState == flag && (spellProto.IsPassive() || flag != AuraStateType.Enraged))
|
||||
RemoveAura(app);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,9 +184,12 @@ namespace Game.Entities
|
||||
|
||||
if (IsAlive())
|
||||
{
|
||||
ModifyAuraState(AuraStateType.HealthLess20Percent, HealthBelowPct(20));
|
||||
ModifyAuraState(AuraStateType.HealthLess35Percent, HealthBelowPct(35));
|
||||
ModifyAuraState(AuraStateType.HealthAbove75Percent, HealthAbovePct(75));
|
||||
ModifyAuraState(AuraStateType.Wounded20Percent, HealthBelowPct(20));
|
||||
ModifyAuraState(AuraStateType.Wounded25Percent, HealthBelowPct(25));
|
||||
ModifyAuraState(AuraStateType.Wounded35Percent, HealthBelowPct(35));
|
||||
ModifyAuraState(AuraStateType.WoundHealth20_80, HealthBelowPct(20) || HealthAbovePct(80));
|
||||
ModifyAuraState(AuraStateType.Healthy75Percent, HealthAbovePct(75));
|
||||
ModifyAuraState(AuraStateType.WoundHealth35_80, HealthBelowPct(35) || HealthAbovePct(80));
|
||||
}
|
||||
|
||||
UpdateSplineMovement(diff);
|
||||
|
||||
Reference in New Issue
Block a user