Delete zone_mulgore.cpp

This commit is contained in:
Aokromes
2015-02-13 13:54:45 +01:00
parent ee049b908f
commit c21a600478

View File

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