aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNevan <none@none>2009-08-23 17:59:32 +0200
committerNevan <none@none>2009-08-23 17:59:32 +0200
commit023e98f21f164985a2d0f80cf8c9f6c7c7ac8e79 (patch)
treecea07a729a82f2e44ab3d0e2580014f3b8f20063 /src
parent0b06baee4dcbc18534bbfb3becb679ae42103439 (diff)
*Fix Glyph of Starfire
*Fix Glyph of Shred *Fix Glyph of Backstab -- Thanks megamage for help me with that. --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellEffects.cpp55
-rw-r--r--src/game/Unit.cpp18
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:
{