using Nullframes.Intrigues.UI; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; using UnityEngine.UI; namespace Nullframes.Intrigues.Demo { public class DemoManager : MonoBehaviour { // Holds the player character instance public DemoCharacter player { get; private set; } // Static instance of this class for singleton pattern public static DemoManager instance; // UI element to display the player's portrait public Image playerPortrait; [Space(10)] // Tooltip and text UI elements for power, spy, coin, and bag information public TooltipTrigger powerTooltip; public TextMeshProUGUI powerText; public TooltipTrigger spyTooltip; public TextMeshProUGUI spyText; public TooltipTrigger coinTooltip; public TextMeshProUGUI coinText; public TooltipTrigger bagTooltip; public TextMeshProUGUI bagText; // Boolean to track if the game is paused private bool gameIsPaused; [Space(10)] // GameObject to display key notes public GameObject keyNotes; [Space(10)] // SpeedControl object to control the game speed public SpeedControl speedControl; [Space(10)] // Unity events triggered when quit menu is opened or closed public UnityEvent onQuitMenuOpen; public UnityEvent onQuitMenuClosed; // Default portrait to be used if no specific portrait is set private Sprite defaultPortrait; private void Awake() { // Assign this instance to the static instance property for singleton pattern instance = this; } private void OnEnable() { // Subscribe to player change event to handle changes in player character IM.onPlayerIsChanged += OnPlayerChanged; } private void OnDisable() { // Unsubscribe from player change event when this object gets disabled IM.onPlayerIsChanged -= OnPlayerChanged; } private void Start() { // Initialize player from global player manager and setup portrait UI player = IM.Player.GetComponent(); defaultPortrait = playerPortrait.sprite; // Use custom portrait from global player if available, else use default playerPortrait.sprite = IM.Player.Portrait ?? defaultPortrait; // Add a click listener to player's portrait button to open actor menu playerPortrait.GetComponent