Skip to content

Instantly share code, notes, and snippets.

@sigsegv-mvm
Created September 22, 2016 05:19
Show Gist options
  • Save sigsegv-mvm/2bb86422784b15a9b5e354cdb08c7672 to your computer and use it in GitHub Desktop.
Save sigsegv-mvm/2bb86422784b15a9b5e354cdb08c7672 to your computer and use it in GitHub Desktop.
TFBot Path Cost: Route Types by Action
TFBot Path Cost: Route Types by Action
DEFAULT_ROUTE:
- In MvM, non-MiniBoss bots get a large random factor applied to their path cost to make them spread out more randomly.
FASTEST_ROUTE:
- No special path cost modifiers.
SAFEST_ROUTE:
- Applies a 0x-to-4x multiplier to the path cost of nav areas based on recent, nearby combat (within 1000 HU during the last 30 seconds).
- Applies a 5x multiplier to the path cost of nav areas that are within range and line-of-sight to an enemy sentry.
RETREAT_ROUTE:
- No special path cost modifiers.
NOTE: This is not a complete list of TFBot actions; actions that don't do any pathing aren't included in this document.
GENERIC ACTIONS
==================================================================
CTFBotAttack::Update SAFEST_ROUTE <== generic attack: in MvM mode and active weapon is melee
CTFBotAttack::Update DEFAULT_ROUTE <== generic attack: all other cases
CTFBotSeekAndDestroy::RecomputeSeekPath SAFEST_ROUTE <== going after and attacking enemies (basically just deathmatchy behavior)
CTFBotMeleeAttack::Update FASTEST_ROUTE <== used by snipers, squad non-leaders, and bots escorting a flag carrier in CTF/MvM
CTFBotUseTeleporter::Update FASTEST_ROUTE <== opportunistically using a PvP tele
CTFBotRetreatToCover::Update RETREAT_ROUTE <== used in a variety of cases in PvP; but only by spies and engies in MvM
PVP HEALTH/AMMO ACTIONS
==================================================================
CTFBotGetAmmo::OnStart FASTEST_ROUTE <== get ammo
CTFBotGetHealth::IsPossible FASTEST_ROUTE <== get health: determining whether there is a route to any health pack
CTFBotGetHealth::OnStart SAFEST_ROUTE <== get health: path toward health
CTFBotGetHealth::Update SAFEST_ROUTE <== get health: path toward health
PVP ANTI-SENTRY ACTIONS
==================================================================
CTFBotDestroyEnemySentry::Update SAFEST_ROUTE <== non-uber: demoman
CTFBotDestroyEnemySentry::Update SAFEST_ROUTE <== non-uber: non-demoman
CTFBotDestroyEnemySentry::Update FASTEST_ROUTE <== if ubercharged
CTFBotUberAttackEnemySentry::Update FASTEST_ROUTE <== also when ubercharged
MISCELLANEOUS MVM ACTIONS
==================================================================
CTFBotPushToCapturePoint::Update FASTEST_ROUTE <== initial action of bots with Attributes Aggressive / BehaviorModifiers Push
CTFBotNavEntMoveTo::Update FASTEST_ROUTE <== gatebot "go here" action (func_nav_prerequisite)
CTFBotEscortSquadLeader::Update FASTEST_ROUTE <== all squad members except the leader (also excludes medics)
CTFBotMissionSuicideBomber::Update FASTEST_ROUTE <== sentry busters
CAPTURE-THE-FLAG SCENARIO ACTIONS (ALL ALSO USED IN MVM)
==================================================================
CTFBotFetchFlag::Update DEFAULT_ROUTE <== no one has the flag; running toward it to pick it up
CTFBotDeliverFlag::Update FASTEST_ROUTE <== carrying the flag; take it toward the capture zone
CTFBotEscortFlagCarrier::Update FASTEST_ROUTE <== a teammate has the flag; defend them while they run it in
CTFBotAttackFlagDefenders::Update DEFAULT_ROUTE <== enough teammates are escorting the flag carrier; attack defenders instead
CONTROL POINT SCENARIO ACTIONS
==================================================================
CTFBotCapturePoint::Update SAFEST_ROUTE <== offense: move toward control point
CTFBotCapturePoint::Update DEFAULT_ROUTE <== offense: move around once on control point
CTFBotDefendPoint::Update DEFAULT_ROUTE <== defense: move to area to defend from
CTFBotDefendPoint::Update FASTEST_ROUTE <== defense: chase enemy with melee/flamethrower: non-pyro
CTFBotDefendPoint::Update SAFEST_ROUTE <== defense: chase enemy with melee/flamethrower: pyro
CTFBotDefendPointBlockCapture::Update DEFAULT_ROUTE <== defense: physically move to point to block it from being captured
CTFBotDefendPointBlockCapture::Update DEFAULT_ROUTE
PAYLOAD SCENARIO ACTIONS
==================================================================
CTFBotPayloadPush::Update DEFAULT_ROUTE <== offense: push the cart
CTFBotPayloadGuard::Update DEFAULT_ROUTE <== defense: guard the cart
CTFBotPayloadBlock::Update DEFAULT_ROUTE <== defense: move close to the cart to prevent it from being pushed
PVP ENGINEER ACTIONS
==================================================================
CTFBotEngineerMoveToBuild::Update SAFEST_ROUTE <== moving to the main build hint location
CTFBotEngineerBuildSentryGun::Update FASTEST_ROUTE <== building sentry
CTFBotEngineerBuildDispenser::Update FASTEST_ROUTE <== building dispenser
CTFBotEngineerBuildTeleportEntrance::Update FASTEST_ROUTE <== building tele entrance
CTFBotEngineerBuildTeleportExit::Update FASTEST_ROUTE <== building tele exit
CTFBotEngineerBuilding::UpgradeAndMaintainBuildings FASTEST_ROUTE <== default action when buildings are built
CTFBotEngineerBuilding::UpgradeAndMaintainBuildings FASTEST_ROUTE
CTFBotEngineerBuilding::CheckIfSentryIsOutOfPosition FASTEST_ROUTE
MVM ENGINEER ACTIONS
==================================================================
CTFBotMvMEngineerBuildSentryGun::Update SAFEST_ROUTE <== from spawn (or sentry destroyed) to sentry built
CTFBotMvMEngineerBuildTeleportExit::Update FASTEST_ROUTE <== very brief, when he walks over to build his tele
CTFBotMvMEngineerIdle::Update SAFEST_ROUTE <== default action when sentry and tele are building/built
CTFBotMvMEngineerIdle::Update SAFEST_ROUTE
MEDIC ACTIONS
==================================================================
CTFBotMedicHeal::Update FASTEST_ROUTE <== main medic action in PvP and MvM
CTFBotMedicHeal::Update FASTEST_ROUTE
CTFBotMedicHeal::SelectPatient FASTEST_ROUTE
CTFBotMedicRetreat::OnStart FASTEST_ROUTE <== PvP-only: used when caught without a patient and need to fall back
CTFBotMedicRetreat::OnResume FASTEST_ROUTE
CTFBotMedicRetreat::OnMoveToFailure FASTEST_ROUTE
CTFBotMedicRetreat::OnStuck FASTEST_ROUTE
CSelectPrimaryPatient::Inspect FASTEST_ROUTE <== part of CTFBotMedicHeal
SNIPER ACTIONS
==================================================================
CTFBotSniperLurk::Update SAFEST_ROUTE <== main sniper action in PvP and MvM
SPY ACTIONS
==================================================================
CTFBotSpyInfiltrate::Update SAFEST_ROUTE <== PvP-only: initial action
CTFBotSpyHide::Update SAFEST_ROUTE <== MvM-only: initial action after teleporting from spawn
CTFBotSpyAttack::Update FASTEST_ROUTE <== when going for a backstab
CTFBotSpySap::Update FASTEST_ROUTE <== from when a building is targeted until it's been sapped
TRAINING MODE ACTIONS
==================================================================
CTFGotoActionPoint::Update FASTEST_ROUTE
CTFTrainingAttackSentryActionPoint::Update FASTEST_ROUTE
UNUSED ACTIONS
==================================================================
CTFBotApproachObject::Update FASTEST_ROUTE
CTFBotMoveToVantagePoint::Update FASTEST_ROUTE
CTFBotEscort::Update FASTEST_ROUTE
CTFBotNavEntDestroyEntity::Update FASTEST_ROUTE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment