Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
boss_drakkisath.cpp
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#include "ScriptMgr.h"
7#include "ScriptedCreature.h"
8#include "blackrock_spire.h"
9
11{
13 SPELL_CLEAVE = 20691,
15 SPELL_THUNDERCLAP = 15548, //Not sure if right ID. 23931 would be a harder possibility.
16};
17
25
27{
28public:
29 boss_drakkisath() : CreatureScript("boss_drakkisath") { }
30
31 struct boss_drakkisathAI : public BossAI
32 {
34
36 {
37 _Reset();
38 }
39
40 void EnterCombat(Unit* /*who*/) OVERRIDE
41 {
43 events.ScheduleEvent(EVENT_FIRE_NOVA, 6000);
44 events.ScheduleEvent(EVENT_CLEAVE, 8000);
45 events.ScheduleEvent(EVENT_CONFLIGURATION, 15000);
46 events.ScheduleEvent(EVENT_THUNDERCLAP, 17000);
47 }
48
49 void JustDied(Unit* /*killer*/) OVERRIDE
50 {
51 _JustDied();
52 }
53
55 {
56 if (!UpdateVictim())
57 return;
58
59 events.Update(diff);
60
61 if (me->HasUnitState(UNIT_STATE_CASTING))
62 return;
63
64 while (uint32 eventId = events.ExecuteEvent())
65 {
66 switch (eventId)
67 {
68 case EVENT_FIRE_NOVA:
70 events.ScheduleEvent(EVENT_FIRE_NOVA, 10000);
71 break;
72 case EVENT_CLEAVE:
74 events.ScheduleEvent(EVENT_CLEAVE, 8000);
75 break;
78 events.ScheduleEvent(EVENT_CONFLIGURATION, 18000);
79 break;
82 events.ScheduleEvent(EVENT_THUNDERCLAP, 20000);
83 break;
84 }
85 }
87 }
88 };
89
91 {
92 return new boss_drakkisathAI(creature);
93 }
94};
95
97{
98 new boss_drakkisath();
99}
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
@ UNIT_STATE_CASTING
Definition Unit.h:527
@ SPELL_CLEAVE
@ EVENT_CLEAVE
@ DATA_GENERAL_DRAKKISATH
void AddSC_boss_drakkisath()
@ SPELL_CLEAVE
@ SPELL_CONFLIGURATION
@ SPELL_THUNDERCLAP
@ SPELL_FIRENOVA
@ EVENT_CONFLIGURATION
@ EVENT_THUNDERCLAP
@ EVENT_FIRE_NOVA
@ EVENT_CLEAVE
@ SPELL_THUNDERCLAP
EventMap events
BossAI(Creature *creature, uint32 bossId)
void _EnterCombat()
bool UpdateVictim()
CreatureScript(const char *name)
void DoMeleeAttackIfReady()
Definition UnitAI.cpp:28
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition UnitAI.cpp:168
Definition Unit.h:1367
CreatureAI * GetAI(Creature *creature) const OVERRIDE
Creature * me
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================