diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/SpellEffects.cpp | 55 | ||||
-rw-r--r-- | src/game/Unit.cpp | 18 |
2 files changed, 73 insertions, 0 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 41ef6094855..9645ff7118c 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4714,6 +4714,61 @@ void Spell::EffectScriptEffect(uint32 effIndex) { switch(m_spellInfo->Id) { + // Glyph of Starfire + case 54846: + { + if (AuraEffect const * aurEff = unitTarget->GetAura(SPELL_AURA_PERIODIC_DAMAGE,SPELLFAMILY_DRUID,0x00000002,0,0,m_caster->GetGUID())) + { + uint32 countMin = aurEff->GetParentAura()->GetAuraMaxDuration(); + uint32 countMax = 18000; + countMax += m_caster->HasAura(38414) ? 3000 : 0; + countMax += m_caster->HasAura(57865) ? 3000 : 0; + + if (countMin < countMax) + { + aurEff->GetParentAura()->SetAuraDuration(uint32(aurEff->GetParentAura()->GetAuraDuration()+3000)); + aurEff->GetParentAura()->SetAuraMaxDuration(countMin+3000); + } + } + return; + } + // Glyph of Shred + case 63974: + { + if (AuraEffect const * aurEff = unitTarget->GetAura(SPELL_AURA_PERIODIC_DAMAGE,SPELLFAMILY_DRUID,0x00800000,0,0,m_caster->GetGUID())) + { + uint32 countMin = aurEff->GetParentAura()->GetAuraMaxDuration(); + uint32 countMax = 20000; + countMax += m_caster->HasAura(54818) ? 4000 : 0; + countMax += m_caster->HasAura(60141) ? 4000 : 0; + + if (countMin < countMax) + { + aurEff->GetParentAura()->SetAuraDuration(uint32(aurEff->GetParentAura()->GetAuraDuration()+3000)); + aurEff->GetParentAura()->SetAuraMaxDuration(countMin+2000); + } + + } + return; + } + // Glyph of Backstab + case 63975: + { + if (AuraEffect const * aurEff = unitTarget->GetAura(SPELL_AURA_PERIODIC_DAMAGE,SPELLFAMILY_ROGUE,0x00100000,0,0,m_caster->GetGUID())) + { + uint32 countMin = aurEff->GetParentAura()->GetAuraMaxDuration(); + uint32 countMax = 12000; + countMax += m_caster->HasAura(56801) ? 4000 : 0; + + if (countMin < countMax) + { + aurEff->GetParentAura()->SetAuraDuration(uint32(aurEff->GetParentAura()->GetAuraDuration()+3000)); + aurEff->GetParentAura()->SetAuraMaxDuration(countMin+2000); + } + + } + return; + } // Dispelling Analysis case 37028: { diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index be24edb329f..263e2b8037c 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5800,6 +5800,18 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger { switch(dummySpell->Id) { + // Glyph of Starfire + case 54845: + { + triggered_spell_id = 54846; + break; + } + // Glyph of Shred + case 54815: + { + triggered_spell_id = 63974; + break; + } // Glyph of Rake case 54821: { @@ -5975,6 +5987,12 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger { switch(dummySpell->Id) { + // Glyph of Backstab + case 56800: + { + triggered_spell_id = 63975; + break; + } // Deadly Throw Interrupt case 32748: { |