Core/Quests: Escape from Silverbrook 12308
This commit is contained in:
1 parent
c84f545708
commit
e23b6436c5
2 files changed
+254
No files matched your search
@@ -1963,6 +1963,77 @@ class spell_q12690_burst_at_the_seams : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
enum EscapeFromSilverbrook
|
||||
{
|
||||
SPELL_SUMMON_WORGEN = 48681
|
||||
};
|
||||
|
||||
// 48682 - Escape from Silverbrook - Periodic Dummy
|
||||
class spell_q12308_escape_from_silverbrook : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_q12308_escape_from_silverbrook() : SpellScriptLoader("spell_q12308_escape_from_silverbrook") { }
|
||||
|
||||
class spell_q12308_escape_from_silverbrook_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_q12308_escape_from_silverbrook_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_WORGEN))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
GetCaster()->CastSpell(GetCaster(), SPELL_SUMMON_WORGEN, true);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectHit += SpellEffectFn(spell_q12308_escape_from_silverbrook_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_q12308_escape_from_silverbrook_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 48681 - Summon Silverbrook Worgen
|
||||
class spell_q12308_escape_from_silverbrook_summon_worgen : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_q12308_escape_from_silverbrook_summon_worgen() : SpellScriptLoader("spell_q12308_escape_from_silverbrook_summon_worgen") { }
|
||||
|
||||
class spell_q12308_escape_from_silverbrook_summon_worgen_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_q12308_escape_from_silverbrook_summon_worgen_SpellScript);
|
||||
|
||||
void ModDest(SpellEffIndex effIndex)
|
||||
{
|
||||
float dist = GetSpellInfo()->Effects[effIndex].CalcRadius(GetCaster());
|
||||
float angle = (urand(0, 1) ? -1 : 1) * (frand(0.75f, 1.0f) * M_PI);
|
||||
|
||||
Position pos;
|
||||
GetCaster()->GetNearPosition(pos, dist, angle);
|
||||
GetHitDest()->Relocate(&pos);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectHit += SpellEffectFn(spell_q12308_escape_from_silverbrook_summon_worgen_SpellScript::ModDest, EFFECT_0, SPELL_EFFECT_SUMMON);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_q12308_escape_from_silverbrook_summon_worgen_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_quest_spell_scripts()
|
||||
{
|
||||
new spell_q55_sacred_cleansing();
|
||||
@@ -2010,4 +2081,6 @@ void AddSC_quest_spell_scripts()
|
||||
new spell_q13011_bear_flank_master();
|
||||
new spell_q13086_cannons_target();
|
||||
new spell_q12690_burst_at_the_seams();
|
||||
new spell_q12308_escape_from_silverbrook_summon_worgen();
|
||||
new spell_q12308_escape_from_silverbrook();
|
||||
}
|
||||
Reference in new issue
Block a user