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); WL.UI.WLBattlePadLayout.NotifySet(this); // WL-813c: 서버 프리셋 재적용 뒤 전투 패드 배치 복원(컴포넌트 없으면 무동작) //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); } }