aim: forget last enemy in last enemy aim state too
This commit is contained in:
parent
9ddcef2dd4
commit
f266c24089
1 changed files with 16 additions and 3 deletions
|
|
@ -1725,7 +1725,6 @@ void Bot::updateEmotions () {
|
|||
}
|
||||
|
||||
void Bot::overrideConditions () {
|
||||
|
||||
if (!usesKnife () && m_difficulty > Difficulty::Normal && ((m_aimFlags & AimFlags::Enemy) || (m_states & Sense::SeeingEnemy)) && !cv_jasonmode.bool_ () && getCurrentTaskId () != Task::Camp && getCurrentTaskId () != Task::SeekCover && !isOnLadder ()) {
|
||||
m_moveToGoal = false; // don't move to goal
|
||||
m_navTimeset = game.time ();
|
||||
|
|
@ -2806,13 +2805,22 @@ void Bot::updateAimDir () {
|
|||
m_lookAt = m_lastEnemyOrigin;
|
||||
|
||||
// did bot just see enemy and is quite aggressive?
|
||||
if (m_seeEnemyTime + 1.0f - m_actualReactionTime + m_baseAgressionLevel > game.time ()) {
|
||||
if (m_seeEnemyTime + 2.0f - m_actualReactionTime + m_baseAgressionLevel > game.time ()) {
|
||||
|
||||
// feel free to fire if shootable
|
||||
if (!usesSniper () && lastEnemyShootable ()) {
|
||||
m_wantsToFire = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
auto distanceToLastEnemySq = m_lastEnemyOrigin.distanceSq (pev->origin);
|
||||
auto maxDistanceToEnemySq = cr::square (1600.0f);
|
||||
|
||||
if (distanceToLastEnemySq >= maxDistanceToEnemySq) {
|
||||
m_lastEnemyOrigin = nullptr;
|
||||
m_aimFlags &= ~AimFlags::LastEnemy;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (flags & AimFlags::PredictPath) {
|
||||
TraceResult tr {};
|
||||
|
|
@ -2854,13 +2862,18 @@ void Bot::updateAimDir () {
|
|||
}
|
||||
else {
|
||||
m_aimFlags &= ~AimFlags::PredictPath; // forget enemy far away
|
||||
|
||||
if (distanceToLastEnemySq >= maxDistanceToEnemySq) {
|
||||
m_lastEnemyOrigin = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
m_aimFlags &= ~AimFlags::PredictPath; // forget enemy far away
|
||||
|
||||
if (distanceToLastEnemySq >= maxDistanceToEnemySq)
|
||||
if (distanceToLastEnemySq >= maxDistanceToEnemySq) {
|
||||
m_lastEnemyOrigin = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (flags & AimFlags::Camp) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue