autoElite Threat Plan Subsystem
preamble here
API
;SetThreatCheckFunction(fpThreatCheck):Pass in a function pointer to the routine that will determine if a threat is present ;SetThreatResponseFunction(fpThreatResponse): ;GetThreatPlanStatus():Reports on the current status of the flight plan. ;SetThreatPlanStatus(NewStatus):Overrides the current status of the flight plan.
Provided Functions
Threat Check
;UltraParanoid: Anything within scanner range (apart from the space station!) is considered a threat. ;Paranoid: Anything with a gun is a threat ;Hostile: Anything that the scanner marks as hostile (the yellow lolipops) is a threat. ;Passive: As soon as anyone shoots at us we feel threatened. ;UltraPassive: When our shields are breached we feel threatened (how laid back is that!?)
Threat Response
;Runaway: in general you can't outrun the bad guys so we also try evasive maneuvers - our goal is to reach the safety of the 'S' ;Engage: target and shoot at the identified threat(s) ;Escape: give up all hope, put your seat back in the upright position and your head between your knees and then jump in the escape capsule ;ShootToKill: ;ShootToDisuade: ;Tickle:
UI
- Present the current threat check and threat response functions in a section of the FUI
- Allow the player to select from the resgistered functions
- Display the threat status, check and response information in the HUD
Enhancements
- LUA, LUA, LUA!
Notes
- everything's dynamic and so we can mix and match and change responses and actions as the situation progresses <MORE TO COME>
- Need a threat prioritization scheme. Maybe different responses for different types of threats?
- Maybe we should furhter generalize the detection system to simply detect "things of interest" and responses for those things? (e.g. rocks get blasted, cargo cannisters get scooped, threats get threat responses (as outlined above)). I'm thinking of a three pass system:
- first detect the objects (for now we use the scanner range because we're trying to emulate a player)
- next assign responses to each object identified - responses are all prioritized
- perform the responses in prioritized order
Although this is more generalized it seems less natural <MORE TO COME>
TODO
;RegisterThreatCheckFunction(fpThreatCheck, szDescription):Register threat check functions that you want to be able to select with the FUI ;RegisterThreatResponseFunction(fpThreatCheck, szDescription):Register threat response functions that you want to be able to select with the FUI