TrinityCore
Loading...
Searching...
No Matches
boss_high_interrogator_gerstahn.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#include "
ScriptMgr.h
"
19
#include "
blackrock_depths.h
"
20
#include "
ScriptedCreature.h
"
21
22
enum
Spells
23
{
24
SPELL_SHADOWWORDPAIN
= 10894,
25
SPELL_MANABURN
= 10876,
26
SPELL_PSYCHICSCREAM
= 8122,
27
SPELL_SHADOWSHIELD
= 22417
28
};
29
30
enum
Events
31
{
32
EVENT_SHADOW_WORD_PAIN
= 1,
33
EVENT_MANABURN
= 2,
34
EVENT_PSYCHIC_SCREAM
= 3,
35
EVENT_SHADOWSHIELD
= 4
36
};
37
38
class
boss_high_interrogator_gerstahn
:
public
CreatureScript
39
{
40
public
:
41
boss_high_interrogator_gerstahn
() :
CreatureScript
(
"boss_high_interrogator_gerstahn"
) { }
42
43
struct
boss_high_interrogator_gerstahnAI
:
public
BossAI
44
{
45
boss_high_interrogator_gerstahnAI
(
Creature
* creature) :
BossAI
(creature,
BOSS_HIGH_INTERROGATOR_GERSTAHN
) { }
46
47
void
JustEngagedWith
(
Unit
* who)
override
48
{
49
_JustEngagedWith
(who);
50
events
.
ScheduleEvent
(
EVENT_SHADOW_WORD_PAIN
, 4s);
51
events
.
ScheduleEvent
(
EVENT_MANABURN
, 14s);
52
events
.
ScheduleEvent
(
EVENT_PSYCHIC_SCREAM
, 32s);
53
events
.
ScheduleEvent
(
EVENT_SHADOWSHIELD
, 8s);
54
}
55
56
void
UpdateAI
(
uint32
diff)
override
57
{
58
if
(!
UpdateVictim
())
59
return
;
60
61
events
.
Update
(diff);
62
63
while
(
uint32
eventId =
events
.
ExecuteEvent
())
64
{
65
switch
(eventId)
66
{
67
case
EVENT_SHADOW_WORD_PAIN
:
68
if
(
Unit
* target =
SelectTarget
(
SelectTargetMethod::Random
, 0, 100.0f,
true
))
69
DoCast
(target,
SPELL_SHADOWWORDPAIN
);
70
events
.
ScheduleEvent
(
EVENT_SHADOW_WORD_PAIN
, 7s);
71
break
;
72
case
EVENT_PSYCHIC_SCREAM
:
73
DoCastVictim
(
SPELL_PSYCHICSCREAM
);
74
events
.
ScheduleEvent
(
EVENT_PSYCHIC_SCREAM
, 30s);
75
break
;
76
case
EVENT_MANABURN
:
77
if
(
Unit
* target =
SelectTarget
(
SelectTargetMethod::Random
, 0, 100.0f,
true
))
78
DoCast
(target,
SPELL_MANABURN
);
79
events
.
ScheduleEvent
(
EVENT_MANABURN
, 10s);
80
break
;
81
case
EVENT_SHADOWSHIELD
:
82
DoCast
(
me
,
SPELL_SHADOWSHIELD
);
83
events
.
ScheduleEvent
(
EVENT_SHADOWSHIELD
, 25s);
84
break
;
85
default
:
86
break
;
87
}
88
}
89
}
90
};
91
92
CreatureAI
*
GetAI
(
Creature
* creature)
const override
93
{
94
return
GetBlackrockDepthsAI<boss_high_interrogator_gerstahnAI>(creature);
95
}
96
};
97
98
void
AddSC_boss_high_interrogator_gerstahn
()
99
{
100
new
boss_high_interrogator_gerstahn
();
101
}
uint32
uint32_t uint32
Definition
Define.h:154
Spells
Spells
Definition
PlayerAI.cpp:32
ScriptMgr.h
ScriptedCreature.h
SelectTargetMethod::Random
@ Random
blackrock_depths.h
BOSS_HIGH_INTERROGATOR_GERSTAHN
@ BOSS_HIGH_INTERROGATOR_GERSTAHN
Definition
blackrock_depths.h:28
Events
Events
Definition
boss_garothi_worldbreaker.cpp:101
SPELL_SHADOWSHIELD
@ SPELL_SHADOWSHIELD
Definition
boss_high_interrogator_gerstahn.cpp:27
SPELL_PSYCHICSCREAM
@ SPELL_PSYCHICSCREAM
Definition
boss_high_interrogator_gerstahn.cpp:26
SPELL_SHADOWWORDPAIN
@ SPELL_SHADOWWORDPAIN
Definition
boss_high_interrogator_gerstahn.cpp:24
SPELL_MANABURN
@ SPELL_MANABURN
Definition
boss_high_interrogator_gerstahn.cpp:25
AddSC_boss_high_interrogator_gerstahn
void AddSC_boss_high_interrogator_gerstahn()
Definition
boss_high_interrogator_gerstahn.cpp:98
EVENT_PSYCHIC_SCREAM
@ EVENT_PSYCHIC_SCREAM
Definition
boss_high_interrogator_gerstahn.cpp:34
EVENT_SHADOWSHIELD
@ EVENT_SHADOWSHIELD
Definition
boss_high_interrogator_gerstahn.cpp:35
EVENT_SHADOW_WORD_PAIN
@ EVENT_SHADOW_WORD_PAIN
Definition
boss_high_interrogator_gerstahn.cpp:32
EVENT_MANABURN
@ EVENT_MANABURN
Definition
boss_high_interrogator_gerstahn.cpp:33
BossAI
Definition
ScriptedCreature.h:308
BossAI::_JustEngagedWith
void _JustEngagedWith(Unit *who)
Definition
ScriptedCreature.cpp:569
BossAI::events
EventMap events
Definition
ScriptedCreature.h:346
CreatureAI
Definition
CreatureAI.h:61
CreatureAI::UpdateVictim
bool UpdateVictim()
Definition
CreatureAI.cpp:244
CreatureAI::me
Creature *const me
Definition
CreatureAI.h:63
CreatureScript
Definition
ScriptMgr.h:441
Creature
Definition
Creature.h:82
EventMap::ExecuteEvent
uint32 ExecuteEvent()
Definition
EventMap.cpp:77
EventMap::Update
void Update(uint32 time)
Definition
EventMap.h:61
EventMap::ScheduleEvent
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
Definition
EventMap.cpp:40
UnitAI::DoCastVictim
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Definition
UnitAI.cpp:180
UnitAI::SelectTarget
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
Definition
UnitAI.cpp:79
UnitAI::DoCast
SpellCastResult DoCast(uint32 spellId)
Definition
UnitAI.cpp:89
Unit
Definition
Unit.h:635
boss_high_interrogator_gerstahn
Definition
boss_high_interrogator_gerstahn.cpp:39
boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahn
boss_high_interrogator_gerstahn()
Definition
boss_high_interrogator_gerstahn.cpp:41
boss_high_interrogator_gerstahn::GetAI
CreatureAI * GetAI(Creature *creature) const override
Definition
boss_high_interrogator_gerstahn.cpp:92
boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI
Definition
boss_high_interrogator_gerstahn.cpp:44
boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::boss_high_interrogator_gerstahnAI
boss_high_interrogator_gerstahnAI(Creature *creature)
Definition
boss_high_interrogator_gerstahn.cpp:45
boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::UpdateAI
void UpdateAI(uint32 diff) override
Definition
boss_high_interrogator_gerstahn.cpp:56
boss_high_interrogator_gerstahn::boss_high_interrogator_gerstahnAI::JustEngagedWith
void JustEngagedWith(Unit *who) override
Definition
boss_high_interrogator_gerstahn.cpp:47
server
scripts
EasternKingdoms
BlackrockMountain
BlackrockDepths
boss_high_interrogator_gerstahn.cpp
Generated on Sun May 10 2026 02:09:07 for TrinityCore by
1.9.8