Interaction Mapping, Condition Triggers
Now that I've got a better handle on how to make UI stuff happen, I've been making pretty good progress on the editor.
By the end of the day, I was able to get an interaction to display on the screen, with arrows pointing to downstream interactions it can yield, and each of those pointing to their respective yields, et al. It was also able to loop back onto itself, if appropriate (e.g. sleep cycle). Clicking and dragging would update the interaction's position, as well as all connected arrows.
The editor would also clear the screen and start mapping anew anytime the drop-down in the top menu was changed.
The next thing I'm looking into is adding UI widgets for each condition trigger (CT) on an interaction. There are CTs that describe things that happen to the petitioner/requester in an interaction, those applied to the granter as a result of being asked, as well as those that might happen as a result (used by AI in determining which interaction to seek next).
The way I picture it, any time a user chooses a new CT from the drop-down on an interaction, it adds a new CT widget below it to allow the user to select another one later. And deleting a CT removes it from the list, moving all CTs below it up one. (Like adding/removing rows in a spreadsheet).
And if I can get that to work, perhaps I'll add a widget to allow editing of the CT in a pop-up, which will update all game data referencing it. And if I get that running, I should be able to quickly edit the CTs for a given interaction. I'll also need to do a similar thing to the list of required/forbidden conditions on each interaction, as well as the ability to add a new downstream or upstream interaction.
And then, get back to editing game data. E.g. figure out how AI can seek items (food) from an object (fridge) that dispenses things which grant a stat boost (hunger). Probably a data reformat to make it easier to read/search in plain XML wouldn't be amiss, either.
Lots of work! But it's good to be doing actual work again, instead of flailing ineffectually with libraries.