aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Spells/SpellMgr.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp21
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp7
3 files changed, 29 insertions, 3 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 61d9478760a..b725f43e3a5 100755
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -4377,6 +4377,10 @@ void SpellMgr::LoadSpellCustomAttr()
spellInfo->EffectImplicitTargetA[0] = TARGET_DEST_DEST;
++count;
break;
+ case 71159: // Awaken Plagued Zombies
+ spellInfo->DurationIndex = 21;
+ ++count;
+ break;
// THIS IS HERE BECAUSE COOLDOWN ON CREATURE PROCS IS NOT IMPLEMENTED
case 71604: // Mutated Strength (Professor Putricide)
case 72673: // Mutated Strength (Professor Putricide)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index 33f52773ade..2275bbe3bdc 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -346,7 +346,7 @@ class npc_precious_icc : public CreatureScript
struct npc_precious_iccAI : public ScriptedAI
{
- npc_precious_iccAI(Creature* creature) : ScriptedAI(creature)
+ npc_precious_iccAI(Creature* creature) : ScriptedAI(creature), _summons(me)
{
_instance = creature->GetInstanceScript();
}
@@ -357,6 +357,24 @@ class npc_precious_icc : public CreatureScript
_events.ScheduleEvent(EVENT_DECIMATE, urand(20000, 25000));
_events.ScheduleEvent(EVENT_MORTAL_WOUND, urand(3000, 7000));
_events.ScheduleEvent(EVENT_SUMMON_ZOMBIES, urand(20000, 22000));
+ _summons.DespawnAll();
+ }
+
+ void JustSummoned(Creature* summon)
+ {
+ _summons.Summon(summon);
+ if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
+ summon->AI()->AttackStart(target);
+ }
+
+ void SummonedCreatureDespawn(Creature* summon)
+ {
+ _summons.Despawn(summon);
+ }
+
+ void JustDied(Unit* /*killer*/)
+ {
+ _summons.DespawnAll();
}
void UpdateAI(const uint32 diff)
@@ -404,6 +422,7 @@ class npc_precious_icc : public CreatureScript
private:
EventMap _events;
+ SummonList _summons;
InstanceScript* _instance;
};
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
index 9132031b89d..3dd1e7f13b7 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp
@@ -45,7 +45,7 @@ class icecrown_citadel_teleport : public GameObjectScript
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Teleport to Sindragosa's Lair", GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT);
}
- player->SEND_GOSSIP_MENU(player->GetGossipTextId(go->GetGOInfo()->GetGossipMenuId()), go->GetGUID());
+ player->SEND_GOSSIP_MENU(player->GetGossipTextId(go), go->GetGUID());
return true;
}
@@ -78,7 +78,10 @@ class at_frozen_throne_teleport : public AreaTriggerScript
bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/)
{
if (InstanceScript* instance = player->GetInstanceScript())
- if (instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE && instance->GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) == DONE && instance->GetBossState(DATA_SINDRAGOSA) == DONE)
+ if (instance->GetBossState(DATA_PROFESSOR_PUTRICIDE) == DONE &&
+ instance->GetBossState(DATA_BLOOD_QUEEN_LANA_THEL) == DONE &&
+ instance->GetBossState(DATA_SINDRAGOSA) == DONE &&
+ instance->GetBossState(DATA_THE_LICH_KING) != IN_PROGRESS)
player->CastSpell(player, FROZEN_THRONE_TELEPORT, true);
return true;