57 lines
1.8 KiB
C#
57 lines
1.8 KiB
C#
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<cmd_self_info_00>(UpdateHostPlayerInfoUI);
|
|
EventBus.Subscribe<InfoHostPlayer>(UpdateNameHostPlayer);
|
|
EventBus.Subscribe<EXPToUpLevel>(UpdateNeededExp);
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
EventBus.Unsubscribe<cmd_self_info_00>(UpdateHostPlayerInfoUI);
|
|
EventBus.Unsubscribe<InfoHostPlayer>(UpdateNameHostPlayer);
|
|
EventBus.Unsubscribe<EXPToUpLevel>(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;
|
|
}
|
|
}
|
|
} |