mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
Implement AURA_STATE_FROZEN
Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
parent
aff0fa1489
commit
ba25093ef2
3 changed files with 12 additions and 10 deletions
|
|
@ -686,7 +686,7 @@ enum AuraState
|
|||
AURA_STATE_DEFENSE = 1, // C |
|
||||
AURA_STATE_HEALTHLESS_20_PERCENT = 2, // CcT |
|
||||
AURA_STATE_BERSERKING = 3, // C T |
|
||||
//AURA_STATE_UNKNOWN4 = 4, // c t| some limitation to charge spells (?) and target test spells
|
||||
AURA_STATE_FROZEN = 4, // c t| frozen target
|
||||
AURA_STATE_JUDGEMENT = 5, // C |
|
||||
//AURA_STATE_UNKNOWN6 = 6, // | not used
|
||||
AURA_STATE_HUNTER_PARRY = 7, // C |
|
||||
|
|
|
|||
|
|
@ -3560,13 +3560,18 @@ void Aura::HandleAuraModRoot(bool apply, bool Real)
|
|||
if(!Real)
|
||||
return;
|
||||
|
||||
// Frost root aura -> freeze/unfreeze target
|
||||
if (GetSpellSchoolMask(m_spellProto) & SPELL_SCHOOL_MASK_FROST)
|
||||
m_target->ModifyAuraState(AURA_STATE_FROZEN, apply);
|
||||
|
||||
uint32 apply_stat = UNIT_STAT_ROOT;
|
||||
if (apply)
|
||||
{
|
||||
m_target->addUnitState(UNIT_STAT_ROOT);
|
||||
m_target->SetUInt64Value (UNIT_FIELD_TARGET, 0);
|
||||
// probably wrong
|
||||
m_target->SetFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
||||
// probably wrong (this add skinable flag)
|
||||
// TODO: find correct flag
|
||||
// m_target->SetFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
||||
|
||||
//Save last orientation
|
||||
if( m_target->getVictim() )
|
||||
|
|
@ -3592,8 +3597,9 @@ void Aura::HandleAuraModRoot(bool apply, bool Real)
|
|||
return;
|
||||
|
||||
m_target->clearUnitState(UNIT_STAT_ROOT);
|
||||
// probably wrong
|
||||
m_target->RemoveFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
||||
// probably wrong (this add skinable flag)
|
||||
// TODO: find correct flag
|
||||
// m_target->RemoveFlag(UNIT_FIELD_FLAGS,(apply_stat<<16));
|
||||
|
||||
if(!m_target->hasUnitState(UNIT_STAT_STUNNED)) // prevent allow move if have also stun effect
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9881,11 +9881,7 @@ void CharmInfo::SetPetNumber(uint32 petnumber, bool statwindow)
|
|||
|
||||
bool Unit::isFrozen() const
|
||||
{
|
||||
AuraList const& mRoot = GetAurasByType(SPELL_AURA_MOD_ROOT);
|
||||
for(AuraList::const_iterator i = mRoot.begin(); i != mRoot.end(); ++i)
|
||||
if( GetSpellSchoolMask((*i)->GetSpellProto()) & SPELL_SCHOOL_MASK_FROST)
|
||||
return true;
|
||||
return false;
|
||||
return HasAuraState(AURA_STATE_FROZEN);
|
||||
}
|
||||
|
||||
struct ProcTriggeredData
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue