aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp39
-rw-r--r--src/game/SpellMgr.cpp5
-rw-r--r--src/game/Unit.cpp22
3 files changed, 60 insertions, 6 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);
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index 9a9682a1b16..e42e5dc4488 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -2395,11 +2395,6 @@ void SpellMgr::LoadSpellCustomAttr()
if(spellInfo->SpellFamilyFlags[2] & 0x100)
spellInfo->MaxAffectedTargets = 2;
break;
- case SPELLFAMILY_PRIEST:
- // Penance
- if (spellInfo->SpellFamilyFlags[1] & 0x800000)
- spellInfo->AttributesEx5 |= SPELL_ATTR_EX5_START_PERIODIC_AT_APPLY;
- break;
}
}
}
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index ba88aa1cde3..720bcc55a0d 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -5388,6 +5388,18 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
target = this;
break;
}
+ // Kill command
+ case 58914:
+ {
+ // Remove aura stack from pet
+ RemoveSingleSpellAurasFromStack(58914);
+ Unit* owner = GetOwner();
+ if(!owner)
+ return true;
+ // reduce the owner's aura stack
+ owner->RemoveSingleSpellAurasFromStack(34027);
+ return true;
+ }
// Vampiric Touch (generic, used by some boss)
case 52723:
case 60501:
@@ -6345,8 +6357,16 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
triggered_spell_id = 16086;
break;
}
+ // Tidal Force
+ case 55198:
+ {
+ // Remove aura stack from caster
+ RemoveSingleSpellAurasFromStack(55166);
+ // drop charges
+ return false;
+ }
// Totemic Power (The Earthshatterer set)
- case 28823:
+ case 28823:
{
if( !pVictim )
return false;