Threshold Conditions Entered, Now for Symptoms
Hey Folks! Finally got the threshold conditions in for each of the 30ish stats. That means their names, descriptions, and IDs are all set, and they just need payloads defined. So that's where I'm going next.
Most of the threshold conditions were just straight data entry, and copying the odd description from NEO Scavenger data. However, there were a couple of tweaks I made to my first drafts. Notably, satiety and radiation.
Satiety had a "hunger" status, and so did "food." The former was a feeling, and the latter was a nutritional state. To make this a bit clearer, I changed the latter to "empty stomach," so we can tell the difference between being and feeling hungry.
Radiation was a bit more complex. I didn't have good names for each of the thresholds, and thinking about it led to a really interesting discussion on Twitter. The end result was me trimming out a superfluous threshold, and renaming the remaining ones in terms of their threat levels.
I also took a few minutes using some regex search and replace to auto-generate placeholders for the loot payloads each of these thresholds has. Right now, they just deliver the named threshold condition. But some may have additional side effects to deliver.
And that's where I'm getting now. Today's screenshot is a near-complete list of the NEO Scavenger symptoms and side effects list. So far, just a list of names with empty data. Except for PainAbdominal, the first one. I'll gradually be filling-in this set with the stat adjustments from each. Some are straight copies of NS. Others require some converting from NS to Ostranauts stat numbers. (E.g. 0-1 vs. 0-100)
I've also noticed a few of these addressed some NS stats I haven't added yet. For example, I have a stat for blood volume, just like NS. But there was also a stat for the rate at which blood volume replenishes over time. And I don't have anything to represent this in Ostranauts.
For something like that, there are a couple approaches I could use. One is to simply add the new stat, and add some hard-coded logic to apply that stat to the AI over time, replenishing the stat.
However, I now have these "ticker" functions, which might allow me to do the same thing. They're like heartbeats that can optionally deliver a payload each beat, and I could make that payload the replenish amount for a given stat.
The one caveat I can foresee there is that I would have no way to adjust the ticker's payload or timing through game mechanics. Not without adding a system to allow for it. So this might be a no-go.
As much as I don't like lobbing yet another system into the game, I'm leaning towards doing that for this sort of metabolic stuff. There's a lot of common stuff each AI is going to need to do, and I already use some hard-coded stuff for respiration and body heat. So I wouldn't really be breaking from convention to create a component for handling other bodily processes.
Anyway, that's a topic for tomorrow. Time to call it a day!