Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
boss_magmus.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
10{
13};
14
15enum Misc
16{
17 DATA_THRONE_DOOR = 24 // not id or guid of doors but number of enum in blackrock_depths.h
18};
19
21{
22public:
23 boss_magmus() : CreatureScript("boss_magmus") { }
24
25 struct boss_magmusAI : public ScriptedAI
26 {
27 boss_magmusAI(Creature* creature) : ScriptedAI(creature)
28 {
31 }
32
34 {
35 FieryBurst_Timer = 5000;
37 }
38
39 void EnterCombat(Unit* /*who*/) OVERRIDE { }
40
42 {
43 //Return since we have no target
44 if (!UpdateVictim())
45 return;
46
47 //FieryBurst_Timer
48 if (FieryBurst_Timer <= diff)
49 {
51 FieryBurst_Timer = 6000;
52 } else FieryBurst_Timer -= diff;
53
54 //WarStomp_Timer
55 if (HealthBelowPct(51))
56 {
57 if (WarStomp_Timer <= diff)
58 {
60 WarStomp_Timer = 8000;
61 } else WarStomp_Timer -= diff;
62 }
63
65 }
66 // When he die open door to last chamber
67 void JustDied(Unit* killer) OVERRIDE
68 {
69 if (InstanceScript* instance = killer->GetInstanceScript())
70 instance->HandleGameObject(instance->GetData64(DATA_THRONE_DOOR), true);
71 }
72
73 private:
76 };
77
79 {
80 return new boss_magmusAI(creature);
81 }
82};
83
85{
86 new boss_magmus();
87}
std::uint32_t uint32
Definition Define.h:77
#define OVERRIDE
Definition Define.h:60
@ DATA_THRONE_DOOR
@ DATA_THRONE_DOOR
void AddSC_boss_magmus()
@ SPELL_FIERYBURST
@ SPELL_WARSTOMP
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
bool HealthBelowPct(uint32 pct) const
ScriptedAI(Creature *creature)
void JustDied(Unit *killer) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
boss_magmusAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================