Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From b78a3d8223bdbb03fcfdf125137e1cae743a6462 Mon Sep 17 00:00:00 2001
- From: Schmoozerd <Schmoozerd@scriptdev2.com>
- Date: Wed, 16 Feb 2011 11:37:25 +0100
- Subject: [PATCH 1/8] Mirrored Soul - Limit Max-Targets for spell 69048
- ---
- src/game/Spell.cpp | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
- diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
- index 722e112..576ef37 100644
- --- a/src/game/Spell.cpp
- +++ b/src/game/Spell.cpp
- @@ -1574,6 +1574,7 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList&
- case 59870: // Glare of the Tribunal (h) (Halls of Stone)
- case 64218: // Overcharge
- case 68950: // Fear
- + case 69048: // Mirrored Soul (FoS)
- unMaxTargets = 1;
- break;
- case 28542: // Life Drain
- --
- 1.7.3.1.msysgit.0
- From a17eb9be643f8c44224132d3b0dc7a176e1b3a50 Mon Sep 17 00:00:00 2001
- From: Schmoozerd <schmoozerd@scriptdev2.com>
- Date: Thu, 18 Aug 2011 15:29:50 +0200
- Subject: [PATCH 2/8] Mirrored Soul - Add stacking exception
- ---
- src/game/SpellMgr.cpp | 4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
- diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
- index 1f8630d..6a4162a 100644
- --- a/src/game/SpellMgr.cpp
- +++ b/src/game/SpellMgr.cpp
- @@ -2389,7 +2389,9 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
- // more generic checks
- if (spellInfo_1->SpellIconID == spellInfo_2->SpellIconID &&
- - spellInfo_1->SpellIconID != 0 && spellInfo_2->SpellIconID != 0)
- + spellInfo_1->SpellIconID != 0 && spellInfo_2->SpellIconID != 0
- + // exclude a few icons from this generic check
- + && spellInfo_1->SpellIconID != 3176 && spellInfo_1->SpellIconID != 3176) // Mirrored Soul (FoS - Devourer) - and other Boss spells
- {
- bool isModifier = false;
- for (int i = 0; i < MAX_EFFECT_INDEX; ++i)
- --
- 1.7.3.1.msysgit.0
- From 002141154643cbafe5d4fc7e7661918acf0993ef Mon Sep 17 00:00:00 2001
- From: Schmoozerd <Schmoozerd@scriptdev2.com>
- Date: Wed, 16 Feb 2011 11:42:22 +0100
- Subject: [PATCH 3/8] Mirrored Soul - Implement effect of 69048
- 69051 should be cast in very unexpected way: no cast-time but SMSG_SPELL_CAST and MSG_CHANNEL_START
- ---
- src/game/SpellEffects.cpp | 11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
- diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
- index 1c7e2ab..ced4a96 100644
- --- a/src/game/SpellEffects.cpp
- +++ b/src/game/SpellEffects.cpp
- @@ -7313,6 +7313,17 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx)
- if (unitTarget)
- unitTarget->CastSpell(unitTarget, m_spellInfo->CalculateSimpleValue(eff_idx), true);
- return;
- + case 69048: // Mirrored Soul
- + {
- + if (!unitTarget)
- + return;
- +
- + // This is extremely strange!
- + // The spell should send MSG_CHANNEL_START, SMSG_SPELL_START
- + // However it has cast time 2s, but should send SMSG_SPELL_GO instantly.
- + m_caster->CastSpell(unitTarget, 69051, true);
- + return;
- + }
- case 69377: // Fortitude
- {
- if (!unitTarget)
- --
- 1.7.3.1.msysgit.0
- From 0b1ab3085ad3f4a6a3dc293272624151460cdd8b Mon Sep 17 00:00:00 2001
- From: Schmoozerd <Schmoozerd@scriptdev2.com>
- Date: Wed, 16 Feb 2011 11:55:05 +0100
- Subject: [PATCH 4/8] Mirrored Soul - Implement spell 69051, effect: Cast dmg-exchange aura 69023
- ---
- src/game/SpellEffects.cpp | 9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
- diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
- index ced4a96..307c45c 100644
- --- a/src/game/SpellEffects.cpp
- +++ b/src/game/SpellEffects.cpp
- @@ -7324,6 +7324,15 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx)
- m_caster->CastSpell(unitTarget, 69051, true);
- return;
- }
- + case 69051: // Mirrored Soul
- + {
- + if (!unitTarget)
- + return;
- +
- + // Actually this spell should be sent with SMSG_SPELL_START
- + unitTarget->CastSpell(m_caster, 69023, true);
- + return;
- + }
- case 69377: // Fortitude
- {
- if (!unitTarget)
- --
- 1.7.3.1.msysgit.0
- From 241418f9d6aa0f94e76b3211864954fbc9a0aafa Mon Sep 17 00:00:00 2001
- From: Schmoozerd <Schmoozerd@scriptdev2.com>
- Date: Wed, 16 Feb 2011 14:47:39 +0100
- Subject: [PATCH 5/8] Mirrored Soul - Implement procc event for 69023: Add dmg-exchange spell
- ---
- src/game/UnitAuraProcHandler.cpp | 9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
- diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp
- index 00b729c..0080e5a 100644
- --- a/src/game/UnitAuraProcHandler.cpp
- +++ b/src/game/UnitAuraProcHandler.cpp
- @@ -2977,6 +2977,15 @@ SpellAuraProcResult Unit::HandleProcTriggerSpellAuraProc(Unit *pVictim, uint32 d
- if (GetStat(STAT_AGILITY) > stat) { trigger_spell_id = 67772; }
- break;
- }
- + case 69023: // Mirrored Soul
- + {
- + int32 basepoints = (int32) (damage * 0.45f);
- + if (Unit* caster = triggeredByAura->GetCaster())
- + // Actually this spell should be sent with SMSG_SPELL_START
- + CastCustomSpell(caster, 69034, &basepoints, NULL, NULL, true, NULL, triggeredByAura, GetObjectGuid());
- +
- + return SPELL_AURA_PROC_OK;
- + }
- }
- break;
- case SPELLFAMILY_MAGE:
- --
- 1.7.3.1.msysgit.0
- From 66b38c3f6ad8c59f8ce43be8f678e9830fcc4673 Mon Sep 17 00:00:00 2001
- From: Schmoozerd <schmoozerd@scriptdev2.com>
- Date: Thu, 18 Aug 2011 14:05:24 +0200
- Subject: [PATCH 6/8] Wailing Souls - Implement 68912
- ---
- src/game/Spell.cpp | 1 +
- src/game/SpellAuras.cpp | 9 +++++++++
- 2 files changed, 10 insertions(+), 0 deletions(-)
- diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
- index 576ef37..1f4518b 100644
- --- a/src/game/Spell.cpp
- +++ b/src/game/Spell.cpp
- @@ -1574,6 +1574,7 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList&
- case 59870: // Glare of the Tribunal (h) (Halls of Stone)
- case 64218: // Overcharge
- case 68950: // Fear
- + case 68912: // Wailing Souls (FoS)
- case 69048: // Mirrored Soul (FoS)
- unMaxTargets = 1;
- break;
- diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
- index 92c5762..7cd2f35 100644
- --- a/src/game/SpellAuras.cpp
- +++ b/src/game/SpellAuras.cpp
- @@ -2141,6 +2141,15 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
- if (target->GetTypeId() == TYPEID_PLAYER)
- ((Player*)target)->removeSpell(63680);
- return;
- + case 68912: // Wailing Souls
- + if (Unit* caster = GetCaster())
- + {
- + caster->SetTargetGuid(target->GetObjectGuid());
- +
- + // TODO - this is confusing, it seems the boss should channel this aura, and start casting the next spell
- + caster->CastSpell(caster, 68899, false);
- + }
- + return;
- case 71342: // Big Love Rocket
- Spell::SelectMountByAreaAndSkill(target, GetSpellProto(), 71344, 71345, 71346, 71347, 0);
- return;
- --
- 1.7.3.1.msysgit.0
- From c4d8031cd1a78c2deab6be8360f1fcefac167204 Mon Sep 17 00:00:00 2001
- From: Schmoozerd <schmoozerd@scriptdev2.com>
- Date: Thu, 18 Aug 2011 14:15:48 +0200
- Subject: [PATCH 7/8] Wailing Souls - Implement spell 68871
- ---
- src/game/SpellEffects.cpp | 6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
- diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
- index 307c45c..556e12e 100644
- --- a/src/game/SpellEffects.cpp
- +++ b/src/game/SpellEffects.cpp
- @@ -7313,6 +7313,12 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx)
- if (unitTarget)
- unitTarget->CastSpell(unitTarget, m_spellInfo->CalculateSimpleValue(eff_idx), true);
- return;
- + case 68871: // Wailing Souls
- + // Left or Right direction?
- + m_caster->CastSpell(m_caster, urand(0, 1) ? 68875 : 68876, false);
- + // Clear TargetGuid for sweeping
- + m_caster->SetTargetGuid(ObjectGuid());
- + return;
- case 69048: // Mirrored Soul
- {
- if (!unitTarget)
- --
- 1.7.3.1.msysgit.0
- From 3876b4688216f4c8147235dbcf678e5be7f3c964 Mon Sep 17 00:00:00 2001
- From: Schmoozerd <schmoozerd@scriptdev2.com>
- Date: Thu, 18 Aug 2011 14:30:11 +0200
- Subject: [PATCH 8/8] Wailing Souls - Implement sweeping spells 68875, 68876 - unfinished
- ---
- src/game/SpellAuras.cpp | 14 ++++++++++++++
- 1 files changed, 14 insertions(+), 0 deletions(-)
- diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
- index 7cd2f35..5d811a2 100644
- --- a/src/game/SpellAuras.cpp
- +++ b/src/game/SpellAuras.cpp
- @@ -7863,6 +7863,20 @@ void Aura::PeriodicDummyTick()
- target->CastSpell(target, 62593, true);
- return;
- }
- + case 68875: // Wailing Souls
- + case 68876: // Wailing Souls
- + {
- + // Sweep around
- + float newAngle = target->GetOrientation() + (spell->Id == 68875 ? 0.09f : 2*M_PI_F - 0.09f);
- + if (newAngle > 2*M_PI_F)
- + newAngle -= 2*M_PI_F;
- +
- + target->SetFacingTo(newAngle);
- +
- + // Should actually be SMSG_SPELL_START, too
- + target->CastSpell(target, 68873, true);
- + return;
- + }
- // Exist more after, need add later
- default:
- break;
- --
- 1.7.3.1.msysgit.0
Add Comment
Please, Sign In to add comment