| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- 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<string, CharacterUIController> characterToUI = new();
- public void Register(CharacterInGroup character, CharacterUIController ui)
- {
- Debug.Log($"[DEBUG] Enregistrement dans UIUpdater : {character.characterName}");
-
- if (!characterToUI.ContainsKey(character.characterName))
- characterToUI.Add(character.characterName, ui);
- }
- public void Unregister(string characterName)
- {
- if (characterToUI.ContainsKey(characterName))
- {
- characterToUI.Remove(characterName);
- Debug.Log($"[DEBUG] Désenregistrement de {characterName} dans UIUpdater");
- }
- }
-
- // Juste après la méthode Register
- public void MarkReady()
- {
- IsReady = true;
- }
- // Si tu veux chercher un UI via juste le nom du personnage
- public CharacterUIController GetUIForCharacterByName(string name)
- {
- if (characterToUI.TryGetValue(name, out var ui))
- return ui;
- Debug.LogWarning($"[Combat] Aucun UI trouvé pour {name}");
- 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)
- {
- Debug.Log($"[DEBUG] Recherche UI pour {character.characterName}");
- if (characterToUI.TryGetValue(character.characterName, out var ui))
- {
- Debug.Log($"[DEBUG] UI TROUVÉ pour {character.characterName}");
- return ui;
- }
-
- Debug.LogWarning($"[DEBUG] Aucun UI trouvé pour {character.characterName}");
- return null;
- }
- //death ui?
- }
- // Calls
- //Exemple : quand un personnage se soigne :
- // character.currentHP = Mathf.Min(character.maxHP, character.currentHP + 12);
- // UIUpdater.Instance?.UpdateCharacterHP(character);
- // Exemple : quand il gagne de l'expérience :
- // character.experience += 15;
- // UIUpdater.Instance?.UpdateCharacterExperience(character);
- // Exemple : quand il récupère de la fatigue (repos, potion...) :
- // character.currentFatigue = Mathf.Max(0, character.currentFatigue - 10);
- // UIUpdater.Instance?.UpdateCharacterFatigue(character);
|