aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/AI/CreatureAIImpl.h11
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp2
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp14
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp11
4 files changed, 24 insertions, 14 deletions
diff --git a/src/server/game/AI/CreatureAIImpl.h b/src/server/game/AI/CreatureAIImpl.h
index f3e7de15518..f92fb316377 100755
--- a/src/server/game/AI/CreatureAIImpl.h
+++ b/src/server/game/AI/CreatureAIImpl.h
@@ -544,17 +544,6 @@ inline bool CreatureAI::UpdateVictim()
return true;
}
-/*
-inline bool CreatureAI::UpdateVictim()
-{
- if (!me->isInCombat())
- return false;
- if (Unit *victim = me->SelectVictim())
- AttackStart(victim);
- return me->getVictim();
-}
-*/
-
inline bool CreatureAI::_EnterEvadeMode()
{
if (!me->isAlive())
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
index 553781913aa..f1f71bf31aa 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp
@@ -216,7 +216,7 @@ class boss_devourer_of_souls : public CreatureScript
instance->DoCompleteAchievement(ACHIEV_THREE_FACED);
int32 entryIndex;
- if (instance->GetData(DATA_TEAM_IN_INSTANCE) == TEAM_ALLIANCE)
+ if (instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE)
entryIndex = 0;
else
entryIndex = 1;
diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
index 6305a84a312..578fa2d1ec5 100644
--- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/instance_forge_of_souls.cpp
@@ -46,7 +46,7 @@ class instance_forge_of_souls : public InstanceMapScript
Map::PlayerList const &players = instance->GetPlayers();
if (!players.isEmpty())
if (Player* player = players.begin()->getSource())
- teamInInstance = player->GetTeamId();
+ teamInInstance = player->GetTeam();
switch (creature->GetEntry())
{
@@ -56,6 +56,18 @@ class instance_forge_of_souls : public InstanceMapScript
case CREATURE_DEVOURER:
devourerOfSouls = creature->GetGUID();
break;
+ case NPC_SYLVANAS_PART1:
+ if (teamInInstance == ALLIANCE)
+ creature->UpdateEntry(NPC_JAINA_PART1, ALLIANCE);
+ break;
+ case NPC_LORALEN:
+ if (teamInInstance == ALLIANCE)
+ creature->UpdateEntry(NPC_ELANDRA, ALLIANCE);
+ break;
+ case NPC_KALIRA:
+ if (teamInInstance == ALLIANCE)
+ creature->UpdateEntry(NPC_KORELN, ALLIANCE);
+ break;
}
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index af49b457338..cd436e1dc8f 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -93,6 +93,7 @@ enum Actions
ACTION_START_INTRO = 1,
ACTION_START_RIMEFANG = 2,
ACTION_START_OUTRO = 3,
+ ACTION_END_COMBAT = 4,
};
#define GUID_HOARFROST 1
@@ -128,8 +129,10 @@ class boss_tyrannus : public CreatureScript
{
if (!instance || static_cast<InstanceMap*>(me->GetMap())->GetScriptId() != GetScriptId(PoSScriptName))
me->IsAIEnabled = false;
- else if (!me->isDead())
+ else if (instance->GetBossState(DATA_TYRANNUS) != DONE)
Reset();
+ else
+ me->DespawnOrUnsummon();
}
void Reset()
@@ -183,6 +186,10 @@ class boss_tyrannus : public CreatureScript
// Prevent corpse despawning
if (TempSummon* summ = me->ToTempSummon())
summ->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN);
+
+ // Stop combat for Rimefang
+ if (Creature* rimefang = GetRimefang())
+ rimefang->AI()->DoAction(ACTION_END_COMBAT);
}
void DoAction(const int32 actionId)
@@ -306,6 +313,8 @@ class boss_rimefang : public CreatureScript
_events.ScheduleEvent(EVENT_MOVE_NEXT, 500, 0, PHASE_COMBAT);
_events.ScheduleEvent(EVENT_ICY_BLAST, 15000, 0, PHASE_COMBAT);
}
+ else if (actionId == ACTION_END_COMBAT)
+ _EnterEvadeMode();
}
void SetGUID(const uint64& guid, int32 type)