Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
boss_randolph_moloch.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/* ScriptData
7SDName: Boss_Randolf_Moloch
8SD%Complete: 90
9SDComment:
10SDCategory: The Stockades
11EndScriptData */
12
13#include "ScriptMgr.h"
14#include "ScriptedCreature.h"
16
17
18enum Says
19{
23};
24
26{
27 SPELL_SWEEP = 86729,
28 SPELL_VANISH = 55964,
30};
37
39{
40public:
41 boss_randolph_moloch() : CreatureScript("boss_randolph_moloch") { }
42
44 {
46
48 {
50 events.ScheduleEvent(EVENT_SWEEP, 5000);
51 events.ScheduleEvent(EVENT_VANISH, 10000);
52 events.ScheduleEvent(EVENT_WILDLY_STABBING, 6000);
53 }
54
56 {
57 me->HandleEmoteCommand(EMOTE_ONESHOT_BOW);
59 BossAI::EnterCombat(victim);
60 }
61
62 void JustDied(Unit* /*killer*/) OVERRIDE
63 {
65 _JustDied();
66 instance->SetBossState(DATA_RANDOLPH_MOLOCH, DONE);
67 }
68
74
76 {
77 if (!UpdateVictim())
78 return;
79
80 events.Update(diff);
81
82 while (uint32 eventId = events.ExecuteEvent())
83 {
84 switch (eventId)
85 {
86 case EVENT_SWEEP:
87 {
89 events.ScheduleEvent(EVENT_SWEEP, 5000);
90 break;
91 }
92 case EVENT_VANISH:
93 {
94 //TODO: vanish should be cast at 35% and 65% HP and not reset boss
95 //if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
96 //DoCast(target, SPELL_VANISH);
98 events.ScheduleEvent(EVENT_VANISH, 10000);
99 break;
100 }
102 {
104 events.ScheduleEvent(EVENT_WILDLY_STABBING, 6000);
105 break;
106 }
107 default:
108 break;
109 }
110 }
112 };
113 };
115 {
117 }
118};
119
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
@ FAIL
@ DONE
@ EMOTE_ONESHOT_BOW
#define SAY_DEATH
#define SAY_AGGRO
@ SPELL_VANISH
@ SPELL_WILDLY_STABBING
void AddSC_boss_randolph_moloch()
@ EVENT_WILDLY_STABBING
InstanceScript *const instance
void JustReachedHome() OVERRIDE
EventMap events
void Reset() OVERRIDE
BossAI(Creature *creature, uint32 bossId)
void EnterCombat(Unit *) OVERRIDE
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
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
AI * GetTheStockadeAI(Creature *creature)
@ DATA_RANDOLPH_MOLOCH
Creature * me
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================