Scripts/Misc: some random changes after recent commits and cleanup

This commit is contained in:
MitchesD
2015-01-10 22:58:03 +01:00
parent db849e7fcc
commit f94cfc6577
7 changed files with 31 additions and 32 deletions

View File

@@ -48,11 +48,6 @@ class boss_maleki_the_pallid : public CreatureScript
public:
boss_maleki_the_pallid() : CreatureScript("boss_maleki_the_pallid") { }
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_maleki_the_pallidAI>(creature);
}
struct boss_maleki_the_pallidAI : public ScriptedAI
{
boss_maleki_the_pallidAI(Creature* creature) : ScriptedAI(creature)
@@ -85,6 +80,9 @@ public:
_events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
@@ -111,11 +109,16 @@ public:
DoMeleeAttackIfReady();
}
private:
EventMap _events;
InstanceScript* instance;
};
CreatureAI* GetAI(Creature* creature) const override
{
return GetInstanceAI<boss_maleki_the_pallidAI>(creature);
}
};
void AddSC_boss_maleki_the_pallid()

View File

@@ -55,7 +55,8 @@ enum Events
class boss_postmaster_malown : public CreatureScript
{
public: boss_postmaster_malown() : CreatureScript("boss_postmaster_malown") { }
public:
boss_postmaster_malown() : CreatureScript("boss_postmaster_malown") { }
struct boss_postmaster_malownAI : public BossAI
{
@@ -120,13 +121,14 @@ class boss_postmaster_malown : public CreatureScript
break;
}
}
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI(Creature* creature) const override
{
return new boss_postmaster_malownAI(creature);
return GetInstanceAI<boss_postmaster_malownAI>(creature);
}
};

View File

@@ -37,9 +37,9 @@ enum Data64
enum Data
{
TYPE_GELIHAST,
TYPE_KELRIS,
TYPE_AKU_MAI,
DATA_GELIHAST,
DATA_KELRIS,
DATA_AKU_MAI,
DATA_FIRE,
DATA_EVENT
};

View File

@@ -28,7 +28,7 @@ enum Spells
enum Events
{
EVENT_POISON_CLOUD = 1,
EVENT_FRENZIED_RAGE,
EVENT_FRENZIED_RAGE
};
class boss_aku_mai : public CreatureScript
@@ -38,7 +38,7 @@ public:
struct boss_aku_maiAI : public BossAI
{
boss_aku_maiAI(Creature* creature) : BossAI(creature, TYPE_AKU_MAI)
boss_aku_maiAI(Creature* creature) : BossAI(creature, DATA_AKU_MAI)
{
Initialize();
}
@@ -69,23 +69,17 @@ public:
}
}
void UpdateAI(uint32 diff) override
void ExecuteEvent(uint32 eventId) override
{
if (!UpdateVictim())
return;
events.Update(diff);
while (uint32 eventId = events.ExecuteEvent())
switch (eventId)
{
if (eventId == EVENT_POISON_CLOUD)
{
case EVENT_POISON_CLOUD:
DoCastVictim(SPELL_POISON_CLOUD);
events.ScheduleEvent(EVENT_POISON_CLOUD, urand(25000, 50000));
}
break;
default:
break;
}
DoMeleeAttackIfReady();
}
private:

View File

@@ -36,7 +36,7 @@ public:
struct boss_gelihastAI : public BossAI
{
boss_gelihastAI(Creature* creature) : BossAI(creature, TYPE_GELIHAST) { }
boss_gelihastAI(Creature* creature) : BossAI(creature, DATA_GELIHAST) { }
void EnterCombat(Unit* /*who*/) override
{

View File

@@ -45,7 +45,7 @@ public:
struct boss_kelrisAI : public BossAI
{
boss_kelrisAI(Creature* creature) : BossAI(creature, TYPE_KELRIS) { }
boss_kelrisAI(Creature* creature) : BossAI(creature, DATA_KELRIS) { }
void EnterCombat(Unit* /*who*/) override
{
@@ -58,7 +58,7 @@ public:
void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
instance->SetData(TYPE_KELRIS, DONE);
_JustDied();
}
void UpdateAI(uint32 diff) override

View File

@@ -96,16 +96,16 @@ public:
break;
case GO_SHRINE_OF_GELIHAST:
shrineOfGelihastGUID = go->GetGUID();
if (GetBossState(TYPE_GELIHAST) != DONE)
if (GetBossState(DATA_GELIHAST) != DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
case GO_ALTAR_OF_THE_DEEPS:
altarOfTheDeepsGUID = go->GetGUID();
if (GetBossState(TYPE_AKU_MAI) != DONE)
if (GetBossState(DATA_AKU_MAI) != DONE)
go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
case GO_AKU_MAI_DOOR:
if (GetBossState(TYPE_AKU_MAI) == DONE)
if (GetBossState(DATA_AKU_MAI) == DONE)
HandleGameObject(ObjectGuid::Empty, true, go);
mainDoorGUID = go->GetGUID();
break;
@@ -170,12 +170,12 @@ public:
switch (type)
{
case TYPE_GELIHAST:
case DATA_GELIHAST:
if (state == DONE)
if (GameObject* go = instance->GetGameObject(shrineOfGelihastGUID))
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
break;
case TYPE_AKU_MAI:
case DATA_AKU_MAI:
if (state == DONE)
if (GameObject* go = instance->GetGameObject(altarOfTheDeepsGUID))
{