From 3c9b56438efd3a92a8e800c5a0a4aa5a31f8f652 Mon Sep 17 00:00:00 2001 From: Charlton Lau Date: Wed, 18 May 2022 16:59:39 +0900 Subject: [PATCH] fix(Core/Spell): Enslaved Demon does not auto-attack/auto-cast (#11677) --- src/server/game/Entities/Unit/Unit.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 4af0036fe..5dc278919 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -17941,7 +17941,18 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au StopMoving(); - ToCreature()->AI()->OnCharmed(true); + if (charmer->GetTypeId() == TYPEID_PLAYER && + charmer->getClass() == CLASS_WARLOCK) + { + // Disable CreatureAI/SmartAI and switch to CharmAI when charmed by warlock + Creature* charmed = ToCreature(); + charmed->NeedChangeAI = true; + charmed->IsAIEnabled = false; + } + else + { + ToCreature()->AI()->OnCharmed(true); + } // Xinef: If creature can fly, add normal player flying flag (fixes speed) if (charmer->GetTypeId() == TYPEID_PLAYER && ToCreature()->CanFly())