aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_01_06_05_world_2020_05_19_00_world.sql2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp81
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp31
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h1
4 files changed, 59 insertions, 56 deletions
diff --git a/sql/updates/world/master/2022_01_06_05_world_2020_05_19_00_world.sql b/sql/updates/world/master/2022_01_06_05_world_2020_05_19_00_world.sql
new file mode 100644
index 00000000000..dc098a884d8
--- /dev/null
+++ b/sql/updates/world/master/2022_01_06_05_world_2020_05_19_00_world.sql
@@ -0,0 +1,2 @@
+-- Deathbringer & Valithria
+DELETE FROM `creature_onkill_reputation` WHERE `creature_id` IN (37813,38402,38582,38583,36789,38174);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index a4d2588e06e..3b02a7274e4 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -90,33 +90,33 @@ enum ScriptTexts
enum Spells
{
// Deathbringer Saurfang
- SPELL_ZERO_POWER = 72242,
- SPELL_GRIP_OF_AGONY = 70572, // Intro
- SPELL_BLOOD_LINK = 72178,
- SPELL_MARK_OF_THE_FALLEN_CHAMPION_S = 72256,
- SPELL_RUNE_OF_BLOOD_S = 72408,
-
- SPELL_SUMMON_BLOOD_BEAST = 72172,
- SPELL_SUMMON_BLOOD_BEAST_25_MAN = 72356, // Additional cast, does not replace
- SPELL_FRENZY = 72737,
- SPELL_BLOOD_NOVA_TRIGGER = 72378,
- SPELL_BLOOD_NOVA = 72380,
- SPELL_BLOOD_POWER = 72371,
- SPELL_BLOOD_LINK_POWER = 72195,
- SPELL_BLOOD_LINK_DUMMY = 72202,
- SPELL_MARK_OF_THE_FALLEN_CHAMPION = 72293,
- SPELL_BOILING_BLOOD = 72385,
- SPELL_RUNE_OF_BLOOD = 72410,
+ SPELL_ZERO_POWER = 72242,
+ SPELL_GRIP_OF_AGONY = 70572, // Intro
+ SPELL_BLOOD_LINK = 72178,
+ SPELL_MARK_OF_THE_FALLEN_CHAMPION_S = 72256,
+ SPELL_RUNE_OF_BLOOD_S = 72408,
+
+ SPELL_SUMMON_BLOOD_BEAST = 72172,
+ SPELL_SUMMON_BLOOD_BEAST_25_MAN = 72356, // Additional cast, does not replace
+ SPELL_FRENZY = 72737,
+ SPELL_BLOOD_NOVA_TRIGGER = 72378,
+ SPELL_BLOOD_NOVA = 72380,
+ SPELL_BLOOD_POWER = 72371,
+ SPELL_BLOOD_LINK_POWER = 72195,
+ SPELL_BLOOD_LINK_DUMMY = 72202,
+ SPELL_MARK_OF_THE_FALLEN_CHAMPION = 72293,
+ SPELL_BOILING_BLOOD = 72385,
+ SPELL_RUNE_OF_BLOOD = 72410,
// Blood Beast
- SPELL_BLOOD_LINK_BEAST = 72176,
- SPELL_RESISTANT_SKIN = 72723,
- SPELL_SCENT_OF_BLOOD = 72769, // Heroic only
+ SPELL_BLOOD_LINK_BEAST = 72176,
+ SPELL_RESISTANT_SKIN = 72723,
+ SPELL_SCENT_OF_BLOOD = 72769, // Heroic only
- SPELL_RIDE_VEHICLE = 70640, // Outro
- SPELL_ACHIEVEMENT = 72928,
+ SPELL_RIDE_VEHICLE = 70640, // Outro
+ SPELL_ACHIEVEMENT = 72928,
SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION = 72257,
- SPELL_PERMANENT_FEIGN_DEATH = 70628,
+ SPELL_PERMANENT_FEIGN_DEATH = 70628
};
// Helper to get id of the aura on different modes (HasAura(baseId) wont work)
@@ -267,11 +267,11 @@ class boss_deathbringer_saurfang : public CreatureScript
_frenzied = false;
_dead = false;
me->SetPower(POWER_ENERGY, 0);
- DoCast(me, SPELL_ZERO_POWER, true);
- DoCast(me, SPELL_BLOOD_LINK, true);
- DoCast(me, SPELL_BLOOD_POWER, true);
- DoCast(me, SPELL_MARK_OF_THE_FALLEN_CHAMPION_S, true);
- DoCast(me, SPELL_RUNE_OF_BLOOD_S, true);
+ DoCastSelf(SPELL_ZERO_POWER, true);
+ DoCastSelf(SPELL_BLOOD_LINK, true);
+ DoCastSelf(SPELL_BLOOD_POWER, true);
+ DoCastSelf(SPELL_MARK_OF_THE_FALLEN_CHAMPION_S, true);
+ DoCastSelf(SPELL_RUNE_OF_BLOOD_S, true);
me->RemoveAurasDueToSpell(SPELL_BERSERK);
me->RemoveAurasDueToSpell(SPELL_FRENZY);
}
@@ -297,7 +297,7 @@ class boss_deathbringer_saurfang : public CreatureScript
me->SetImmuneToPC(false);
if (!_introDone)
{
- DoCast(me, SPELL_GRIP_OF_AGONY);
+ DoCastSelf(SPELL_GRIP_OF_AGONY);
if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SAURFANG_EVENT_NPC)))
creature->AI()->DoAction(ACTION_INTERRUPT_INTRO);
}
@@ -359,7 +359,7 @@ class boss_deathbringer_saurfang : public CreatureScript
if (!_frenzied && HealthBelowPct(31)) // AT 30%, not below
{
_frenzied = true;
- DoCast(me, SPELL_FRENZY, true);
+ DoCastSelf(SPELL_FRENZY, true);
Talk(SAY_FRENZY);
}
@@ -370,13 +370,12 @@ class boss_deathbringer_saurfang : public CreatureScript
_EnterEvadeMode();
me->AddUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
me->SetImmuneToPC(true);
-
+ me->RemoveAurasOnEvade();
DoCastAOE(SPELL_REMOVE_MARKS_OF_THE_FALLEN_CHAMPION);
- DoCast(me, SPELL_ACHIEVEMENT, true);
+ DoCastSelf(SPELL_ACHIEVEMENT, true);
Talk(SAY_DEATH);
-
- //instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MARK_OF_THE_FALLEN_CHAMPION);
- DoCast(me, SPELL_PERMANENT_FEIGN_DEATH);
+ DoCastSelf(SPELL_REPUTATION_BOSS_KILL, true);
+ DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH);
if (Creature* creature = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SAURFANG_EVENT_NPC)))
creature->AI()->DoAction(ACTION_START_OUTRO);
}
@@ -476,7 +475,7 @@ class boss_deathbringer_saurfang : public CreatureScript
case EVENT_INTRO_ALLIANCE_6:
Talk(SAY_INTRO_ALLIANCE_6);
Talk(SAY_INTRO_ALLIANCE_7);
- DoCast(me, SPELL_GRIP_OF_AGONY);
+ DoCastSelf(SPELL_GRIP_OF_AGONY);
break;
case EVENT_INTRO_HORDE_2:
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
@@ -487,7 +486,7 @@ class boss_deathbringer_saurfang : public CreatureScript
Talk(SAY_INTRO_HORDE_4);
break;
case EVENT_INTRO_HORDE_9:
- DoCast(me, SPELL_GRIP_OF_AGONY);
+ DoCastSelf(SPELL_GRIP_OF_AGONY);
Talk(SAY_INTRO_HORDE_9);
break;
case EVENT_INTRO_FINISH:
@@ -497,10 +496,10 @@ class boss_deathbringer_saurfang : public CreatureScript
break;
case EVENT_SUMMON_BLOOD_BEAST:
for (uint32 i10 = 0; i10 < 2; ++i10)
- DoCast(me, SPELL_SUMMON_BLOOD_BEAST+i10);
+ DoCastSelf(SPELL_SUMMON_BLOOD_BEAST+i10);
if (Is25ManRaid())
for (uint32 i25 = 0; i25 < 3; ++i25)
- DoCast(me, SPELL_SUMMON_BLOOD_BEAST_25_MAN+i25);
+ DoCastSelf(SPELL_SUMMON_BLOOD_BEAST_25_MAN+i25);
Talk(SAY_BLOOD_BEASTS);
events.ScheduleEvent(EVENT_SUMMON_BLOOD_BEAST, 40s, 0, PHASE_COMBAT);
if (IsHeroic())
@@ -515,11 +514,11 @@ class boss_deathbringer_saurfang : public CreatureScript
events.ScheduleEvent(EVENT_RUNE_OF_BLOOD, urand(20000, 25000), 0, PHASE_COMBAT);
break;
case EVENT_BOILING_BLOOD:
- DoCast(me, SPELL_BOILING_BLOOD);
+ DoCastSelf(SPELL_BOILING_BLOOD);
events.ScheduleEvent(EVENT_BOILING_BLOOD, urand(15000, 20000), 0, PHASE_COMBAT);
break;
case EVENT_BERSERK:
- DoCast(me, SPELL_BERSERK);
+ DoCastSelf(SPELL_BERSERK);
Talk(SAY_BERSERK);
break;
case EVENT_SCENT_OF_BLOOD:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
index fead092d3cd..f1ff1310045 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp
@@ -314,7 +314,7 @@ class boss_valithria_dreamwalker : public CreatureScript
if (action != ACTION_ENTER_COMBAT)
return;
- DoCast(me, SPELL_COPY_DAMAGE);
+ DoCastSelf(SPELL_COPY_DAMAGE);
_instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
_events.ScheduleEvent(EVENT_INTRO_TALK, 15s);
_events.ScheduleEvent(EVENT_DREAM_PORTAL, 45s, 48s);
@@ -336,8 +336,9 @@ class boss_valithria_dreamwalker : public CreatureScript
Talk(SAY_VALITHRIA_SUCCESS);
_instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
me->RemoveAurasDueToSpell(SPELL_CORRUPTION_VALITHRIA);
- DoCast(me, SPELL_ACHIEVEMENT_CHECK);
+ DoCastSelf(SPELL_ACHIEVEMENT_CHECK);
DoCastAOE(SPELL_DREAMWALKERS_RAGE);
+ DoCastSelf(SPELL_REPUTATION_BOSS_KILL, true);
_events.ScheduleEvent(EVENT_DREAM_SLIP, 3500ms);
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING)))
lichKing->AI()->EnterEvadeMode();
@@ -383,8 +384,8 @@ class boss_valithria_dreamwalker : public CreatureScript
{
if (spell->Id == SPELL_DREAM_SLIP)
{
- DoCast(me, SPELL_CLEAR_ALL);
- DoCast(me, SPELL_AWARD_REPUTATION_BOSS_KILL);
+ DoCastSelf(SPELL_CLEAR_ALL);
+ DoCastSelf(SPELL_AWARD_REPUTATION_BOSS_KILL);
// this display id was found in sniff instead of the one on aura
me->SetDisplayId(11686);
me->AddUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
@@ -443,11 +444,11 @@ class boss_valithria_dreamwalker : public CreatureScript
if (!IsHeroic())
Talk(SAY_VALITHRIA_DREAM_PORTAL);
for (uint32 i = 0; i < _portalCount; ++i)
- DoCast(me, SUMMON_PORTAL);
+ DoCastSelf(SUMMON_PORTAL);
_events.ScheduleEvent(EVENT_DREAM_PORTAL, 45s, 48s);
break;
case EVENT_DREAM_SLIP:
- DoCast(me, SPELL_DREAM_SLIP);
+ DoCastSelf(SPELL_DREAM_SLIP);
break;
default:
break;
@@ -630,19 +631,19 @@ class npc_the_lich_king_controller : public CreatureScript
switch (eventId)
{
case EVENT_GLUTTONOUS_ABOMINATION_SUMMONER:
- DoCast(me, SPELL_TIMER_GLUTTONOUS_ABOMINATION);
+ DoCastSelf(SPELL_TIMER_GLUTTONOUS_ABOMINATION);
break;
case EVENT_SUPPRESSER_SUMMONER:
- DoCast(me, SPELL_TIMER_SUPPRESSER);
+ DoCastSelf(SPELL_TIMER_SUPPRESSER);
break;
case EVENT_BLISTERING_ZOMBIE_SUMMONER:
- DoCast(me, SPELL_TIMER_BLISTERING_ZOMBIE);
+ DoCastSelf(SPELL_TIMER_BLISTERING_ZOMBIE);
break;
case EVENT_RISEN_ARCHMAGE_SUMMONER:
- DoCast(me, SPELL_TIMER_RISEN_ARCHMAGE);
+ DoCastSelf(SPELL_TIMER_RISEN_ARCHMAGE);
break;
case EVENT_BLAZING_SKELETON_SUMMONER:
- DoCast(me, SPELL_TIMER_BLAZING_SKELETON);
+ DoCastSelf(SPELL_TIMER_BLAZING_SKELETON);
break;
default:
break;
@@ -754,7 +755,7 @@ class npc_risen_archmage : public CreatureScript
switch (eventId)
{
case EVENT_FROSTBOLT_VOLLEY:
- DoCast(me, SPELL_FROSTBOLT_VOLLEY);
+ DoCastSelf(SPELL_FROSTBOLT_VOLLEY);
_events.ScheduleEvent(EVENT_FROSTBOLT_VOLLEY, 8s, 15s);
break;
case EVENT_MANA_VOID:
@@ -828,7 +829,7 @@ class npc_blazing_skeleton : public CreatureScript
_events.ScheduleEvent(EVENT_FIREBALL, 2s, 4s);
break;
case EVENT_LEY_WASTE:
- DoCast(me, SPELL_LEY_WASTE);
+ DoCastSelf(SPELL_LEY_WASTE);
_events.ScheduleEvent(EVENT_LEY_WASTE, 15s, 20s);
break;
default:
@@ -935,7 +936,7 @@ class npc_blistering_zombie : public CreatureScript
void JustDied(Unit* /*killer*/) override
{
- DoCast(me, SPELL_ACID_BURST, true);
+ DoCastSelf(SPELL_ACID_BURST, true);
}
void UpdateAI(uint32 /*diff*/) override
@@ -993,7 +994,7 @@ class npc_gluttonous_abomination : public CreatureScript
switch (eventId)
{
case EVENT_GUT_SPRAY:
- DoCast(me, SPELL_GUT_SPRAY);
+ DoCastSelf(SPELL_GUT_SPRAY);
_events.ScheduleEvent(EVENT_GUT_SPRAY, 10s, 13s);
break;
default:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
index 7704fffea75..7e849b1e7c4 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
@@ -31,6 +31,7 @@ enum ICSharedSpells
{
SPELL_BERSERK = 26662,
SPELL_BERSERK2 = 47008,
+ SPELL_REPUTATION_BOSS_KILL = 73843,
// Deathbound Ward
SPELL_STONEFORM = 70733,