[Core]Spell attribute allowing heartbeart resist mechanic

This commit is contained in:
Olion 2015-05-16 19:49:24 +03:00
parent 70c1bf2816
commit c23bb261bc
2 changed files with 6 additions and 3 deletions

View File

@ -307,7 +307,7 @@ enum SpellAttributes
SPELL_ATTR_CASTABLE_WHILE_SITTING = 0x08000000, // 27 castable while sitting
SPELL_ATTR_CANT_USED_IN_COMBAT = 0x10000000, // 28 Can not be used in combat
SPELL_ATTR_UNAFFECTED_BY_INVULNERABILITY = 0x20000000, // 29 unaffected by invulnerability (hmm possible not...)
SPELL_ATTR_UNK30 = 0x40000000, // 30 breakable by damage?
SPELL_ATTR_HEARTBEAT_RESIST_CHECK = 0x40000000, // 30 TC 335: random chance the effect will end (subjected to the hearbeat resist)
SPELL_ATTR_CANT_CANCEL = 0x80000000 // 31 positive aura can't be canceled
};

View File

@ -4928,8 +4928,11 @@ SpellAuraHolder::SpellAuraHolder(SpellEntry const* spellproto, Unit* target, Wor
break;
}
m_isHeartbeatSubject = (GetSpellMechanicMask(m_spellProto, (1 << MAX_EFFECT_INDEX) - 1) & HEARTBEAT_AURA_MECHANIC_MASK)
&& caster->GetTypeId() == TYPEID_PLAYER && target->GetTypeId() == TYPEID_PLAYER && !IsChanneledSpell(m_spellProto);
//m_isHeartbeatSubject = (GetSpellMechanicMask(m_spellProto, (1 << MAX_EFFECT_INDEX) - 1) & HEARTBEAT_AURA_MECHANIC_MASK) && caster != target
// && caster->GetTypeId() == TYPEID_PLAYER && target->GetTypeId() == TYPEID_PLAYER && !IsChanneledSpell(m_spellProto);
//TODO consider removing the m_isHeartbeatSubject variable due to simplified condition check
m_isHeartbeatSubject = bool(m_spellProto->Attributes & SPELL_ATTR_HEARTBEAT_RESIST_CHECK);
for (int32 i = 0; i < MAX_EFFECT_INDEX; ++i)
{ m_auras[i] = NULL; }