mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 00:18:43 +01:00
Delete zone_mulgore.cpp
This commit is contained in:
@@ -1,178 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2015 TrinityCore <http://www.trinitycore.org/>
|
||||
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* ScriptData
|
||||
SDName: Mulgore
|
||||
SD%Complete: 100
|
||||
SDComment: Support for quest: 11129, 772
|
||||
SDCategory: Mulgore
|
||||
EndScriptData */
|
||||
|
||||
/* ContentData
|
||||
npc_kyle_frenzied
|
||||
EndContentData */
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "ScriptedGossip.h"
|
||||
#include "Player.h"
|
||||
#include "SpellInfo.h"
|
||||
|
||||
/*#####
|
||||
# npc_kyle_frenzied
|
||||
######*/
|
||||
|
||||
enum KyleFrenzied
|
||||
{
|
||||
EMOTE_SEE_LUNCH = 0,
|
||||
EMOTE_EAT_LUNCH = 1,
|
||||
EMOTE_DANCE = 2,
|
||||
|
||||
SPELL_LUNCH = 42222,
|
||||
NPC_KYLE_FRENZIED = 23616,
|
||||
NPC_KYLE_FRIENDLY = 23622,
|
||||
POINT_ID = 1
|
||||
};
|
||||
|
||||
class npc_kyle_frenzied : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_kyle_frenzied() : CreatureScript("npc_kyle_frenzied") { }
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return new npc_kyle_frenziedAI(creature);
|
||||
}
|
||||
|
||||
struct npc_kyle_frenziedAI : public ScriptedAI
|
||||
{
|
||||
npc_kyle_frenziedAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
EventActive = false;
|
||||
IsMovingToLunch = false;
|
||||
PlayerGUID.Clear();
|
||||
EventTimer = 5000;
|
||||
EventPhase = 0;
|
||||
}
|
||||
|
||||
bool EventActive;
|
||||
bool IsMovingToLunch;
|
||||
ObjectGuid PlayerGUID;
|
||||
uint32 EventTimer;
|
||||
uint8 EventPhase;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
|
||||
if (me->GetEntry() == NPC_KYLE_FRIENDLY)
|
||||
me->UpdateEntry(NPC_KYLE_FRENZIED);
|
||||
}
|
||||
|
||||
void SpellHit(Unit* Caster, SpellInfo const* Spell) override
|
||||
{
|
||||
if (!me->GetVictim() && !EventActive && Spell->Id == SPELL_LUNCH)
|
||||
{
|
||||
if (Caster->GetTypeId() == TYPEID_PLAYER)
|
||||
PlayerGUID = Caster->GetGUID();
|
||||
|
||||
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE)
|
||||
{
|
||||
me->GetMotionMaster()->MovementExpired();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->StopMoving();
|
||||
}
|
||||
|
||||
EventActive = true;
|
||||
Talk(EMOTE_SEE_LUNCH);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_CREATURE_SPECIAL);
|
||||
}
|
||||
}
|
||||
|
||||
void MovementInform(uint32 Type, uint32 PointId) override
|
||||
{
|
||||
if (Type != POINT_MOTION_TYPE || !EventActive)
|
||||
return;
|
||||
|
||||
if (PointId == POINT_ID)
|
||||
IsMovingToLunch = false;
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (EventActive)
|
||||
{
|
||||
if (IsMovingToLunch)
|
||||
return;
|
||||
|
||||
if (EventTimer <= diff)
|
||||
{
|
||||
EventTimer = 5000;
|
||||
++EventPhase;
|
||||
|
||||
switch (EventPhase)
|
||||
{
|
||||
case 1:
|
||||
if (Unit* unit = ObjectAccessor::GetUnit(*me, PlayerGUID))
|
||||
{
|
||||
if (GameObject* go = unit->GetGameObject(SPELL_LUNCH))
|
||||
{
|
||||
IsMovingToLunch = true;
|
||||
me->GetMotionMaster()->MovePoint(POINT_ID, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ());
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
Talk(EMOTE_EAT_LUNCH);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USE_STANDING);
|
||||
break;
|
||||
case 3:
|
||||
if (Player* unit = ObjectAccessor::GetPlayer(*me, PlayerGUID))
|
||||
unit->TalkedToCreature(me->GetEntry(), me->GetGUID());
|
||||
|
||||
me->UpdateEntry(NPC_KYLE_FRIENDLY);
|
||||
break;
|
||||
case 4:
|
||||
EventTimer = 30000;
|
||||
Talk(EMOTE_DANCE);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCESPECIAL);
|
||||
break;
|
||||
case 5:
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE);
|
||||
Reset();
|
||||
me->GetMotionMaster()->Clear();
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
EventTimer -= diff;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_mulgore()
|
||||
{
|
||||
new npc_kyle_frenzied();
|
||||
}
|
||||
Reference in New Issue
Block a user