aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authorShauren <shauren.dev@gmail.com>2011-01-02 21:33:37 +0100
committerShauren <shauren.dev@gmail.com>2011-01-02 21:33:37 +0100
commit9c0cd63e933ece1a9b878b90103b305358202d25 (patch)
tree03f63fa2a44ea6af7c1989c0b7979ba28b3feb06 /src/server/scripts/Northrend
parentc2f98606b2d0c33f13b55c07c4c0e55d3d959676 (diff)
Core/Scripts: Added wrapper method for despawning creatures DespawnOrUnsummon
Diffstat (limited to 'src/server/scripts/Northrend')
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp2
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp10
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp29
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp8
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp4
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp2
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp7
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp13
-rwxr-xr-xsrc/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp13
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp54
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp4
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp2
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp2
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp2
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp2
-rw-r--r--src/server/scripts/Northrend/borean_tundra.cpp2
-rw-r--r--src/server/scripts/Northrend/grizzly_hills.cpp4
-rw-r--r--src/server/scripts/Northrend/howling_fjord.cpp4
-rw-r--r--src/server/scripts/Northrend/icecrown.cpp2
-rw-r--r--src/server/scripts/Northrend/sholazar_basin.cpp2
-rw-r--r--src/server/scripts/Northrend/zuldrak.cpp4
34 files changed, 85 insertions, 135 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index b80a6e55227..4c67249751d 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -445,7 +445,7 @@ public:
{
case ACTION_SCARAB_SUBMERGE:
DoCast(SPELL_SUBMERGE_EFFECT);
- me->ForcedDespawn(1000);
+ me->DespawnOrUnsummon(1000);
break;
}
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index 40d4c56aa80..2b4733a8ce8 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -216,7 +216,7 @@ public:
{
m_pInstance->SetData(TYPE_CRUSADERS, FAIL);
Summons.DespawnAll();
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
break;
case IN_PROGRESS:
@@ -238,7 +238,7 @@ public:
{
m_pInstance->SetData(TYPE_CRUSADERS, DONE);
Summons.DespawnAll();
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
break;
}
@@ -277,7 +277,7 @@ struct boss_faction_championsAI : public ScriptedAI
if (m_pInstance)
if (Creature* pChampionController = Unit::GetCreature((*me), m_pInstance->GetData64(NPC_CHAMPIONS_CONTROLLER)))
pChampionController->AI()->SetData(2, FAIL);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
float CalculateThreat(float distance, float armor, uint32 health)
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index 7b6ec8d15dc..4cc4c82a767 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -332,7 +332,7 @@ public:
void JustDied(Unit* /*pKiller*/)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void UpdateAI(const uint32 uiDiff)
@@ -340,7 +340,7 @@ public:
if (m_Timer <= uiDiff)
{
if (m_CountMax && m_CountMax == m_Count)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
{
DoCast(SPELL_INFERNAL_ERUPTION);
@@ -394,7 +394,7 @@ public:
return;
if (m_pInstance && m_pInstance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
if (m_uiFelStreakTimer <= uiDiff)
{
@@ -464,7 +464,7 @@ public:
if (m_Timer <= uiDiff)
{
if (m_CountMax && m_CountMax == m_Count)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
{
DoCast(SPELL_NETHER_PORTAL);
@@ -524,7 +524,7 @@ public:
return;
if (m_pInstance && m_pInstance->GetData(TYPE_JARAXXUS) != IN_PROGRESS)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
if (m_uiShivanSlashTimer <= uiDiff)
{
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index 019370c4df7..5f60ae822fc 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -159,7 +159,7 @@ public:
{
if (m_pInstance)
m_pInstance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void EnterCombat(Unit* /*pWho*/)
@@ -287,12 +287,7 @@ public:
{
case 0: // JUMP!? Fuck! THAT'S BEEZARR! Would someone PLEASE make MotionMaster->Move* work better?
if (m_bTargetDied)
- {
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
- }
+ me->DespawnOrUnsummon();
break;
}
}
@@ -392,15 +387,8 @@ struct boss_jormungarAI : public ScriptedAI
{
instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_DONE);
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
-
- if (TempSummon* summ = otherWorm->ToTempSummon())
- summ->UnSummon();
- else
- otherWorm->ForcedDespawn();
+ me->DespawnOrUnsummon();
+ otherWorm->DespawnOrUnsummon();
}
else
instanceScript->SetData(TYPE_NORTHREND_BEASTS, SNAKES_SPECIAL);
@@ -413,10 +401,7 @@ struct boss_jormungarAI : public ScriptedAI
if (instanceScript && instanceScript->GetData(TYPE_NORTHREND_BEASTS) != FAIL)
instanceScript->SetData(TYPE_NORTHREND_BEASTS, FAIL);
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit *pWho)
@@ -674,7 +659,7 @@ public:
{
casted = false;
me->SetReactState(REACT_PASSIVE);
- me->ForcedDespawn(60*IN_MILLISECONDS);
+ me->DespawnOrUnsummon(60*IN_MILLISECONDS);
}
void UpdateAI(const uint32 /*uiDiff*/)
@@ -775,7 +760,7 @@ public:
{
if (m_pInstance)
m_pInstance->SetData(TYPE_NORTHREND_BEASTS, FAIL);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit *pWho)
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 2a81ff31632..62d18c394ab 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -169,7 +169,7 @@ struct boss_twin_baseAI : public ScriptedAI
m_pInstance->SetData(TYPE_VALKIRIES, FAIL);
m_pInstance->SetData(DATA_HEALTH_TWIN_SHARED, me->GetMaxHealth());
}
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void MovementInform(uint32 uiType, uint32 uiId)
@@ -623,7 +623,7 @@ public:
{
DoCastAOE(SPELL_UNLEASHED_DARK);
me->GetMotionMaster()->MoveIdle();
- me->ForcedDespawn(500);
+ me->DespawnOrUnsummon(500);
}
m_uiRangeCheckTimer = IN_MILLISECONDS;
}
@@ -657,7 +657,7 @@ public:
{
DoCastAOE(SPELL_UNLEASHED_LIGHT);
me->GetMotionMaster()->MoveIdle();
- me->ForcedDespawn(500);
+ me->DespawnOrUnsummon(500);
}
m_uiRangeCheckTimer = IN_MILLISECONDS;
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index a250cee19eb..8aa05c87c6c 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -325,7 +325,7 @@ class boss_lich_king_toc : public CreatureScript
Creature* pTemp = Unit::GetCreature((*me), m_pInstance->GetData64(NPC_ANUBARAK));
if (!pTemp || !pTemp->isAlive())
pTemp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
m_pInstance->SetData(TYPE_EVENT, 0);
m_uiUpdateTimer = 20000;
break;
@@ -472,9 +472,9 @@ class npc_fizzlebang_toc : public CreatureScript
if (Creature* pTemp = Unit::GetCreature(*me, m_pInstance->GetData64(NPC_JARAXXUS)))
pTemp->SetUInt64Value(UNIT_FIELD_TARGET, me->GetGUID());
if (Creature* pTrigger = Unit::GetCreature(*me, m_uiTriggerGUID))
- pTrigger->ForcedDespawn();
+ pTrigger->DespawnOrUnsummon();
if (Creature* pPortal = Unit::GetCreature(*me, m_uiPortalGUID))
- pPortal->ForcedDespawn();
+ pPortal->DespawnOrUnsummon();
m_pInstance->SetData(TYPE_EVENT, 1144);
m_uiUpdateTimer = 10000;
break;
@@ -806,7 +806,7 @@ class npc_tirion_toc : public CreatureScript
} else m_pInstance->SetData(TYPE_EVENT, 6030);
break;
case 6020:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
m_uiUpdateTimer = 5000;
m_pInstance->SetData(TYPE_EVENT, 6030);
break;
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index 24831c97e9d..59663e812d1 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -379,7 +379,7 @@ class boss_krick : public CreatureScript
case EVENT_OUTRO_1:
{
if (Creature* temp = me->GetCreature(*me, _instanceScript->GetData64(DATA_JAINA_SYLVANAS_1)))
- temp->ForcedDespawn();
+ temp->DespawnOrUnsummon();
Creature* jainaOrSylvanas = NULL;
if (_instanceScript->GetData(DATA_TEAM_IN_INSTANCE) == TEAM_ALLIANCE)
@@ -599,7 +599,7 @@ class spell_exploding_orb_hasty_grow : public SpellScriptLoader
GetTarget()->RemoveAurasDueToSpell(SPELL_AUTO_GROW);
GetTarget()->RemoveAurasDueToSpell(SPELL_EXPLODING_ORB);
if (Creature* creature = GetTarget()->ToCreature())
- creature->ForcedDespawn(1000);
+ creature->DespawnOrUnsummon(1000);
}
}
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 fd2c5dff9d5..d61300adc92 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -166,7 +166,7 @@ class boss_tyrannus : public CreatureScript
if (Creature* rimefang = GetRimefang())
rimefang->AI()->EnterEvadeMode();
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit * victim)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index 3c45bc1e7a9..edde915b73c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -1373,12 +1373,7 @@ class spell_taldaram_flame_ball_visual : public SpellScriptLoader
target->AI()->DoAction(ACTION_FLAME_BALL_CHASE);
}
else // SPELL_FLAME_SPHERE_DEATH_EFFECT
- {
- if (TempSummon* summ = target->ToTempSummon())
- summ->UnSummon();
- else
- target->ForcedDespawn();
- }
+ target->DespawnOrUnsummon();
}
void Register()
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 5ed62438429..6f312c3e99b 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -643,8 +643,8 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
else if (id == POINT_FINAL)
{
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, deathbringerSaurfangGUID))
- deathbringer->ForcedDespawn();
- me->ForcedDespawn();
+ deathbringer->DespawnOrUnsummon();
+ me->DespawnOrUnsummon();
}
}
@@ -908,7 +908,7 @@ class npc_saurfang_event : public CreatureScript
if (action == ACTION_CHARGE && uiNPCindex)
me->GetMotionMaster()->MoveCharge(chargePos[uiNPCindex].GetPositionX(), chargePos[uiNPCindex].GetPositionY(), chargePos[uiNPCindex].GetPositionZ(), 13.0f, POINT_CHARGE);
else if (action == ACTION_DESPAWN)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
private:
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index 6cf12245382..72e514bbe29 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -291,10 +291,7 @@ class npc_coldflame : public CreatureScript
target = creOwner->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 40.0f, true); // or the tank if its solo
if (!target)
{
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
- else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -363,17 +360,15 @@ class npc_bone_spike : public CreatureScript
void JustDied(Unit* /*killer*/)
{
if (TempSummon* summ = me->ToTempSummon())
- {
if (Unit* trapped = summ->GetSummoner())
trapped->RemoveAurasDueToSpell(SPELL_IMPALED);
- summ->UnSummon();
- }
+
+ me->DespawnOrUnsummon();
}
void KilledUnit(Unit* victim)
{
- if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
+ me->DespawnOrUnsummon();
victim->RemoveAurasDueToSpell(SPELL_IMPALED);
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index d5a3647fc05..17c326cf891 100755
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -717,10 +717,8 @@ class npc_volatile_ooze : public CreatureScript
AttackStart(target);
me->CastCustomSpell(SPELL_VOLATILE_OOZE_ADHESIVE, SPELLVALUE_MAX_TARGETS, 1, target, false);
}
- else if (TempSummon* summ = me->ToTempSummon())
- summ->UnSummon();
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
else
newTargetSelectTimer -= diff;
@@ -815,10 +813,8 @@ class spell_putricide_expunged_gas : public SpellScriptLoader
for (uint8 i = 1; i < stack; ++i)
dmg += mod * stack;
}
- else if (TempSummon* summ = GetCaster()->ToTempSummon())
- summ->UnSummon();
else
- GetCaster()->ToCreature()->ForcedDespawn();
+ GetCaster()->ToCreature()->DespawnOrUnsummon();
SetHitDamage(dmg);
}
@@ -1091,10 +1087,7 @@ class spell_putricide_eat_ooze : public SpellScriptLoader
{
target->RemoveAurasDueToSpell(SPELL_GROW_STACKER);
target->RemoveAura(grow);
- if (TempSummon* summ = target->ToTempSummon())
- summ->UnSummon();
- else
- target->ForcedDespawn();
+ target->DespawnOrUnsummon();
}
else
grow->ModStackAmount(-4);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index 5498d715088..f71f7ce1b5c 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -270,13 +270,10 @@ class npc_little_ooze : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- if (TempSummon* summ = me->ToTempSummon())
- {
- summ->UnSummon();
- if (InstanceScript* instance = me->GetInstanceScript())
- if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
- rotface->AI()->SummonedCreatureDespawn(me);
- }
+ me->DespawnOrUnsummon();
+ if (InstanceScript* instance = me->GetInstanceScript())
+ if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
+ rotface->AI()->SummonedCreatureDespawn(me);
}
void UpdateAI(const uint32 diff)
@@ -332,13 +329,10 @@ class npc_big_ooze : public CreatureScript
void JustDied(Unit* /*killer*/)
{
- if (TempSummon* summ = me->ToTempSummon())
- {
- summ->UnSummon();
- if (InstanceScript* instance = me->GetInstanceScript())
- if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
- rotface->AI()->SummonedCreatureDespawn(me);
- }
+ me->DespawnOrUnsummon();
+ if (InstanceScript* instance = me->GetInstanceScript())
+ if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))
+ rotface->AI()->SummonedCreatureDespawn(me);
}
void DoAction(const int32 action)
@@ -501,16 +495,13 @@ class spell_rotface_little_ooze_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitUnit() && GetHitUnit()->isAlive()))
+ if (!(GetHitCreature() && GetHitUnit()->isAlive()))
return;
GetCaster()->RemoveAurasDueToSpell(SPELL_LITTLE_OOZE_COMBINE);
- GetHitUnit()->RemoveAurasDueToSpell(SPELL_LITTLE_OOZE_COMBINE);
- GetHitUnit()->CastSpell(GetCaster(), SPELL_OOZE_MERGE, true);
- if (TempSummon* summ = GetHitUnit()->ToTempSummon())
- summ->UnSummon();
- else
- GetHitCreature()->ForcedDespawn();
+ GetHitCreature()->RemoveAurasDueToSpell(SPELL_LITTLE_OOZE_COMBINE);
+ GetHitCreature()->CastSpell(GetCaster(), SPELL_OOZE_MERGE, true);
+ GetHitCreature()->DespawnOrUnsummon();
}
void Register()
@@ -536,12 +527,12 @@ class spell_rotface_large_ooze_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitUnit() && GetHitUnit()->isAlive()))
+ if (!(GetHitCreature() && GetHitCreature()->isAlive()))
return;
if (Aura* unstable = GetCaster()->GetAura(SPELL_UNSTABLE_OOZE))
{
- if (Aura* targetAura = GetHitUnit()->GetAura(SPELL_UNSTABLE_OOZE))
+ if (Aura* targetAura = GetHitCreature()->GetAura(SPELL_UNSTABLE_OOZE))
unstable->ModStackAmount(targetAura->GetStackAmount());
else
unstable->ModStackAmount(1);
@@ -550,13 +541,9 @@ class spell_rotface_large_ooze_combine : public SpellScriptLoader
}
// just for safety
- GetHitUnit()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
- GetHitUnit()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
-
- if (TempSummon* summ = GetHitUnit()->ToTempSummon())
- summ->UnSummon();
- else if (GetHitCreature())
- GetHitCreature()->ForcedDespawn();
+ GetHitCreature()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);
+ GetHitCreature()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);
+ GetHitCreature()->DespawnOrUnsummon();
}
void Register()
@@ -582,7 +569,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
void HandleScript(SpellEffIndex /*effIndex*/)
{
- if (!(GetHitUnit() && GetHitUnit()->isAlive()))
+ if (!(GetHitCreature() && GetHitCreature()->isAlive()))
return;
if (Aura* unstable = GetCaster()->GetAura(SPELL_UNSTABLE_OOZE))
@@ -611,10 +598,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader
}
}
- if (TempSummon* summ = GetHitUnit()->ToTempSummon())
- summ->UnSummon();
- else if (GetHitCreature())
- GetHitCreature()->ForcedDespawn();
+ GetHitCreature()->DespawnOrUnsummon();
}
void Register()
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
index 2eda1a7d857..c8702ca3d90 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_ionar.cpp
@@ -180,7 +180,7 @@ public:
pSpark->GetMotionMaster()->MovePoint(DATA_POINT_CALLBACK, pos);
}
else
- pSpark->ForcedDespawn();
+ pSpark->DespawnOrUnsummon();
}
}
}
@@ -331,7 +331,7 @@ public:
return;
if (uiPointId == DATA_POINT_CALLBACK)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void DamageTaken(Unit * /*pDoneBy*/, uint32 &uiDamage)
@@ -344,7 +344,7 @@ public:
// Despawn if the encounter is not running
if (pInstance && pInstance->GetData(TYPE_IONAR) != IN_PROGRESS)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
return;
}
@@ -367,7 +367,7 @@ public:
}
}
else
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
uiCheckTimer = 2*IN_MILLISECONDS;
}
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
index 693c40b618f..b2772393a2a 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp
@@ -185,7 +185,7 @@ public:
if (Creature* pTemp = Unit::GetCreature(*me, *itr))
{
if (pTemp->isAlive())
- pTemp->ForcedDespawn();
+ pTemp->DespawnOrUnsummon();
}
}
@@ -432,7 +432,7 @@ public:
// This is the dummy effect of the spells
if (pSpell->Id == SPELL_SHATTER_N || pSpell->Id == SPELL_SHATTER_H)
if (me->GetEntry() == NPC_BRITTLE_GOLEM)
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
void UpdateAI(const uint32 uiDiff)
diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
index fe7061f024b..885462ea8d8 100644
--- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
+++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
@@ -343,7 +343,7 @@ public:
{
Creature* pTemp = Unit::GetCreature(*me, pInstance ? (*itr) : 0);
if (pTemp && pTemp->isAlive())
- pTemp->ForcedDespawn();
+ pTemp->DespawnOrUnsummon();
}
lDwarfGUIDList.clear();
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp
index caee75d546d..7479d4d3a98 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_algalon.cpp
@@ -167,7 +167,7 @@ public:
if (Creature* pTemp = Unit::GetCreature(*me, *itr))
{
if (pTemp->isAlive())
- pTemp->ForcedDespawn();
+ pTemp->DespawnOrUnsummon();
}
}
m_lCollapsingStarGUIDList.clear();
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
index 7075c35809a..a8af8e4ed41 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_assembly_of_iron.cpp
@@ -511,7 +511,7 @@ public:
me->setFaction(16); // Same faction as bosses
DoCast(SPELL_RUNE_OF_POWER);
- me->ForcedDespawn(60000);
+ me->DespawnOrUnsummon(60000);
}
};
};
@@ -572,7 +572,7 @@ public:
{
me->CastSpell(me, SPELL_RUNE_OF_SUMMONING_SUMMON, false);
if (++summonCount == 10) // TODO: Find out if this amount is right
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
else
summonTimer = 2000; // TODO: Find out of timer is right
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
index 36435a20670..838413d9c9f 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp
@@ -400,7 +400,7 @@ public:
me->SetHealth(me->GetMaxHealth());
me->RemoveAllAuras();
DoCast(me, SPELL_SARONITE_VAPORS);
- me->ForcedDespawn(30000);
+ me->DespawnOrUnsummon(30000);
if (Creature * pVezax = me->GetCreature(*me, pInstance ? pInstance->GetData64(TYPE_VEZAX) : 0))
pVezax->AI()->DoAction(ACTION_VAPORS_DIE);
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp
index 4c2a1257501..1960ff2e4fa 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_ignis.cpp
@@ -330,7 +330,7 @@ public:
if (pIgnis->AI())
pIgnis->AI()->DoAction(ACTION_REMOVE_BUFF);
- me->ForcedDespawn(1000);
+ me->DespawnOrUnsummon(1000);
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
index 2ea6cdfe7b8..a6b9f228620 100644
--- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
+++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp
@@ -616,7 +616,7 @@ public:
pXT002->ModifyHealth(int32(pXT002->CountPctFromMaxHealth(1)));
// Despawns the scrapbot
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
}
@@ -739,7 +739,7 @@ public:
DoCast(me, SPELL_BOOM);
//Despawns the boombot
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
index 1b52f682043..5dc022edf30 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
@@ -263,7 +263,7 @@ public:
break;
case CREATURE_TRIGGER:
pSummoned->CastSpell((Unit*)NULL, SPELL_FREEZING_CLOUD, true);
- pSummoned->ForcedDespawn(10*IN_MILLISECONDS);
+ pSummoned->DespawnOrUnsummon(10*IN_MILLISECONDS);
break;
}
Summons.Summon(pSummoned);
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index 05eb0aaba04..c1970aaadb4 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -193,7 +193,7 @@ public:
{
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetDisplayId(DATA_SVALA_DISPLAY_ID);
- pArthas->ToTempSummon()->UnSummon();
+ pArthas->DespawnOrUnsummon();
uiArthasGUID = 0;
Phase = FINISHED;
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
index 14cb69592a6..e06c4018f0f 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp
@@ -243,7 +243,7 @@ class mob_tempest_minion : public CreatureScript
if (overchargedAura->GetStackAmount() == 10)
{
DoCast(me, SPELL_OVERCHARGED_BLAST);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
DoScriptText(EMOTE_MINION_RESPAWN, me);
}
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index fe1c48cae73..6213a1cd82c 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -207,7 +207,7 @@ public:
if (killTimer <= diff)
{
if (!UpdateVictim())
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
killTimer = 10000;
}
else
diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
index b6f7c137329..6387cfc8727 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
@@ -95,7 +95,7 @@ public:
{
if (pInstance && pInstance->GetData(DATA_REMOVE_NPC) == 1)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
pInstance->SetData(DATA_REMOVE_NPC, 0);
}
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index 09f555950a5..7b8d72194bd 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -376,7 +376,7 @@ public:
{
if (pIchoron->AI())
pIchoron->AI()->DoAction(ACTION_WATER_ELEMENT_HIT);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
}
}
}
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index bdf073e5911..012d67f1846 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -586,7 +586,7 @@ public:
if (pInstance->GetData(DATA_REMOVE_NPC) == 1)
{
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
pInstance->SetData(DATA_REMOVE_NPC, 0);
}
diff --git a/src/server/scripts/Northrend/borean_tundra.cpp b/src/server/scripts/Northrend/borean_tundra.cpp
index 07a348326a0..1f10da283ae 100644
--- a/src/server/scripts/Northrend/borean_tundra.cpp
+++ b/src/server/scripts/Northrend/borean_tundra.cpp
@@ -775,7 +775,7 @@ public:
break;
case 7:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
IntroPhase = 0;
IntroTimer = 0;
break;
diff --git a/src/server/scripts/Northrend/grizzly_hills.cpp b/src/server/scripts/Northrend/grizzly_hills.cpp
index c030c6058da..67e0ad5d776 100644
--- a/src/server/scripts/Northrend/grizzly_hills.cpp
+++ b/src/server/scripts/Northrend/grizzly_hills.cpp
@@ -591,7 +591,7 @@ public:
void MovementInform(uint32, uint32 id)
{
if (id == 1)
- me->ForcedDespawn(DespawnTimer);
+ me->DespawnOrUnsummon(DespawnTimer);
}
void SpellHit(Unit *caster, const SpellEntry *spell)
@@ -606,7 +606,7 @@ public:
else
{
me->SetStandState(UNIT_STAND_STATE_STAND);
- me->ForcedDespawn(DespawnTimer);
+ me->DespawnOrUnsummon(DespawnTimer);
}
}
diff --git a/src/server/scripts/Northrend/howling_fjord.cpp b/src/server/scripts/Northrend/howling_fjord.cpp
index 57c46659336..1729f5f55d5 100644
--- a/src/server/scripts/Northrend/howling_fjord.cpp
+++ b/src/server/scripts/Northrend/howling_fjord.cpp
@@ -111,7 +111,7 @@ public:
case 23:
if (pPlayer)
pPlayer->GroupEventHappens(QUEST_TRAIL_OF_FIRE, me);
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
break;
case 5:
if (Unit* Trigger = me->FindNearestCreature(NPC_HANES_FIRE_TRIGGER,10.0f))
@@ -205,7 +205,7 @@ public:
switch(i)
{
case 26:
- me->ForcedDespawn();
+ me->DespawnOrUnsummon();
break;
}
}
diff --git a/src/server/scripts/Northrend/icecrown.cpp b/src/server/scripts/Northrend/icecrown.cpp
index a5226e7cfd7..808717ab6c9 100644
--- a/src/server/scripts/Northrend/icecrown.cpp
+++ b/src/server/scripts/Northrend/icecrown.cpp
@@ -242,7 +242,7 @@ public:
uiDamage = 0;
CAST_PLR(pDoneBy)->KilledMonsterCredit(NPC_ARGENT_VALIANT_CREDIT,0);
me->setFaction(35);
- me->ForcedDespawn(5000);
+ me->DespawnOrUnsummon(5000);
me->SetHomePosition(me->GetPositionX(),me->GetPositionY(),me->GetPositionZ(),me->GetOrientation());
EnterEvadeMode();
}
diff --git a/src/server/scripts/Northrend/sholazar_basin.cpp b/src/server/scripts/Northrend/sholazar_basin.cpp
index 929647ec130..d18a00c7644 100644
--- a/src/server/scripts/Northrend/sholazar_basin.cpp
+++ b/src/server/scripts/Northrend/sholazar_basin.cpp
@@ -514,7 +514,7 @@ public:
if (spellId)
pPlayer->CastSpell(pPlayer, spellId, true);
DoScriptText(SAY_DWARF_HELP, pCreature);
- pCreature->ForcedDespawn();
+ pCreature->DespawnOrUnsummon();
return true;
}
};
diff --git a/src/server/scripts/Northrend/zuldrak.cpp b/src/server/scripts/Northrend/zuldrak.cpp
index 7b2eb80e91d..f7bb2464817 100644
--- a/src/server/scripts/Northrend/zuldrak.cpp
+++ b/src/server/scripts/Northrend/zuldrak.cpp
@@ -1153,10 +1153,8 @@ public:
{
if (!SummonList.empty())
for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr)
- {
if (Creature* pTemp = Unit::GetCreature(*me, *itr))
- pTemp->ForcedDespawn();
- }
+ pTemp->DespawnOrUnsummon();
if (Player* pPlayer = pKiller->GetCharmerOrOwnerPlayerOrPlayerItself())
pPlayer->GetCharmerOrOwnerPlayerOrPlayerItself()->GroupEventHappens(QUEST_AMPHITHEATER_ANGUISH_FROM_BEYOND, pKiller);