Scripts/ICC: Fixed Deathbringer/Valithria reputation handler + codestyle fixes

* Added correct reputation spell for both bosses
* Fixed debuffs remove when deathbringer dies (it also fix recount)
* Changed all DoCast(me, xxx) -> DoCastSelf(xx)
* Removed old reputation hack in DB
* Fixed my OCD with spells enum :)
This commit is contained in:
Keader
2020-05-19 11:42:11 -03:00
parent 868748007d
commit d1e1b8753c
4 changed files with 58 additions and 55 deletions

View File

@@ -0,0 +1,2 @@
-- Deathbringer & Valithria
DELETE FROM `creature_onkill_reputation` WHERE `creature_id` IN (37813,38402,38582,38583,36789,38174);

View File

@@ -91,33 +91,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_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_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)
@@ -268,11 +268,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);
}
@@ -298,7 +298,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);
}
@@ -360,7 +360,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);
}
@@ -371,13 +371,12 @@ class boss_deathbringer_saurfang : public CreatureScript
_EnterEvadeMode();
me->SetFlag(UNIT_FIELD_FLAGS, 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);
}
@@ -477,7 +476,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->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -488,7 +487,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:
@@ -498,10 +497,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())
@@ -516,11 +515,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:

View File

@@ -313,7 +313,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);
@@ -335,8 +335,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();
@@ -382,8 +383,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->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
@@ -442,11 +443,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;
@@ -629,19 +630,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;
@@ -753,7 +754,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:
@@ -827,7 +828,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:
@@ -934,7 +935,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
@@ -992,7 +993,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:

View File

@@ -31,6 +31,7 @@ enum ICSharedSpells
{
SPELL_BERSERK = 26662,
SPELL_BERSERK2 = 47008,
SPELL_REPUTATION_BOSS_KILL = 73843,
// Deathbound Ward
SPELL_STONEFORM = 70733,