diff options
Diffstat (limited to 'src/server/scripts')
3 files changed, 87 insertions, 106 deletions
| diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp index 2a8e9ea85b3..2cb3681cc26 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_grilek.cpp @@ -31,64 +31,53 @@ enum Events  {  }; -class boss_grilek : public CreatureScript +struct boss_grilek : public BossAI  { -    public: -        boss_grilek() : CreatureScript("boss_grilek") { } - -        struct boss_grilekAI : public BossAI +    boss_grilek(Creature* creature) : BossAI(creature, DATA_GRILEK) +    { +    } + +    void Reset() override +    { +    } + +    void JustDied(Unit* /*killer*/) override +    { +    } + +    void JustEngagedWith(Unit* who) override +    { +        BossAI::JustEngagedWith(who); +    } + +    void UpdateAI(uint32 diff) override +    { +        if (!UpdateVictim()) +            return; + +        events.Update(diff); + +        if (me->HasUnitState(UNIT_STATE_CASTING)) +            return; +        /* +        while (uint32 eventId = events.ExecuteEvent())          { -            boss_grilekAI(Creature* creature) : BossAI(creature, DATA_GRILEK) -            { -            } - -            void Reset() override -            { -            } - -            void JustDied(Unit* /*killer*/) override -            { -            } - -            void JustEngagedWith(Unit* who) override +            switch (eventId)              { -                BossAI::JustEngagedWith(who); +                default: +                    break;              } -            void UpdateAI(uint32 diff) override -            { -                if (!UpdateVictim()) -                    return; - -                events.Update(diff); - -                if (me->HasUnitState(UNIT_STATE_CASTING)) -                    return; -                /* -                while (uint32 eventId = events.ExecuteEvent()) -                { -                    switch (eventId) -                    { -                        default: -                            break; -                    } - -                    if (me->HasUnitState(UNIT_STATE_CASTING)) -                        return; -                } -                */ - -                DoMeleeAttackIfReady(); -            } -        }; - -        CreatureAI* GetAI(Creature* creature) const override -        { -            return GetZulGurubAI<boss_grilekAI>(creature); +            if (me->HasUnitState(UNIT_STATE_CASTING)) +                return;          } +        */ + +        DoMeleeAttackIfReady(); +    }  };  void AddSC_boss_grilek()  { -    new boss_grilek(); +    RegisterZulGurubCreatureAI(boss_grilek);  } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp index 262425ba23c..30f9a64ec2e 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_kilnara.cpp @@ -37,69 +37,58 @@ enum Events  {  }; -class boss_kilnara : public CreatureScript +struct boss_kilnara : public BossAI  { -    public: -        boss_kilnara() : CreatureScript("boss_kilnara") { } - -        struct boss_kilnaraAI : public BossAI +    boss_kilnara(Creature* creature) : BossAI(creature, DATA_KILNARA) { } + +    void Reset() override +    { +        _Reset(); +    } + +    void JustEngagedWith(Unit* who) override +    { +        BossAI::JustEngagedWith(who); +        Talk(SAY_AGGRO); +    } + +    void JustDied(Unit* /*killer*/) override +    { +        _JustDied(); +        Talk(SAY_DEATH); +    } + +    void KilledUnit(Unit* victim) override +    { +        if (victim->GetTypeId() == TYPEID_PLAYER) +            Talk(SAY_PLAYER_KILL); +    } + +    void UpdateAI(uint32 diff) override +    { +        if (!UpdateVictim()) +            return; + +        events.Update(diff); + +        if (me->HasUnitState(UNIT_STATE_CASTING)) +            return; +    /* +        while (uint32 eventId = events.ExecuteEvent())          { -            boss_kilnaraAI(Creature* creature) : BossAI(creature, DATA_KILNARA) { } - -            void Reset() override -            { -                _Reset(); -            } - -            void JustEngagedWith(Unit* who) override -            { -                BossAI::JustEngagedWith(who); -                Talk(SAY_AGGRO); -            } - -            void JustDied(Unit* /*killer*/) override -            { -                _JustDied(); -                Talk(SAY_DEATH); -            } - -            void KilledUnit(Unit* victim) override +            switch (eventId)              { -                if (victim->GetTypeId() == TYPEID_PLAYER) -                    Talk(SAY_PLAYER_KILL); -            } - -            void UpdateAI(uint32 diff) override -            { -                if (!UpdateVictim()) -                    return; - -                events.Update(diff); - -                if (me->HasUnitState(UNIT_STATE_CASTING)) -                    return; -            /* -                while (uint32 eventId = events.ExecuteEvent()) -                { -                    switch (eventId) -                    { -                        default: -                            break; -                    } -                } -            */ - -                DoMeleeAttackIfReady(); +                default: +                    break;              } -        }; - -        CreatureAI* GetAI(Creature* creature) const override -        { -            return GetZulGurubAI<boss_kilnaraAI>(creature);          } +    */ + +        DoMeleeAttackIfReady(); +    }  };  void AddSC_boss_kilnara()  { -    new boss_kilnara(); +    RegisterZulGurubCreatureAI(boss_kilnara);  } diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h index 517553727e6..e7b0ee0766a 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h +++ b/src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h @@ -95,4 +95,7 @@ inline AI* GetZulGurubAI(T* obj)      return GetInstanceAI<AI>(obj, ZGScriptName);  } +#define RegisterZulGurubCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetZulGurubAI) +#define RegisterZulGurubGameObjectAI(ai_name) RegisterGameObjectAIWithFactory(ai_name, GetZulGurubAI) +  #endif | 
