using System; using CSNetwork.GPDataType; using TMPro; using UnityEngine; using UnityEngine.UI; namespace BrewMonster { public class HUDPlayer : MonoBehaviour { public TextMeshProUGUI healthText; public TextMeshProUGUI manaText; public TextMeshProUGUI expText; public TextMeshProUGUI nameText; public TextMeshProUGUI levelText; public Image healthImage; public Image manaImage; public Image expImage; public float neededExp; private void Awake() { EventBus.Subscribe(UpdateHostPlayerInfoUI); EventBus.Subscribe(UpdateNameHostPlayer); EventBus.Subscribe(UpdateNeededExp); } private void OnDestroy() { EventBus.Unsubscribe(UpdateHostPlayerInfoUI); EventBus.Unsubscribe(UpdateNameHostPlayer); EventBus.Unsubscribe(UpdateNeededExp); } private void UpdateNeededExp(EXPToUpLevel obj) { neededExp = obj.NeededExp; } private void UpdateNameHostPlayer(InfoHostPlayer obj) { nameText.text = obj.NameHostPlayer; } private void UpdateHostPlayerInfoUI(cmd_self_info_00 obj) { // BMLogger.LogError("Update HUD Player Info"); healthText.text = $"{obj.iHP}/{obj.iMaxHP}"; manaText.text = $"{obj.iMP}/{obj.iMaxMP}"; expText.text = $"{((float)obj.iExp/neededExp)*100}%"; levelText.text = $"{obj.sLevel}"; healthImage.fillAmount = (float)obj.iHP / (float)obj.iMaxHP; manaImage.fillAmount = (float)obj.iMP / (float)obj.iMaxMP; expImage.fillAmount = (float)obj.iExp / (float)neededExp; } } }