Since the original version of this post, I've gotten much better at handling types using this assembly style programming language (Too used to text editors and loosely typed languages, so most of my hojo script worked fine after I fixed typing problems.)
There are a few outstanding things that annoy me. I was trying to implement a Swallow/Regurgitate mechanic for the Land worm enemy last night using the imprisoned status. I had it counter with an attack that causes imprison and deactivate the target masks script. Then I copied the target mask into self.4300 for later use (I also tried storing in it in a local variable.) Later on, after a counter in main had incremented to five, I instructed it to re-target self.4300 , remove imprison, and re-enable its script.
It just didn't work at all. Despite literally using the same code Carry Armor uses, the land worm constantly seemed to get confused and end up targeting the wrong enemy with regurgitate, as though the script wasn't able to modify the value at self.4300. I understand what a 0x value is, and I've been operating under the assumption that 1x value is an address that stores a 0x value -- but I read through the wiki and there was a mention of scope, so I'm wondering if that may have been my issue.
Can some explain in detail the "scope" of address types 10, 11, 12, and 13? Which ones can be modified during what parts of a script?
Best,
QP