Scripting/Mana Tombs: Move Yor scripting from EAI to CPP.

This commit is contained in:
Malcrom committed 2013-08-07 11:42:13 -02:30
1 parent f5e4fd67c3
commit f4815fbf80
2 files changed
+57

No files matched your search

@@ -0,0 +1,3 @@
-- Move Yor from EAI to CPP
UPDATE `creature_template` SET `AIName`= '', `ScriptName`= 'npc_yor' WHERE `entry`=22930;
DELETE FROM creature_ai_scripts WHERE `creature_id`=22930;
@@ -365,9 +365,63 @@ public:
};
enum Yor
{
SPELL_DOUBLE_BREATH = 38361,
EVENT_DOUBLE_BREATH = 1
};
class npc_yor : public CreatureScript
{
public:
npc_yor() : CreatureScript("npc_yor") { }
struct npc_yorAI : public ScriptedAI
{
npc_yorAI(Creature* creature) : ScriptedAI(creature) {}
void Reset() OVERRIDE {}
void EnterCombat(Unit* /*who*/) OVERRIDE
{
events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
}
void UpdateAI(uint32 diff) OVERRIDE
{
if (!UpdateVictim())
return;
while (uint32 eventId = events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_DOUBLE_BREATH:
if (me->IsWithinDist(me->GetVictim(), ATTACK_DISTANCE))
DoCastVictim(SPELL_DOUBLE_BREATH);
events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
break;
default:
break;
}
}
DoMeleeAttackIfReady();
}
private:
EventMap events;
};
CreatureAI* GetAI(Creature* creature) const OVERRIDE
{
return new npc_yorAI(creature);
}
};
void AddSC_boss_nexusprince_shaffar()
{
new boss_nexusprince_shaffar();
new npc_ethereal_beacon();
new npc_ethereal_apprentice();
new npc_yor();
}