You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: scripts/northrend/draktharon_keep/boss_novos.cpp
+295-7Lines changed: 295 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -16,8 +16,8 @@
16
16
17
17
/* ScriptData
18
18
SDName: Boss_Novos
19
-
SD%Complete: 20%
20
-
SDComment:
19
+
SD%Complete: 80%
20
+
SDComment: Summon Timers are vague, many visual spells fail (LoS)
21
21
SDCategory: Drak'Tharon Keep
22
22
EndScriptData */
23
23
@@ -35,30 +35,106 @@ enum
35
35
36
36
EMOTE_ASSISTANCE = -1600011,
37
37
38
+
SPELL_ARCANE_FIELD = 47346,
39
+
SPELL_IMMUNITY = 34098,
40
+
SPELL_SUMMON_MINIONS_H = 59910, // (at least) on Phase-Switch, TODO1 research on appearence; TODO2 implement spell. Triggers 59935, 59938, 59939, 59940
41
+
SPELL_FROSTBOLT = 49037,
42
+
SPELL_FROSTBOLT_H = 59855,
43
+
SPELL_ARCANE_BLAST = 49198,
44
+
SPELL_ARCANE_BLAST_H = 59909,
45
+
SPELL_BLIZZARD = 49034,
46
+
SPELL_BLIZZARD_H = 59854,
47
+
SPELL_TOUCH_OF_MISERY = 50090, // TODO - purpose of this spell (triggers SPELL_WRATH_OF_MISERY) unknown
48
+
SPELL_WRATH_OF_MISERY = 50089,
49
+
SPELL_WRATH_OF_MISERY_H = 59856,
50
+
51
+
// SPELL_SUMMON_CRYSTAL_HANDLER = 49179, // Spell seems to be unused, perhaps only server-side, and especially no suitable positioned caster are found for this spell
casePHASE_WAITING: // Short delay between last destroyed crystal and entering combat
261
+
if (m_uiPhaseTimer < uiDiff)
262
+
{
263
+
m_uiPhase = PHASE_NORMAL;
264
+
// Remove Immunity and Shield Aura
265
+
m_creature->InterruptNonMeleeSpells(true);
266
+
m_creature->RemoveAllAuras();
267
+
}
268
+
else
269
+
m_uiPhaseTimer -= uiDiff;
270
+
271
+
break;
272
+
273
+
casePHASE_NORMAL: // Normal Phase, attack enemies
274
+
if (m_uiArcaneBlastTimer < uiDiff)
275
+
{
276
+
// TODO - might be possible that this spell is only casted, when there is an enemy in range
277
+
if (DoCastSpellIfCan(m_creature, m_bIsRegularMode ? SPELL_ARCANE_BLAST : SPELL_ARCANE_BLAST_H) == CAST_OK)
278
+
m_uiArcaneBlastTimer = urand(7000, 9000);
279
+
}
280
+
else
281
+
m_uiArcaneBlastTimer -= uiDiff;
282
+
283
+
if (m_uiBlizzardTimer < uiDiff)
284
+
{
285
+
if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0))
286
+
if (DoCastSpellIfCan(pTarget, m_bIsRegularMode ? SPELL_BLIZZARD : SPELL_BLIZZARD_H) == CAST_OK)
287
+
m_uiBlizzardTimer = urand(9000, 13500);
288
+
}
289
+
else
290
+
m_uiBlizzardTimer -= uiDiff;
291
+
292
+
if (m_uiWrathTimer < uiDiff)
293
+
{
294
+
if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0))
295
+
if (DoCastSpellIfCan(pTarget, m_bIsRegularMode ? SPELL_WRATH_OF_MISERY : SPELL_WRATH_OF_MISERY_H) == CAST_OK)
296
+
m_uiWrathTimer = urand(12500, 17200);
297
+
}
298
+
else
299
+
m_uiWrathTimer -= uiDiff;
300
+
301
+
if (!m_creature->IsNonMeleeSpellCasted(true)) // TODO Use this additional check, because might want to change the random target to be a target that is in LoS (which then is expensive)
302
+
if (Unit* pTarget = m_creature->SelectAttackingTarget(ATTACKING_TARGET_RANDOM, 0))
0 commit comments