Project_WL/Assets/Script/UI/Ingame/MonsterSimpleInfo.cs

81 lines
2.4 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class MonsterSimpleInfo : MonoBehaviourSingletonTemplate<MonsterSimpleInfo>
{
public GameObject go_child;
public GameObject go_boss;
public Image[] sprites; // 0 몹 얼굴, 1 잠금
public TextMeshProUGUI[] labels; // 0 레벨
public Slider slider_hp;
public IngameBuffDebuffBase m_IngameBuffDebuffBase;
bool isActor;
Actor m_Actor;
private void Start() { Off(); }
public void Off() { go_child.SetActive(false); m_Actor = null; isActor = false; m_IngameBuffDebuffBase.AllOff(); }
public void Set(Actor actor)
{
if (isActor && m_Actor.m_IsLockTarget) return;
go_child.SetActive(true);
m_Actor = actor;
isActor = true;
go_boss.SetActive(m_Actor.IsSubRole(eSubRol.Boss));
//sprites[0].spriteName = ""; // TODO 정인호 : 몹 얼굴 없음
sprites[1].canvasRenderer.SetAlpha(0.25f);
var maplvdata = table_monsterappear.Ins.Get_Data_orNull(m_Actor.Get_Group());
labels[0].text = $"Lv.{maplvdata.n_AppearMonsterLv}";
slider_hp.value = (float)(m_Actor.Get_HP() / m_Actor.Get_MaxHP());
}
public void DeadTarget(Actor actor)
{
if (isActor && actor == m_Actor)
Off();
}
public bool IsMe(Actor actor) { return actor == m_Actor; }
private void Update()
{
if (isActor) slider_hp.value = (float)(m_Actor.Get_HP() / m_Actor.Get_MaxHP());
}
public void Set_DelLockTarget(bool isDead)
{
sprites[1].canvasRenderer.SetAlpha(0.25f);
if (isActor) m_Actor.m_IsLockTarget = false;
MyValue.MyPC.Del_Target();
MyValue.m_RealCamera.Set_LockTarget(null);
if (isDead) Off();
}
public void OnClick_Lock()
{
if (isActor)
{
m_Actor.m_IsLockTarget = !m_Actor.m_IsLockTarget;
if (m_Actor.m_IsLockTarget)
{
sprites[1].canvasRenderer.SetAlpha(1f);
MyValue.MyPC.Change_Target(true, m_Actor);
if (m_Actor.IsRole(eRole.Mob) && m_Actor.IsSubRole(eSubRol.Boss))
MyValue.m_RealCamera.Set_LockTarget(m_Actor.transform);
}
else
Set_DelLockTarget(false);
}
}
public void OnClick_Close()
{
if (isActor) Set_DelLockTarget(false);
Off();
}
}