diff options
Diffstat (limited to 'src/server/scripts')
50 files changed, 132 insertions, 98 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp index 5ce3319263e..ce7d2783309 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_coren_direbrew.cpp @@ -346,7 +346,7 @@ struct npc_direbrew_minion : public ScriptedAI DoZoneInCombat(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { if (Creature* coren = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_COREN))) coren->AI()->JustSummoned(me); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp index d4ca82f1a14..f4254a63791 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp @@ -54,7 +54,7 @@ public: _Reset(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { me->GetMotionMaster()->MovePath(GIZRUL_PATH, false); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp index 14afc3265f8..8117c59393f 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp @@ -190,7 +190,7 @@ public: events.ScheduleEvent(EVENT_MORTAL_STRIKE, 17s, 19s); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { me->SetImmuneToPC(false); DoZoneInCombat(); diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp index e54baebbc1c..e78a4013457 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp @@ -518,7 +518,7 @@ public: if (!me->IsSummon()) return; - if (Unit* summon = me->ToTempSummon()->GetSummoner()) + if (Unit* summon = me->ToTempSummon()->GetSummonerUnit()) if (Creature* creature = summon->ToCreature()) creature->AI()->SetData(2, 1); } @@ -536,7 +536,7 @@ public: if (!me->IsSummon()) return; - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) if (Creature* creature = summoner->ToCreature()) creature->AI()->SetData(2, 2); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp index 9d827dc2fe9..6bd4a8a8e4b 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp @@ -160,7 +160,7 @@ public: BossAI::JustSummoned(summon); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (summoner->GetEntry() == NPC_MIDNIGHT) _phase = PHASE_ATTUMEN_ENGAGES; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index 28ceccc854c..fd5ef61cab3 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -210,7 +210,7 @@ public: { npc_demon_chainAI(Creature* creature) : PassiveAI(creature) { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { _sacrificeGUID = summoner->GetGUID(); DoCastSelf(SPELL_DEMON_CHAINS, true); diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index 822f8a87b97..ac4680ef6fc 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -389,7 +389,7 @@ struct npc_felblood_kaelthas_phoenix : public ScriptedAI _isInEgg = false; } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { DoZoneInCombat(); DoCastSelf(SPELL_BURN); diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index c78ff579661..a1f2feb5d56 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -1180,7 +1180,7 @@ class npc_scarlet_miner : public CreatureScript Initialize(); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { carGUID = summoner->GetGUID(); } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp index a0f4d0e0d7b..f571f094bd5 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp @@ -88,7 +88,7 @@ public: { Player* player = nullptr; if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) player = summoner->ToPlayer(); if (!player) diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp index ab6301a020c..0fb7059404d 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_darkmaster_gandling.cpp @@ -88,7 +88,7 @@ class boss_darkmaster_gandling : public CreatureScript gate->SetGoState(GO_STATE_READY); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { Talk(YELL_SUMMONED); me->GetMotionMaster()->MoveRandom(5); diff --git a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp index 2c4594165e2..eeca684b43f 100644 --- a/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp +++ b/src/server/scripts/EasternKingdoms/Scholomance/boss_kirtonos_the_herald.cpp @@ -124,7 +124,7 @@ class boss_kirtonos_the_herald : public CreatureScript me->DespawnOrUnsummon(5000); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { events.ScheduleEvent(INTRO_1, 500); me->SetDisableGravity(true); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index ad810627200..cd84e5b3c21 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -428,7 +428,7 @@ public: }); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { _summonerGUID = summoner->GetGUID(); } @@ -466,7 +466,7 @@ public: _instance = me->GetInstanceScript(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { if (Creature* muru = _instance->GetCreature(DATA_MURU)) muru->AI()->JustSummoned(me); diff --git a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp index 36d7b7d6ca2..9e2a0f33814 100644 --- a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp @@ -247,7 +247,7 @@ public: if (me->IsSummon()) { - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) { if (summoner->GetTypeId() == TYPEID_UNIT && summoner->IsAlive() && !summoner->IsInCombat()) summoner->ToCreature()->AI()->AttackStart(who); @@ -261,7 +261,7 @@ public: if (me->IsSummon()) { - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) { if (summoner->GetTypeId() == TYPEID_UNIT && summoner->IsAlive()) summoner->ToCreature()->DisappearAndDie(); @@ -276,7 +276,7 @@ public: if (me->IsSummon()) { - Unit* summoner = me->ToTempSummon()->GetSummoner(); + Unit* summoner = me->ToTempSummon()->GetSummonerUnit(); if (summoner && summoner->GetTypeId() == TYPEID_UNIT && summoner->IsAIEnabled()) { npc_lord_gregor_lescovar::npc_lord_gregor_lescovarAI* ai = diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index 05d31d88a3e..d9b0e2da887 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -1282,7 +1282,7 @@ public: void JustDied(Unit* /*killer*/) override { if (TempSummon* summon = me->ToTempSummon()) - if (Unit* summoner = summon->GetSummoner()) + if (Unit* summoner = summon->GetSummonerUnit()) if (summoner->IsAIEnabled()) summoner->GetAI()->DoAction(ACTION_FLESH_TENTACLE_KILLED); } diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp index cb5f81e9ac2..9995c9fa1a4 100644 --- a/src/server/scripts/Kalimdor/zone_durotar.cpp +++ b/src/server/scripts/Kalimdor/zone_durotar.cpp @@ -122,7 +122,7 @@ class npc_tiger_matriarch_credit : public CreatureScript if (!(*itr)->IsSummon()) continue; - if (Unit* summoner = (*itr)->ToTempSummon()->GetSummoner()) + if (Unit* summoner = (*itr)->ToTempSummon()->GetSummonerUnit()) if (!summoner->HasAura(SPELL_NO_SUMMON_AURA) && !summoner->HasAura(SPELL_SUMMON_ZENTABRA_TRIGGER) && !summoner->IsInCombat()) { @@ -166,9 +166,10 @@ class npc_tiger_matriarch : public CreatureScript _events.ScheduleEvent(EVENT_NOSUMMON, 50s); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { - if (summoner->GetTypeId() != TYPEID_PLAYER || !summoner->GetVehicle()) + Player* summoner = summonerWO->ToPlayer(); + if (!summoner || !summoner->GetVehicle()) return; _tigerGuid = summoner->GetVehicle()->GetBase()->GetGUID(); @@ -184,7 +185,7 @@ class npc_tiger_matriarch : public CreatureScript if (victim->GetTypeId() != TYPEID_UNIT || !victim->IsSummon()) return; - if (Unit* vehSummoner = victim->ToTempSummon()->GetSummoner()) + if (Unit* vehSummoner = victim->ToTempSummon()->GetSummonerUnit()) { vehSummoner->RemoveAurasDueToSpell(SPELL_NO_SUMMON_AURA); vehSummoner->RemoveAurasDueToSpell(SPELL_DETECT_INVIS); @@ -203,7 +204,7 @@ class npc_tiger_matriarch : public CreatureScript { damage = 0; me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - if (Unit* vehSummoner = attacker->ToTempSummon()->GetSummoner()) + if (Unit* vehSummoner = attacker->ToTempSummon()->GetSummonerUnit()) { vehSummoner->AddAura(SPELL_SUMMON_ZENTABRA_TRIGGER, vehSummoner); vehSummoner->CastSpell(vehSummoner, SPELL_SUMMON_ZENTABRA, true); @@ -240,7 +241,7 @@ class npc_tiger_matriarch : public CreatureScript if (Unit* tiger = ObjectAccessor::GetUnit(*me, _tigerGuid)) { if (tiger->IsSummon()) - if (Unit* vehSummoner = tiger->ToTempSummon()->GetSummoner()) + if (Unit* vehSummoner = tiger->ToTempSummon()->GetSummonerUnit()) me->AddAura(SPELL_NO_SUMMON_AURA, vehSummoner); } _events.ScheduleEvent(EVENT_NOSUMMON, 50s); diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp index a3631d92746..fc480b42418 100644 --- a/src/server/scripts/Kalimdor/zone_moonglade.cpp +++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp @@ -145,7 +145,7 @@ public: Initialize(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { std::list<Player*> playerOnQuestList; Trinity::AnyPlayerInObjectRangeCheck checker(me, 5.0f); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp index 42306de5477..1e853f5c1cd 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp @@ -898,7 +898,7 @@ class npc_gatewatcher_web_wrap : public CreatureScript void JustDied(Unit* /*killer*/) override { if (TempSummon* meSummon = me->ToTempSummon()) - if (Unit* summoner = meSummon->GetSummoner()) + if (Unit* summoner = meSummon->GetSummonerUnit()) summoner->RemoveAurasDueToSpell(SPELL_WEB_WRAP_WRAPPED); } }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp index 3a7333302dc..9d609457cf5 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_general_zarithrian.cpp @@ -202,7 +202,7 @@ class npc_onyx_flamecaller : public CreatureScript void EnterEvadeMode(EvadeReason /*why*/) override { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { // Let Zarithrian count as summoner. if (Creature* zarithrian = _instance->GetCreature(DATA_GENERAL_ZARITHRIAN)) diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index 078be324bce..2c49d006433 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -1011,7 +1011,7 @@ class npc_meteor_strike_initial : public CreatureScript } } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { Creature* owner = summoner->ToCreature(); if (!owner) @@ -1083,7 +1083,7 @@ class npc_meteor_strike : public CreatureScript } } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { // Let Halion Controller count as summoner. if (Creature* controller = _instance->GetCreature(DATA_HALION_CONTROLLER)) @@ -1146,7 +1146,7 @@ class npc_meteor_strike_flame : public CreatureScript _events.ScheduleEvent(EVENT_SPAWN_METEOR_FLAME, Milliseconds(800)); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { // Let Halion Controller count as summoner. if (Creature* controller = _instance->GetCreature(DATA_HALION_CONTROLLER)) @@ -1219,7 +1219,7 @@ class npc_combustion_consumption : public CreatureScript } } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { // Let Halion Controller count as summoner if (Creature* controller = _instance->GetCreature(DATA_HALION_CONTROLLER)) @@ -1270,7 +1270,7 @@ class npc_living_inferno : public CreatureScript { npc_living_infernoAI(Creature* creature) : ScriptedAI(creature) { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { DoZoneInCombat(); me->CastSpell(me, SPELL_BLAZING_AURA, true); @@ -1320,7 +1320,7 @@ class npc_living_ember : public CreatureScript { npc_living_emberAI(Creature* creature) : ScriptedAI(creature) { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { if (InstanceScript* instance = me->GetInstanceScript()) if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER)) diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index a86fcb01279..046512f011f 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -487,7 +487,7 @@ public: void JustDied(Unit* /*killer*/) override { if (TempSummon* summ = me->ToTempSummon()) - if (Unit* summoner = summ->GetSummoner()) + if (Unit* summoner = summ->GetSummonerUnit()) if (summoner->IsAlive()) summoner->GetAI()->SetData(1, 0); } diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp index edf788bc6c2..28ca75c536f 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_bronjahm.cpp @@ -232,7 +232,7 @@ class npc_corrupted_soul_fragment : public CreatureScript instance = me->GetInstanceScript(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { if (Creature* bronjahm = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRONJAHM))) bronjahm->AI()->JustSummoned(me); diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index cdcc07c1967..66aa4734776 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -2180,7 +2180,7 @@ struct npc_escape_event_trash : public ScriptedAI me->DespawnOrUnsummon(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { DoZoneInCombat(me); if (Creature* leader = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ESCAPE_LEADER))) @@ -2212,7 +2212,7 @@ class npc_raging_ghoul : public CreatureScript _events.ScheduleEvent(EVENT_RAGING_GHOUL_JUMP, 5s); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { me->CastSpell(me, SPELL_RAGING_GHOUL_SPAWN, true); me->SetReactState(REACT_PASSIVE); @@ -2278,7 +2278,7 @@ class npc_risen_witch_doctor : public CreatureScript _events.ScheduleEvent(EVENT_RISEN_WITCH_DOCTOR_CURSE, 7s); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { me->CastSpell(me, SPELL_RISEN_WITCH_DOCTOR_SPAWN, true); me->SetReactState(REACT_PASSIVE); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index 7ec2aa87c66..95c636989db 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -245,7 +245,7 @@ class npc_pit_of_saron_icicle : public CreatureScript me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { _summonerGUID = summoner->GetGUID(); diff --git a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp index 0c81632cc3b..01bd2e92d67 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_slad_ran.cpp @@ -247,7 +247,7 @@ public: target->CastSpell(target, SPELL_SNAKE_WRAP, true); if (TempSummon* _me = me->ToTempSummon()) - if (Unit* summoner = _me->GetSummoner()) + if (Unit* summoner = _me->GetSummonerUnit()) if (Creature* sladran = summoner->ToCreature()) sladran->AI()->SetGUID(target->GetGUID(), DATA_SNAKES_WHYD_IT_HAVE_TO_BE_SNAKES); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index 81a0dd61ee2..cd2552458c3 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -375,9 +375,10 @@ class npc_coldflame : public CreatureScript { } - void IsSummonedBy(Unit* owner) override + void IsSummonedBy(WorldObject* ownerWO) override { - if (owner->GetTypeId() != TYPEID_UNIT) + Creature* owner = ownerWO->ToCreature(); + if (!owner) return; Position pos; @@ -451,7 +452,7 @@ class npc_bone_spike : public CreatureScript void JustDied(Unit* /*killer*/) override { if (TempSummon* summ = me->ToTempSummon()) - if (Unit* trapped = summ->GetSummoner()) + if (Unit* trapped = summ->GetSummonerUnit()) trapped->RemoveAurasDueToSpell(SPELL_IMPALED); me->DespawnOrUnsummon(); @@ -463,8 +464,11 @@ class npc_bone_spike : public CreatureScript victim->RemoveAurasDueToSpell(SPELL_IMPALED); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; DoCast(summoner, SPELL_IMPALED); summoner->CastSpell(me, SPELL_RIDE_VEHICLE, true); _events.ScheduleEvent(EVENT_FAIL_BONED, 8s); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp index 455fcfbc34b..83121e84fd5 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp @@ -259,8 +259,11 @@ class npc_little_ooze : public CreatureScript { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; DoCast(me, SPELL_LITTLE_OOZE_COMBINE, true); DoCast(me, SPELL_WEAK_RADIATING_OOZE, true); DoCast(me, SPELL_GREEN_ABOMINATION_HITTIN__YA_PROC, true); @@ -310,7 +313,7 @@ class npc_big_ooze : public CreatureScript { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { DoCast(me, SPELL_LARGE_OOZE_COMBINE, true); DoCast(me, SPELL_LARGE_OOZE_BUFF_COMBINE, true); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 893ef694541..eefbefeac53 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -1404,7 +1404,7 @@ class npc_raging_spirit : public CreatureScript DoCast(me, SPELL_PLAGUE_AVOIDANCE, true); DoCast(me, SPELL_RAGING_SPIRIT_VISUAL, true); if (TempSummon* summon = me->ToTempSummon()) - if (Unit* summoner = summon->GetSummoner()) + if (Unit* summoner = summon->GetSummonerUnit()) summoner->CastSpell(me, SPELL_RAGING_SPIRIT_VISUAL_CLONE, true); DoCast(me, SPELL_BOSS_HITTIN_YA, true); } @@ -1422,7 +1422,7 @@ class npc_raging_spirit : public CreatureScript } } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { // player is the spellcaster so register summon manually if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING))) @@ -1501,7 +1501,7 @@ class npc_valkyr_shadowguard : public CreatureScript DoCast(me, SPELL_WINGS_OF_THE_DAMNED, false); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { _events.Reset(); _events.ScheduleEvent(EVENT_GRAB_PLAYER, 2500ms); @@ -1651,8 +1651,11 @@ class npc_strangulate_vehicle : public CreatureScript { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; me->SetFacingToObject(summoner); DoCast(summoner, SPELL_HARVEST_SOUL_VEHICLE); _events.Reset(); @@ -1671,7 +1674,7 @@ class npc_strangulate_vehicle : public CreatureScript if (TempSummon* summ = me->ToTempSummon()) { - if (Unit* summoner = summ->GetSummoner()) + if (Unit* summoner = summ->GetSummonerUnit()) { DoCast(summoner, SPELL_HARVEST_SOUL_TELEPORT_BACK); summoner->RemoveAurasDueToSpell(SPELL_HARVEST_SOUL_DAMAGE_AURA); @@ -1698,7 +1701,7 @@ class npc_strangulate_vehicle : public CreatureScript me->GetMotionMaster()->MoveIdle(); if (TempSummon* summ = me->ToTempSummon()) { - if (Unit* summoner = summ->GetSummoner()) + if (Unit* summoner = summ->GetSummonerUnit()) { summoner->CastSpell(nullptr, SPELL_HARVEST_SOUL_VISUAL, true); summoner->ExitVehicle(summoner); @@ -1822,7 +1825,7 @@ class npc_terenas_menethil : public CreatureScript } } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { _events.Reset(); _events.SetPhase(PHASE_OUTRO); @@ -1970,7 +1973,7 @@ class npc_spirit_bomb : public CreatureScript { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { float destX, destY, destZ; me->GetPosition(destX, destY); @@ -2031,7 +2034,7 @@ class npc_broken_frostmourne : public CreatureScript _events.Reset(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { _events.SetPhase(PHASE_OUTRO); _events.ScheduleEvent(EVENT_OUTRO_KNOCK_BACK, 3s, 0, PHASE_OUTRO); @@ -2840,7 +2843,7 @@ class spell_the_lich_king_vile_spirit_damage_target_search : public SpellScriptL // this spell has SPELL_AURA_BLOCK_SPELL_FAMILY so every next cast of this // searcher spell will be blocked if (TempSummon* summon = GetCaster()->ToTempSummon()) - if (Unit* summoner = summon->GetSummoner()) + if (Unit* summoner = summon->GetSummonerUnit()) summoner->GetAI()->SetData(DATA_VILE, 1); GetCaster()->CastSpell(nullptr, SPELL_SPIRIT_BURST, true); GetCaster()->ToCreature()->DespawnOrUnsummon(3000); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index 4529f8a0614..915ad51d7d9 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -875,7 +875,7 @@ class npc_suppresser : public CreatureScript _events.Reset(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { if (Creature* valithria = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_DREAMWALKER))) { diff --git a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp index 71de5674565..7bab576f1ce 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_grobbulus.cpp @@ -124,7 +124,7 @@ class npc_grobbulus_poison_cloud : public CreatureScript creature->SetReactState(REACT_PASSIVE); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { // no visual when casting in ctor or Reset() DoCast(me, SPELL_POISON_CLOUD_PASSIVE, true); diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 2207318adc6..aae8eb7886c 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -1389,7 +1389,7 @@ class npc_scion_of_eternity : public CreatureScript _events.Reset(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { _events.ScheduleEvent(EVENT_ARCANE_BARRAGE, 14s, 29s); } @@ -1452,7 +1452,7 @@ public: me->SetReactState(REACT_PASSIVE); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (Creature* creature = summoner->ToCreature()) creature->AI()->SetGUID(me->GetGUID(), DATA_LAST_OVERLOAD_GUID); @@ -1505,7 +1505,7 @@ public: { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { _summoner.Clear(); if (Player* player = summoner->ToPlayer()) @@ -1571,7 +1571,7 @@ class npc_static_field : public CreatureScript { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { // For some great reason the spell doesn't time it... me->DespawnOrUnsummon(30*IN_MILLISECONDS); diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp index 8550496174c..ebd194dbeb8 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_ormorok.cpp @@ -208,7 +208,7 @@ public: _despawntimer = 0; } - void IsSummonedBy(Unit* owner) override + void IsSummonedBy(WorldObject* owner) override { switch (me->GetEntry()) { diff --git a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp index 8e1e896f9f7..456fe36d89f 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/oculus.cpp @@ -220,7 +220,7 @@ class npc_image_belgaristrasz : public CreatureScript { npc_image_belgaristraszAI(Creature* creature) : ScriptedAI(creature) { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (summoner->GetEntry() == NPC_VAROS) { @@ -286,7 +286,7 @@ class npc_ruby_emerald_amber_drake : public CreatureScript } } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (_instance->GetBossState(DATA_EREGOS) == IN_PROGRESS) if (Creature* eregos = me->FindNearestCreature(NPC_EREGOS, 450.0f, true)) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp index 6b2d514e86a..baae21d8268 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp @@ -228,9 +228,10 @@ class npc_iron_roots : public CreatureScript me->SetReactState(REACT_PASSIVE); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { - if (summoner->GetTypeId() != TYPEID_PLAYER) + Player* summoner = summonerWO->ToPlayer(); + if (!summoner) return; // Summoner is a player, who should have root aura on self summonerGUID = summoner->GetGUID(); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index 8ca25b2a49f..0d7e2aa256e 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -229,8 +229,12 @@ class npc_flash_freeze : public CreatureScript checkDespawnTimer -= diff; } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; + targetGUID = summoner->GetGUID(); me->SetInCombatWith(summoner); AddThreat(summoner, 250.0f); @@ -271,8 +275,12 @@ class npc_ice_block : public CreatureScript ObjectGuid targetGUID; - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; + targetGUID = summoner->GetGUID(); summoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PACIFIED); summoner->SetControlled(true, UNIT_STATE_ROOT); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp index d3d955bfd5f..bb343df0f77 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp @@ -1210,7 +1210,7 @@ class npc_guardian_of_yogg_saron : public CreatureScript DoMeleeAttackIfReady(); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (summoner->GetEntry() != NPC_OMINOUS_CLOUD) return; @@ -1317,7 +1317,7 @@ class npc_constrictor_tentacle : public CreatureScript UpdateVictim(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { if (Creature* voice = _instance->GetCreature(DATA_VOICE_OF_YOGG_SARON)) voice->AI()->JustSummoned(me); @@ -1581,7 +1581,7 @@ class npc_yogg_saron_keeper : public CreatureScript { npc_yogg_saron_keeperAI(Creature* creature) : ScriptedAI(creature) { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { DoCast(SPELL_SIMPLE_TELEPORT_KEEPERS); } @@ -1704,7 +1704,7 @@ class npc_yogg_saron_illusions : public CreatureScript { npc_yogg_saron_illusionsAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { switch (_instance->GetData(DATA_ILLUSION)) { diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index 16594a5d772..20fe09bba0d 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -88,8 +88,11 @@ class npc_frost_tomb : public CreatureScript _instance = creature->GetInstanceScript(); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; DoCast(summoner, SPELL_FROST_TOMB, true); } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index fae59f6dcbb..5c553b7fd07 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -486,7 +486,7 @@ struct npc_skadi_trashAI : public ScriptedAI ScheduleTasks(); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { if (Creature* skadi = _instance->GetCreature(DATA_SKADI_THE_RUTHLESS)) skadi->AI()->JustSummoned(me); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp index 9738117e631..e947ab7ab6d 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp @@ -149,7 +149,7 @@ struct npc_frozen_orb : public ScriptedAI { npc_frozen_orb(Creature* creature) : ScriptedAI(creature) { } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { DoCastSelf(SPELL_FROZEN_ORB_AURA, true); DoCastSelf(SPELL_FROZEN_ORB_DMG, true); diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index f57da74a345..8aeffa847e3 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -169,7 +169,7 @@ class npc_void_sentry : public CreatureScript me->SetReactState(REACT_PASSIVE); } - void IsSummonedBy(Unit* /*summoner*/) override + void IsSummonedBy(WorldObject* /*summoner*/) override { me->CastSpell(me, SPELL_SUMMON_VOID_SENTRY_BALL, true); } diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index b53c7498df8..1a2d58ccbf4 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -487,7 +487,7 @@ public: if (TempSummon* summon = me->ToTempSummon()) if (summon->IsSummon()) - if (Unit* temp = summon->GetSummoner()) + if (Unit* temp = summon->GetSummonerUnit()) if (Player* player = temp->ToPlayer()) player->KilledMonsterCredit(me->GetEntry()); @@ -1134,7 +1134,7 @@ public: return; if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) ENSURE_AI(npc_thassarian::npc_thassarianAI, summoner->ToCreature()->AI())->arthasInPosition = true; } }; @@ -1166,7 +1166,7 @@ public: me->AddUnitState(UNIT_STATE_STUNNED); me->CastSpell(me, SPELL_STUN, true); if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) ENSURE_AI(npc_thassarian::npc_thassarianAI, summoner->ToCreature()->AI())->arlosInPosition = true; } }; @@ -1228,7 +1228,7 @@ public: return; if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) ENSURE_AI(npc_thassarian::npc_thassarianAI, summoner->ToCreature()->AI())->talbotInPosition = true; } @@ -1345,7 +1345,7 @@ public: me->CastSpell(me, SPELL_STUN, true); if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) ENSURE_AI(npc_thassarian::npc_thassarianAI, summoner->GetAI())->leryssaInPosition = true; bDone = true; } @@ -1353,7 +1353,7 @@ public: { me->SetStandState(UNIT_STAND_STATE_SIT); if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) summoner->SetStandState(UNIT_STAND_STATE_SIT); phaseTimer = 1500; phase = 1; @@ -1370,7 +1370,7 @@ public: { case 1: if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) if (Creature* thassarian = summoner->ToCreature()) thassarian->AI()->Talk(SAY_THASSARIAN_4); phaseTimer = 5000; @@ -1383,7 +1383,7 @@ public: break; case 3: if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) if (Creature* thassarian = summoner->ToCreature()) thassarian->AI()->Talk(SAY_THASSARIAN_5); phaseTimer = 5000; @@ -1396,7 +1396,7 @@ public: break; case 5: if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) if (Creature* thassarian = summoner->ToCreature()) thassarian->AI()->Talk(SAY_THASSARIAN_6); phaseTimer = 5000; @@ -1410,7 +1410,7 @@ public: break; case 7: if (me->IsSummon()) - if (Unit* summoner = me->ToTempSummon()->GetSummoner()) + if (Unit* summoner = me->ToTempSummon()->GetSummonerUnit()) if (Creature* thassarian = summoner->ToCreature()) { thassarian->AI()->Talk(SAY_THASSARIAN_7); diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index 3c912ae7802..521cf778a5c 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -724,7 +724,7 @@ class npc_frostbrood_skytalon : public CreatureScript EventMap events; - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { me->GetMotionMaster()->MovePoint(POINT_GRAB_DECOY, summoner->GetPositionX(), summoner->GetPositionY(), summoner->GetPositionZ()); } @@ -736,7 +736,7 @@ class npc_frostbrood_skytalon : public CreatureScript if (id == POINT_GRAB_DECOY) if (TempSummon* summon = me->ToTempSummon()) - if (Unit* summoner = summon->GetSummoner()) + if (Unit* summoner = summon->GetSummonerUnit()) DoCast(summoner, SPELL_GRAB); } diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp index f87ca057d92..dfd51ebe9c5 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp @@ -166,8 +166,11 @@ struct boss_blackheart_the_inciter_mc_dummy : public NullCreatureAI using NullCreatureAI::NullCreatureAI; void InitializeAI() override { me->SetReactState(REACT_PASSIVE); } static const uint32 FIRST_DUMMY = NPC_BLACKHEART_DUMMY1, LAST_DUMMY = NPC_BLACKHEART_DUMMY5; - void IsSummonedBy(Unit* who) override + void IsSummonedBy(WorldObject* whoWO) override { + Unit* who = whoWO->ToUnit(); + if (!who) + return; me->CastSpell(who, SPELL_INCITE_CHAOS_B, true); // ensure everyone is in combat with everyone diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp index a0e4a9332fd..e5732e977b9 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp @@ -94,7 +94,7 @@ class boss_nazan : public CreatureScript void JustEngagedWith(Unit* /*who*/) override { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (summoner->GetEntry() == NPC_VAZRUDEN_HERALD) VazrudenGUID = summoner->GetGUID(); diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index ee3734a32ea..bad57b99ea9 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -996,7 +996,7 @@ public: timer = 500; } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (summoner->isType(TYPEMASK_PLAYER)) playerGuid = summoner->GetGUID(); diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index e9f657d79bc..4cf74a9b563 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -151,7 +151,7 @@ public: me->GetMotionMaster()->MoveRandom(5.0f); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (summoner->ToCreature()) casterGUID = summoner->ToCreature()->GetGUID();; diff --git a/src/server/scripts/Pet/pet_hunter.cpp b/src/server/scripts/Pet/pet_hunter.cpp index e3828e4be8c..3bfa8c1b5a3 100644 --- a/src/server/scripts/Pet/pet_hunter.cpp +++ b/src/server/scripts/Pet/pet_hunter.cpp @@ -92,7 +92,7 @@ class npc_pet_hunter_snake_trap : public CreatureScript if (me->IsSummon() && !me->GetThreatManager().GetFixateTarget()) { // find new target - Unit* summoner = me->ToTempSummon()->GetSummoner(); + Unit* summoner = me->ToTempSummon()->GetSummonerUnit(); std::vector<Unit*> targets; for (std::pair<ObjectGuid const, PvPCombatReference*> const& pair : summoner->GetCombatManager().GetPvPCombatRefs()) diff --git a/src/server/scripts/Pet/pet_priest.cpp b/src/server/scripts/Pet/pet_priest.cpp index bc560f83362..0198c4bc542 100644 --- a/src/server/scripts/Pet/pet_priest.cpp +++ b/src/server/scripts/Pet/pet_priest.cpp @@ -70,8 +70,12 @@ class npc_pet_pri_shadowfiend : public CreatureScript { npc_pet_pri_shadowfiendAI(Creature* creature) : PetAI(creature) { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; + if (summoner->HasAura(SPELL_PRIEST_GLYPH_OF_SHADOWFIEND)) DoCastAOE(SPELL_PRIEST_SHADOWFIEND_DEATH); } diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index 3a828eaa50b..ac85b24e9c8 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -1455,7 +1455,7 @@ class spell_gen_defend : public AuraScript { if (Unit* caster = GetCaster()) if (TempSummon* vehicle = caster->ToTempSummon()) - if (Unit* rider = vehicle->GetSummoner()) + if (Unit* rider = vehicle->GetSummonerUnit()) rider->RemoveAurasDueToSpell(GetId()); } diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp index 9a485fc2c0e..7a21ef13f66 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -428,8 +428,12 @@ class npc_spirit_shade : public CreatureScript { } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summonerWO) override { + Unit* summoner = summonerWO->ToUnit(); + if (!summoner) + return; + _summonerGuid = summoner->GetGUID(); me->GetMotionMaster()->MoveFollow(summoner, 0.0f, 0.0f); } diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 65f068091a5..05abb9511e2 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -2455,7 +2455,7 @@ public: summonerGUID.Clear(); } - void IsSummonedBy(Unit* summoner) override + void IsSummonedBy(WorldObject* summoner) override { if (summoner->GetTypeId() == TYPEID_PLAYER) { |
