I've had a crack at interpreting the code for the quest generator entity, and just want to confirm a few things to make sure that I've got it right to make sure that I'm going in the right direction.
My end goal is:
- Quests generated in town scene
- Quest urgency based on scenes that are not the town scene (e.g. dungeon scene)
- Multiple world states of interest to be considered by the quest giver (e.g. state of town, dungeon, forest)
- Urgency changes based on time since last quest of the same entity type has been completed (i.e. prioritize quests that haven't been done before).
The QM Quest Generator Entity determines what quest gets generated based on a series of inputs including the world model. The world model, based on my read of it is limited to the current scene and searches within the domain area to get a count (to make sure that it doesn't ask you to kill more than what exists). So if I have a quest giver in town, and then I want to quests to be generated based on the number of enemies in a different scene (dungeon); that isn't possible out of the box.
I can see that you're able to set the min, but the max seems to be programmatically determined via that world model for Quest Generator Entities (with no manual override option -> e.g. randomize between a min and a max, independent of the world). You ARE able to set a random number between min/ max using QuestBuilder though.
I am thinking that it may be possible to "hack" the Quest Generator Entities calculations via referencing a dictionary (string/ count for enemy_type/ #) that I'll save in the dungeon scene and then "load" it into the town scene which tracks the monster/ enemy count. Defaulting to a min/ max independent of the world state if the other scene hasn't been loaded yet (such that the saved dictionary would be blank). I.e. manipulate the "Fact" data so that the urgency is based on a "modified" world model (i.e. world model from outside the scene).
I know that the there is a QuestBuilder class, but I actually want most of the functionality of the Quest Generator Entity (count + urgency based on world state in another scene), am I better off trying to work out how to "hack" the world state? Or am I better off starting from the QuestBuilder? Let me know if I'm missing some other functionality that would suit as well.
Best Regards,
C