mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
refactor(Scripts/EasternKingdoms): RegisterSpellScript macro (#19241)
* zone_undercity spell:spell_blight_worm_ingest * zone_blasted_lands spell:spell_razelikh_teleport_group * zone_isle_of_queldanas spell:spell_bh_cleanse_quel_delar
This commit is contained in:
@@ -37,49 +37,38 @@ enum DeathlyUsher
|
||||
SPELL_TELEPORT_GROUP = 27686
|
||||
};
|
||||
|
||||
class spell_razelikh_teleport_group : public SpellScriptLoader
|
||||
class spell_razelikh_teleport_group : public SpellScript
|
||||
{
|
||||
public:
|
||||
spell_razelikh_teleport_group() : SpellScriptLoader("spell_razelikh_teleport_group") { }
|
||||
PrepareSpellScript(spell_razelikh_teleport_group);
|
||||
|
||||
class spell_razelikh_teleport_group_SpellScript : public SpellScript
|
||||
bool Validate(SpellInfo const* /*spell*/) override
|
||||
{
|
||||
PrepareSpellScript(spell_razelikh_teleport_group_SpellScript);
|
||||
return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP });
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spell*/) override
|
||||
void HandleScriptEffect(SpellEffIndex /* effIndex */)
|
||||
{
|
||||
if (Player* player = GetHitPlayer())
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP });
|
||||
}
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /* effIndex */)
|
||||
{
|
||||
if (Player* player = GetHitPlayer())
|
||||
if (Group* group = player->GetGroup())
|
||||
{
|
||||
if (Group* group = player->GetGroup())
|
||||
{
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
if (Player* member = itr->GetSource())
|
||||
if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead())
|
||||
member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true);
|
||||
}
|
||||
else
|
||||
player->CastSpell(player, SPELL_TELEPORT_SINGLE, true);
|
||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
||||
if (Player* member = itr->GetSource())
|
||||
if (member->IsWithinDistInMap(player, 20.0f) && !member->isDead())
|
||||
member->CastSpell(member, SPELL_TELEPORT_SINGLE_IN_GROUP, true);
|
||||
}
|
||||
else
|
||||
player->CastSpell(player, SPELL_TELEPORT_SINGLE, true);
|
||||
}
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_razelikh_teleport_group_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
void Register() override
|
||||
{
|
||||
return new spell_razelikh_teleport_group_SpellScript();
|
||||
OnEffectHitTarget += SpellEffectFn(spell_razelikh_teleport_group::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_blasted_lands()
|
||||
{
|
||||
new spell_razelikh_teleport_group();
|
||||
RegisterSpellScript(spell_razelikh_teleport_group);
|
||||
}
|
||||
|
||||
@@ -457,31 +457,20 @@ enum PurificationIds
|
||||
NPC_AURIC = 37765,
|
||||
};
|
||||
|
||||
class spell_bh_cleanse_quel_delar : public SpellScriptLoader
|
||||
class spell_bh_cleanse_quel_delar : public SpellScript
|
||||
{
|
||||
public:
|
||||
spell_bh_cleanse_quel_delar() : SpellScriptLoader("spell_bh_cleanse_quel_delar") { }
|
||||
PrepareSpellScript(spell_bh_cleanse_quel_delar);
|
||||
|
||||
class spell_bh_cleanse_quel_delar_SpellScript : public SpellScript
|
||||
void OnEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
PrepareSpellScript(spell_bh_cleanse_quel_delar_SpellScript);
|
||||
if (Unit* caster = GetCaster())
|
||||
if (Creature* c = caster->FindNearestCreature(NPC_ROMMATH, 50.0f, true))
|
||||
c->AI()->DoAction(-1);
|
||||
}
|
||||
|
||||
void OnEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* caster = GetCaster())
|
||||
if (Creature* c = caster->FindNearestCreature(NPC_ROMMATH, 50.0f, true))
|
||||
c->AI()->DoAction(-1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectLaunch += SpellEffectFn(spell_bh_cleanse_quel_delar_SpellScript::OnEffect, EFFECT_0, SPELL_EFFECT_SEND_EVENT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
void Register() override
|
||||
{
|
||||
return new spell_bh_cleanse_quel_delar_SpellScript();
|
||||
OnEffectLaunch += SpellEffectFn(spell_bh_cleanse_quel_delar::OnEffect, EFFECT_0, SPELL_EFFECT_SEND_EVENT);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -692,7 +681,7 @@ void AddSC_isle_of_queldanas()
|
||||
{
|
||||
// OUR:
|
||||
new npc_bh_thalorien_dawnseeker();
|
||||
new spell_bh_cleanse_quel_delar();
|
||||
RegisterSpellScript(spell_bh_cleanse_quel_delar);
|
||||
new npc_grand_magister_rommath();
|
||||
|
||||
// THEIR:
|
||||
|
||||
@@ -2223,36 +2223,25 @@ public:
|
||||
######*/
|
||||
|
||||
// - 61123 - Ingest
|
||||
class spell_blight_worm_ingest : public SpellScriptLoader
|
||||
class spell_blight_worm_ingest : public SpellScript
|
||||
{
|
||||
public:
|
||||
spell_blight_worm_ingest() : SpellScriptLoader("spell_blight_worm_ingest") { }
|
||||
PrepareSpellScript(spell_blight_worm_ingest);
|
||||
|
||||
class spell_blight_worm_ingest_SpellScript : public SpellScript
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
PrepareSpellScript(spell_blight_worm_ingest_SpellScript);
|
||||
return ValidateSpellInfo({ SPELL_INGEST });
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_INGEST });
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* target = GetHitUnit())
|
||||
if (Unit* caster = GetCaster())
|
||||
target->CastSpell(caster, SPELL_INGEST_TRIGGER, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_blight_worm_ingest_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
return new spell_blight_worm_ingest_SpellScript();
|
||||
if (Unit* target = GetHitUnit())
|
||||
if (Unit* caster = GetCaster())
|
||||
target->CastSpell(caster, SPELL_INGEST_TRIGGER, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_blight_worm_ingest::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4082,5 +4071,5 @@ void AddSC_undercity()
|
||||
new npc_jaina_proudmoore_bfu();
|
||||
new npc_lady_sylvanas_windrunner_bfu();
|
||||
new boss_blight_worm();
|
||||
new spell_blight_worm_ingest();
|
||||
RegisterSpellScript(spell_blight_worm_ingest);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user