refactor(Scripts/SCC): Update spell scripts to the new register model (#17726)
This commit is contained in:
+6
-12
@@ -78,13 +78,7 @@ const Position advisorsPosition[MAX_ADVISORS] =
|
|||||||
|
|
||||||
struct boss_fathomlord_karathress : public BossAI
|
struct boss_fathomlord_karathress : public BossAI
|
||||||
{
|
{
|
||||||
boss_fathomlord_karathress(Creature* creature) : BossAI(creature, DATA_FATHOM_LORD_KARATHRESS)
|
boss_fathomlord_karathress(Creature* creature) : BossAI(creature, DATA_FATHOM_LORD_KARATHRESS) { }
|
||||||
{
|
|
||||||
scheduler.SetValidator([this]
|
|
||||||
{
|
|
||||||
return !me->HasUnitState(UNIT_STATE_CASTING);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
@@ -192,7 +186,7 @@ struct boss_fathomguard_sharkkis : public ScriptedAI
|
|||||||
{
|
{
|
||||||
_instance = creature->GetInstanceScript();
|
_instance = creature->GetInstanceScript();
|
||||||
|
|
||||||
_scheduler.SetValidator([this]
|
scheduler.SetValidator([this]
|
||||||
{
|
{
|
||||||
return !me->HasUnitState(UNIT_STATE_CASTING);
|
return !me->HasUnitState(UNIT_STATE_CASTING);
|
||||||
});
|
});
|
||||||
@@ -202,7 +196,7 @@ struct boss_fathomguard_sharkkis : public ScriptedAI
|
|||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
_scheduler.CancelAll();
|
scheduler.CancelAll();
|
||||||
|
|
||||||
summons.DespawnAll();
|
summons.DespawnAll();
|
||||||
summons.clear();
|
summons.clear();
|
||||||
@@ -220,7 +214,8 @@ struct boss_fathomguard_sharkkis : public ScriptedAI
|
|||||||
{
|
{
|
||||||
karathress->Attack(who, false);
|
karathress->Attack(who, false);
|
||||||
}
|
}
|
||||||
_scheduler.Schedule(2500ms, [this](TaskContext context)
|
|
||||||
|
scheduler.Schedule(2500ms, [this](TaskContext context)
|
||||||
{
|
{
|
||||||
DoCastRandomTarget(SPELL_HURL_TRIDENT);
|
DoCastRandomTarget(SPELL_HURL_TRIDENT);
|
||||||
context.Repeat(5s);
|
context.Repeat(5s);
|
||||||
@@ -267,13 +262,12 @@ struct boss_fathomguard_sharkkis : public ScriptedAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_scheduler.Update(diff);
|
scheduler.Update(diff);
|
||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TaskScheduler _scheduler;
|
|
||||||
InstanceScript* _instance;
|
InstanceScript* _instance;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+13
-46
@@ -250,14 +250,9 @@ private:
|
|||||||
bool _recentlySpoken;
|
bool _recentlySpoken;
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_hydross_cleansing_field_aura : public SpellScriptLoader
|
class spell_hydross_cleansing_field_aura : public AuraScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_hydross_cleansing_field_aura);
|
||||||
spell_hydross_cleansing_field_aura() : SpellScriptLoader("spell_hydross_cleansing_field_aura") { }
|
|
||||||
|
|
||||||
class spell_hydross_cleansing_field_aura_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_hydross_cleansing_field_aura_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -275,25 +270,14 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectApply += AuraEffectApplyFn(spell_hydross_cleansing_field_aura_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectApply += AuraEffectApplyFn(spell_hydross_cleansing_field_aura::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
AfterEffectRemove += AuraEffectRemoveFn(spell_hydross_cleansing_field_aura_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectRemoveFn(spell_hydross_cleansing_field_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_hydross_cleansing_field_command : public AuraScript
|
||||||
{
|
{
|
||||||
return new spell_hydross_cleansing_field_aura_AuraScript();
|
PrepareAuraScript(spell_hydross_cleansing_field_command);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_hydross_cleansing_field_command : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_hydross_cleansing_field_command() : SpellScriptLoader("spell_hydross_cleansing_field_command") { }
|
|
||||||
|
|
||||||
class spell_hydross_cleansing_field_command_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_hydross_cleansing_field_command_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -305,24 +289,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectRemove += AuraEffectApplyFn(spell_hydross_cleansing_field_command_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectApplyFn(spell_hydross_cleansing_field_command::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_hydross_mark_of_hydross : public AuraScript
|
||||||
{
|
{
|
||||||
return new spell_hydross_cleansing_field_command_AuraScript();
|
PrepareAuraScript(spell_hydross_mark_of_hydross);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_hydross_mark_of_hydross : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_hydross_mark_of_hydross() : SpellScriptLoader("spell_hydross_mark_of_hydross") { }
|
|
||||||
|
|
||||||
class spell_hydross_mark_of_hydross_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_hydross_mark_of_hydross_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -331,20 +304,14 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectApply += AuraEffectApplyFn(spell_hydross_mark_of_hydross_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
|
OnEffectApply += AuraEffectApplyFn(spell_hydross_mark_of_hydross::HandleEffectApply, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_TAKEN, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
|
||||||
{
|
|
||||||
return new spell_hydross_mark_of_hydross_AuraScript();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_hydross_the_unstable()
|
void AddSC_boss_hydross_the_unstable()
|
||||||
{
|
{
|
||||||
RegisterSerpentShrineAI(boss_hydross_the_unstable);
|
RegisterSerpentShrineAI(boss_hydross_the_unstable);
|
||||||
new spell_hydross_cleansing_field_aura();
|
RegisterSpellScript(spell_hydross_cleansing_field_aura);
|
||||||
new spell_hydross_cleansing_field_command();
|
RegisterSpellScript(spell_hydross_cleansing_field_command);
|
||||||
new spell_hydross_mark_of_hydross();
|
RegisterSpellScript(spell_hydross_mark_of_hydross);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -286,116 +286,9 @@ private:
|
|||||||
std::chrono::seconds _batTimer;
|
std::chrono::seconds _batTimer;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
class spell_lady_vashj_magic_barrier : public AuraScript
|
||||||
|
|
||||||
//Toxic Sporebat
|
|
||||||
//Toxic Spores: Used in Phase 3 by the Spore Bats, it creates a contaminated green patch of ground, dealing about 2775-3225 nature damage every second to anyone who stands in it.
|
|
||||||
//deprecated -- adds do work
|
|
||||||
class npc_toxic_sporebat : public CreatureScript
|
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_lady_vashj_magic_barrier);
|
||||||
npc_toxic_sporebat() : CreatureScript("npc_toxic_sporebat") { }
|
|
||||||
|
|
||||||
CreatureAI* GetAI(Creature* creature) const
|
|
||||||
{
|
|
||||||
return GetInstanceAI<npc_toxic_sporebatAI>(creature);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct npc_toxic_sporebatAI : public ScriptedAI
|
|
||||||
{
|
|
||||||
npc_toxic_sporebatAI(Creature* creature) : ScriptedAI(creature)
|
|
||||||
{
|
|
||||||
instance = creature->GetInstanceScript();
|
|
||||||
EnterEvadeMode();
|
|
||||||
}
|
|
||||||
|
|
||||||
InstanceScript* instance;
|
|
||||||
|
|
||||||
uint32 MovementTimer;
|
|
||||||
uint32 ToxicSporeTimer;
|
|
||||||
uint32 BoltTimer;
|
|
||||||
uint32 CheckTimer;
|
|
||||||
|
|
||||||
void Reset()
|
|
||||||
{
|
|
||||||
me->SetDisableGravity(true);
|
|
||||||
me->SetFaction(FACTION_MONSTER);
|
|
||||||
MovementTimer = 0;
|
|
||||||
ToxicSporeTimer = 5000;
|
|
||||||
BoltTimer = 5500;
|
|
||||||
CheckTimer = 1000;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MoveInLineOfSight(Unit* who)
|
|
||||||
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void MovementInform(uint32 type, uint32 id)
|
|
||||||
{
|
|
||||||
if (type != POINT_MOTION_TYPE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (id == 1)
|
|
||||||
MovementTimer = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void UpdateAI(uint32 diff)
|
|
||||||
{
|
|
||||||
// Random movement
|
|
||||||
if (MovementTimer <= diff)
|
|
||||||
{
|
|
||||||
uint32 rndpos = rand()%8;
|
|
||||||
me->GetMotionMaster()->MovePoint(1, SporebatWPPos[rndpos][0], SporebatWPPos[rndpos][1], SporebatWPPos[rndpos][2]);
|
|
||||||
MovementTimer = 6000;
|
|
||||||
} else MovementTimer -= diff;
|
|
||||||
|
|
||||||
// toxic spores
|
|
||||||
if (BoltTimer <= diff)
|
|
||||||
{
|
|
||||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
|
|
||||||
{
|
|
||||||
if (Creature* trig = me->SummonCreature(TOXIC_SPORES_TRIGGER, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000))
|
|
||||||
{
|
|
||||||
trig->SetFaction(FACTION_MONSTER);
|
|
||||||
trig->CastSpell(trig, SPELL_TOXIC_SPORES, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
BoltTimer = 10000+rand()%5000;
|
|
||||||
}
|
|
||||||
else BoltTimer -= diff;
|
|
||||||
|
|
||||||
// CheckTimer
|
|
||||||
if (CheckTimer <= diff)
|
|
||||||
{
|
|
||||||
// check if vashj is death
|
|
||||||
Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LADYVASHJ));
|
|
||||||
if (!Vashj || !Vashj->IsAlive() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3)
|
|
||||||
{
|
|
||||||
// remove
|
|
||||||
me->setDeathState(DeathState::Dead);
|
|
||||||
me->RemoveCorpse();
|
|
||||||
me->SetFaction(FACTION_FRIENDLY);
|
|
||||||
}
|
|
||||||
|
|
||||||
CheckTimer = 1000;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
CheckTimer -= diff;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
class spell_lady_vashj_magic_barrier : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_lady_vashj_magic_barrier() : SpellScriptLoader("spell_lady_vashj_magic_barrier") { }
|
|
||||||
|
|
||||||
class spell_lady_vashj_magic_barrier_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_lady_vashj_magic_barrier_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -404,24 +297,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectRemove += AuraEffectRemoveFn(spell_lady_vashj_magic_barrier_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_SCHOOL_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectRemoveFn(spell_lady_vashj_magic_barrier::HandleEffectRemove, EFFECT_0, SPELL_AURA_SCHOOL_IMMUNITY, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_lady_vashj_remove_tainted_cores : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_lady_vashj_magic_barrier_AuraScript();
|
PrepareSpellScript(spell_lady_vashj_remove_tainted_cores);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_lady_vashj_remove_tainted_cores : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_lady_vashj_remove_tainted_cores() : SpellScriptLoader("spell_lady_vashj_remove_tainted_cores") { }
|
|
||||||
|
|
||||||
class spell_lady_vashj_remove_tainted_cores_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_lady_vashj_remove_tainted_cores_SpellScript);
|
|
||||||
|
|
||||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -434,24 +316,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_lady_vashj_remove_tainted_cores_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
OnEffectHitTarget += SpellEffectFn(spell_lady_vashj_remove_tainted_cores::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
class spell_lady_vashj_summon_sporebat : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_lady_vashj_remove_tainted_cores_SpellScript();
|
PrepareSpellScript(spell_lady_vashj_summon_sporebat);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_lady_vashj_summon_sporebat : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_lady_vashj_summon_sporebat() : SpellScriptLoader("spell_lady_vashj_summon_sporebat") { }
|
|
||||||
|
|
||||||
class spell_lady_vashj_summon_sporebat_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_lady_vashj_summon_sporebat_SpellScript);
|
|
||||||
|
|
||||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -461,24 +332,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_lady_vashj_summon_sporebat_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
OnEffectHitTarget += SpellEffectFn(spell_lady_vashj_summon_sporebat::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
class spell_lady_vashj_spore_drop_effect : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_lady_vashj_summon_sporebat_SpellScript();
|
PrepareSpellScript(spell_lady_vashj_spore_drop_effect);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_lady_vashj_spore_drop_effect : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_lady_vashj_spore_drop_effect() : SpellScriptLoader("spell_lady_vashj_spore_drop_effect") { }
|
|
||||||
|
|
||||||
class spell_lady_vashj_spore_drop_effect_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_lady_vashj_spore_drop_effect_SpellScript);
|
|
||||||
|
|
||||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -491,21 +351,15 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_lady_vashj_spore_drop_effect_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
OnEffectHitTarget += SpellEffectFn(spell_lady_vashj_spore_drop_effect::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
|
||||||
return new spell_lady_vashj_spore_drop_effect_SpellScript();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_lady_vashj()
|
void AddSC_boss_lady_vashj()
|
||||||
{
|
{
|
||||||
RegisterSerpentShrineAI(boss_lady_vashj);
|
RegisterSerpentShrineAI(boss_lady_vashj);
|
||||||
new spell_lady_vashj_magic_barrier();
|
RegisterSpellScript(spell_lady_vashj_magic_barrier);
|
||||||
new spell_lady_vashj_remove_tainted_cores();
|
RegisterSpellScript(spell_lady_vashj_remove_tainted_cores);
|
||||||
new spell_lady_vashj_summon_sporebat();
|
RegisterSpellScript(spell_lady_vashj_summon_sporebat);
|
||||||
new spell_lady_vashj_spore_drop_effect();
|
RegisterSpellScript(spell_lady_vashj_spore_drop_effect);
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-92
@@ -227,12 +227,10 @@ struct npc_inner_demon : public ScriptedAI
|
|||||||
{
|
{
|
||||||
npc_inner_demon(Creature* creature) : ScriptedAI(creature)
|
npc_inner_demon(Creature* creature) : ScriptedAI(creature)
|
||||||
{
|
{
|
||||||
_scheduler.SetValidator([this]
|
scheduler.SetValidator([this]
|
||||||
{
|
{
|
||||||
return !me->HasUnitState(UNIT_STATE_CASTING);
|
return !me->HasUnitState(UNIT_STATE_CASTING);
|
||||||
});
|
});
|
||||||
|
|
||||||
_instance = creature->GetInstanceScript();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IsSummonedBy(WorldObject* summoner) override
|
void IsSummonedBy(WorldObject* summoner) override
|
||||||
@@ -247,8 +245,8 @@ struct npc_inner_demon : public ScriptedAI
|
|||||||
me->Attack(affectedPlayer, true);
|
me->Attack(affectedPlayer, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
_scheduler.CancelAll();
|
scheduler.CancelAll();
|
||||||
_scheduler.Schedule(4s, [this](TaskContext context)
|
scheduler.Schedule(4s, [this](TaskContext context)
|
||||||
{
|
{
|
||||||
DoCastVictim(SPELL_SHADOW_BOLT);
|
DoCastVictim(SPELL_SHADOW_BOLT);
|
||||||
context.Repeat(6s);
|
context.Repeat(6s);
|
||||||
@@ -283,24 +281,17 @@ struct npc_inner_demon : public ScriptedAI
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_scheduler.Update(diff);
|
scheduler.Update(diff);
|
||||||
|
|
||||||
DoMeleeAttackIfReady();
|
DoMeleeAttackIfReady();
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
TaskScheduler _scheduler;
|
|
||||||
InstanceScript* _instance;
|
|
||||||
ObjectGuid _affectedPlayerGUID;
|
ObjectGuid _affectedPlayerGUID;
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_leotheras_whirlwind : public SpellScriptLoader
|
class spell_leotheras_whirlwind : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_leotheras_whirlwind);
|
||||||
spell_leotheras_whirlwind() : SpellScriptLoader("spell_leotheras_whirlwind") { }
|
|
||||||
|
|
||||||
class spell_leotheras_whirlwind_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_leotheras_whirlwind_SpellScript);
|
|
||||||
|
|
||||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -314,24 +305,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_leotheras_whirlwind_SpellScript::HandleScriptEffect, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
|
OnEffectHitTarget += SpellEffectFn(spell_leotheras_whirlwind::HandleScriptEffect, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
class spell_leotheras_chaos_blast : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_leotheras_whirlwind_SpellScript();
|
PrepareSpellScript(spell_leotheras_chaos_blast);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_leotheras_chaos_blast : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_leotheras_chaos_blast() : SpellScriptLoader("spell_leotheras_chaos_blast") { }
|
|
||||||
|
|
||||||
class spell_leotheras_chaos_blast_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_leotheras_chaos_blast_SpellScript);
|
|
||||||
|
|
||||||
void HandleDummy(SpellEffIndex effIndex)
|
void HandleDummy(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -342,24 +322,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_leotheras_chaos_blast_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
OnEffectHitTarget += SpellEffectFn(spell_leotheras_chaos_blast::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
class spell_leotheras_insidious_whisper : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_leotheras_chaos_blast_SpellScript();
|
PrepareSpellScript(spell_leotheras_insidious_whisper);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_leotheras_insidious_whisper : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_leotheras_insidious_whisper() : SpellScriptLoader("spell_leotheras_insidious_whisper") { }
|
|
||||||
|
|
||||||
class spell_leotheras_insidious_whisper_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_leotheras_insidious_whisper_SpellScript);
|
|
||||||
|
|
||||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||||
{
|
{
|
||||||
@@ -371,18 +340,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_leotheras_insidious_whisper_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
|
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_leotheras_insidious_whisper::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
class spell_leotheras_insidious_whisper_aura : public AuraScript
|
||||||
{
|
{
|
||||||
return new spell_leotheras_insidious_whisper_SpellScript();
|
PrepareAuraScript(spell_leotheras_insidious_whisper_aura);
|
||||||
}
|
|
||||||
|
|
||||||
class spell_leotheras_insidious_whisper_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_leotheras_insidious_whisper_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -405,25 +369,14 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectApply += AuraEffectApplyFn(spell_leotheras_insidious_whisper_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectApply += AuraEffectApplyFn(spell_leotheras_insidious_whisper_aura::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
AfterEffectRemove += AuraEffectRemoveFn(spell_leotheras_insidious_whisper_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectRemoveFn(spell_leotheras_insidious_whisper_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_leotheras_demon_link : public AuraScript
|
||||||
{
|
{
|
||||||
return new spell_leotheras_insidious_whisper_AuraScript();
|
PrepareAuraScript(spell_leotheras_demon_link);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_leotheras_demon_link : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_leotheras_demon_link() : SpellScriptLoader("spell_leotheras_demon_link") { }
|
|
||||||
|
|
||||||
class spell_leotheras_demon_link_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_leotheras_demon_link_AuraScript);
|
|
||||||
|
|
||||||
void OnPeriodic(AuraEffect const* aurEff)
|
void OnPeriodic(AuraEffect const* aurEff)
|
||||||
{
|
{
|
||||||
@@ -436,24 +389,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_leotheras_demon_link_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
OnEffectPeriodic += AuraEffectPeriodicFn(spell_leotheras_demon_link::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_leotheras_clear_consuming_madness : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_leotheras_demon_link_AuraScript();
|
PrepareSpellScript(spell_leotheras_clear_consuming_madness);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_leotheras_clear_consuming_madness : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_leotheras_clear_consuming_madness() : SpellScriptLoader("spell_leotheras_clear_consuming_madness") { }
|
|
||||||
|
|
||||||
class spell_leotheras_clear_consuming_madness_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_leotheras_clear_consuming_madness_SpellScript);
|
|
||||||
|
|
||||||
void HandleScriptEffect(SpellEffIndex effIndex)
|
void HandleScriptEffect(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -466,13 +408,7 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_leotheras_clear_consuming_madness_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
|
OnEffectHitTarget += SpellEffectFn(spell_leotheras_clear_consuming_madness::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
|
||||||
return new spell_leotheras_clear_consuming_madness_SpellScript();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -480,9 +416,9 @@ void AddSC_boss_leotheras_the_blind()
|
|||||||
{
|
{
|
||||||
RegisterSerpentShrineAI(boss_leotheras_the_blind);
|
RegisterSerpentShrineAI(boss_leotheras_the_blind);
|
||||||
RegisterSerpentShrineAI(npc_inner_demon);
|
RegisterSerpentShrineAI(npc_inner_demon);
|
||||||
new spell_leotheras_whirlwind();
|
RegisterSpellScript(spell_leotheras_whirlwind);
|
||||||
new spell_leotheras_chaos_blast();
|
RegisterSpellScript(spell_leotheras_chaos_blast);
|
||||||
new spell_leotheras_insidious_whisper();
|
RegisterSpellAndAuraScriptPair(spell_leotheras_insidious_whisper, spell_leotheras_insidious_whisper_aura);
|
||||||
new spell_leotheras_demon_link();
|
RegisterSpellScript(spell_leotheras_demon_link);
|
||||||
new spell_leotheras_clear_consuming_madness();
|
RegisterSpellScript(spell_leotheras_clear_consuming_madness);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,13 +63,7 @@ const Position positions[MAX_SUMMONS] =
|
|||||||
|
|
||||||
struct boss_the_lurker_below : public BossAI
|
struct boss_the_lurker_below : public BossAI
|
||||||
{
|
{
|
||||||
boss_the_lurker_below(Creature* creature) : BossAI(creature, DATA_THE_LURKER_BELOW)
|
boss_the_lurker_below(Creature* creature) : BossAI(creature, DATA_THE_LURKER_BELOW) { }
|
||||||
{
|
|
||||||
scheduler.SetValidator([this]
|
|
||||||
{
|
|
||||||
return !me->HasUnitState(UNIT_STATE_CASTING);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void Reset() override
|
void Reset() override
|
||||||
{
|
{
|
||||||
@@ -226,14 +220,9 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_lurker_below_spout : public SpellScriptLoader
|
class spell_lurker_below_spout : public AuraScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_lurker_below_spout);
|
||||||
spell_lurker_below_spout() : SpellScriptLoader("spell_lurker_below_spout") { }
|
|
||||||
|
|
||||||
class spell_lurker_below_spout_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_lurker_below_spout_AuraScript);
|
|
||||||
|
|
||||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -260,15 +249,9 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectApply += AuraEffectApplyFn(spell_lurker_below_spout_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
OnEffectApply += AuraEffectApplyFn(spell_lurker_below_spout::HandleEffectApply, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
||||||
OnEffectRemove += AuraEffectRemoveFn(spell_lurker_below_spout_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
OnEffectRemove += AuraEffectRemoveFn(spell_lurker_below_spout::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
|
||||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_lurker_below_spout_AuraScript::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
OnEffectPeriodic += AuraEffectPeriodicFn(spell_lurker_below_spout::OnPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
|
||||||
{
|
|
||||||
return new spell_lurker_below_spout_AuraScript();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -286,14 +269,9 @@ private:
|
|||||||
Unit* _caster;
|
Unit* _caster;
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_lurker_below_spout_cone : public SpellScriptLoader
|
class spell_lurker_below_spout_cone : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_lurker_below_spout_cone);
|
||||||
spell_lurker_below_spout_cone() : SpellScriptLoader("spell_lurker_below_spout_cone") { }
|
|
||||||
|
|
||||||
class spell_lurker_below_spout_cone_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_lurker_below_spout_cone_SpellScript);
|
|
||||||
|
|
||||||
void FilterTargets(std::list<WorldObject*>& targets)
|
void FilterTargets(std::list<WorldObject*>& targets)
|
||||||
{
|
{
|
||||||
@@ -302,13 +280,7 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_lurker_below_spout_cone_SpellScript::FilterTargets, EFFECT_ALL, TARGET_UNIT_CONE_ENEMY_24);
|
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_lurker_below_spout_cone::FilterTargets, EFFECT_ALL, TARGET_UNIT_CONE_ENEMY_24);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
|
||||||
return new spell_lurker_below_spout_cone_SpellScript();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -316,6 +288,6 @@ void AddSC_boss_the_lurker_below()
|
|||||||
{
|
{
|
||||||
RegisterSerpentShrineAI(boss_the_lurker_below);
|
RegisterSerpentShrineAI(boss_the_lurker_below);
|
||||||
new go_strange_pool();
|
new go_strange_pool();
|
||||||
new spell_lurker_below_spout();
|
RegisterSpellScript(spell_lurker_below_spout);
|
||||||
new spell_lurker_below_spout_cone();
|
RegisterSpellScript(spell_lurker_below_spout_cone);
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-31
@@ -138,14 +138,9 @@ private:
|
|||||||
bool _recentlySpoken;
|
bool _recentlySpoken;
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_morogrim_tidewalker_watery_grave : public SpellScriptLoader
|
class spell_morogrim_tidewalker_watery_grave : public SpellScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareSpellScript(spell_morogrim_tidewalker_watery_grave);
|
||||||
spell_morogrim_tidewalker_watery_grave() : SpellScriptLoader("spell_morogrim_tidewalker_watery_grave") { }
|
|
||||||
|
|
||||||
class spell_morogrim_tidewalker_watery_grave_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_morogrim_tidewalker_watery_grave_SpellScript);
|
|
||||||
|
|
||||||
bool Load() override
|
bool Load() override
|
||||||
{
|
{
|
||||||
@@ -163,27 +158,16 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_morogrim_tidewalker_watery_grave_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
OnEffectHitTarget += SpellEffectFn(spell_morogrim_tidewalker_watery_grave::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8 _targetNumber;
|
uint8 _targetNumber;
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
class spell_morogrim_tidewalker_water_globule_new_target : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_morogrim_tidewalker_watery_grave_SpellScript();
|
PrepareSpellScript(spell_morogrim_tidewalker_water_globule_new_target);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_morogrim_tidewalker_water_globule_new_target : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_morogrim_tidewalker_water_globule_new_target() : SpellScriptLoader("spell_morogrim_tidewalker_water_globule_new_target") { }
|
|
||||||
|
|
||||||
class spell_morogrim_tidewalker_water_globule_new_target_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_morogrim_tidewalker_water_globule_new_target_SpellScript);
|
|
||||||
|
|
||||||
void FilterTargets(std::list<WorldObject*>& unitList)
|
void FilterTargets(std::list<WorldObject*>& unitList)
|
||||||
{
|
{
|
||||||
@@ -207,20 +191,14 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_morogrim_tidewalker_water_globule_new_target_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
|
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_morogrim_tidewalker_water_globule_new_target::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY);
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_morogrim_tidewalker_water_globule_new_target_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
OnEffectHitTarget += SpellEffectFn(spell_morogrim_tidewalker_water_globule_new_target::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
|
||||||
{
|
|
||||||
return new spell_morogrim_tidewalker_water_globule_new_target_SpellScript();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_boss_morogrim_tidewalker()
|
void AddSC_boss_morogrim_tidewalker()
|
||||||
{
|
{
|
||||||
RegisterSerpentShrineAI(boss_morogrim_tidewalker);
|
RegisterSerpentShrineAI(boss_morogrim_tidewalker);
|
||||||
new spell_morogrim_tidewalker_watery_grave();
|
RegisterSpellScript(spell_morogrim_tidewalker_watery_grave);
|
||||||
new spell_morogrim_tidewalker_water_globule_new_target();
|
RegisterSpellScript(spell_morogrim_tidewalker_water_globule_new_target);
|
||||||
}
|
}
|
||||||
|
|||||||
+22
-71
@@ -208,14 +208,9 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_serpentshrine_parasite : public SpellScriptLoader
|
class spell_serpentshrine_cavern_serpentshrine_parasite : public AuraScript
|
||||||
{
|
{
|
||||||
public:
|
PrepareAuraScript(spell_serpentshrine_cavern_serpentshrine_parasite);
|
||||||
spell_serpentshrine_cavern_serpentshrine_parasite() : SpellScriptLoader("spell_serpentshrine_cavern_serpentshrine_parasite") { }
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_serpentshrine_parasite_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_serpentshrine_cavern_serpentshrine_parasite_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -225,24 +220,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_serpentshrine_parasite_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_serpentshrine_parasite::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_serpentshrine_cavern_serpentshrine_parasite_trigger_aura : public AuraScript
|
||||||
{
|
{
|
||||||
return new spell_serpentshrine_cavern_serpentshrine_parasite_AuraScript();
|
PrepareAuraScript(spell_serpentshrine_cavern_serpentshrine_parasite_trigger_aura);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_serpentshrine_parasite_trigger : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_serpentshrine_cavern_serpentshrine_parasite_trigger() : SpellScriptLoader("spell_serpentshrine_cavern_serpentshrine_parasite_trigger") { }
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_serpentshrine_parasite_trigger_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_serpentshrine_cavern_serpentshrine_parasite_trigger_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -252,18 +236,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_serpentshrine_parasite_trigger_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_serpentshrine_parasite_trigger_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_serpentshrine_cavern_serpentshrine_parasite_trigger : public SpellScript
|
||||||
{
|
{
|
||||||
return new spell_serpentshrine_cavern_serpentshrine_parasite_trigger_AuraScript();
|
PrepareSpellScript(spell_serpentshrine_cavern_serpentshrine_parasite_trigger);
|
||||||
}
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_serpentshrine_parasite_trigger_SpellScript : public SpellScript
|
|
||||||
{
|
|
||||||
PrepareSpellScript(spell_serpentshrine_cavern_serpentshrine_parasite_trigger_SpellScript);
|
|
||||||
|
|
||||||
void HandleApplyAura(SpellEffIndex effIndex)
|
void HandleApplyAura(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
@@ -274,24 +253,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
OnEffectHitTarget += SpellEffectFn(spell_serpentshrine_cavern_serpentshrine_parasite_trigger_SpellScript::HandleApplyAura, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
|
OnEffectHitTarget += SpellEffectFn(spell_serpentshrine_cavern_serpentshrine_parasite_trigger::HandleApplyAura, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
SpellScript* GetSpellScript() const override
|
class spell_serpentshrine_cavern_infection : public AuraScript
|
||||||
{
|
{
|
||||||
return new spell_serpentshrine_cavern_serpentshrine_parasite_trigger_SpellScript();
|
PrepareAuraScript(spell_serpentshrine_cavern_infection);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_infection : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_serpentshrine_cavern_infection() : SpellScriptLoader("spell_serpentshrine_cavern_infection") { }
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_infection_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_serpentshrine_cavern_infection_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
|
void HandleEffectRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -307,24 +275,13 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_infection_AuraScript::HandleEffectRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_infection::HandleEffectRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
class spell_serpentshrine_cavern_coilfang_water : public AuraScript
|
||||||
{
|
{
|
||||||
return new spell_serpentshrine_cavern_infection_AuraScript();
|
PrepareAuraScript(spell_serpentshrine_cavern_coilfang_water);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_coilfang_water : public SpellScriptLoader
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
spell_serpentshrine_cavern_coilfang_water() : SpellScriptLoader("spell_serpentshrine_cavern_coilfang_water") { }
|
|
||||||
|
|
||||||
class spell_serpentshrine_cavern_coilfang_water_AuraScript : public AuraScript
|
|
||||||
{
|
|
||||||
PrepareAuraScript(spell_serpentshrine_cavern_coilfang_water_AuraScript)
|
|
||||||
|
|
||||||
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
@@ -368,25 +325,19 @@ public:
|
|||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
{
|
{
|
||||||
AfterEffectApply += AuraEffectApplyFn(spell_serpentshrine_cavern_coilfang_water_AuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectApply += AuraEffectApplyFn(spell_serpentshrine_cavern_coilfang_water::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_coilfang_water_AuraScript::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
AfterEffectRemove += AuraEffectRemoveFn(spell_serpentshrine_cavern_coilfang_water::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||||
|
|
||||||
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_serpentshrine_cavern_coilfang_water_AuraScript::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY);
|
DoEffectCalcPeriodic += AuraEffectCalcPeriodicFn(spell_serpentshrine_cavern_coilfang_water::CalcPeriodic, EFFECT_0, SPELL_AURA_DUMMY);
|
||||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_serpentshrine_cavern_coilfang_water_AuraScript::HandlePeriodic, EFFECT_0, SPELL_AURA_DUMMY);
|
OnEffectPeriodic += AuraEffectPeriodicFn(spell_serpentshrine_cavern_coilfang_water::HandlePeriodic, EFFECT_0, SPELL_AURA_DUMMY);
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
AuraScript* GetAuraScript() const override
|
|
||||||
{
|
|
||||||
return new spell_serpentshrine_cavern_coilfang_water_AuraScript();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_instance_serpentshrine_cavern()
|
void AddSC_instance_serpentshrine_cavern()
|
||||||
{
|
{
|
||||||
new instance_serpent_shrine();
|
new instance_serpent_shrine();
|
||||||
new spell_serpentshrine_cavern_serpentshrine_parasite();
|
RegisterSpellScript(spell_serpentshrine_cavern_serpentshrine_parasite);
|
||||||
new spell_serpentshrine_cavern_serpentshrine_parasite_trigger();
|
RegisterSpellAndAuraScriptPair(spell_serpentshrine_cavern_serpentshrine_parasite_trigger, spell_serpentshrine_cavern_serpentshrine_parasite_trigger_aura);
|
||||||
new spell_serpentshrine_cavern_infection();
|
RegisterSpellScript(spell_serpentshrine_cavern_infection);
|
||||||
new spell_serpentshrine_cavern_coilfang_water();
|
RegisterSpellScript(spell_serpentshrine_cavern_coilfang_water);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user