Improve "Monolithic property of things" field on units
This field controls the AI behaviour of units and is interrelated to the AI mode field. Currently this field is vaguely defined and the options are not all presented in the UI.
Need to clarify in the editor UI what the AI modes and the "monolithic property of things" (AI mode parameters) actually are: they are interrelated and need to be presented as such, with clearly defined possible choices, and better wording and explanations of what each option actually does.
Previous notes about this:
Some possible values for the "monolithic property" based on a quick look at the code: If AI mode is "roam": number represents how far the unit can roam (tile distance) If AI mode is "guard": this would specify which unit to guard - currently not possible to specify in CAMM, not sure if this AI mode actually works anyway If AI mode is "still": number represents how many game ticks to stand still before switching to "seek" If AI mode is "seek": most likely has no effect on this mode.
I think you're right with the "guard" mode. It's only used in one level (Alien Level 2) and the way it's implemented doesn't work. For seek, I think the intention was for it to be an input for a unit to already be targeting something at the beginning of the level. Ex: Astro Special Ops 1 has the drones already locked onto the MX-81
so far, we indeed never confirmed that guard WORKS... seek absolutely does work for the reasons described, it locks units onto specific buildings/units
ADDITIONALLY, the pickup stat alters the behavior of this field completely:
"powerup" : weapon upgrade as seen in santa bonus level if it's not defined, the default action is to grant 2000 money on pickup if it's a number, that much money is given on pickup
and then, there's a check that basically just assumes it's a string UNIT ID it tries to create a unit of that type and the player's team for example, if you picked-up a crate that gives "UF_evil" in an astronaut level, a "UF_good" is spawned given this behavior, i'm guessing you could feed it an invalid input like "missingno" on any team's map , or "UR_good" on an alien ma; and potentially crash the game, or at least spawn a glitched unit...
this is just how i recall things work, i'm probably missing something...
Something I've thought about for a little while now is the standard behavior of enemy units. It doesn't matter what AI mode they're on, the second they encounter and attempt to attack one of the player's units, they lock onto to that unit and will not stop until it's dead. This doesn't necessarily break some levels, but it does make it really hard to use units as effective guards. Due to the fact that this overrides all AI modes currently implemented I'm not sure if it would be able to be fixed (You could probably do it though, I know nothing about code)