Scripts/Quest: Work Work! Move Lazy Peon script to SAI

This commit is contained in:
Rushor
2017-01-01 14:22:58 +01:00
parent d42faefe9a
commit bee2975e4b
2 changed files with 1282 additions and 90 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -21,95 +21,6 @@
#include "SpellScript.h"
#include "Player.h"
/*######
##Quest 5441: Lazy Peons
##npc_lazy_peon
######*/
enum LazyPeonYells
{
SAY_SPELL_HIT = 0
};
enum LazyPeon
{
QUEST_LAZY_PEONS = 5441,
GO_LUMBERPILE = 175784,
SPELL_BUFF_SLEEP = 17743,
SPELL_AWAKEN_PEON = 19938
};
class npc_lazy_peon : public CreatureScript
{
public:
npc_lazy_peon() : CreatureScript("npc_lazy_peon") { }
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_lazy_peonAI(creature);
}
struct npc_lazy_peonAI : public ScriptedAI
{
npc_lazy_peonAI(Creature* creature) : ScriptedAI(creature)
{
Initialize();
}
void Initialize()
{
RebuffTimer = 0;
work = false;
}
uint32 RebuffTimer;
bool work;
void Reset() override
{
Initialize();
}
void MovementInform(uint32 /*type*/, uint32 id) override
{
if (id == 1)
work = true;
}
void SpellHit(Unit* caster, const SpellInfo* spell) override
{
if (spell->Id != SPELL_AWAKEN_PEON)
return;
Player* player = caster->ToPlayer();
if (player && player->GetQuestStatus(QUEST_LAZY_PEONS) == QUEST_STATUS_INCOMPLETE)
{
player->KilledMonsterCredit(me->GetEntry(), me->GetGUID());
Talk(SAY_SPELL_HIT, caster);
me->RemoveAllAuras();
if (GameObject* Lumberpile = me->FindNearestGameObject(GO_LUMBERPILE, 20))
me->GetMotionMaster()->MovePoint(1, Lumberpile->GetPositionX()-1, Lumberpile->GetPositionY(), Lumberpile->GetPositionZ());
}
}
void UpdateAI(uint32 diff) override
{
if (work == true)
me->HandleEmoteCommand(EMOTE_ONESHOT_WORK_CHOPWOOD);
if (RebuffTimer <= diff)
{
DoCast(me, SPELL_BUFF_SLEEP);
RebuffTimer = 300000; //Rebuff agian in 5 minutes
}
else
RebuffTimer -= diff;
if (!UpdateVictim())
return;
DoMeleeAttackIfReady();
}
};
};
enum Texts
{
// Tiger Matriarch Credit
@@ -596,7 +507,6 @@ class spell_voodoo : public SpellScriptLoader
void AddSC_durotar()
{
new npc_lazy_peon();
new npc_tiger_matriarch_credit();
new npc_tiger_matriarch();
new npc_troll_volunteer();