Cogmind Beta 9 Feature Voting Result - Manual Hacking Upgrades (Patreon)
Content
At the beginning of last month we voted for the top feature everyone wanted to see in Beta 9 from a list I'd put together. The final results of that vote, at least as of this week and the numbers I acted on, are here:
So manual machine hacking upgrade it is! And that's what I've been up to both yesterday and today, and I think it's turned out pretty well...
Autocompletion List
The flagship feature here is an upgrade to autocompletion behavior, showing the full list of applicable hacks:
As you can see it's also a two-step process now, allowing you to independently specify the subcommand following an open parenthesis. To correspond with this change, Ctrl-Backspace also now clears text only back to the parenthesis (assuming there's something after it).
Getting the list interaction cycling in alphabetical order was quite annoying, since they're not stored that way internally. Displaying elements in alphabetical order is easy enough, but having to convert between the display and the internal form just adds another layer of obfuscation to the code xD
Filtering Schematics
What really made the code a mess was adding items to the mix! Originally the code was pretty simple, and essentially only set up to handle the list of static hacking commands, but now autocompletion behavior would also need to take into account a much broader range of possibilities in the form of item names. Sure they're static, too, but things start to get complicated once you can draw from two separate lists of data.
Anyway, in the end I got it working and of course it feels really nice to have that list of items filtering as you type :D
The list only includes schematics accessible via the current terminal.
My original mockup didn't include the current autocomplete item/hack in the list, but I realized it was important to repeat it there in order to make the list more intuitive when using up/down arrows to scroll through it.
In order to allow for item name compatibility with the autocomplete system, I had to remove the space key triggering autocomplete, leaving it at only Tab. This will be annoying for me (and no doubt some others?) since that's what I've always been using, but such is adding features that might affect existing behavior :P
No Go
At this point I decided the code would be too complex to allow for autocompletion of robot analyses and schematics (not to mention the UX wouldn't be as good), so I'm not adding that. I'd have to rewrite the entire system in an even more generic sense to get that working, and it would be an even bigger project. However, we still have the simple class name interpretation feature for getting the most applicable schematic/analysis, which I think does the job pretty well.
I was going to add a display for the chance for the current hack to succeed, had it mockup up and was diving into the code and everything, before discovering this would be way too hard to implement given the architecture. It would take forever and be really really messy, so I don't think it's worth it.
While working on that, however, I did at least manage to get it checking after the fact whether there's a matching direct command for an indirect hack, using that chance instead of the lower indirect one. So you'll now the true hackers among you will be able to just type whatever you plan to do anyway and take advantage of the better chance if it happens to be there.
Next Up
These features and more will be coming to Beta 9 X3 next week!
Also with this out of the way we'll finally be voting for a "patrons create an item/mechanic" result, so if you haven't contributed yet or need to update your idea, now's the time to do that. It's been a while since we talked about it, but no rush since Beta 9 is a long one and there's been too much to do in the meantime xD