diff --git a/src/botlib.cpp b/src/botlib.cpp index 655bcf9..db92bec 100644 --- a/src/botlib.cpp +++ b/src/botlib.cpp @@ -2018,9 +2018,13 @@ void Bot::filterTasks () { // calculate desires to seek cover or hunt if (util.isPlayer (m_lastEnemy) && !m_lastEnemyOrigin.empty () && !m_hasC4) { - float retreatLevel = (100.0f - (m_healthValue > 70.0f ? 100.0f : m_healthValue)) * tempFear; // retreat level depends on bot health + const float retreatLevel = (100.0f - (m_healthValue > 70.0f ? 100.0f : m_healthValue)) * tempFear; // retreat level depends on bot health + + if (m_isCreature || + (m_numEnemiesLeft > m_numFriendsLeft / 2 + && m_retreatTime < game.time () + && m_seeEnemyTime - rg (2.0f, 4.0f) < game.time ())) { - if (m_numEnemiesLeft > m_numFriendsLeft / 2 && m_retreatTime < game.time () && m_seeEnemyTime - rg (2.0f, 4.0f) < game.time ()) { float timeSeen = m_seeEnemyTime - game.time (); float timeHeard = m_heardSoundTime - game.time (); float ratio = 0.0f; @@ -2092,6 +2096,11 @@ void Bot::filterTasks () { seekCoverDesire = 0.0f; } + // zombie bots has more hunt desire + if (m_isCreature && huntEnemyDesire > 25.0f) { + huntEnemyDesire = TaskPri::Attack; + } + // blinded behavior blindedDesire = m_blindTime > game.time () ? TaskPri::Blind : 0.0f;