Objectives Complete, Data Factory, and OOO Tomorrow
Hey Folks! Pretty productive day today, mostly spent finishing-up my work on objectives enhancements, plus some code to auto-generate data.
The objectives can now focus the camera on the relevant object if clicked, which should help users figure out what they're talking about. And perhaps someday, I can even expand them further to have something you can click for more info, or highlight objects, etc. For now, though, they're working as expected!
Now that I think of it, though, they may not save/load. I think they just disappear. So I'll make note to fix that later.
I also restored the gas pressure sensor objectives, using the new format. This presented some interesting edge cases, as the original sensor is replaced by a new object when it changes from "alarm" to "clear" states. And that messed-up the objective's logic tests, since it was operating on the old object. I've updated it to re-acquire the relevant target if necessary, and that works now, too!
And while in there, I noticed an unrelated bug where the temperature sensor would sample both the crew and room if they were under the sensor. Oops! Fixed now.
Moving on, I decided my next task should be to flesh out the remaining install/uninstall actions crew can take on ship equipment. As you can see in the screenshot, we have support for 4 items right now: walls, conduits, floors, and conduit junctions. Adding the ability to install/uninstall a new item involves a lot of tedious and error-prone work. New interaction chains, logic, triggers, loot, etc.
Since they're all roughly the same structure with different parameters, I started working on a factory class that can take the parameters and auto-generate the necessary data for each install/uninstall. Then, I just have to specify which items support those actions, plus a handful of params per item, and the game does the rest. It also has the benefit of making the data files a bit less bloated with repetitive content!
So far, so good. I'm mostly done with the data format, and I'm starting on the factory itself. It should be able to handle a pretty wide range of cases, but I'll find out soon whether there are any edge cases.
Finally, I'll be out of the office tomorrow for the federal holiday. Still around, but likely drinking beer and eating barbecue, so I won't be posting news or anything :)
See you all Friday!