This didn't take as long as I thought, but it's implemented with some bug fixes. I still have to go back to verify everything is working as intended for certain areas of it, mainly with player actions involving doors/airvents, but overall it works.
How does it work?
Whenever the player does a certain action or a character, it records it in that day's storage. This is so it can be referenced later. Some aspects are annoying to record. If I wanted to record purchases made through a shop that isn't randomized, I would have to rewrite a bunch of code to record item changes and that is not fun. So for the player it just records they went into the shop for this instance. In general it records a vast majority of actions with some info on it. For example if a character not controlled by the player messed with a door, it's recorded which door they messed with, along with what item they used to trap it. It doesn't impact performance, since all it's really doing is calling an array every time an action happens.
Why do this?
One reason is to make debugging easier. But another is the backbone for the character's actions is very "moment/reaction focused" where they act upon how they feel in the moment of that action, and call back to settings currently being applied to them in that day to help define their actions along with what they have. This system will allow the past to be recalled in many ways. The biggest thing is to make sure the characters doesn't do any stupid shit that counteracts what they just did since it's not very fun and interactive if a whole thing is planned, but is undone in seconds or forgotten about. Basically this will allow for code to force characters to actually commit more to when they starting planning.
I also have to add more code for dismantling items, mainly since I don't even want the chance of a character dismantling something they crafted almost instantly.
A good chunk of this is for preventing bad theoretical actions since those will kill the game for people if they happen too often.
End Results Screen Updated
This allows a section to view specific character's and the player's actions for each day in order of when they happened. Mostly as a way for the player to personally review everything they desire.
Anything else?
I'm thinking that I'm going to have to add an "Intelligence system" to the enemy AI actions that uses a percentage of a chance to call the past to determine actions. Mostly so it's varied that not everybody is smart, and someone with brain damage has their actions impacted by it. Honestly shouldn't be so bad if I use arrays. But I do have to make sure it's 100% working correctly before I start this.
Demo was updated with this tracking and some other fixes.
This won't be implemented for a bit, but I'm going to be expanding the demo in the future. I'll go into more details when I get close to implementing the basics. Right now for the demo I plan to add this one thing and then once the Cafe events are redone, I'll open the demo up again and everything should be perfect for the demo. I think after the Cafe events are redone and the new content is added, that will be it for the demo updates where the focus can be on localization for the demo. Mainly everything after the cafe events will be main-core trials and end game/story focused and that won't be needed in the demo. Right now it's still English only and that won't change for a while. Still a bunch before that point.
