aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp29
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp44
2 files changed, 44 insertions, 29 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 7021b966002..f8b82477a67 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -3270,35 +3270,6 @@ void Spell::EffectScriptEffect()
}
return;
}
- case 45668: // Ultra-Advanced Proto-Typical Shortening Blaster
- {
- if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT)
- return;
-
- static uint32 const spellPlayer[5] =
- {
- 45674, // Bigger!
- 45675, // Shrunk
- 45678, // Yellow
- 45682, // Ghost
- 45684 // Polymorph
- };
-
- static uint32 const spellTarget[5] =
- {
- 45673, // Bigger!
- 45672, // Shrunk
- 45677, // Yellow
- 45681, // Ghost
- 45683 // Polymorph
- };
-
- m_caster->CastSpell(m_caster, spellPlayer[urand(0, 4)], CastSpellExtraArgs(TRIGGERED_FULL_MASK)
- .SetOriginalCastId(m_castId));
- unitTarget->CastSpell(unitTarget, spellTarget[urand(0, 4)], CastSpellExtraArgs(TRIGGERED_FULL_MASK)
- .SetOriginalCastId(m_castId));
- break;
- }
}
break;
}
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index d5b0d53e5e8..0b7760cf5fa 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -39,6 +39,7 @@ EndContentData */
#include "PhasingHandler.h"
#include "Player.h"
#include "QuestDef.h"
+#include "CreatureAIImpl.h"
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
#include "ScriptedGossip.h"
@@ -2523,6 +2524,48 @@ public:
}
};
+// 45668 - Ultra-Advanced Proto-Typical Shortening Blaster
+enum ShorteningBlaster
+{
+ SPELL_SHORTENING_BLASTER_BIGGER1 = 45674,
+ SPELL_SHORTENING_BLASTER_SHRUNK1 = 45675,
+ SPELL_SHORTENING_BLASTER_YELLOW1 = 45678,
+ SPELL_SHORTENING_BLASTER_GHOST1 = 45682,
+ SPELL_SHORTENING_BLASTER_POLYMORPH1 = 45684,
+
+ SPELL_SHORTENING_BLASTER_BIGGER2 = 45673,
+ SPELL_SHORTENING_BLASTER_SHRUNK2 = 45672,
+ SPELL_SHORTENING_BLASTER_YELLOW2 = 45677,
+ SPELL_SHORTENING_BLASTER_GHOST2 = 45682,
+ SPELL_SHORTENING_BLASTER_POLYMORPH2 = 45683
+};
+
+class spell_q11653_shortening_blaster : public SpellScript
+{
+ PrepareSpellScript(spell_q11653_shortening_blaster);
+
+ void HandleScript(SpellEffIndex /* effIndex */)
+ {
+ Unit* caster = GetCaster();
+ Unit* target = GetHitUnit();
+
+ uint32 spellId = RAND(SPELL_SHORTENING_BLASTER_BIGGER1, SPELL_SHORTENING_BLASTER_SHRUNK1,
+ SPELL_SHORTENING_BLASTER_YELLOW1,
+ SPELL_SHORTENING_BLASTER_GHOST1, SPELL_SHORTENING_BLASTER_POLYMORPH1);
+ uint32 spellId2 = RAND(SPELL_SHORTENING_BLASTER_BIGGER2, SPELL_SHORTENING_BLASTER_SHRUNK2,
+ SPELL_SHORTENING_BLASTER_YELLOW2,
+ SPELL_SHORTENING_BLASTER_GHOST2, SPELL_SHORTENING_BLASTER_POLYMORPH2);
+
+ caster->CastSpell(caster, spellId, true);
+ target->CastSpell(target, spellId2, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_q11653_shortening_blaster::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+};
+
void AddSC_borean_tundra()
{
new npc_sinkhole_kill_credit();
@@ -2550,4 +2593,5 @@ void AddSC_borean_tundra()
new spell_q11719_bloodspore_ruination_45997();
new npc_bloodmage_laurith();
new npc_orabus_the_helmsman_ship_exit_pos();
+ RegisterSpellScript(spell_q11653_shortening_blaster);
}