Scripts/Icecrown Citadel
* Fixed Mark of the Fallen Champion * Allow attacking Lady Deathwhisper during intro Closes #2088
This commit is contained in:
@@ -744,7 +744,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
|
||||
InstanceScript* instance = creature->GetInstanceScript();
|
||||
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Let it begin...", 631, -ACTION_START_EVENT);
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "We are ready to go, High Overlord. The Lich King must fall!", 631, -ACTION_START_EVENT);
|
||||
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
|
||||
}
|
||||
|
||||
@@ -1222,41 +1222,6 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
class MarkOfTheFallenChampionCheck
|
||||
{
|
||||
public:
|
||||
bool operator() (Unit* unit)
|
||||
{
|
||||
return !unit->HasAura(SPELL_MARK_OF_THE_FALLEN_CHAMPION);
|
||||
}
|
||||
};
|
||||
|
||||
class spell_deathbringer_mark_of_the_fallen_champion : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_deathbringer_mark_of_the_fallen_champion() : SpellScriptLoader("spell_deathbringer_mark_of_the_fallen_champion") { }
|
||||
|
||||
class spell_deathbringer_mark_of_the_fallen_champion_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_deathbringer_mark_of_the_fallen_champion_SpellScript);
|
||||
|
||||
void FilterTargets(std::list<Unit*>& unitList)
|
||||
{
|
||||
unitList.remove_if(MarkOfTheFallenChampionCheck());
|
||||
}
|
||||
|
||||
void Register()
|
||||
{
|
||||
OnUnitTargetSelect += SpellUnitTargetFn(spell_deathbringer_mark_of_the_fallen_champion_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_AREA_ENEMY_SRC);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const
|
||||
{
|
||||
return new spell_deathbringer_mark_of_the_fallen_champion_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_ive_gone_and_made_a_mess : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
@@ -1285,6 +1250,5 @@ void AddSC_boss_deathbringer_saurfang()
|
||||
new spell_deathbringer_rune_of_blood();
|
||||
new spell_deathbringer_blood_nova();
|
||||
new spell_deathbringer_blood_nova_targeting();
|
||||
new spell_deathbringer_mark_of_the_fallen_champion();
|
||||
new achievement_ive_gone_and_made_a_mess();
|
||||
}
|
||||
|
||||
@@ -113,45 +113,44 @@ enum EventTypes
|
||||
EVENT_INTRO_5 = 4,
|
||||
EVENT_INTRO_6 = 5,
|
||||
EVENT_INTRO_7 = 6,
|
||||
EVENT_INTRO_FINISH = 7,
|
||||
EVENT_BERSERK = 8,
|
||||
EVENT_DEATH_AND_DECAY = 9,
|
||||
EVENT_DOMINATE_MIND_H = 10,
|
||||
EVENT_BERSERK = 7,
|
||||
EVENT_DEATH_AND_DECAY = 8,
|
||||
EVENT_DOMINATE_MIND_H = 9,
|
||||
|
||||
// Phase 1 only
|
||||
EVENT_P1_SUMMON_WAVE = 11,
|
||||
EVENT_P1_SHADOW_BOLT = 12,
|
||||
EVENT_P1_EMPOWER_CULTIST = 13,
|
||||
EVENT_P1_REANIMATE_CULTIST = 14,
|
||||
EVENT_P1_SUMMON_WAVE = 10,
|
||||
EVENT_P1_SHADOW_BOLT = 11,
|
||||
EVENT_P1_EMPOWER_CULTIST = 12,
|
||||
EVENT_P1_REANIMATE_CULTIST = 13,
|
||||
|
||||
// Phase 2 only
|
||||
EVENT_P2_SUMMON_WAVE = 15,
|
||||
EVENT_P2_FROSTBOLT = 16,
|
||||
EVENT_P2_FROSTBOLT_VOLLEY = 17,
|
||||
EVENT_P2_TOUCH_OF_INSIGNIFICANCE = 18,
|
||||
EVENT_P2_SUMMON_SHADE = 19,
|
||||
EVENT_P2_SUMMON_WAVE = 14,
|
||||
EVENT_P2_FROSTBOLT = 15,
|
||||
EVENT_P2_FROSTBOLT_VOLLEY = 16,
|
||||
EVENT_P2_TOUCH_OF_INSIGNIFICANCE = 17,
|
||||
EVENT_P2_SUMMON_SHADE = 18,
|
||||
|
||||
// Shared adds events
|
||||
EVENT_CULTIST_DARK_MARTYRDOM = 20,
|
||||
EVENT_CULTIST_DARK_MARTYRDOM = 19,
|
||||
|
||||
// Cult Fanatic
|
||||
EVENT_FANATIC_NECROTIC_STRIKE = 21,
|
||||
EVENT_FANATIC_SHADOW_CLEAVE = 22,
|
||||
EVENT_FANATIC_VAMPIRIC_MIGHT = 23,
|
||||
EVENT_FANATIC_NECROTIC_STRIKE = 20,
|
||||
EVENT_FANATIC_SHADOW_CLEAVE = 21,
|
||||
EVENT_FANATIC_VAMPIRIC_MIGHT = 22,
|
||||
|
||||
// Cult Adherent
|
||||
EVENT_ADHERENT_FROST_FEVER = 24,
|
||||
EVENT_ADHERENT_DEATHCHILL = 25,
|
||||
EVENT_ADHERENT_CURSE_OF_TORPOR = 26,
|
||||
EVENT_ADHERENT_SHORUD_OF_THE_OCCULT = 27,
|
||||
EVENT_ADHERENT_FROST_FEVER = 23,
|
||||
EVENT_ADHERENT_DEATHCHILL = 24,
|
||||
EVENT_ADHERENT_CURSE_OF_TORPOR = 25,
|
||||
EVENT_ADHERENT_SHORUD_OF_THE_OCCULT = 26,
|
||||
|
||||
// Darnavan
|
||||
EVENT_DARNAVAN_BLADESTORM = 28,
|
||||
EVENT_DARNAVAN_CHARGE = 29,
|
||||
EVENT_DARNAVAN_INTIMIDATING_SHOUT = 30,
|
||||
EVENT_DARNAVAN_MORTAL_STRIKE = 31,
|
||||
EVENT_DARNAVAN_SHATTERING_THROW = 32,
|
||||
EVENT_DARNAVAN_SUNDER_ARMOR = 33,
|
||||
EVENT_DARNAVAN_BLADESTORM = 27,
|
||||
EVENT_DARNAVAN_CHARGE = 28,
|
||||
EVENT_DARNAVAN_INTIMIDATING_SHOUT = 29,
|
||||
EVENT_DARNAVAN_MORTAL_STRIKE = 30,
|
||||
EVENT_DARNAVAN_SHATTERING_THROW = 31,
|
||||
EVENT_DARNAVAN_SUNDER_ARMOR = 32,
|
||||
};
|
||||
|
||||
enum Phases
|
||||
@@ -181,6 +180,7 @@ enum DeprogrammingData
|
||||
#define QUEST_DEPROGRAMMING RAID_MODE<uint32>(QUEST_DEPROGRAMMING_10, QUEST_DEPROGRAMMING_25, QUEST_DEPROGRAMMING_10, QUEST_DEPROGRAMMING_25)
|
||||
|
||||
uint32 const SummonEntries[2] = {NPC_CULT_FANATIC, NPC_CULT_ADHERENT};
|
||||
|
||||
#define GUID_CULTIST 1
|
||||
|
||||
Position const SummonPositions[7] =
|
||||
@@ -225,7 +225,6 @@ class boss_lady_deathwhisper : public CreatureScript
|
||||
{
|
||||
_Reset();
|
||||
me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA));
|
||||
me->SetLastManaUse(0xFFFFFFFF); // hacky, but no other way atm to prevent mana regen
|
||||
events.SetPhase(PHASE_ONE);
|
||||
_waveCounter = 0;
|
||||
_nextVengefulShadeTargetGUID = 0;
|
||||
@@ -239,9 +238,8 @@ class boss_lady_deathwhisper : public CreatureScript
|
||||
|
||||
void MoveInLineOfSight(Unit* who)
|
||||
{
|
||||
if (!_introDone && me->IsWithinDistInMap(who, 100.0f))
|
||||
if (!_introDone && me->IsWithinDistInMap(who, 110.0f))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
_introDone = true;
|
||||
Talk(SAY_INTRO_1);
|
||||
events.SetPhase(PHASE_INTRO);
|
||||
@@ -251,7 +249,6 @@ class boss_lady_deathwhisper : public CreatureScript
|
||||
events.ScheduleEvent(EVENT_INTRO_5, 39500, 0, PHASE_INTRO);
|
||||
events.ScheduleEvent(EVENT_INTRO_6, 48500, 0, PHASE_INTRO);
|
||||
events.ScheduleEvent(EVENT_INTRO_7, 58000, 0, PHASE_INTRO);
|
||||
events.ScheduleEvent(EVENT_INTRO_FINISH, 76000, 0, PHASE_INTRO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -437,9 +434,6 @@ class boss_lady_deathwhisper : public CreatureScript
|
||||
case EVENT_INTRO_7:
|
||||
Talk(SAY_INTRO_7);
|
||||
break;
|
||||
case EVENT_INTRO_FINISH:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
break;
|
||||
case EVENT_DEATH_AND_DECAY:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
|
||||
DoCast(target, SPELL_DEATH_AND_DECAY);
|
||||
|
||||
Reference in New Issue
Block a user