From b8efc8f8dcd5209331e5e4389d462cae4f2773e9 Mon Sep 17 00:00:00 2001 From: Kooper Date: Sat, 19 Jul 2025 20:57:08 +0200 Subject: [PATCH] Deaggro when outranging gets higher priority --- src/world/AI/Fsm/StateCombat.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/world/AI/Fsm/StateCombat.cpp b/src/world/AI/Fsm/StateCombat.cpp index 4fd020a0..9990007c 100644 --- a/src/world/AI/Fsm/StateCombat.cpp +++ b/src/world/AI/Fsm/StateCombat.cpp @@ -35,6 +35,11 @@ void AI::Fsm::StateCombat::onUpdate( Entity::BNpc& bnpc, uint64_t tickCount ) auto distance = Common::Util::distance( bnpc.getPos(), pHatedActor->getPos() ); + if( bnpc.hasFlag( Entity::Immobile ) && distance > 30.0f ) + { + bnpc.deaggro( pHatedActor ); + } + if( !bnpc.hasFlag( Entity::NoDeaggro ) ) { @@ -48,11 +53,6 @@ void AI::Fsm::StateCombat::onUpdate( Entity::BNpc& bnpc, uint64_t tickCount ) bnpc.moveTo( *pHatedActor ); } - if (bnpc.hasFlag(Entity::Immobile) && distance > 30.0f ) - { - bnpc.deaggro( pHatedActor ); - } - if( pNaviProvider->syncPosToChara( bnpc ) ) bnpc.sendPositionUpdate();