コード例 #1
0
            void ExecuteEvent(uint32 eventId) override
            {
                if (eventId == EVENT_SPECIAL_ABILITY)
                {
                    if (CurrentStage == MAX_STAGES)
                        GenerateStageSequence();

                    switch (Stage[CurrentStage])
                    {
                        case STAGE_DARK_VORTEX:
                            if (Creature* sister = GetSister())
                                sister->AI()->DoAction(ACTION_VORTEX);
                            break;
                        case STAGE_DARK_PACT:
                            if (Creature* sister = GetSister())
                                sister->AI()->DoAction(ACTION_PACT);
                            break;
                        case STAGE_LIGHT_VORTEX:
                            DoAction(ACTION_VORTEX);
                            break;
                        case STAGE_LIGHT_PACT:
                            DoAction(ACTION_PACT);
                            break;
                        default:
                            break;
                    }
                    ++CurrentStage;
                    events.ScheduleEvent(EVENT_SPECIAL_ABILITY, 45 * IN_MILLISECONDS);
                }
                else
                    boss_twin_baseAI::ExecuteEvent(eventId);
            }
コード例 #2
0
 boss_fjolaAI(Creature* creature) : boss_twin_baseAI(creature)
 {
     GenerateStageSequence();
 }
コード例 #3
0
 boss_fjolaAI(Creature* creature) : boss_twin_baseAI(creature, DATA_FJOLA_LIGHTBANE)
 {
     GenerateStageSequence();
 }