From cb71cc0131f6cf37164d3ce2570ce596f879fe90 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Thu, 14 Oct 2021 16:18:51 +0200 Subject: [PATCH] =?UTF-8?q?fix(Core/Units):=20clear=20emote=20state=20on?= =?UTF-8?q?=20attack=20rather=20than=20on=20combat=20st=E2=80=A6=20(#8170)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Closes #6281 --- src/server/game/Entities/Unit/Unit.cpp | 3 ++- .../scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp | 12 +++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 79859ab38..faab53bbd 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9725,6 +9725,8 @@ bool Unit::Attack(Unit* victim, bool meleeAttack) creature->SendAIReaction(AI_REACTION_HOSTILE); creature->CallAssistance(); creature->SetAssistanceTimer(sWorld->getIntConfig(CONFIG_CREATURE_FAMILY_ASSISTANCE_PERIOD)); + + SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); } // delay offhand weapon attack to next attack time @@ -12816,7 +12818,6 @@ void Unit::CombatStart(Unit* victim, bool initialAggro) SetInCombatWith(victim); victim->SetInCombatWith(this); - victim->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); // Xinef: If pet started combat - put owner in combat if (Unit* owner = GetOwner()) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 30d26d18f..6a17305ef 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -1517,17 +1517,15 @@ public: { float angle = me->GetAngle(p); - if (Unit* vehicle = me->GetVehicleBase()) - { - vehicle->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01); - vehicle->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01); - angle -= vehicle->GetOrientation(); - } - spinningUpOrientation = (uint32)((angle * 100.0f) / (2 * M_PI)); spinningUpTimer = 1500; me->SetFacingTo(angle); me->CastSpell(p, SPELL_SPINNING_UP, true); + if (Unit* vehicle = me->GetVehicleBase()) + { + vehicle->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_01); + vehicle->HandleEmoteCommand(EMOTE_STATE_CUSTOM_SPELL_01); + } events.RescheduleEvent((Phase == 2 ? EVENT_SPELL_RAPID_BURST : EVENT_HAND_PULSE), 14500); } break;