Skip to content

Commit a434304

Browse files
authored
BWL code cleanup (#2984)
1 parent e57bc16 commit a434304

10 files changed

Lines changed: 408 additions & 428 deletions

File tree

src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/blackwing_lair.h

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,57 @@ enum
4545
DATA_DOOR_NEFARIAN = 23,
4646
DATA_SCEPTER_CHAMPION = 24,
4747
DATA_SCEPTER_RUN_TIME = 25,
48-
MAX_DATAS = 26
48+
MAX_DATAS = 26,
49+
50+
GO_DRAKONID_BONES = 179804,
51+
52+
SPELL_POSSESS = 19832,
53+
SPELL_POSSESS_VISUAL = 23014,
54+
55+
NPC_RAZORGORE = 12435,
56+
NPC_VAELASTRASZ = 13020,
57+
NPC_LASHLAYER = 12017,
58+
NPC_FIREMAW = 11983,
59+
NPC_EBONROC = 14601,
60+
NPC_FLAMEGOR = 11981,
61+
NPC_CHROMAGGUS = 14020,
62+
NPC_NEFARIAN = 11583,
63+
NPC_LORD_NEFARIAN = 10162,
64+
NPC_ORB_OF_DOMINATION = 14453,
65+
NPC_GRETHOK_THE_CONTROLLER = 12557,
66+
NPC_BLACKWING_GUARDSMAN = 14456,
67+
NPC_BLACKWING_LEGGIONAIRE = 12416,
68+
NPC_BLACKWING_MAGE = 12420,
69+
NPC_DEATH_TALON_DRAGONSPAWN = 12422,
70+
NPC_DEATH_TALON_CAPTAIN = 12467,
71+
NPC_DEATH_TALON_SEETHER = 12464,
72+
NPC_DEATH_TALON_WYRMKIN = 12465,
73+
NPC_DEATH_TALON_FLAMESCALE = 12463,
74+
NPC_DEATH_TALON_HATCHER = 12468,
75+
NPC_BLACKWING_TASKMASTER = 12458,
76+
NPC_BLACKWING_TECHNICIAN = 13996,
77+
NPC_CORRUPTED_GREEN_WHELP = 14023,
78+
NPC_CORRUPTED_RED_WHELP = 14022,
79+
NPC_CORRUPTED_BLUE_WHELP = 14024,
80+
NPC_CORRUPTED_BRONZE_WHELP = 14025,
81+
NPC_BLACKWING_WARLOCK = 12459,
82+
NPC_DEATH_TALON_OVERSEER = 12461,
83+
NPC_BLACKWING_SPELLBINDER = 12457,
84+
NPC_DEATH_TALON_WYRMGUARD = 12460,
85+
NPC_BRONZE_DRAKANOID = 14263,
86+
NPC_BLUE_DRAKANOID = 14261,
87+
NPC_RED_DRAKANOID = 14264,
88+
NPC_GREEN_DRAKANOID = 14262,
89+
NPC_BLACK_DRAKANOID = 14265,
90+
NPC_CHROMATIC_DRAKANOID = 14302,
91+
NPC_BONE_CONSTRUCT = 14605,
92+
93+
QUEST_NEFARIUS_CORRUPTION = 8730,
94+
95+
FACTION_MONSTER = 14,
96+
FACTION_FRIENDLY = 35,
97+
98+
RAZORGORE_MAX_HEALTH_DURING_POSESSION = 450000
4999
};
50100

51101
#endif

src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_broodlord_lashlayer.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,15 @@ struct boss_broodlordAI : public ScriptedAI
118118
if (m_bMobsDesactives == on)
119119
return;
120120

121-
std::vector<uint32> mobsEntries;
122-
std::vector<uint32>::iterator entriesIt;
123-
mobsEntries.push_back(12459); // Blackwing Warlock
124-
mobsEntries.push_back(13996); // Blackwing Technician
125-
mobsEntries.push_back(12457); // Blackwing Spellbinder
126-
mobsEntries.push_back(12461); // Death Talon Overseer
121+
std::vector<uint32> mobsEntries =
122+
{
123+
NPC_BLACKWING_WARLOCK,
124+
NPC_BLACKWING_TECHNICIAN,
125+
NPC_BLACKWING_SPELLBINDER,
126+
NPC_DEATH_TALON_OVERSEER
127+
};
127128

129+
std::vector<uint32>::iterator entriesIt;
128130
for (entriesIt = mobsEntries.begin(); entriesIt != mobsEntries.end(); ++entriesIt)
129131
{
130132
std::list<Creature*> tmpMobsList;

src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_chromaggus.cpp

Lines changed: 43 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,23 @@ enum
5757
SPELL_CHROMATIC_MUT_1 = 23174, // Spell cast on player if they get all 5 debuffs
5858

5959
SPELL_FRENZY = 23128, // 28371 The frenzy spell may be wrong
60-
SPELL_ENRAGE = 28747
60+
SPELL_ENRAGE = 28747,
61+
62+
SPELL_CHROMATIC_MUTATION_ONE = 23175,
63+
SPELL_CHROMATIC_MUTATION_TWO = 23177,
64+
SPELL_BROOD_AFFLICTION_RED = 23168
6165
};
6266

63-
static uint32 const aPossibleBreaths[MAX_BREATHS] = {SPELL_INCINERATE, SPELL_TIME_LAPSE, SPELL_CORROSIVE_ACID, SPELL_IGNITE_FLESH, SPELL_FROST_BURN};
67+
static constexpr uint32 aPossibleBreaths[MAX_BREATHS] =
68+
{
69+
SPELL_INCINERATE,
70+
SPELL_TIME_LAPSE,
71+
SPELL_CORROSIVE_ACID,
72+
SPELL_IGNITE_FLESH,
73+
SPELL_FROST_BURN
74+
};
75+
76+
static constexpr uint32 NUM_BREATHS = sizeof(aPossibleBreaths) / sizeof(aPossibleBreaths[0]);
6477

6578
struct boss_chromaggusAI : public ScriptedAI
6679
{
@@ -73,7 +86,6 @@ struct boss_chromaggusAI : public ScriptedAI
7386
m_pInstance = (ScriptedInstance*)pCreature->GetInstanceData();
7487
if (m_pInstance)
7588
{
76-
const static uint32 NUM_BREATHS = sizeof(aPossibleBreaths) / sizeof(aPossibleBreaths[0]);
7789
uint32 breaths = m_pInstance->GetData64(DATA_CHROM_BREATH);
7890
m_uiBreathOneSpell = aPossibleBreaths[breaths % NUM_BREATHS];
7991
uint32 idx2 = breaths / NUM_BREATHS;
@@ -125,8 +137,8 @@ struct boss_chromaggusAI : public ScriptedAI
125137
{
126138
if (Player* pTarget = m_creature->GetMap()->GetPlayer(guid))
127139
{
128-
pTarget->RemoveAurasDueToSpell(23175);
129-
pTarget->RemoveAurasDueToSpell(23177);
140+
pTarget->RemoveAurasDueToSpell(SPELL_CHROMATIC_MUTATION_ONE);
141+
pTarget->RemoveAurasDueToSpell(SPELL_CHROMATIC_MUTATION_TWO);
130142
pTarget->DealDamage(pTarget, pTarget->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
131143
}
132144
}
@@ -246,25 +258,12 @@ struct boss_chromaggusAI : public ScriptedAI
246258
m_creature->RemoveAurasDueToSpell(m_uiCurrentVulnerabilitySpell);
247259

248260
// Cast new random vurlnabilty on self
249-
uint32 uiSpell;
250-
switch (urand(0, 4))
251-
{
252-
case 0:
253-
uiSpell = SPELL_FIRE_VULNERABILITY;
254-
break;
255-
case 1:
256-
uiSpell = SPELL_FROST_VULNERABILITY;
257-
break;
258-
case 2:
259-
uiSpell = SPELL_SHADOW_VULNERABILITY;
260-
break;
261-
case 3:
262-
uiSpell = SPELL_NATURE_VULNERABILITY;
263-
break;
264-
case 4:
265-
uiSpell = SPELL_ARCANE_VULNERABILITY;
266-
break;
267-
}
261+
uint32 uiSpell = PickRandomValue(
262+
SPELL_FIRE_VULNERABILITY,
263+
SPELL_FROST_VULNERABILITY,
264+
SPELL_SHADOW_VULNERABILITY,
265+
SPELL_NATURE_VULNERABILITY,
266+
SPELL_ARCANE_VULNERABILITY);
268267

269268
if (DoCastSpellIfCan(m_creature, uiSpell) == CAST_OK)
270269
{
@@ -298,26 +297,16 @@ struct boss_chromaggusAI : public ScriptedAI
298297
// Affliction Timer
299298
if (m_uiAfflictionTimer < uiDiff)
300299
{
301-
uint32 m_uiSpellAfflict = 0;
302-
303-
switch (urand(0, 4))
300+
uint32 uiSpellAfflict = PickRandomValue(
301+
SPELL_BROODAF_BLUE,
302+
SPELL_BROODAF_BLACK,
303+
SPELL_BROODAF_RED,
304+
SPELL_BROODAF_BRONZE,
305+
SPELL_BROODAF_GREEN);
306+
307+
if (uiSpellAfflict == SPELL_BROODAF_RED)
304308
{
305-
case 0:
306-
m_uiSpellAfflict = SPELL_BROODAF_BLUE;
307-
break;
308-
case 1:
309-
m_uiSpellAfflict = SPELL_BROODAF_BLACK;
310-
break;
311-
case 2:
312-
m_uiSpellAfflict = SPELL_BROODAF_RED;
313-
m_lRedAfflictionPlayerGUID.clear();
314-
break;
315-
case 3:
316-
m_uiSpellAfflict = SPELL_BROODAF_BRONZE;
317-
break;
318-
case 4:
319-
m_uiSpellAfflict = SPELL_BROODAF_GREEN;
320-
break;
309+
m_lRedAfflictionPlayerGUID.clear();
321310
}
322311

323312
for (uint32 i = 0; i < urand(11, 15); ++i) // Affliction is applied 11-15 times per cast. Creatures such as pets can be targetted
@@ -328,9 +317,9 @@ struct boss_chromaggusAI : public ScriptedAI
328317
continue;
329318

330319
// Cast affliction
331-
if (DoCastSpellIfCan(afflictionTarget, m_uiSpellAfflict, CF_TRIGGERED) == CAST_OK)
320+
if (DoCastSpellIfCan(afflictionTarget, uiSpellAfflict, CF_TRIGGERED) == CAST_OK)
332321
{
333-
if (m_uiSpellAfflict == SPELL_BROODAF_RED && afflictionTarget->GetTypeId() == TYPEID_PLAYER)
322+
if (uiSpellAfflict == SPELL_BROODAF_RED && afflictionTarget->GetTypeId() == TYPEID_PLAYER)
334323
m_lRedAfflictionPlayerGUID.push_back(afflictionTarget->GetObjectGuid());
335324
}
336325
// Chromatic mutation if target is effected by all afflictions
@@ -348,10 +337,10 @@ struct boss_chromaggusAI : public ScriptedAI
348337

349338
if (afflictionTarget->GetTypeId() == TYPEID_PLAYER) // Only players are mutated
350339
{
351-
afflictionTarget->AddAura(SPELL_CHROMATIC_MUT_1, ADD_AURA_NO_OPTION, m_creature); // Main MC aura
352-
afflictionTarget->AddAura(23175); // Mod DMG 500% + Mod Haste Melee 100 + Mod Haste Spell 300
353-
afflictionTarget->AddAura(23177); // Max Health 10000 + Mod healing 1000%
354-
m_lChromaticPlayerGUID.push_back(afflictionTarget->GetObjectGuid());
340+
afflictionTarget->AddAura(SPELL_CHROMATIC_MUT_1, ADD_AURA_NO_OPTION, m_creature); // Main MC aura
341+
afflictionTarget->AddAura(SPELL_CHROMATIC_MUTATION_ONE); // Mod DMG 500% + Mod Haste Melee 100 + Mod Haste Spell 300
342+
afflictionTarget->AddAura(SPELL_CHROMATIC_MUTATION_TWO); // Max Health 10000 + Mod healing 1000%
343+
m_lChromaticPlayerGUID.push_back(afflictionTarget->GetObjectGuid());
355344
}
356345
else // Pets die instantly
357346
afflictionTarget->DealDamage(afflictionTarget, afflictionTarget->GetHealth(), nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
@@ -365,7 +354,7 @@ struct boss_chromaggusAI : public ScriptedAI
365354
m_uiAfflictionTimer -= uiDiff;
366355

367356
// If player dies while he had the aura SPELL_BROODAF_RED
368-
for (AfflictionGuids::iterator itr = m_lRedAfflictionPlayerGUID.begin(); itr != m_lRedAfflictionPlayerGUID.end();)
357+
for (auto itr = m_lRedAfflictionPlayerGUID.begin(); itr != m_lRedAfflictionPlayerGUID.end();)
369358
{
370359
Player* pTarget = m_creature->GetMap()->GetPlayer(*itr);
371360
if (pTarget && pTarget->IsAlive() && !pTarget->HasAura(SPELL_BROODAF_RED, EFFECT_INDEX_0))
@@ -384,15 +373,15 @@ struct boss_chromaggusAI : public ScriptedAI
384373
}
385374

386375
// If player dies while he had the aura SPELL_CHROMATIC_MUT_1
387-
for (AfflictionGuids::iterator itr = m_lChromaticPlayerGUID.begin(); itr != m_lChromaticPlayerGUID.end();)
376+
for (auto itr = m_lChromaticPlayerGUID.begin(); itr != m_lChromaticPlayerGUID.end();)
388377
{
389378
if (Player* pTarget = m_creature->GetMap()->GetPlayer(*itr))
390379
{
391380
if (pTarget->IsDead())
392381
{
393-
pTarget->RemoveAurasDueToSpell(23175);
394-
pTarget->RemoveAurasDueToSpell(23177);
395-
if (DoCastSpellIfCan(m_creature, 23168) == CAST_OK) //Heal 150000 HP
382+
pTarget->RemoveAurasDueToSpell(SPELL_CHROMATIC_MUTATION_ONE);
383+
pTarget->RemoveAurasDueToSpell(SPELL_CHROMATIC_MUTATION_TWO);
384+
if (DoCastSpellIfCan(m_creature, SPELL_BROOD_AFFLICTION_RED) == CAST_OK) // Heal 150000 HP
396385
itr = m_lChromaticPlayerGUID.erase(itr);
397386
break;
398387
}

src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_firemaw.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ struct boss_firemawAI : public ScriptedAI
122122
DoMeleeAttackIfReady();
123123
}
124124
};
125+
125126
CreatureAI* GetAI_boss_firemaw(Creature* pCreature)
126127
{
127128
return new boss_firemawAI(pCreature);

src/scripts/eastern_kingdoms/burning_steppes/blackwing_lair/boss_flamegor.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ struct boss_flamegorAI : public ScriptedAI
127127
DoMeleeAttackIfReady();
128128
}
129129
};
130+
130131
CreatureAI* GetAI_boss_flamegor(Creature* pCreature)
131132
{
132133
return new boss_flamegorAI(pCreature);

0 commit comments

Comments
 (0)