diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2018-08-23 14:33:28 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-10-22 23:47:51 +0200 |
| commit | e4e8c1c59c8b37216814526b4d2551f23934f465 (patch) | |
| tree | a135fb3fc2adff0bded65f29d0e165b668a63c5c /src/server/scripts | |
| parent | 6a91fe3fbe28e3bf36ab6107b9c6cbb842f65262 (diff) | |
Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans
(cherry picked from commit 042f5515e4f3e52b0d2e23d9b9e147041849ce12)
Diffstat (limited to 'src/server/scripts')
30 files changed, 58 insertions, 84 deletions
diff --git a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp index 525879f6cc7..f4cdd4c4360 100644 --- a/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp +++ b/src/server/scripts/Argus/AntorusTheBurningThrone/boss_garothi_worldbreaker.cpp @@ -560,7 +560,7 @@ class spell_garothi_fel_bombardment_selector : public SpellScript void HandleWarningEffect(SpellEffIndex /*effIndex*/) { Creature* caster = GetCaster() ? GetCaster()->ToCreature() : nullptr; - if (!caster || !caster->IsAIEnabled) + if (!caster || !caster->IsAIEnabled()) return; Unit* target = GetHitUnit(); @@ -693,7 +693,7 @@ class spell_garothi_decimation_selector : public SpellScript { caster->CastSpell(GetHitUnit(), SPELL_DECIMATION_WARNING, true); if (Creature* decimator = caster->ToCreature()) - if (decimator->IsAIEnabled) + if (decimator->IsAIEnabled()) decimator->AI()->Talk(SAY_ANNOUNCE_DECIMATION, GetHitUnit()); } } @@ -843,7 +843,7 @@ class spell_garothi_cannon_chooser : public SpellScript void HandleDummyEffect(SpellEffIndex /*effIndex*/) { Creature* caster = GetHitCreature(); - if (!caster || !caster->IsAIEnabled) + if (!caster || !caster->IsAIEnabled()) return; InstanceScript* instance = caster->GetInstanceScript(); diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 752fcc19386..f78442af163 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -1354,10 +1354,8 @@ public: if (!player) return false; Creature* target = handler->getSelectedCreature(); - if (!target || !target->IsAIEnabled || !target->AI()) - { + if (!target || !target->IsAIEnabled()) return false; - } char* fill_str = args ? strtok((char*)args, " ") : nullptr; char* duration_str = args ? strtok(nullptr, " ") : nullptr; diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index 8d6ba06b49a..229f1ea9b64 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -1584,7 +1584,7 @@ public: return false; } - if (!creatureTarget->IsAIEnabled) + if (!creatureTarget->IsAIEnabled()) { handler->PSendSysMessage(LANG_CREATURE_NOT_AI_ENABLED); handler->SetSentErrorMessage(true); diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 95543c71159..b9fc7583725 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -396,7 +396,7 @@ class npc_eye_of_acherus : public CreatureScript _events.ScheduleEvent(EVENT_MOVE_START, 7s); } - void OnCharmed(bool /*apply*/) override { } + void OnCharmed(bool /*isNew*/) override { } void UpdateAI(uint32 diff) override { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp index 8db37e7275a..3e473f74ad3 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp @@ -226,7 +226,7 @@ class instance_zulaman : public InstanceMapScript case EVENT_START_ZULAMAN: if (Creature* voljin = instance->GetCreature(VoljinGUID)) { - if (voljin->IsAIEnabled) + if (voljin->IsAIEnabled()) voljin->AI()->DoAction(ACTION_START_ZULAMAN); } break; diff --git a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp index 2307954145d..ceda6ec369b 100644 --- a/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp +++ b/src/server/scripts/Kalimdor/Firelands/boss_baleroc.cpp @@ -326,7 +326,7 @@ class spell_baleroc_blades_of_baleroc : public SpellScript void ChooseBlade(SpellEffIndex /*effIndex*/) { Creature* caster = GetCaster()->ToCreature(); - if (!caster || !caster->IsAIEnabled) + if (!caster || !caster->IsAIEnabled()) return; switch (urand(1, 2)) @@ -364,13 +364,13 @@ class spell_baleroc_inferno_blade : public AuraScript void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - if (GetTarget()->IsAIEnabled) + if (GetTarget()->IsAIEnabled()) GetTarget()->GetAI()->DoAction(ACTION_EQUIP_INFERNO_BLADE); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - if (GetTarget()->IsAIEnabled) + if (GetTarget()->IsAIEnabled()) GetTarget()->GetAI()->DoAction(ACTION_EQUIP_DEFAULT); } @@ -393,13 +393,13 @@ class spell_baleroc_decimation_blade : public AuraScript void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - if (GetTarget()->IsAIEnabled) + if (GetTarget()->IsAIEnabled()) GetTarget()->GetAI()->DoAction(ACTION_EQUIP_DECIMATION_BLADE); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { - if (GetTarget()->IsAIEnabled) + if (GetTarget()->IsAIEnabled()) GetTarget()->GetAI()->DoAction(ACTION_EQUIP_DEFAULT); } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index 8862eeb7eb4..11415bff291 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -1291,7 +1291,7 @@ public: { if (TempSummon* summon = me->ToTempSummon()) if (Unit* summoner = summon->GetSummoner()) - if (summoner->IsAIEnabled) + if (summoner->IsAIEnabled()) summoner->GetAI()->DoAction(ACTION_FLESH_TENTACLE_KILLED); } }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index c15529ec5d4..1d24d0e25ac 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -1614,7 +1614,7 @@ class spell_halion_damage_aoe_summon : public SpellScriptLoader Position pos = caster->GetPosition(); if (Creature* summon = caster->GetMap()->SummonCreature(entry, pos, properties, duration, caster, GetSpellInfo()->Id)) - if (summon->IsAIEnabled) + if (summon->IsAIEnabled()) summon->AI()->SetData(DATA_STACKS_DISPELLED, GetSpellValue()->EffectBasePoints[EFFECT_1]); } 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 b2658110776..fef166d403e 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -1079,7 +1079,7 @@ class spell_gormok_ride_player : public AuraScript return; if (Unit *caster = GetCaster()) - if (caster->IsAIEnabled) + if (caster->IsAIEnabled()) caster->GetAI()->SetGUID(target->GetGUID(), DATA_NEW_TARGET); } @@ -1300,7 +1300,7 @@ class spell_icehowl_trample : public SpellScript void CheckTargets(std::list<WorldObject*>& targets) { Creature* caster = GetCaster()->ToCreature(); - if (!caster || !caster->IsAIEnabled) + if (!caster || !caster->IsAIEnabled()) return; if (targets.empty()) 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 73fe05ed0f3..0ab9547e3f2 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -449,10 +449,7 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader return; Player* pTarget = GetTarget()->ToPlayer(); - oldAI = pTarget->AI(); - oldAIState = pTarget->IsAIEnabled; GetTarget()->SetAI(new player_overlord_brandAI(pTarget, GetCasterGUID())); - GetTarget()->IsAIEnabled = true; } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -460,10 +457,7 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader if (GetTarget()->GetTypeId() != TYPEID_PLAYER) return; - GetTarget()->IsAIEnabled = oldAIState; - PlayerAI* thisAI = GetTarget()->ToPlayer()->AI(); - GetTarget()->SetAI(oldAI); - delete thisAI; + GetTarget()->SetAI(nullptr); } void Register() override @@ -471,9 +465,6 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader AfterEffectApply += AuraEffectApplyFn(spell_tyrannus_overlord_brand_AuraScript::OnApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); AfterEffectRemove += AuraEffectRemoveFn(spell_tyrannus_overlord_brand_AuraScript::OnRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); } - - PlayerAI* oldAI = nullptr; - bool oldAIState = false; }; AuraScript* GetAuraScript() const override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp index 7609c5c6992..1efd753228c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp @@ -1786,7 +1786,7 @@ class npc_gunship_cannon : public CreatureScript { } - void OnCharmed(bool /*apply*/) override { } + void OnCharmed(bool /*isNew*/) override { } void PassengerBoarded(Unit* /*passenger*/, int8 /*seat*/, bool apply) override { diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index 0ec4ace8d67..b0daf19085c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -629,7 +629,7 @@ class spell_marrowgar_bone_spike_graveyard : public SpellScriptLoader bool Load() override { - return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled; + return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled(); } SpellCastResult CheckCast() 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 3de744e67aa..f74c3d0395f 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -2350,8 +2350,8 @@ class spell_the_lich_king_quake : public SpellScriptLoader void HandleSendEvent(SpellEffIndex /*effIndex*/) { - if (GetCaster()->IsAIEnabled) - GetCaster()->GetAI()->DoAction(ACTION_START_ATTACK); + if (UnitAI* AI = GetCaster()->GetAI()) + AI->DoAction(ACTION_START_ATTACK); } void Register() override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index 35787628e51..e056c325bf9 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -1282,7 +1282,7 @@ class spell_dreamwalker_summon_suppresser : public SpellScriptLoader void HandleSummon(Unit* caster) { - if (!caster || !caster->IsAIEnabled) + if (!caster || !caster->IsAIEnabled()) return; std::list<Creature*> summoners; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp index 028bd2d4974..1cad6aa47f8 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_razuvious.cpp @@ -216,24 +216,11 @@ class npc_dk_understudy : public CreatureScript DoMeleeAttackIfReady(); } - void OnCharmed(bool apply) override + void OnCharmed(bool isNew) override { - ScriptedAI::OnCharmed(apply); - if (apply) - { - if (!me->IsInCombat()) - JustEngagedWith(nullptr); - me->StopMoving(); - me->SetReactState(REACT_PASSIVE); - _charmer = me->GetCharmerGUID(); - } - else - { - me->SetReactState(REACT_AGGRESSIVE); - if (Unit* charmer = ObjectAccessor::GetUnit(*me, _charmer)) - AddThreat(charmer, 100000.0f); - DoZoneInCombat(); - } + if (me->IsCharmed() && !me->IsEngaged()) + JustEngagedWith(nullptr); + ScriptedAI::OnCharmed(isNew); } private: InstanceScript* const _instance; diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 25416696d1f..43d96cea444 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -834,7 +834,7 @@ public: { Creature* casterDiskSummon = me->SummonCreature(NPC_HOVER_DISK_CASTER, RangeHoverDisksSpawnPositions[rangeDisks]); - if (casterDiskSummon->IsAIEnabled) + if (casterDiskSummon->IsAIEnabled()) casterDiskSummon->AI()->DoAction(rangeDisks); } @@ -855,7 +855,7 @@ public: { Creature* casterDiskSummon = me->SummonCreature(NPC_HOVER_DISK_CASTER, RangeHoverDisksSpawnPositions[rangeDisks]); - if (casterDiskSummon->IsAIEnabled) + if (casterDiskSummon->IsAIEnabled()) casterDiskSummon->AI()->DoAction(rangeDisks); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp index 706bf99204a..2e4a561dc56 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp @@ -1232,7 +1232,7 @@ class spell_algalon_big_bang : public SpellScriptLoader private: bool Load() override { - return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled; + return GetCaster()->GetTypeId() == TYPEID_UNIT; } void CountTargets(std::list<WorldObject*>& targets) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp index 6f6a52b763a..cd76f07a932 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp @@ -553,7 +553,7 @@ class spell_auriaya_agro_creator : public SpellScript void HandleDummyEffect(SpellEffIndex /*effIndex*/) { Creature* caster = GetCaster()->ToCreature(); - if (!caster || !caster->IsAIEnabled || caster->HasReactState(REACT_PASSIVE)) + if (!caster || !caster->IsAIEnabled() || caster->HasReactState(REACT_PASSIVE)) return; if (Unit* target = caster->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, CatsTargetSelector(caster, 5.0f, 10.0f))) @@ -583,7 +583,7 @@ class spell_auriaya_random_agro_periodic : public AuraScript void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) { Creature* owner = GetUnitOwner()->ToCreature(); - if (!owner || !owner->IsAIEnabled || owner->HasReactState(REACT_PASSIVE)) + if (!owner || !owner->IsAIEnabled() || owner->HasReactState(REACT_PASSIVE)) return; bool farTarget = true; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index fe76f6c875d..20074dba079 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -496,8 +496,8 @@ class achievement_ignis_shattered : public AchievementCriteriaScript bool OnCheck(Player* /*source*/, Unit* target) override { - if (target && target->IsAIEnabled) - return target->GetAI()->GetData(DATA_SHATTERED) != 0; + if (UnitAI* ai = target ? target->GetAI() : nullptr) + return ai->GetData(DATA_SHATTERED) != 0; return false; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp index b78f7289f1e..b810c15411a 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp @@ -1709,7 +1709,7 @@ class achievement_iron_dwarf_medium_rare : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) override { - return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_IRON_DWARF_MEDIUM_RARE); + return target && target->GetAI() && target->GetAI()->GetData(DATA_IRON_DWARF_MEDIUM_RARE); } }; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp index 6b4b3a1aa1f..73afc6f7e81 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_keleseth.cpp @@ -372,7 +372,7 @@ class achievement_on_the_rocks : public AchievementCriteriaScript bool OnCheck(Player* /*source*/, Unit* target) override { - return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_ON_THE_ROCKS); + return target && target->GetAI() && target->GetAI()->GetData(DATA_ON_THE_ROCKS); } }; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp index 334436bb49f..638cc511472 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp @@ -606,7 +606,7 @@ class achievement_incredible_hulk : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) override { - return target && target->IsAIEnabled && target->GetAI()->GetData(DATA_INCREDIBLE_HULK); + return target && target->GetAI() && target->GetAI()->GetData(DATA_INCREDIBLE_HULK); } }; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp index 126d24da50c..1e20cbb4562 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp @@ -181,13 +181,12 @@ class spell_toravon_random_aggro : public SpellScript void HandleScript(SpellEffIndex /*effIndex*/) { Creature* caster = GetCaster()->ToCreature(); - if (!caster->IsAIEnabled) - return; caster->GetThreatManager().ResetAllThreat(); - if (Unit* target = caster->AI()->SelectTarget(SELECT_TARGET_RANDOM, 1)) - caster->GetThreatManager().AddThreat(target, 1000000); + if (CreatureAI* ai = caster->AI()) + if (Unit* target = ai->SelectTarget(SELECT_TARGET_RANDOM, 1)) + caster->GetThreatManager().AddThreat(target, 1000000); } void Register() override diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index c79f707e650..9b72f64d13b 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -324,8 +324,8 @@ class spell_ichoron_drained : public SpellScriptLoader GetTarget()->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH); if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE) - if (GetTarget()->IsAIEnabled) - GetTarget()->GetAI()->DoAction(ACTION_DRAINED); + if (UnitAI* ai = GetTarget()->GetAI()) + ai->DoAction(ACTION_DRAINED); } void Register() override @@ -398,8 +398,8 @@ class spell_ichoron_protective_bubble : public SpellScriptLoader { //if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL) if (GetAura()->GetCharges() <= 1) - if (GetTarget()->IsAIEnabled) - GetTarget()->GetAI()->DoAction(ACTION_PROTECTIVE_BUBBLE_SHATTERED); + if (UnitAI* targetAI = GetTarget()->GetAI()) + targetAI->DoAction(ACTION_PROTECTIVE_BUBBLE_SHATTERED); } void Register() override diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp index 2a2737bd127..1f22d400708 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp @@ -103,7 +103,7 @@ class spell_moragg_ray : public SpellScriptLoader { PreventDefaultAction(); - if (!GetTarget()->IsAIEnabled) + if (!GetTarget()->GetAI()) return; if (Unit* target = GetTarget()->GetAI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 45.0f, true)) diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index 8febf564b50..7e705934f96 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -1368,8 +1368,8 @@ class spell_violet_hold_portal_periodic : public SpellScriptLoader void PeriodicTick(AuraEffect const* aurEff) { PreventDefaultAction(); - if (GetTarget()->IsAIEnabled) - GetTarget()->GetAI()->SetData(DATA_PORTAL_PERIODIC_TICK, aurEff->GetTickNumber()); + if (UnitAI* targetAI = GetTarget()->GetAI()) + targetAI->SetData(DATA_PORTAL_PERIODIC_TICK, aurEff->GetTickNumber()); } void Register() override diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index 958d068eb79..d64644bab46 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -365,7 +365,7 @@ public: } void JustDied(Unit* /*killer*/) override { } - void OnCharmed(bool /*apply*/) override { } + void OnCharmed(bool /*isNew*/) override { } void UpdateAI(uint32 diff) override { 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 21bf50ee269..8bf5a4cc888 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 @@ -57,16 +57,15 @@ enum Events class BlackheartCharmedPlayerAI : public SimpleCharmedPlayerAI { using SimpleCharmedPlayerAI::SimpleCharmedPlayerAI; - void OnCharmed(bool apply) override + void OnCharmed(bool isNew) override { - SimpleCharmedPlayerAI::OnCharmed(apply); - if (!me->GetMap()->IsDungeon()) - return; - if (Creature* blackheart = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(DATA_BLACKHEART_THE_INCITER))) - { - blackheart->AI()->SetData(0, apply); - blackheart->GetThreatManager().AddThreat(me, 0.0f); - } + if (me->GetMap()->IsDungeon()) + if (Creature* blackheart = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(DATA_BLACKHEART_THE_INCITER))) + { + blackheart->AI()->SetData(0, me->IsCharmed()); + blackheart->GetThreatManager().AddThreat(me, 0.0f); + } + SimpleCharmedPlayerAI::OnCharmed(isNew); } }; diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index c203bda137c..83436b4986e 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -1536,7 +1536,7 @@ class spell_ethereal_pet_aura : public AuraScript GetUnitOwner()->GetAllMinionsByEntry(minionList, NPC_ETHEREAL_SOUL_TRADER); for (Creature* minion : minionList) { - if (minion->IsAIEnabled) + if (minion->IsAIEnabled()) { minion->AI()->Talk(SAY_STEAL_ESSENCE); minion->CastSpell(eventInfo.GetProcTarget(), SPELL_STEAL_ESSENCE_VISUAL); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 991b7d275ec..d429eafd36b 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -54,8 +54,8 @@ class spell_generic_quest_update_entry_SpellScript : public SpellScript if (!creatureTarget->IsPet() && creatureTarget->GetEntry() == _originalEntry) { creatureTarget->UpdateEntry(_newEntry); - if (_shouldAttack && creatureTarget->IsAIEnabled) - creatureTarget->AI()->AttackStart(GetCaster()); + if (_shouldAttack) + creatureTarget->EngageWithTarget(GetCaster()); if (_despawnTime) creatureTarget->DespawnOrUnsummon(_despawnTime); |
