Skip to content

Commit

Permalink
refactor(Scripts/EasternKingdoms): RegisterSpellScript macro (azeroth…
Browse files Browse the repository at this point in the history
…core#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
  • Loading branch information
sogladev authored Jul 1, 2024
1 parent f9dc7df commit 47ad691
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 76 deletions.
49 changes: 19 additions & 30 deletions src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);

bool Validate(SpellInfo const* /*spell*/) override
{
return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP });
}
return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP });
}

void HandleScriptEffect(SpellEffIndex /* effIndex */)
void HandleScriptEffect(SpellEffIndex /* effIndex */)
{
if (Player* player = GetHitPlayer())
{
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);
}
31 changes: 10 additions & 21 deletions src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);

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);
}
};
if (Unit* caster = GetCaster())
if (Creature* c = caster->FindNearestCreature(NPC_ROMMATH, 50.0f, true))
c->AI()->DoAction(-1);
}

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);
}
};

Expand Down Expand Up @@ -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:
Expand Down
39 changes: 14 additions & 25 deletions src/server/scripts/EasternKingdoms/zone_undercity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2223,36 +2223,25 @@ class boss_blight_worm : public CreatureScript
######*/

// - 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);

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);
}
return ValidateSpellInfo({ SPELL_INGEST });
}

void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_blight_worm_ingest_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
void HandleScript(SpellEffIndex /*effIndex*/)
{
if (Unit* target = GetHitUnit())
if (Unit* caster = GetCaster())
target->CastSpell(caster, SPELL_INGEST_TRIGGER, true);
}

SpellScript* GetSpellScript() const override
void Register() override
{
return new spell_blight_worm_ingest_SpellScript();
OnEffectHitTarget += SpellEffectFn(spell_blight_worm_ingest::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};

Expand Down Expand Up @@ -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);
}

0 comments on commit 47ad691

Please sign in to comment.