Scripting/Mana Tombs: Move Yor scripting from EAI to CPP.
This commit is contained in:
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();
|
||||
}
|
||||
Reference in new issue
Block a user