mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-05 08:28:57 +01:00
DB/Quest: Convert & update support for 'Escape from Firewing Point!' to SAI
Closes #25358 Based on dr-j's script
This commit is contained in:
@@ -18,13 +18,12 @@
|
||||
/* ScriptData
|
||||
SDName: Terokkar_Forest
|
||||
SD%Complete: 85
|
||||
SDComment: Quest support: 9889, 10051, 10052.
|
||||
SDComment: Quest support: 9889
|
||||
SDCategory: Terokkar Forest
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
npc_unkor_the_ruthless
|
||||
npc_isla_starmane
|
||||
EndContentData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
@@ -162,102 +161,6 @@ public:
|
||||
};
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_isla_starmane
|
||||
######*/
|
||||
enum IslaStarmaneData
|
||||
{
|
||||
SAY_PROGRESS_1 = 0,
|
||||
SAY_PROGRESS_2 = 1,
|
||||
SAY_PROGRESS_3 = 2,
|
||||
SAY_PROGRESS_4 = 3,
|
||||
GO_DISTANCE = 10,
|
||||
ESCAPE_FROM_FIREWING_POINT_A = 10051,
|
||||
ESCAPE_FROM_FIREWING_POINT_H = 10052,
|
||||
SPELL_TRAVEL_FORM_CAT = 32447,
|
||||
GO_CAGE = 182794
|
||||
};
|
||||
|
||||
class npc_isla_starmane : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_isla_starmane() : CreatureScript("npc_isla_starmane") { }
|
||||
|
||||
struct npc_isla_starmaneAI : public EscortAI
|
||||
{
|
||||
npc_isla_starmaneAI(Creature* creature) : EscortAI(creature) { }
|
||||
|
||||
void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override
|
||||
{
|
||||
Player* player = GetPlayerForEscort();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
switch (waypointId)
|
||||
{
|
||||
case 0:
|
||||
if (GameObject* Cage = me->FindNearestGameObject(GO_CAGE, GO_DISTANCE))
|
||||
Cage->SetGoState(GO_STATE_ACTIVE);
|
||||
break;
|
||||
case 2:
|
||||
Talk(SAY_PROGRESS_1, player);
|
||||
break;
|
||||
case 5:
|
||||
Talk(SAY_PROGRESS_2, player);
|
||||
break;
|
||||
case 6:
|
||||
Talk(SAY_PROGRESS_3, player);
|
||||
break;
|
||||
case 29:
|
||||
Talk(SAY_PROGRESS_4, player);
|
||||
if (player->GetTeam() == ALLIANCE)
|
||||
player->GroupEventHappens(ESCAPE_FROM_FIREWING_POINT_A, me);
|
||||
else if (player->GetTeam() == HORDE)
|
||||
player->GroupEventHappens(ESCAPE_FROM_FIREWING_POINT_H, me);
|
||||
me->SetFacingToObject(player);
|
||||
break;
|
||||
case 30:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
|
||||
break;
|
||||
case 31:
|
||||
DoCast(me, SPELL_TRAVEL_FORM_CAT);
|
||||
me->SetWalk(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
me->RestoreFaction();
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (Player* player = GetPlayerForEscort())
|
||||
{
|
||||
if (player->GetTeam() == ALLIANCE)
|
||||
player->FailQuest(ESCAPE_FROM_FIREWING_POINT_A);
|
||||
else if (player->GetTeam() == HORDE)
|
||||
player->FailQuest(ESCAPE_FROM_FIREWING_POINT_H);
|
||||
}
|
||||
}
|
||||
|
||||
void OnQuestAccept(Player* player, Quest const* quest) override
|
||||
{
|
||||
if (quest->GetQuestId() == ESCAPE_FROM_FIREWING_POINT_H || quest->GetQuestId() == ESCAPE_FROM_FIREWING_POINT_A)
|
||||
{
|
||||
Start(true, false, player->GetGUID());
|
||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_PASSIVE);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_isla_starmaneAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
// 40655 - Skyguard Flare
|
||||
class spell_skyguard_flare : public SpellScript
|
||||
{
|
||||
@@ -277,6 +180,5 @@ class spell_skyguard_flare : public SpellScript
|
||||
void AddSC_terokkar_forest()
|
||||
{
|
||||
new npc_unkor_the_ruthless();
|
||||
new npc_isla_starmane();
|
||||
RegisterSpellScript(spell_skyguard_flare);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user