aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp107
2 files changed, 106 insertions, 3 deletions
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index da9aa9eccb3..6ef84033312 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -506,7 +506,7 @@ public:
static bool HandleDebugSendQuestInvalidMsgCommand(ChatHandler* handler, char const* args)
{
- uint32 msg = atol((char*)args);
+ QuestFailedReason msg = static_cast<QuestFailedReason>(atol((char*)args));
handler->GetSession()->GetPlayer()->SendCanTakeQuestResponse(msg);
return true;
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
index 9bc9afa4fa8..9d7a3c17b1b 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp
@@ -61,7 +61,7 @@ enum Spells
SPELL_RADIANCE = 66935,
SPELL_VENGEANCE = 66865,
- //Paletress
+ // Paletress
SPELL_SMITE = 66536,
SPELL_SMITE_H = 67674,
SPELL_HOLY_FIRE = 66538,
@@ -73,7 +73,34 @@ enum Spells
SPELL_CONFESS = 66680,
SPELL_SUMMON_MEMORY = 66545,
- //Memory
+ // Memory of X (Summon)
+ SPELL_MEMORY_ALGALON = 66715,
+ SPELL_MEMORY_ARCHIMONDE = 66704,
+ SPELL_MEMORY_CHROMAGGUS = 66697,
+ SPELL_MEMORY_CYANIGOSA = 66709,
+ SPELL_MEMORY_DELRISSA = 66706,
+ SPELL_MEMORY_ECK = 66710,
+ SPELL_MEMORY_ENTROPIUS = 66707,
+ SPELL_MEMORY_GRUUL = 66702,
+ SPELL_MEMORY_HAKKAR = 66698,
+ SPELL_MEMORY_HEIGAN = 66712,
+ SPELL_MEMORY_HEROD = 66694,
+ SPELL_MEMORY_HOGGER = 66543,
+ SPELL_MEMORY_IGNIS = 66713,
+ SPELL_MEMORY_ILLIDAN = 66705,
+ SPELL_MEMORY_INGVAR = 66708,
+ SPELL_MEMORY_KALITHRESH = 66700,
+ SPELL_MEMORY_LUCIFRON = 66695,
+ SPELL_MEMORY_MALCHEZAAR = 66701,
+ SPELL_MEMORY_MUTANUS = 66692,
+ SPELL_MEMORY_ONYXIA = 66711,
+ SPELL_MEMORY_THUNDERAAN = 66696,
+ SPELL_MEMORY_VANCLEEF = 66691,
+ SPELL_MEMORY_VASHJ = 66703,
+ SPELL_MEMORY_VEKNILASH = 66699,
+ SPELL_MEMORY_VEZAX = 66714,
+
+ // Memory
SPELL_OLD_WOUNDS = 66620,
SPELL_OLD_WOUNDS_H = 67679,
SPELL_SHADOWS_PAST = 66619,
@@ -566,6 +593,81 @@ public:
}
};
+uint32 const memorySpellId[25] =
+{
+ SPELL_MEMORY_ALGALON,
+ SPELL_MEMORY_ARCHIMONDE,
+ SPELL_MEMORY_CHROMAGGUS,
+ SPELL_MEMORY_CYANIGOSA,
+ SPELL_MEMORY_DELRISSA,
+ SPELL_MEMORY_ECK,
+ SPELL_MEMORY_ENTROPIUS,
+ SPELL_MEMORY_GRUUL,
+ SPELL_MEMORY_HAKKAR,
+ SPELL_MEMORY_HEIGAN,
+ SPELL_MEMORY_HEROD,
+ SPELL_MEMORY_HOGGER,
+ SPELL_MEMORY_IGNIS,
+ SPELL_MEMORY_ILLIDAN,
+ SPELL_MEMORY_INGVAR,
+ SPELL_MEMORY_KALITHRESH,
+ SPELL_MEMORY_LUCIFRON,
+ SPELL_MEMORY_MALCHEZAAR,
+ SPELL_MEMORY_MUTANUS,
+ SPELL_MEMORY_ONYXIA,
+ SPELL_MEMORY_THUNDERAAN,
+ SPELL_MEMORY_VANCLEEF,
+ SPELL_MEMORY_VASHJ,
+ SPELL_MEMORY_VEKNILASH,
+ SPELL_MEMORY_VEZAX
+};
+
+// 66545 - Summon Memory
+class spell_paletress_summon_memory : public SpellScriptLoader
+{
+ public:
+ spell_paletress_summon_memory() : SpellScriptLoader("spell_paletress_summon_memory") { }
+
+ class spell_paletress_summon_memory_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_paletress_summon_memory_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
+ {
+ for (uint8 i = 0; i < 25; ++i)
+ if (!sSpellMgr->GetSpellInfo(memorySpellId[i]))
+ return false;
+ return true;
+ }
+
+ void FilterTargets(std::list<WorldObject*>& targets)
+ {
+ if (targets.empty())
+ return;
+
+ WorldObject* target = Trinity::Containers::SelectRandomContainerElement(targets);
+ targets.clear();
+ targets.push_back(target);
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ GetHitUnit()->CastSpell(GetHitUnit(), memorySpellId[urand(0, 24)], true, NULL, NULL, GetCaster()->GetGUID());
+ }
+
+ void Register() OVERRIDE
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_paletress_summon_memory_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
+ OnEffectHitTarget += SpellEffectFn(spell_paletress_summon_memory_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const OVERRIDE
+ {
+ return new spell_paletress_summon_memory_SpellScript();
+ }
+};
+
void AddSC_boss_argent_challenge()
{
new boss_eadric();
@@ -573,4 +675,5 @@ void AddSC_boss_argent_challenge()
new boss_paletress();
new npc_memory();
new npc_argent_soldier();
+ new spell_paletress_summon_memory();
}