aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellAuras.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/SpellAuras.cpp')
-rw-r--r--src/game/SpellAuras.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 5f39e3f585c..9313b7e6fd4 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -1162,6 +1162,7 @@ void Aura::HandleAddModifier(bool apply, bool Real)
case 57761: // Fireball!
SetAuraCharges(1);
break;
+
}
SpellModifier *mod = new SpellModifier;
@@ -1955,6 +1956,44 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
if(caster)
caster->CastSpell(caster,13138,true,NULL,this);
return;
+ case 34026: // kill command
+ {
+ Unit * pet = m_target->GetPet();
+ if (!pet)
+ return;
+
+ m_target->CastSpell(m_target,34027,true,NULL,this);
+
+ // set 3 stacks and 3 charges (to make all auras not disappear at once)
+ Aura* owner_aura = m_target->GetAura(34027,0);
+ Aura* pet_aura = pet->GetAura(58914,0);
+ if( owner_aura )
+ {
+ owner_aura->SetStackAmount(owner_aura->GetSpellProto()->StackAmount);
+ }
+ if( pet_aura )
+ {
+ pet_aura->SetAuraCharges(0);
+ pet_aura->SetStackAmount(owner_aura->GetSpellProto()->StackAmount);
+ }
+ return;
+ }
+ case 55198: // Tidal Force
+ {
+ m_target->CastSpell(m_target,55166,true,NULL,this);
+ // set 3 stacks and 3 charges (to make all auras not disappear at once)
+ Aura* owner_aura = m_target->GetAura(55166,0);
+ if( owner_aura )
+ {
+ // This aura lasts 2 sec, need this hack to properly proc spells
+ // TODO: drop aura charges for ApplySpellMod in ProcDamageAndSpell
+ SetAuraDuration(owner_aura->GetAuraDuration());
+ // Make aura be not charged-this prevents removing charge on not crit spells
+ owner_aura->SetAuraCharges(0);
+ owner_aura->SetStackAmount(owner_aura->GetSpellProto()->StackAmount);
+ }
+ return;
+ }
case 39850: // Rocket Blast
if(roll_chance_i(20)) // backfire stun
m_target->CastSpell(m_target, 51581, true, NULL, this);