aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp115
-rw-r--r--src/server/scripts/Spells/spell_item.cpp220
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp220
3 files changed, 393 insertions, 162 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index fc847e77874..3d9c9e03ffd 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -842,46 +842,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
}
return;
}
- case 14537: // Six Demon Bag
- {
- if( !unitTarget || !unitTarget->isAlive()) return;
-
- uint32 ClearSpellId[6] =
- {
- 15662, // Fireball
- 11538, // Frostball
- 21179, // Chain Lightning
- 14621, // Polymorph
- 25189, // Enveloping Winds
- 14642 // Summon Felhund minion
- };
-
- uint32 effect = 0;
- uint32 rand = urand(0, 100);
-
- if (rand < 25) // Fireball (25% chance)
- effect = ClearSpellId[0];
- else if (rand < 50) // Frostball (25% chance)
- effect = ClearSpellId[1];
- else if (rand < 70) // Chain Lighting (25% chance)
- effect = ClearSpellId[2];
- else if (rand < 80) // Polymorph (10% chance)
- {
- effect = ClearSpellId[3];
- if (urand(0, 100) <= 30) // 30% chance to self-cast
- unitTarget = m_caster;
- }
- else if (rand < 95) // Enveloping Winds (15% chance)
- effect = ClearSpellId[4];
- else // Summon Felhund minion (5% chance)
- {
- effect = ClearSpellId[5];
- unitTarget = m_caster;
- }
-
- m_caster->CastSpell(unitTarget, effect, true);
- return;
- }
case 17251: // Spirit Healer Res
{
if (!unitTarget || !m_originalCaster)
@@ -895,18 +855,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
}
return;
}
- case 17271: // Test Fetid Skull
- {
- if (!itemTarget && m_caster->GetTypeId() != TYPEID_PLAYER)
- return;
-
- uint32 spell_id = roll_chance_i(50)
- ? 17269 // Create Resonating Skull
- : 17270; // Create Bone Dust
-
- m_caster->CastSpell(m_caster, spell_id, true, NULL);
- return;
- }
case 20577: // Cannibalize
if (unitTarget)
m_caster->CastSpell(m_caster, 20578, false, NULL);
@@ -925,22 +873,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
return;
}
- case 23074: // Arcanite Dragonling
- if (!m_CastItem) return;
- m_caster->CastSpell(m_caster, 19804, true, m_CastItem);
- return;
- case 23075: // Mithril Mechanical Dragonling
- if (!m_CastItem) return;
- m_caster->CastSpell(m_caster, 12749, true, m_CastItem);
- return;
- case 23076: // Mechanical Dragonling
- if (!m_CastItem) return;
- m_caster->CastSpell(m_caster, 4073, true, m_CastItem);
- return;
- case 23133: // Gnomish Battle Chicken
- if (!m_CastItem) return;
- m_caster->CastSpell(m_caster, 13166, true, m_CastItem);
- return;
case 23448: // Transporter Arrival - Ultrasafe Transporter: Gadgetzan - backfires
{
int32 r = irand(0, 119);
@@ -1031,20 +963,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
else // Poultryized! - backfire 20%
m_caster->CastSpell(unitTarget, 30504, true, m_CastItem);
return;
- case 34665: //Administer Antidote
- {
- if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT
- || unitTarget->GetEntry() != 16880 || unitTarget->ToCreature()->isPet())
- return;
-
- unitTarget->ToCreature()->UpdateEntry(16992);
- m_caster->ToPlayer()->RewardPlayerAndGroupAtEvent(16992, unitTarget);
-
- if (unitTarget->IsAIEnabled)
- unitTarget->ToCreature()->AI()->AttackStart(m_caster);
-
- return;
- }
case 35745: // Socrethar's Stone
{
uint32 spell_id;
@@ -1067,39 +985,6 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
m_caster->CastCustomSpell(unitTarget, 37675, &basepoints0, NULL, NULL, true);
return;
}
- case 40802: // Mingo's Fortune Generator (Mingo's Fortune Giblets)
- {
- // selecting one from Bloodstained Fortune item
- uint32 newitemid;
- switch(urand(1, 20))
- {
- case 1: newitemid = 32688; break;
- case 2: newitemid = 32689; break;
- case 3: newitemid = 32690; break;
- case 4: newitemid = 32691; break;
- case 5: newitemid = 32692; break;
- case 6: newitemid = 32693; break;
- case 7: newitemid = 32700; break;
- case 8: newitemid = 32701; break;
- case 9: newitemid = 32702; break;
- case 10: newitemid = 32703; break;
- case 11: newitemid = 32704; break;
- case 12: newitemid = 32705; break;
- case 13: newitemid = 32706; break;
- case 14: newitemid = 32707; break;
- case 15: newitemid = 32708; break;
- case 16: newitemid = 32709; break;
- case 17: newitemid = 32710; break;
- case 18: newitemid = 32711; break;
- case 19: newitemid = 32712; break;
- case 20: newitemid = 32713; break;
- default:
- return;
- }
-
- DoCreateItem(effIndex, newitemid);
- return;
- }
// Wrath of the Astromancer
case 42784:
{
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 9949b2a9951..8c431f338f0 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -23,6 +23,50 @@
#include "ScriptPCH.h"
+// Generic script for handling item dummy effects which trigger another spell.
+class spell_item_trigger_spell : public SpellScriptLoader
+{
+private:
+ uint32 _triggeredSpellId;
+
+public:
+ spell_item_trigger_spell(const char* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { }
+
+ class spell_item_trigger_spell_SpellScript : public SpellScript
+ {
+ private:
+ uint32 _triggeredSpellId;
+
+ public:
+ spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId) : SpellScript(), _triggeredSpellId(triggeredSpellId) { }
+
+ bool Validate(SpellEntry const * /*spellEntry*/)
+ {
+ if (!sSpellStore.LookupEntry(_triggeredSpellId))
+ return false;
+ return true;
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (Item* pItem = GetCastItem())
+ GetCaster()->CastSpell(GetCaster(), _triggeredSpellId, true, pItem);
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_item_trigger_spell_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_item_trigger_spell_SpellScript(_triggeredSpellId);
+ }
+};
+
+// http://www.wowhead.com/item=6522 Deviate Fish
+// 8063 Deviate Fish
enum eDeviateFishSpells
{
SPELL_SLEEPY = 8064,
@@ -32,7 +76,6 @@ enum eDeviateFishSpells
SPELL_HEALTHY_SPIRIT = 8068,
};
-// 8063 Deviate Fish
class spell_item_deviate_fish : public SpellScriptLoader
{
public:
@@ -71,6 +114,8 @@ public:
}
};
+// http://www.wowhead.com/item=47499 Flask of the North
+// 67019 Flask of the North
enum eFlaskOfTheNorthSpells
{
SPELL_FLASK_OF_THE_NORTH_TRIGGERED1 = 67016,
@@ -78,7 +123,6 @@ enum eFlaskOfTheNorthSpells
SPELL_FLASK_OF_THE_NORTH_TRIGGERED3 = 67018,
};
-// 67019 Flask of the North
class spell_item_flask_of_the_north : public SpellScriptLoader
{
public:
@@ -120,13 +164,14 @@ public:
}
};
+// http://www.wowhead.com/item=10645 Gnomish Death Ray
+// 13280 Gnomish Death Ray
enum eGnomishDeathRay
{
SPELL_GNOMISH_DEATH_RAY_SELF = 13493,
SPELL_GNOMISH_DEATH_RAY_TARGET = 13279,
};
-// 13280 Gnomish Death Ray
class spell_item_gnomish_death_ray : public SpellScriptLoader
{
public:
@@ -168,6 +213,8 @@ public:
}
};
+// http://www.wowhead.com/item=27388 Mr. Pinchy
+// 33060 Make a Wish
enum eMakeAWish
{
SPELL_MR_PINCHYS_BLESSING = 33053,
@@ -177,7 +224,6 @@ enum eMakeAWish
SPELL_MR_PINCHYS_GIFT = 33064,
};
-// 33060 Make a Wish
class spell_item_make_a_wish : public SpellScriptLoader
{
public:
@@ -230,6 +276,62 @@ public:
}
};
+// http://www.wowhead.com/item=32686 Mingo's Fortune Giblets
+// 40802 Mingo's Fortune Generator
+class spell_item_mingos_fortune_generator : public SpellScriptLoader
+{
+public:
+ spell_item_mingos_fortune_generator() : SpellScriptLoader("spell_item_mingos_fortune_generator") { }
+
+ class spell_item_mingos_fortune_generator_SpellScript : public SpellScript
+ {
+ void HandleDummy(SpellEffIndex effIndex)
+ {
+ // Selecting one from Bloodstained Fortune item
+ uint32 newitemid;
+ switch (urand(1, 20))
+ {
+ case 1: newitemid = 32688; break;
+ case 2: newitemid = 32689; break;
+ case 3: newitemid = 32690; break;
+ case 4: newitemid = 32691; break;
+ case 5: newitemid = 32692; break;
+ case 6: newitemid = 32693; break;
+ case 7: newitemid = 32700; break;
+ case 8: newitemid = 32701; break;
+ case 9: newitemid = 32702; break;
+ case 10: newitemid = 32703; break;
+ case 11: newitemid = 32704; break;
+ case 12: newitemid = 32705; break;
+ case 13: newitemid = 32706; break;
+ case 14: newitemid = 32707; break;
+ case 15: newitemid = 32708; break;
+ case 16: newitemid = 32709; break;
+ case 17: newitemid = 32710; break;
+ case 18: newitemid = 32711; break;
+ case 19: newitemid = 32712; break;
+ case 20: newitemid = 32713; break;
+ default:
+ return;
+ }
+
+ CreateItem(effIndex, newitemid);
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_item_mingos_fortune_generator_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_item_mingos_fortune_generator_SpellScript();
+ }
+};
+
+// http://www.wowhead.com/item=10720 Gnomish Net-o-Matic Projector
+// 13120 Net-o-Matic
enum eNetOMaticSpells
{
SPELL_NET_O_MATIC_TRIGGERED1 = 16566,
@@ -237,7 +339,6 @@ enum eNetOMaticSpells
SPELL_NET_O_MATIC_TRIGGERED3 = 13099,
};
-// 13120 Net-o-Matic
class spell_item_net_o_matic : public SpellScriptLoader
{
public:
@@ -284,6 +385,8 @@ public:
}
};
+// http://www.wowhead.com/item=8529 Noggenfogger Elixir
+// 16589 Noggenfogger Elixir
enum eNoggenfoggerElixirSpells
{
SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1 = 16595,
@@ -291,7 +394,6 @@ enum eNoggenfoggerElixirSpells
SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3 = 16591,
};
-// 16589 Noggenfogger Elixir
class spell_item_noggenfogger_elixir : public SpellScriptLoader
{
public:
@@ -339,6 +441,8 @@ public:
}
};
+// http://www.wowhead.com/item=6657 Savory Deviate Delight
+// 8213 Savory Deviate Delight
enum eSavoryDeviateDelight
{
SPELL_FLIP_OUT_MALE = 8219,
@@ -347,7 +451,6 @@ enum eSavoryDeviateDelight
SPELL_YAAARRRR_FEMALE = 8222,
};
-// 8213 Savory Deviate Delight
class spell_item_savory_deviate_delight : public SpellScriptLoader
{
public:
@@ -393,6 +496,89 @@ public:
}
};
+// http://www.wowhead.com/item=7734 Six Demon Bag
+// 14537 Six Demon Bag
+enum eSixDemonBagSpells
+{
+ SPELL_FROSTBOLT = 11538,
+ SPELL_POLYMORPH = 14621,
+ SPELL_SUMMON_FELHOUND_MINION = 14642,
+ SPELL_FIREBALL = 15662,
+ SPELL_CHAIN_LIGHTNING = 21179,
+ SPELL_ENVELOPING_WINDS = 25189,
+};
+
+class spell_item_six_demon_bag : public SpellScriptLoader
+{
+public:
+ spell_item_six_demon_bag() : SpellScriptLoader("spell_item_six_demon_bag") { }
+
+ class spell_item_six_demon_bag_SpellScript : public SpellScript
+ {
+ public:
+ bool Validate(SpellEntry const * /*spellEntry*/)
+ {
+ if (!sSpellStore.LookupEntry(SPELL_FROSTBOLT))
+ return false;
+ if (!sSpellStore.LookupEntry(SPELL_POLYMORPH))
+ return false;
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_FELHOUND_MINION))
+ return false;
+ if (!sSpellStore.LookupEntry(SPELL_FIREBALL))
+ return false;
+ if (!sSpellStore.LookupEntry(SPELL_CHAIN_LIGHTNING))
+ return false;
+ if (!sSpellStore.LookupEntry(SPELL_ENVELOPING_WINDS))
+ return false;
+ return true;
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (Unit* pTarget = GetHitUnit())
+ {
+ Unit* pCaster = GetCaster();
+
+ uint32 spellId = 0;
+ uint32 rand = urand(0, 100);
+ if (rand >= 0 && rand < 25) // Fireball (25% chance)
+ spellId = SPELL_FIREBALL;
+ else if (rand >= 25 && rand < 50) // Frostball (25% chance)
+ spellId = SPELL_FROSTBOLT;
+ else if (rand >= 50 && rand < 70) // Chain Lighting (20% chance)
+ spellId = SPELL_CHAIN_LIGHTNING;
+ else if (rand >= 70 && rand < 80) // Polymorph (10% chance)
+ {
+ spellId = SPELL_POLYMORPH;
+ if (urand(0, 100) <= 30) // 30% chance to self-cast
+ pTarget = pCaster;
+ }
+ else if (rand >=80 && rand < 95) // Enveloping Winds (15% chance)
+ spellId = SPELL_ENVELOPING_WINDS;
+ else // Summon Felhund minion (5% chance)
+ {
+ spellId = SPELL_SUMMON_FELHOUND_MINION;
+ pTarget = pCaster;
+ }
+
+ pCaster->CastSpell(pTarget, spellId, true, GetCastItem());
+ }
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_item_six_demon_bag_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_item_six_demon_bag_SpellScript();
+ }
+};
+
+// http://www.wowhead.com/item=44012 Underbelly Elixir
+// 59640 Underbelly Elixir
enum eUnderbellyElixirSpells
{
SPELL_UNDERBELLY_ELIXIR_TRIGGERED1 = 59645,
@@ -400,7 +586,6 @@ enum eUnderbellyElixirSpells
SPELL_UNDERBELLY_ELIXIR_TRIGGERED3 = 59843,
};
-// 59640 Underbelly Elixir
class spell_item_underbelly_elixir : public SpellScriptLoader
{
public:
@@ -447,14 +632,33 @@ public:
}
};
+enum eGenericData
+{
+ SPELL_ARCANITE_DRAGONLING = 19804,
+ SPELL_BATTLE_CHICKEN = 13166,
+ SPELL_MECHANICAL_DRAGONLING = 4073,
+ SPELL_MITHRIL_MECHANICAL_DRAGONLING = 12749,
+};
+
void AddSC_item_spell_scripts()
{
+ // 23074 Arcanite Dragonling
+ new spell_item_trigger_spell("spell_item_arcanite_dragonling", SPELL_ARCANITE_DRAGONLING);
+ // 23133 Gnomish Battle Chicken
+ new spell_item_trigger_spell("spell_item_gnomish_battle_chicken", SPELL_BATTLE_CHICKEN);
+ // 23076 Mechanical Dragonling
+ new spell_item_trigger_spell("spell_item_mechanical_dragonling", SPELL_MECHANICAL_DRAGONLING);
+ // 23075 Mithril Mechanical Dragonling
+ new spell_item_trigger_spell("spell_item_mithril_mechanical_dragonling", SPELL_MITHRIL_MECHANICAL_DRAGONLING);
+
new spell_item_deviate_fish();
new spell_item_flask_of_the_north();
new spell_item_gnomish_death_ray();
new spell_item_make_a_wish();
+ new spell_item_mingos_fortune_generator();
new spell_item_net_o_matic();
new spell_item_noggenfogger_elixir();
new spell_item_savory_deviate_delight();
+ new spell_item_six_demon_bag();
new spell_item_underbelly_elixir();
}
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index 201c65419a7..d273d1ad453 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -23,15 +23,153 @@
#include "ScriptPCH.h"
-enum Quest11587Spells
+class spell_generic_quest_update_entry_SpellScript : public SpellScript
{
- QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE = 45446, // Summon Arcane Prisoner - Male
- QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE = 45448, // Summon Arcane Prisoner - Female
- QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT = 45456 // Arcane Prisoner Kill Credit
+private:
+ uint32 _spellEffect;
+ uint8 _effIndex;
+ uint32 _originalEntry;
+ uint32 _newEntry;
+ bool _shouldAttack;
+ uint32 _despawnTime;
+
+public:
+ spell_generic_quest_update_entry_SpellScript(uint32 spellEffect, uint8 effIndex, uint32 originalEntry, uint32 newEntry, bool shouldAttack, uint32 despawnTime = 0) :
+ SpellScript(), _spellEffect(spellEffect), _effIndex(effIndex), _originalEntry(originalEntry),
+ _newEntry(newEntry), _shouldAttack(shouldAttack), _despawnTime(despawnTime) { }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ if (Creature* pCreatureTarget = GetHitCreature())
+ if (!pCreatureTarget->isPet() && pCreatureTarget->GetEntry() == _originalEntry)
+ {
+ pCreatureTarget->UpdateEntry(_newEntry);
+ if (_shouldAttack && pCreatureTarget->IsAIEnabled)
+ pCreatureTarget->AI()->AttackStart(GetCaster());
+
+ if (_despawnTime)
+ pCreatureTarget->ForcedDespawn(_despawnTime);
+ }
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_generic_quest_update_entry_SpellScript::HandleDummy, _effIndex, _spellEffect);
+ }
+};
+
+// http://www.wowhead.com/quest=55 Morbent Fel
+// 8913 Sacred Cleansing
+enum Quest55Data
+{
+ NPC_MORBENT = 1200,
+ NPC_WEAKENED_MORBENT = 24782,
+};
+
+class spell_q55_sacred_cleansing : public SpellScriptLoader
+{
+public:
+ spell_q55_sacred_cleansing() : SpellScriptLoader("spell_q55_sacred_cleansing") { }
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_1, NPC_MORBENT, NPC_WEAKENED_MORBENT, true);
+ }
+};
+
+// http://www.wowhead.com/quest=5206 Marauders of Darrowshire
+// 17271 Test Fetid Skull
+enum Quest5206Data
+{
+ SPELL_CREATE_RESONATING_SKULL = 17269,
+ SPELL_CREATE_BONE_DUST = 17270
+};
+
+class spell_q5206_test_fetid_skull : public SpellScriptLoader
+{
+public:
+ spell_q5206_test_fetid_skull() : SpellScriptLoader("spell_q5206_test_fetid_skull") { }
+
+ class spell_q5206_test_fetid_skull_SpellScript : public SpellScript
+ {
+ bool Validate(SpellEntry const * /*spellEntry*/)
+ {
+ if (!sSpellStore.LookupEntry(SPELL_CREATE_RESONATING_SKULL))
+ return false;
+ if (!sSpellStore.LookupEntry(SPELL_CREATE_BONE_DUST))
+ return false;
+ return true;
+ }
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ Unit* pCaster = GetCaster();
+ if (pCaster->GetTypeId() == TYPEID_PLAYER)
+ {
+ uint32 spellId = roll_chance_i(50) ? SPELL_CREATE_RESONATING_SKULL : SPELL_CREATE_BONE_DUST;
+ pCaster->CastSpell(pCaster, spellId, true, NULL);
+ }
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_q5206_test_fetid_skull_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_q5206_test_fetid_skull_SpellScript();
+ }
+};
+
+// http://www.wowhead.com/quest=10255 Testing the Antidote
+// 34665 Administer Antidote
+enum Quest10255Data
+{
+ NPC_HELBOAR = 16880,
+ NPC_DREADTUSK = 16992,
+};
+
+class spell_q10255_administer_antidote : public SpellScriptLoader
+{
+public:
+ spell_q10255_administer_antidote() : SpellScriptLoader("spell_q10255_administer_antidote") { }
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_0, NPC_HELBOAR, NPC_DREADTUSK, true);
+ }
+};
+
+// http://www.wowhead.com/quest=11515 Blood for Blood
+// 44936 Quest - Fel Siphon Dummy
+enum Quest11515Data
+{
+ NPC_FELBLOOD_INITIATE = 24918,
+ NPC_EMACIATED_FELBLOOD = 24955
+};
+
+class spell_q11515_fel_siphon_dummy : public SpellScriptLoader
+{
+public:
+ spell_q11515_fel_siphon_dummy() : SpellScriptLoader("spell_q11515_fel_siphon_dummy") { }
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_generic_quest_update_entry_SpellScript(SPELL_EFFECT_DUMMY, EFFECT_0, NPC_FELBLOOD_INITIATE, NPC_EMACIATED_FELBLOOD, true);
+ }
};
// http://www.wowhead.com/quest=11587 Prison Break
// 45449 Arcane Prisoner Rescue
+enum Quest11587Data
+{
+ SPELL_SUMMON_ARCANE_PRISONER_MALE = 45446, // Summon Arcane Prisoner - Male
+ SPELL_SUMMON_ARCANE_PRISONER_FEMALE = 45448, // Summon Arcane Prisoner - Female
+ SPELL_ARCANE_PRISONER_KILL_CREDIT = 45456 // Arcane Prisoner Kill Credit
+};
+
class spell_q11587_arcane_prisoner_rescue : public SpellScriptLoader
{
public:
@@ -41,11 +179,11 @@ public:
{
bool Validate(SpellEntry const * /*spellEntry*/)
{
- if (!sSpellStore.LookupEntry(QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE))
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_ARCANE_PRISONER_MALE))
return false;
- if (!sSpellStore.LookupEntry(QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE))
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_ARCANE_PRISONER_FEMALE))
return false;
- if (!sSpellStore.LookupEntry(QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT))
+ if (!sSpellStore.LookupEntry(SPELL_ARCANE_PRISONER_KILL_CREDIT))
return false;
return true;
}
@@ -55,11 +193,11 @@ public:
Unit* caster = GetCaster();
if (Unit* unitTarget = GetHitUnit())
{
- uint32 spellId = QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_MALE;
+ uint32 spellId = SPELL_SUMMON_ARCANE_PRISONER_MALE;
if (rand() % 2)
- spellId = QUEST11587_SPELL_SUMMON_ARCANE_PRISONER_FEMALE;
+ spellId = SPELL_SUMMON_ARCANE_PRISONER_FEMALE;
caster->CastSpell(caster, spellId, true);
- unitTarget->CastSpell(caster, QUEST11587_SPELL_ARCANE_PRISONER_KILL_CREDIT, true);
+ unitTarget->CastSpell(caster, SPELL_ARCANE_PRISONER_KILL_CREDIT, true);
}
}
@@ -75,23 +213,23 @@ public:
}
};
-enum Quest11730Spells
+// http://www.wowhead.com/quest=11730 Master and Servant
+// 46023 The Ultrasonic Screwdriver
+enum Quest11730Data
{
- SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8 = 46063,
- SPELL_QUEST_SUMMON_SENTRYBOT_57K = 46068,
- SPELL_QUEST_SUMMON_DEFENDOTANK_66D = 46058,
- SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6 = 46066,
- SPELL_QUEST_SUMMON_55D_COLLECTATRON = 46034,
- SPELL_QUEST_ROBOT_KILL_CREDIT = 46027,
- NPC_SCAVENGEBOT_004A8 = 25752,
- NPC_SENTRYBOT_57K = 25753,
- NPC_DEFENDOTANK_66D = 25758,
- NPC_SCAVENGEBOT_005B6 = 25792,
- NPC_55D_COLLECTATRON = 25793
+ SPELL_SUMMON_SCAVENGEBOT_004A8 = 46063,
+ SPELL_SUMMON_SENTRYBOT_57K = 46068,
+ SPELL_SUMMON_DEFENDOTANK_66D = 46058,
+ SPELL_SUMMON_SCAVENGEBOT_005B6 = 46066,
+ SPELL_SUMMON_55D_COLLECTATRON = 46034,
+ SPELL_ROBOT_KILL_CREDIT = 46027,
+ NPC_SCAVENGEBOT_004A8 = 25752,
+ NPC_SENTRYBOT_57K = 25753,
+ NPC_DEFENDOTANK_66D = 25758,
+ NPC_SCAVENGEBOT_005B6 = 25792,
+ NPC_55D_COLLECTATRON = 25793
};
-// http://www.wowhead.com/quest=11730 Master and Servant
-// 46023 The Ultrasonic Screwdriver
class spell_q11730_ultrasonic_screwdriver : public SpellScriptLoader
{
public:
@@ -101,17 +239,17 @@ public:
{
bool Validate(SpellEntry const * /*spellEntry*/)
{
- if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8))
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_SCAVENGEBOT_004A8))
return false;
- if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SENTRYBOT_57K))
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_SENTRYBOT_57K))
return false;
- if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_DEFENDOTANK_66D))
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_DEFENDOTANK_66D))
return false;
- if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6))
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_SCAVENGEBOT_005B6))
return false;
- if (!sSpellStore.LookupEntry(SPELL_QUEST_SUMMON_55D_COLLECTATRON))
+ if (!sSpellStore.LookupEntry(SPELL_SUMMON_55D_COLLECTATRON))
return false;
- if (!sSpellStore.LookupEntry(SPELL_QUEST_ROBOT_KILL_CREDIT))
+ if (!sSpellStore.LookupEntry(SPELL_ROBOT_KILL_CREDIT))
return false;
return true;
}
@@ -133,16 +271,16 @@ public:
uint32 spellId = 0;
switch (pTarget->GetEntry())
{
- case NPC_SCAVENGEBOT_004A8: spellId = SPELL_QUEST_SUMMON_SCAVENGEBOT_004A8; break;
- case NPC_SENTRYBOT_57K: spellId = SPELL_QUEST_SUMMON_SENTRYBOT_57K; break;
- case NPC_DEFENDOTANK_66D: spellId = SPELL_QUEST_SUMMON_DEFENDOTANK_66D; break;
- case NPC_SCAVENGEBOT_005B6: spellId = SPELL_QUEST_SUMMON_SCAVENGEBOT_005B6; break;
- case NPC_55D_COLLECTATRON: spellId = SPELL_QUEST_SUMMON_55D_COLLECTATRON; break;
+ case NPC_SCAVENGEBOT_004A8: spellId = SPELL_SUMMON_SCAVENGEBOT_004A8; break;
+ case NPC_SENTRYBOT_57K: spellId = SPELL_SUMMON_SENTRYBOT_57K; break;
+ case NPC_DEFENDOTANK_66D: spellId = SPELL_SUMMON_DEFENDOTANK_66D; break;
+ case NPC_SCAVENGEBOT_005B6: spellId = SPELL_SUMMON_SCAVENGEBOT_005B6; break;
+ case NPC_55D_COLLECTATRON: spellId = SPELL_SUMMON_55D_COLLECTATRON; break;
default:
return;
}
pCaster->CastSpell(pCaster, spellId, true, castItem);
- pCaster->CastSpell(pCaster, SPELL_QUEST_ROBOT_KILL_CREDIT, true);
+ pCaster->CastSpell(pCaster, SPELL_ROBOT_KILL_CREDIT, true);
pTarget->ForcedDespawn();
}
@@ -192,14 +330,14 @@ public:
}
};
-enum eQuest12937Spells
+// http://www.wowhead.com/quest=12937 Relief for the Fallen
+// 55804 Healing Finished
+enum eQuest12937Data
{
SPELL_TRIGGER_AID_OF_THE_EARTHEN = 55809,
NPC_FALLEN_EARTHEN_DEFENDER = 30035,
};
-// http://www.wowhead.com/quest=12937 Relief for the Fallen
-// 55804 Healing Finished
class spell_q12937_relief_for_the_fallen : public SpellScriptLoader
{
public:
@@ -243,6 +381,10 @@ public:
void AddSC_quest_spell_scripts()
{
+ new spell_q55_sacred_cleansing();
+ new spell_q5206_test_fetid_skull();
+ new spell_q10255_administer_antidote();
+ new spell_q11515_fel_siphon_dummy();
new spell_q11587_arcane_prisoner_rescue();
new spell_q11730_ultrasonic_screwdriver();
new spell_q12683_take_sputum_sample();