Hi!
I continue exploring the possibilities of the Quest Generation and currently, I am looking at the Requirement Functions(RF).
I did not manage to find much info on RFs in your manual, video series, or Demo scene.
I have also noticed that there is no template for the RF. Is there a reason for that? Do you not recommend creating custom Requirement Functions?
In general, I would appreciate it very much if you could share your thoughts on what RFs are intended to be used for, and perhaps some best practices or use-case examples.
Thanks in advance.
Artem
Requirement Functions
Re: Requirement Functions
Hi Artem,
I've made a note to add documentation on requirement functions to the manual and also add a template script.
A requirement function defines a condition that must be true in order for a quest generator to use an action.
Requirement functions are ScriptableObject assets. To add a requirement function to an action, create a requirement function asset, and assign it to the action's Requirements section.
This is the entire definition of RequirementFunction:
Quest Machine includes one built-in subclass: FactionRequirementFunction requires that one entity type's faction toward another entity type is within a specified range. You can examine FactionRequirementFunction for ideas. It makes use of the EntitySpecifier type, which lets the designer specify entity types in flexible ways (e.g., current quester, current quest giver, specific entity type, etc.).
Several of the integration packages include additional requirement functions. For example, the Love/Hate integration includes a function that checks Love/Hate's more extensive faction system.
I've made a note to add documentation on requirement functions to the manual and also add a template script.
A requirement function defines a condition that must be true in order for a quest generator to use an action.
Requirement functions are ScriptableObject assets. To add a requirement function to an action, create a requirement function asset, and assign it to the action's Requirements section.
This is the entire definition of RequirementFunction:
Code: Select all
public abstract class RequirementFunction : ScriptableObject
{
public abstract string typeName { get; }
public abstract bool IsTrue(WorldModel worldModel);
}
- typeName is just for displaying a human readable description in the editor.
- IsTrue(worldModel) checks if a given world model meets the requirement.
Quest Machine includes one built-in subclass: FactionRequirementFunction requires that one entity type's faction toward another entity type is within a specified range. You can examine FactionRequirementFunction for ideas. It makes use of the EntitySpecifier type, which lets the designer specify entity types in flexible ways (e.g., current quester, current quest giver, specific entity type, etc.).
Several of the integration packages include additional requirement functions. For example, the Love/Hate integration includes a function that checks Love/Hate's more extensive faction system.
Re: Requirement Functions
Hi Tony!
Thanks for the response and explanation. Indeed adding the documentation for it would be helpful.
I just want to clarify something. My initial understanding of the RequirementFunction (RF) was that it decides on it's own whether the action can be performed. But now I understand that it works on top of the check that checks whether the entity is in a domain.
So that means that once we completed the basic check, for example, if the Orc is in the Forest, we can use the RF to check some additional information related to the Entity.
Please correct me if I am wrong.
Thanks in advance.
Thanks for the response and explanation. Indeed adding the documentation for it would be helpful.
I just want to clarify something. My initial understanding of the RequirementFunction (RF) was that it decides on it's own whether the action can be performed. But now I understand that it works on top of the check that checks whether the entity is in a domain.
So that means that once we completed the basic check, for example, if the Orc is in the Forest, we can use the RF to check some additional information related to the Entity.
Please correct me if I am wrong.
Thanks in advance.
Re: Requirement Functions
Hi,
Yes, your understanding is exactly correct.
Yes, your understanding is exactly correct.
Re: Requirement Functions
Alright, thanks a lot!
Till next time
Till next time