Page 1 of 1

Emotions bar in 2d visual novel

Posted: Tue Jan 24, 2023 4:36 am
by Ares_s0ul
Hello!

I'm making a 2d visual novel and I'm using the adventure creator plugin and lohe/hate. I have created a Faction Database and I have created several factions which in this case would be each character. The idea is that when you choose an option in the conversation the character can decrease or increase happiness, pleasure, arousal or dominance within the Pad.

I have already done this with the modify pad and the check pad in the flowchart. Now I want to make a bar in which every time an option is chosen and a variable of the Pad decreases or decreases, the bar decreases or increases for each variable of the pad.

I talked to the developer of the adventure creator plugin and he told me that to do it I first need the code where this pad of each character is located and thus join it with the adventure creator plugin. What is the code that changes these pad variables?

I accept suggestions

Thanks!

Re: Emotions bar in 2d visual novel

Posted: Tue Jan 24, 2023 8:51 am
by Tony Li
Hi,

There are two ways your custom script can be notified when a Faction Member's PAD values change:

1. Add a Faction Member Events component to the Faction Member GameObject, and connect your script method to the OnModifyPad() UnityEvent, or

2. Add a script that implements the C# interface IModifyPadDeedEventHandler to the Faction Member GameObject. This might look something like:

Code: Select all

using UnityEngine;
using UnityEngine.UI;
using PixelCrushers.LoveHate;

[RequireComponent(typeof(FactionMember))]
public class PadBars : MonoBehaviour, IModifyPadDeedEventHandler
{
    public Slider happiness;
    public Slider pleasure;
    public Slider arousal;
    public Slider dominance;
    
    private FactionMember factionMember;
    
    private void Awake() { factionMember = GetComponent<FactionMember>(); }
    
    public void OnModifyPad(float happinessChange, float pleasureChange, float arousalChange, float dominanceChange)
    {
        happiness.value = factionMember.pad.happiness;
        pleasure.value = factionMember.pad.pleasure;
        arousal.value = factionMember.pad.arousal;
        dominance.value = factionMember.pad.dominance;
    }
}
(Note: I just typed that into the reply; it might have typos.)