diff options
Diffstat (limited to 'Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut')
-rw-r--r-- | Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut index 4cbab84c2..87e3650fc 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_ai_mp.gnut @@ -1,15 +1,22 @@ +untyped global function MpInitAILoadouts global function SetProficiency -global function IsAutoPopulateEnabled global function SPMP_UpdateNPCProficiency global function SPMP_Callback_ForceAIMissPlayer +global function IsAutoPopulateEnabled void function MpInitAILoadouts() { } -void function SetProficiency( entity soldier ) +void function SetProficiency( entity npc ) +{ + // unsure what the logic for deciding this should be so just going to default good + npc.kv.WeaponProfiency = eWeaponProficiency.VERYGOOD +} + +void function SPMP_UpdateNPCProficiency( entity npc ) { } @@ -30,12 +37,33 @@ bool function IsAutoPopulateEnabled( var team = null ) return true } -void function SPMP_UpdateNPCProficiency( entity ent ) -{ - -} - bool function SPMP_Callback_ForceAIMissPlayer( entity npc, entity player ) { - return true + if ( GetGameState() >= eGameState.Postmatch ) + return true + + if ( player.IsTitan() ) + return false + + int lethality = Riff_AILethality() + if ( lethality <= eAILethality.Medium ) + if ( player.GetTitanSoulBeingRodeoed() != null ) + return true + + if ( Bleedout_IsBleedoutLogicActive() && Bleedout_ShouldAIMissBleedingPlayer( player ) ) + return true + + if ( player.ContextAction_IsActive() ) + return RandomFloat( 1 ) >= 0.25 + + if ( IsFastPilot( player ) ) + { + float chance = ( lethality + 1 ) * 0.125 + if ( lethality <= eAILethality.Medium && npc.IsMechanical() ) + chance /= 1.25 + + return RandomFloat( 1 ) >= chance + } + + return false }
\ No newline at end of file |