diff options
Diffstat (limited to 'src/game/SpellAuras.cpp')
| -rw-r--r-- | src/game/SpellAuras.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index a619d14ff06..ddc1b9c59a4 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -147,7 +147,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &AuraEffect::HandleModUnattackable, // 93 SPELL_AURA_MOD_UNATTACKABLE &AuraEffect::HandleNoImmediateEffect, // 94 SPELL_AURA_INTERRUPT_REGEN implemented in Player::RegenerateAll &AuraEffect::HandleAuraGhost, // 95 SPELL_AURA_GHOST - &AuraEffect::HandleNoImmediateEffect, // 96 SPELL_AURA_SPELL_MAGNET implemented in Spell::SelectMagnetTarget + &AuraEffect::HandleNoImmediateEffect, // 96 SPELL_AURA_SPELL_MAGNET implemented in Unit::SelectMagnetTarget &AuraEffect::HandleManaShield, // 97 SPELL_AURA_MANA_SHIELD implemented in Unit::CalcAbsorbResist &AuraEffect::HandleAuraModSkill, // 98 SPELL_AURA_MOD_SKILL_TALENT &AuraEffect::HandleAuraModAttackPower, // 99 SPELL_AURA_MOD_ATTACK_POWER @@ -162,7 +162,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]= &AuraEffect::HandleAddModifier, //108 SPELL_AURA_ADD_PCT_MODIFIER &AuraEffect::HandleAddTargetTrigger, //109 SPELL_AURA_ADD_TARGET_TRIGGER &AuraEffect::HandleModPowerRegenPCT, //110 SPELL_AURA_MOD_POWER_REGEN_PERCENT - &AuraEffect::HandleNULL, //111 SPELL_AURA_ADD_CASTER_HIT_TRIGGER chance redirect attack to caster + &AuraEffect::HandleNoImmediateEffect, //111 SPELL_AURA_ADD_CASTER_HIT_TRIGGER implemented in Unit::SelectMagnetTarget &AuraEffect::HandleNoImmediateEffect, //112 SPELL_AURA_OVERRIDE_CLASS_SCRIPTS &AuraEffect::HandleNoImmediateEffect, //113 SPELL_AURA_MOD_RANGED_DAMAGE_TAKEN implemented in Unit::MeleeDamageBonus &AuraEffect::HandleNoImmediateEffect, //114 SPELL_AURA_MOD_RANGED_DAMAGE_TAKEN_PCT implemented in Unit::MeleeDamageBonus @@ -1260,14 +1260,16 @@ void Aura::SetAuraCharges(uint8 charges) SendAuraUpdate(); } -bool Aura::DropAuraCharge() +void Aura::DropAuraCharge() { - if (m_procCharges == 0) - return false; - m_procCharges--; - SendAuraUpdate(); - // return true if last charge dropped - return m_procCharges == 0; + if(m_procCharges) //auras without charges always have charge = 0 + { + --m_procCharges; + if(m_procCharges) // Send charge change + SendAuraUpdate(); + else // Last charge dropped + m_target->RemoveAura(this); + } } bool Aura::IsPersistent() const @@ -2216,6 +2218,12 @@ void AuraEffect::TriggerSpell() caster->CastCustomSpell(target, trigger_spell_id, &m_amount, NULL, NULL, true, NULL, this); return; } + // Negative Energy Periodic + case 46284: + { + caster->CastCustomSpell(trigger_spell_id, SPELLVALUE_MAX_TARGETS, m_tickNumber / 10 + 1, NULL, true, NULL, this, originalCasterGUID); + return; + } } } |
