change: bot path type selection is based on morale (fear/aggression level)

fix: partially fixes #227  (in matter of player pings)
This commit is contained in:
dmitry 2021-09-15 11:14:05 +03:00
commit e213e39d17
No known key found for this signature in database
GPG key ID: 8297CE728B7A7E37
3 changed files with 7 additions and 5 deletions

@ -1 +1 @@
Subproject commit 1992b929e55f02d54b3978109a71da22802d6142
Subproject commit 544851dd2f24a2fd4d11633167c773d98383ba29

View file

@ -1399,18 +1399,20 @@ void Bot::newRound () {
}
void Bot::resetPathSearchType () {
const auto morale = m_fearLevel > m_agressionLevel ? rg.chance (30) : rg.chance (70);
switch (m_personality) {
default:
case Personality::Normal:
m_pathType = rg.chance (50) ? FindPath::Optimal : FindPath::Safe;
m_pathType = morale ? FindPath::Optimal : FindPath::Safe;
break;
case Personality::Rusher:
m_pathType = rg.chance (75) ? FindPath::Fast : FindPath::Optimal;
m_pathType = morale ? FindPath::Fast : FindPath::Optimal;
break;
case Personality::Careful:
m_pathType = rg.chance (75) ? FindPath::Safe : FindPath::Optimal;
m_pathType = morale ? FindPath::Optimal : FindPath::Safe;
break;
}
}

View file

@ -582,7 +582,7 @@ void BotSupport::calculatePings () {
engfuncs.pfnGetPlayerStats (client.ent, &ping, &loss);
// store normal client ping
client.ping = getPingBitmask (client.ent, loss, ping > 0 ? ping / 2 : rg.get (8, 16)); // getting player ping sometimes fails
client.ping = getPingBitmask (client.ent, loss, ping > 0 ? ping : rg.get (8, 16)); // getting player ping sometimes fails
client.pingUpdate = true; // force resend ping
++numHumans;