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 () {
|
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 ()) {
|
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_moveToGoal = false; // don't move to goal
|
||||||
m_navTimeset = game.time ();
|
m_navTimeset = game.time ();
|
||||||
|
|
@ -2806,13 +2805,22 @@ void Bot::updateAimDir () {
|
||||||
m_lookAt = m_lastEnemyOrigin;
|
m_lookAt = m_lastEnemyOrigin;
|
||||||
|
|
||||||
// did bot just see enemy and is quite aggressive?
|
// 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
|
// feel free to fire if shootable
|
||||||
if (!usesSniper () && lastEnemyShootable ()) {
|
if (!usesSniper () && lastEnemyShootable ()) {
|
||||||
m_wantsToFire = true;
|
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) {
|
else if (flags & AimFlags::PredictPath) {
|
||||||
TraceResult tr {};
|
TraceResult tr {};
|
||||||
|
|
@ -2854,15 +2862,20 @@ void Bot::updateAimDir () {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_aimFlags &= ~AimFlags::PredictPath; // forget enemy far away
|
m_aimFlags &= ~AimFlags::PredictPath; // forget enemy far away
|
||||||
|
|
||||||
|
if (distanceToLastEnemySq >= maxDistanceToEnemySq) {
|
||||||
|
m_lastEnemyOrigin = nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_aimFlags &= ~AimFlags::PredictPath; // forget enemy far away
|
m_aimFlags &= ~AimFlags::PredictPath; // forget enemy far away
|
||||||
|
|
||||||
if (distanceToLastEnemySq >= maxDistanceToEnemySq)
|
if (distanceToLastEnemySq >= maxDistanceToEnemySq) {
|
||||||
m_lastEnemyOrigin = nullptr;
|
m_lastEnemyOrigin = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (flags & AimFlags::Camp) {
|
else if (flags & AimFlags::Camp) {
|
||||||
m_lookAt = m_camp;
|
m_lookAt = m_camp;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue