mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-16 18:40:28 +00:00
fix(Core/Scripts): Convert Galen's Escape to SAI (#5683)
This commit is contained in:
@@ -111,7 +111,6 @@ set(scripts_STAT_SRCS
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/Uldaman/uldaman.h
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/Uldaman/instance_uldaman.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/zone_swamp_of_sorrows.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
|
||||
${AC_SCRIPTS_DIR}/EasternKingdoms/SunwellPlateau/sunwell_plateau.h
|
||||
|
||||
@@ -1,139 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version.
|
||||
* Copyright (C) 2008-2016 TrinityCore <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
||||
*/
|
||||
|
||||
#include "Player.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptedEscortAI.h"
|
||||
#include "ScriptMgr.h"
|
||||
|
||||
/*######
|
||||
## npc_galen_goodward
|
||||
######*/
|
||||
|
||||
enum Galen
|
||||
{
|
||||
QUEST_GALENS_ESCAPE = 1393,
|
||||
GO_GALENS_CAGE = 37118,
|
||||
SAY_PERIODIC = 0,
|
||||
SAY_QUEST_ACCEPTED = 1,
|
||||
SAY_ATTACKED = 2,
|
||||
SAY_QUEST_COMPLETE = 3,
|
||||
EMOTE_WHISPER = 4,
|
||||
EMOTE_DISAPPEAR = 5
|
||||
};
|
||||
|
||||
class npc_galen_goodward : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_galen_goodward() : CreatureScript("npc_galen_goodward") { }
|
||||
|
||||
struct npc_galen_goodwardAI : public npc_escortAI
|
||||
{
|
||||
npc_galen_goodwardAI(Creature* creature) : npc_escortAI(creature)
|
||||
{
|
||||
galensCageGUID.Clear();
|
||||
Reset();
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
periodicSay = 6000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
if (HasEscortState(STATE_ESCORT_ESCORTING))
|
||||
Talk(SAY_ATTACKED, who);
|
||||
}
|
||||
|
||||
void sQuestAccept(Player* player, Quest const* quest) override
|
||||
{
|
||||
if (quest->GetQuestId() == QUEST_GALENS_ESCAPE)
|
||||
{
|
||||
Talk(SAY_QUEST_ACCEPTED, player);
|
||||
npc_escortAI::Start(false, false, player->GetGUID(), quest);
|
||||
}
|
||||
}
|
||||
|
||||
void WaypointStart(uint32 uiPointId) override
|
||||
{
|
||||
switch (uiPointId)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
GameObject* cage = nullptr;
|
||||
if (galensCageGUID)
|
||||
cage = me->GetMap()->GetGameObject(galensCageGUID);
|
||||
else
|
||||
cage = GetClosestGameObjectWithEntry(me, GO_GALENS_CAGE, INTERACTION_DISTANCE);
|
||||
if (cage)
|
||||
{
|
||||
cage->UseDoorOrButton();
|
||||
galensCageGUID = cage->GetGUID();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 21:
|
||||
Talk(EMOTE_DISAPPEAR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void WaypointReached(uint32 waypointId) override
|
||||
{
|
||||
switch (waypointId)
|
||||
{
|
||||
case 0:
|
||||
if (GameObject* cage = me->GetMap()->GetGameObject(galensCageGUID))
|
||||
cage->ResetDoorOrButton();
|
||||
break;
|
||||
case 20:
|
||||
if (Player* player = GetPlayerForEscort())
|
||||
{
|
||||
me->SetFacingToObject(player);
|
||||
Talk(SAY_QUEST_COMPLETE, player);
|
||||
Talk(EMOTE_WHISPER, player);
|
||||
player->GroupEventHappens(QUEST_GALENS_ESCAPE, me);
|
||||
}
|
||||
SetRun(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
|
||||
if (HasEscortState(STATE_ESCORT_NONE))
|
||||
return;
|
||||
|
||||
if (periodicSay < diff)
|
||||
{
|
||||
if (!HasEscortState(STATE_ESCORT_ESCORTING))
|
||||
Talk(SAY_PERIODIC);
|
||||
periodicSay = 15000;
|
||||
}
|
||||
else
|
||||
periodicSay -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
ObjectGuid galensCageGUID;
|
||||
uint32 periodicSay;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_galen_goodwardAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_swamp_of_sorrows()
|
||||
{
|
||||
new npc_galen_goodward();
|
||||
}
|
||||
@@ -217,7 +217,7 @@ void AddSC_redridge_mountains();
|
||||
void AddSC_silverpine_forest();
|
||||
void AddSC_stormwind_city();
|
||||
void AddSC_stranglethorn_vale();
|
||||
void AddSC_swamp_of_sorrows();
|
||||
//void AddSC_swamp_of_sorrows();
|
||||
void AddSC_tirisfal_glades();
|
||||
void AddSC_undercity();
|
||||
void AddSC_western_plaguelands();
|
||||
@@ -807,7 +807,7 @@ void AddEasternKingdomsScripts()
|
||||
AddSC_silverpine_forest();
|
||||
AddSC_stormwind_city();
|
||||
AddSC_stranglethorn_vale();
|
||||
AddSC_swamp_of_sorrows();
|
||||
//AddSC_swamp_of_sorrows();
|
||||
AddSC_tirisfal_glades();
|
||||
AddSC_undercity();
|
||||
AddSC_western_plaguelands();
|
||||
|
||||
Reference in New Issue
Block a user