using UnityEngine; using System.Collections.Generic; public class UIUpdater : MonoBehaviour { public static UIUpdater Instance; public bool IsReady { get; private set; } = false; private void Awake() { if (Instance != null && Instance != this) Destroy(gameObject); else Instance = this; } private Dictionary characterToUI = new(); public void Register(CharacterInGroup character, CharacterUIController ui) { if (!characterToUI.ContainsKey(character.characterName)) characterToUI.Add(character.characterName, ui); } public void Unregister(string characterName) { if (characterToUI.ContainsKey(characterName)) { characterToUI.Remove(characterName); } } public void MarkReady() { IsReady = true; } public CharacterUIController GetUIForCharacterByName(string name) { if (characterToUI.TryGetValue(name, out var ui)) return ui; return null; } public void UpdateCharacterHP(CharacterInGroup character) { if (characterToUI.TryGetValue(character.characterName, out var ui)) { ui.UpdateHPBar(); } } public void UpdateCharacterFatigue(CharacterInGroup character) { if (characterToUI.TryGetValue(character.characterName, out var ui)) { ui.UpdateFatigueBar(); } } public void UpdateCharacterExperience(CharacterInGroup character) { if (characterToUI.TryGetValue(character.characterName, out var ui)) { ui.UpdateExpBar(); } } public CharacterUIController GetUIForCharacter(CharacterInGroup character) { if (characterToUI.TryGetValue(character.characterName, out var ui)) { return ui; } return null; } }