100 lines
2.6 KiB
C#
100 lines
2.6 KiB
C#
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class BattleUI : MonoBehaviour
|
|
{
|
|
public SkillCard[] skillCards;
|
|
public Image[] images; // 0 자동, 1 회피
|
|
public TextMeshProUGUI[] texts; // 0 회피 쿨타임
|
|
public GameObject[] gos; // 0 회피 버튼, 1 착용 버튼
|
|
|
|
eUICardType m_BattleUIType;
|
|
float MaxAvoidCoolTime;
|
|
|
|
public void Set(eUICardType type, int preset = 0)
|
|
{
|
|
m_BattleUIType = type;
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
var skills = sdata.Equip.Skill[preset > 0 ? preset : sdata.Equip.Preset];
|
|
for (int i = 0; i < skills.Count; i++)
|
|
{
|
|
skillCards[i].Set(table_skilllist.Ins.Get_Data_orNull(skills[i]));
|
|
skillCards[i].Set(i);
|
|
skillCards[i].Set_CardType(m_BattleUIType);
|
|
}
|
|
|
|
MaxAvoidCoolTime = table_GlobalValue.Ins.Get_Float("f_AvoidCoolTime");
|
|
Set_Avoid(0f);
|
|
|
|
Set_Auto();
|
|
|
|
DSUtil.InActivateGameObjects(gos);
|
|
//switch (m_BattleUIType)
|
|
//{
|
|
// case eUICardType.UI: gos[1].SetActive(true); break;
|
|
// case eUICardType.Use: gos[0].SetActive(true); break;
|
|
// case eUICardType.UIEquip:
|
|
// break;
|
|
//}
|
|
}
|
|
|
|
public void Set_Avoid(float cooltime)
|
|
{
|
|
if (cooltime > 0f)
|
|
{
|
|
texts[0].text = cooltime.ToString("N0");
|
|
float v = cooltime / MaxAvoidCoolTime;
|
|
images[1].fillAmount = v;
|
|
}
|
|
else
|
|
{
|
|
texts[0].text = "";
|
|
images[1].fillAmount = 0f;
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (Input.GetKey(KeyCode.A))
|
|
OnClick_Attack();
|
|
else if (Input.GetKey(KeyCode.Z))
|
|
OnClick_Avoid();
|
|
}
|
|
|
|
public void OnClick_Auto()
|
|
{
|
|
if (MyValue.bMyPC)
|
|
{
|
|
MyValue.MyPC.Set_Auto();
|
|
Set_Auto();
|
|
}
|
|
}
|
|
void Set_Auto()
|
|
{
|
|
var sdata = ServerInfo.Ins.m_ServerData;
|
|
images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(sdata.Get_Common(eCommon.Auto) == 1 ? "autotarget_on" : "autotarget_off");
|
|
}
|
|
|
|
public void OnClick_Attack()
|
|
{
|
|
var pc = MyValue.MyPC;
|
|
if (MyValue.bMyPC)
|
|
{
|
|
if (DSUtil.CheckNull(pc.Get_Target()) || pc.Get_Target().IsDead())
|
|
pc.Set_Target();
|
|
pc.Play_Attack(0, (float)pc.Get_StatInfo().Get_Stat(eStat.FinalAttackSpeed));
|
|
}
|
|
}
|
|
|
|
public void OnClick_Avoid()
|
|
{
|
|
if (MyValue.bMyPC)
|
|
MyValue.MyPC.Play_Dodge();
|
|
}
|
|
|
|
public void OnClick_Equip()
|
|
{
|
|
NewGameUI.Ins.m_SkillUI.m_SkillEquipUI.Set(eUICardType.UIEquip);
|
|
}
|
|
} |