aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2021-06-07 00:26:18 +0300
committerGitHub <noreply@github.com>2021-06-07 00:26:18 +0300
commitdadc67c8832a46fe62fa8d4faaed39dde5cc138d (patch)
tree0166dfcf0c4ad13c27dee2747b54aa237d3b2531 /src
parent7b9476ea4b8dd43dcb041ced158bcdd46baeff85 (diff)
Scripts/Zone: Update Blasted Lands scripts to new register model (#26570)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp74
1 files changed, 30 insertions, 44 deletions
diff --git a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp
index dc9eb16d570..508eb441582 100644
--- a/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp
+++ b/src/server/scripts/EasternKingdoms/zone_blasted_lands.cpp
@@ -15,68 +15,54 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/*
-Blasted_Lands
-Quest support: 3628.
-*/
-
#include "ScriptMgr.h"
-#include "ScriptedCreature.h"
-#include "ScriptedGossip.h"
#include "SpellScript.h"
#include "Player.h"
#include "Group.h"
-enum DeathlyUsher
+/*######
+## Quest 3628: You Are Rakh'likh, Demon
+######*/
+
+enum TeleportToRazelikh
{
SPELL_TELEPORT_SINGLE = 12885,
- SPELL_TELEPORT_SINGLE_IN_GROUP = 13142,
- SPELL_TELEPORT_GROUP = 27686
+ SPELL_TELEPORT_SINGLE_IN_GROUP = 13142
};
// 27686 - Teleport to Razelikh (GROUP)
-class spell_razelikh_teleport_group : public SpellScriptLoader
+class spell_razelikh_teleport_group : public SpellScript
{
- public: spell_razelikh_teleport_group() : SpellScriptLoader("spell_razelikh_teleport_group") { }
-
- class spell_razelikh_teleport_group_SpellScript : public SpellScript
- {
- PrepareSpellScript(spell_razelikh_teleport_group_SpellScript);
-
- bool Validate(SpellInfo const* /*spell*/) override
- {
- return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP });
- }
+ PrepareSpellScript(spell_razelikh_teleport_group);
- void HandleScriptEffect(SpellEffIndex /* effIndex */)
- {
- if (Player* player = GetHitPlayer())
- {
- 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);
- }
- }
+ bool Validate(SpellInfo const* /*spell*/) override
+ {
+ return ValidateSpellInfo({ SPELL_TELEPORT_SINGLE, SPELL_TELEPORT_SINGLE_IN_GROUP });
+ }
- void Register() override
+ void HandleScriptEffect(SpellEffIndex /* effIndex */)
+ {
+ if (Player* player = GetHitPlayer())
+ {
+ if (Group* group = player->GetGroup())
{
- OnEffectHitTarget += SpellEffectFn(spell_razelikh_teleport_group_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ 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);
}
- };
-
- SpellScript* GetSpellScript() const override
- {
- return new spell_razelikh_teleport_group_SpellScript();
+ else
+ player->CastSpell(player, SPELL_TELEPORT_SINGLE, true);
}
+ }
+
+ void Register() override
+ {
+ 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);
}