* = initial implementation doesn't require this -architecture -basically instead of handing input over to player, gives it to an AI -not sure if I can use the standard EntityAI() and its controller though -idea: what if... I simply did assign an EntityAI to Cogmind? -that can at least handle the combat part and other random stuff, and the other goals can be handled by a separate system? -either that or use a modified copy of EntityAI -other option would be to have a separate AI class that provides CMap input in lieu of player -also technically the player needs a way to at least *pause* the AI's action -AI needs some lists for decisionmaking -all known enemies -can include those based on sensor knowledge -at first ignores those which aren't known to be tracking player, rather than taking preemptive action, which is more complicated -all items in FOV and reachable within X cells -calculate best defensive/offensive position given current build and any known enemies -perpetual needs -parts -attached -inventory -resources -matter (best source = after battles, or Recycler hunting) *-dissipation (balanced against propulsion+weapons) *-energy (balanced against propulsion+weapons) -exit locations -> exits -ideally stick to 0b10 maps if possible/initially? (since other branches are more complicated and have special risk-reward scenarios) *-melee for shortcuts -part types/comparison... -this one's hard, almost need to choose a build (like the autobuild assignment) then actively work towards it -especially applicable to utility selection! *-build target needs to be able to somewhat evolve based on what has been found (but not necessarily picked up!) -evolution -could be semi-random at first, similar to unstable evolution -although not too hard to pick a reasonable slot given build and possibly current inventory contents -combat needs -projectile weapons -> consider retreat to bottleneck (identify all known bottlenecks within X spaces) -explosives -> fire in open -can switch to explosives if have some and fighting swarmers or other clustered enemies (similar to Demolisher targeting decisionmaking)