Love/Hate Deed state and reporting help
Posted: Sat Nov 28, 2020 1:14 am
Hi
I have recently started using Love/Hate and I am still to use the full capability of the framework.
Faction:
I have two factions: Player and Faction A
Faction A are mainly robots. I did so to narrow have a toned down version of emotional states since I just started using the framework and I trying to get a hang of it.
Relationship:
Faction A's relationship with Player Faction is 0 at the beginning.
Emotional State:
Faction A members only have 3 emotional states: Neutral, Cautious, Hunting.
Neutral: Faction members are not interested in player.
Cautious: Deeds by player has caused a faction member to be cautious and is either staying clear or searching to locate player
Hunting: Deeds by player have made a faction member hunt to capture or kill the player.
Deeds
My current intention is to tie deeds with player actions like attack, sneak, hack, lockpick etc.
My current issue is deed report system works well for for actions like attack which requires player input every time one wishes to attack.
How do I model the deed system/ deed reporting for things like sneak or hack where once the player enters that state, I want the player to be in that deed state.
My current thought process is
to just keep reporting the deed every frame till the player comes out of the state but am not sure about whether that is an efficient way.
or
To create a deed state class and to keep the player in a particular deed state till the player moves out of it and when other faction members are either within range/line of sight, they can query the class to find the deed state and act accordingly.
Edit:
I already have Dialogue system and Quest Machine and I have written my own wrappers for commonly used classes like Selector, Input Manager etc. and I will definitely be wrapping CanSeeAdvanced class as well since I want to use my own detection system;
So, I am used to customizing your very helpful frameworks depending upon my use.
I just wanted to make sure such a system doesn't exist already or you have a better solution for my problem statement.
I have recently started using Love/Hate and I am still to use the full capability of the framework.
Faction:
I have two factions: Player and Faction A
Faction A are mainly robots. I did so to narrow have a toned down version of emotional states since I just started using the framework and I trying to get a hang of it.
Relationship:
Faction A's relationship with Player Faction is 0 at the beginning.
Emotional State:
Faction A members only have 3 emotional states: Neutral, Cautious, Hunting.
Neutral: Faction members are not interested in player.
Cautious: Deeds by player has caused a faction member to be cautious and is either staying clear or searching to locate player
Hunting: Deeds by player have made a faction member hunt to capture or kill the player.
Deeds
My current intention is to tie deeds with player actions like attack, sneak, hack, lockpick etc.
My current issue is deed report system works well for for actions like attack which requires player input every time one wishes to attack.
How do I model the deed system/ deed reporting for things like sneak or hack where once the player enters that state, I want the player to be in that deed state.
My current thought process is
to just keep reporting the deed every frame till the player comes out of the state but am not sure about whether that is an efficient way.
or
To create a deed state class and to keep the player in a particular deed state till the player moves out of it and when other faction members are either within range/line of sight, they can query the class to find the deed state and act accordingly.
Edit:
I already have Dialogue system and Quest Machine and I have written my own wrappers for commonly used classes like Selector, Input Manager etc. and I will definitely be wrapping CanSeeAdvanced class as well since I want to use my own detection system;
So, I am used to customizing your very helpful frameworks depending upon my use.
I just wanted to make sure such a system doesn't exist already or you have a better solution for my problem statement.