From 2968a0adff084c0a0bff8fd0f720b6c85af8c050 Mon Sep 17 00:00:00 2001 From: jeefo Date: Fri, 19 Apr 2024 13:20:17 +0300 Subject: [PATCH] fix: bots never rer-route their path in some situations Co-Authored-By: Max <161382234+dyspose@users.noreply.github.com> --- src/combat.cpp | 4 ++-- src/navigate.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/combat.cpp b/src/combat.cpp index 9d36cae..90b2780 100644 --- a/src/combat.cpp +++ b/src/combat.cpp @@ -271,9 +271,9 @@ bool Bot::lookupEnemies () { m_states |= Sense::SuspectEnemy; // check if last enemy can be penetrated - const auto penetratePower = conf.findWeaponById (m_currentWeapon).penetratePower * 3; + const auto penetratePower = conf.findWeaponById (m_currentWeapon).penetratePower * 4; - if (isPenetrableObstacle3 (m_lastEnemyOrigin, penetratePower)) { + if (isPenetrableObstacle1 (m_lastEnemyOrigin, penetratePower)) { m_aimFlags |= AimFlags::LastEnemy; } } diff --git a/src/navigate.cpp b/src/navigate.cpp index 5e5a1ff..c5fc08d 100644 --- a/src/navigate.cpp +++ b/src/navigate.cpp @@ -1165,7 +1165,7 @@ bool Bot::updateNavigation () { desiredDistanceSq = 0.0f; } else if (isOccupiedNode (m_path->number)) { - desiredDistanceSq = cr::sqrf (102.0f); + desiredDistanceSq = cr::sqrf (120.0f); } else { desiredDistanceSq = cr::max (cr::sqrf (m_path->radius), desiredDistanceSq); @@ -1182,7 +1182,7 @@ bool Bot::updateNavigation () { // needs precise placement - check if we get past the point if (desiredDistanceSq < cr::sqrf (16.0f) && nodeDistanceSq < cr::sqrf (30.0f) - && m_pathOrigin.distanceSq (pev->origin + pev->velocity * m_frameInterval) > nodeDistanceSq) { + && m_pathOrigin.distanceSq (pev->origin + pev->velocity * m_frameInterval) >= nodeDistanceSq) { desiredDistanceSq = nodeDistanceSq + 1.0f; } @@ -1752,7 +1752,7 @@ float Bot::getEstimatedNodeReachTime () { float estimatedTime = longTermReachability ? 8.5f : 3.5f; // if just fired at enemy, increase reachability - if (m_shootTime + 0.15f < game.time ()) { + if (m_shootTime + 0.25f > game.time ()) { return estimatedTime; }