aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp36
-rw-r--r--src/server/game/Spells/SpellMgr.cpp3
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp7
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp91
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp9
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h3
6 files changed, 73 insertions, 76 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 92629d286bc..52515ebee8b 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5572,44 +5572,14 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
// Shadow's Fate (Shadowmourne questline)
case 71169:
{
- bool ok = false;
- if (GetMap()->GetDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL || GetMap()->GetDifficulty() == RAID_DIFFICULTY_25MAN_HEROIC)
- {
- uint32 spellId = 0;
-
- switch (GetEntry())
- {
- case 36678: // NPC: Professor Putricide
- spellId = 71518; // Spell: Unholy Infusion Credit
- break;
- case 37955: // NPC: Blood-Queen Lana'thel
- spellId = 72934; // Spell: Quest Credit
- break;
- case 36853: // NPC: Sindragosa <Queen of the Frostbrood>
- spellId = 72289; // Spell: Frost Infusion Quest Credit
- break;
- default:
- break;
- }
-
- if (spellId)
- CastSpell((Unit*)NULL, spellId, true);
-
- ok = true;
- }
-
- // TODO: The aura should be applieable by multiple players
Unit* caster = triggeredByAura->GetCaster();
if (caster && caster->GetTypeId() == TYPEID_PLAYER && caster->ToPlayer()->GetQuestStatus(24547) == QUEST_STATUS_INCOMPLETE)
{
CastSpell(caster, 71203, true);
- ok = true;
+ return true;
}
-
- if (!ok)
+ else
return false;
-
- return true;
}
// Essence of the Blood Queen
case 70871:
@@ -9055,7 +9025,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
case 71169:
{
// Victim needs more checks so bugs, rats or summons can not be affected by the proc.
- if (GetTypeId() != TYPEID_PLAYER || victim->GetTypeId() != TYPEID_UNIT || victim->GetCreatureType() == CREATURE_TYPE_CRITTER)
+ if (GetTypeId() != TYPEID_PLAYER || !victim || victim->GetTypeId() != TYPEID_UNIT || victim->GetCreatureType() == CREATURE_TYPE_CRITTER)
return false;
Player* player = ToPlayer();
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 3eefd969eed..d166c6f9ebf 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3413,6 +3413,9 @@ void SpellMgr::LoadDbcDataCorrections()
case 71123: // Decimate (Stinky & Precious)
spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_100_YARDS; // 100yd
break;
+ case 71169: // Shadow's Fate
+ spellInfo->AttributesEx3 |= SPELL_ATTR3_STACK_FOR_DIFF_CASTERS;
+ break;
case 72378: // Blood Nova (Deathbringer Saurfang)
case 73058: // Blood Nova (Deathbringer Saurfang)
spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 2b240bc93d8..a246852c8ed 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -62,6 +62,9 @@ enum Spells
SPELL_INCITE_TERROR = 73070,
SPELL_BLOODBOLT_WHIRL = 71772,
SPELL_ANNIHILATE = 71322,
+
+ // Blood Infusion
+ SPELL_BLOOD_INFUSION_CREDIT = 72934
};
enum Shadowmourne
@@ -182,6 +185,10 @@ class boss_blood_queen_lana_thel : public CreatureScript
{
_JustDied();
Talk(SAY_DEATH);
+
+ if (Is25ManRaid() && me->HasAura(SPELL_SHADOWS_FATE))
+ DoCastAOE(SPELL_BLOOD_INFUSION_CREDIT, true);
+
CleanAuras();
// Blah, credit the quest
if (_creditBloodQuickening)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index 4727504a4bd..d697be214c7 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -51,62 +51,65 @@ enum ScriptTexts
enum Spells
{
// Festergut
- SPELL_RELEASE_GAS_VISUAL = 69125,
- SPELL_GASEOUS_BLIGHT_LARGE = 69157,
- SPELL_GASEOUS_BLIGHT_MEDIUM = 69162,
- SPELL_GASEOUS_BLIGHT_SMALL = 69164,
- SPELL_MALLABLE_GOO_H = 70852,
+ SPELL_RELEASE_GAS_VISUAL = 69125,
+ SPELL_GASEOUS_BLIGHT_LARGE = 69157,
+ SPELL_GASEOUS_BLIGHT_MEDIUM = 69162,
+ SPELL_GASEOUS_BLIGHT_SMALL = 69164,
+ SPELL_MALLABLE_GOO_H = 70852,
// Rotface
- SPELL_VILE_GAS_H = 69240,
+ SPELL_VILE_GAS_H = 69240,
// Professor Putricide
- SPELL_SLIME_PUDDLE_TRIGGER = 70341,
- SPELL_MALLEABLE_GOO = 70852,
- SPELL_UNSTABLE_EXPERIMENT = 70351,
- SPELL_TEAR_GAS = 71617, // phase transition
- SPELL_TEAR_GAS_CREATURE = 71618,
- SPELL_TEAR_GAS_CANCEL = 71620,
- SPELL_TEAR_GAS_PERIODIC_TRIGGER = 73170,
- SPELL_CREATE_CONCOCTION = 71621,
- SPELL_GUZZLE_POTIONS = 71893,
- SPELL_OOZE_TANK_PROTECTION = 71770, // protects the tank
- SPELL_CHOKING_GAS_BOMB = 71255,
- SPELL_OOZE_VARIABLE = 74118,
- SPELL_GAS_VARIABLE = 74119,
- SPELL_UNBOUND_PLAGUE = 70911,
- SPELL_UNBOUND_PLAGUE_SEARCHER = 70917,
- SPELL_PLAGUE_SICKNESS = 70953,
- SPELL_UNBOUND_PLAGUE_PROTECTION = 70955,
- SPELL_MUTATED_PLAGUE = 72451,
- SPELL_MUTATED_PLAGUE_CLEAR = 72618,
+ SPELL_SLIME_PUDDLE_TRIGGER = 70341,
+ SPELL_MALLEABLE_GOO = 70852,
+ SPELL_UNSTABLE_EXPERIMENT = 70351,
+ SPELL_TEAR_GAS = 71617, // phase transition
+ SPELL_TEAR_GAS_CREATURE = 71618,
+ SPELL_TEAR_GAS_CANCEL = 71620,
+ SPELL_TEAR_GAS_PERIODIC_TRIGGER = 73170,
+ SPELL_CREATE_CONCOCTION = 71621,
+ SPELL_GUZZLE_POTIONS = 71893,
+ SPELL_OOZE_TANK_PROTECTION = 71770, // protects the tank
+ SPELL_CHOKING_GAS_BOMB = 71255,
+ SPELL_OOZE_VARIABLE = 74118,
+ SPELL_GAS_VARIABLE = 74119,
+ SPELL_UNBOUND_PLAGUE = 70911,
+ SPELL_UNBOUND_PLAGUE_SEARCHER = 70917,
+ SPELL_PLAGUE_SICKNESS = 70953,
+ SPELL_UNBOUND_PLAGUE_PROTECTION = 70955,
+ SPELL_MUTATED_PLAGUE = 72451,
+ SPELL_MUTATED_PLAGUE_CLEAR = 72618,
// Slime Puddle
- SPELL_GROW_STACKER = 70345,
- SPELL_GROW = 70347,
- SPELL_SLIME_PUDDLE_AURA = 70343,
+ SPELL_GROW_STACKER = 70345,
+ SPELL_GROW = 70347,
+ SPELL_SLIME_PUDDLE_AURA = 70343,
// Gas Cloud
- SPELL_GASEOUS_BLOAT_PROC = 70215,
- SPELL_GASEOUS_BLOAT = 70672,
- SPELL_GASEOUS_BLOAT_PROTECTION = 70812,
- SPELL_EXPUNGED_GAS = 70701,
+ SPELL_GASEOUS_BLOAT_PROC = 70215,
+ SPELL_GASEOUS_BLOAT = 70672,
+ SPELL_GASEOUS_BLOAT_PROTECTION = 70812,
+ SPELL_EXPUNGED_GAS = 70701,
// Volatile Ooze
- SPELL_OOZE_ERUPTION = 70492,
- SPELL_VOLATILE_OOZE_ADHESIVE = 70447,
- SPELL_OOZE_ERUPTION_SEARCH_PERIODIC = 70457,
- SPELL_VOLATILE_OOZE_PROTECTION = 70530,
+ SPELL_OOZE_ERUPTION = 70492,
+ SPELL_VOLATILE_OOZE_ADHESIVE = 70447,
+ SPELL_OOZE_ERUPTION_SEARCH_PERIODIC = 70457,
+ SPELL_VOLATILE_OOZE_PROTECTION = 70530,
// Choking Gas Bomb
- SPELL_CHOKING_GAS_BOMB_PERIODIC = 71259,
- SPELL_CHOKING_GAS_EXPLOSION_TRIGGER = 71280,
+ SPELL_CHOKING_GAS_BOMB_PERIODIC = 71259,
+ SPELL_CHOKING_GAS_EXPLOSION_TRIGGER = 71280,
// Mutated Abomination vehicle
- SPELL_ABOMINATION_VEHICLE_POWER_DRAIN = 70385,
- SPELL_MUTATED_TRANSFORMATION = 70311,
- SPELL_MUTATED_TRANSFORMATION_DAMAGE = 70405,
- SPELL_MUTATED_TRANSFORMATION_NAME = 72401,
+ SPELL_ABOMINATION_VEHICLE_POWER_DRAIN = 70385,
+ SPELL_MUTATED_TRANSFORMATION = 70311,
+ SPELL_MUTATED_TRANSFORMATION_DAMAGE = 70405,
+ SPELL_MUTATED_TRANSFORMATION_NAME = 72401,
+
+ // Unholy Infusion
+ SPELL_UNHOLY_INFUSION_CREDIT = 71518
};
#define SPELL_GASEOUS_BLOAT_HELPER RAID_MODE<uint32>(70672, 72455, 72832, 72833)
@@ -293,6 +296,10 @@ class boss_professor_putricide : public CreatureScript
{
_JustDied();
Talk(SAY_DEATH);
+
+ if (Is25ManRaid() && me->HasAura(SPELL_SHADOWS_FATE))
+ DoCastAOE(SPELL_UNHOLY_INFUSION_CREDIT, true);
+
DoCast(SPELL_MUTATED_PLAGUE_CLEAR);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 96cabfed918..8bdef30a711 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -82,6 +82,9 @@ enum Spells
SPELL_FOCUS_FIRE = 71350,
SPELL_ORDER_WHELP = 71357,
SPELL_CONCUSSIVE_SHOCK = 71337,
+
+ // Frost Infusion
+ SPELL_FROST_INFUSION_CREDIT = 72289
};
enum Events
@@ -231,8 +234,12 @@ class boss_sindragosa : public CreatureScript
void JustDied(Unit* killer)
{
- BossAI::JustDied(killer);
+ _JustDied();
Talk(SAY_DEATH);
+
+ if (Is25ManRaid() && me->HasAura(SPELL_SHADOWS_FATE))
+ DoCastAOE(SPELL_FROST_INFUSION_CREDIT, true);
+
}
void EnterCombat(Unit* victim)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
index 4e117d9f3e3..8edaf1aa985 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
@@ -54,6 +54,9 @@ enum SharedSpells
// The Lich King
SPELL_ARTHAS_TELEPORTER_CEREMONY = 72915,
SPELL_FROSTMOURNE_TELEPORT_VISUAL = 73078,
+
+ // Shadowmourne questline
+ SPELL_SHADOWS_FATE = 71169
};
enum TeleporterSpells