using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class PetUI_Right : uScrollViewMgr { public PetUI_Left m_PetUI_Left; public Image[] images; // 0 강화재료1, 1 강화재료2 public TextMeshProUGUI[] texts; // 0 강화재료1, 1 강화재료2, 2 레벨업 효과, 3 레벨업 효과 값 public GameObject go_noti; PetCard m_SelectPet; public override void Set() { Set_Scroll(); SelectPet(null); Set_UI(); } public void Set_Scroll() { Set_ScrollView(table_petlist.Ins.Get_DataList()); } public override void Set_UI() { var sdata = ServerInfo.Ins.m_ServerData; var petData = Get_SelectPetData(); var lv = sdata.Get_PetLv(petData.n_PetID); var Tdata = table_petupgrade.Ins.Get_Data_orNull(lv); var matID = table_GlobalValue.Ins.Get_Int("n_PetReinforceMaterialID"); images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(petData.n_PetID); images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(matID); if (DSUtil.CheckNull(Tdata)) { texts[0].text = "0"; texts[1].text = "0"; go_noti.SetActive(false); } else { texts[0].text = $"{sdata.Get_ItemAmount(petData.n_PetID)}/{Tdata.Get_PetCost(petData.n_PetGrade)}"; texts[1].text = $"{NumberFormatter.FormatNumber(sdata.Get_ItemAmount(matID))}/{NumberFormatter.FormatNumber(Tdata.Get_Price(petData.n_PetGrade, lv))}"; go_noti.SetActive(CanReinforce(false)); } } public void SelectPet(PetCard pet) { if (!DSUtil.CheckNull(m_SelectPet)) m_SelectPet.Set_Selected(false); if (DSUtil.CheckNull(pet)) { var equipid = ServerInfo.Ins.m_ServerData.Get_EqiupmentEquip(eItem.Pet); for (int i = 0; i < list_CardBase.Count; i++) { var id = (list_CardBase[i].Get_Data() as PetListTableData).n_PetID; if (equipid == id) { m_SelectPet = list_CardBase[i] as PetCard; break; } } } else m_SelectPet = pet; m_SelectPet.Set_Selected(true); // 왼쪽 정보 설정 m_PetUI_Left.Set(Get_SelectPetData()); // 오른쪽 정보 설정 Set_UI(); } bool CanEquip() { var sdata = ServerInfo.Ins.m_ServerData; var petid = Get_SelectPetData().n_PetID; var petlv = sdata.Get_PetLv(petid); return petlv > 0 && !sdata.IsEquip(eItem.Pet, petid); } bool CanReinforce(bool showtoast) { var sdata = ServerInfo.Ins.m_ServerData; var petData = Get_SelectPetData(); var lv = sdata.Get_PetLv(petData.n_PetID); var Tdata = table_petupgrade.Ins.Get_Data_orNull(lv); var matID = table_GlobalValue.Ins.Get_Int("n_PetReinforceMaterialID"); return sdata.Check_ItemAmount(petData.n_PetID, Tdata.Get_PetCost(petData.n_PetGrade), showtoast) && sdata.Check_ItemAmount(matID, Tdata.Get_Price(petData.n_PetGrade, lv), showtoast); } public void OnClick_Equip() { if (CanEquip()) { //ServerInfo.Ins.Save_Pet_Equip(Get_SelectPetData().n_PetID, () => //{ var sdata = ServerInfo.Ins.m_ServerData; sdata.Equip.Set_Equip(eItem.Pet, Get_SelectPetData().n_PetID); Set(); //sdata.Add_MissionCount(ePurpose.PET_MOUNT_LIMIT); //}); } } public void OnClick_Reinforce() { if (CanReinforce(true)) { var sdata = ServerInfo.Ins.m_ServerData; var petData = Get_SelectPetData(); var lv = sdata.Get_PetLv(petData.n_PetID); var Tdata = table_petupgrade.Ins.Get_Data_orNull(lv); var matID = table_GlobalValue.Ins.Get_Int("n_PetReinforceMaterialID"); sdata.Use_Item(petData.n_PetID, Tdata.Get_PetCost(petData.n_PetGrade)); sdata.Use_Item(matID, Tdata.Get_Price(petData.n_PetGrade, lv)); sdata.Add_PetLv(petData.n_PetID); NewGameUI.Ins.m_PetUI.m_PetMenuBackData.Add_PetReinforceData(petData.n_PetID); //sdata.Add_MissionCount(ePurpose.PET_UPGRADE_ACC); //sdata.Add_MissionCount(ePurpose.PET_UPGRADE_ALL); // 모든 ui 갱신 Set_Scroll(); SelectPet(m_SelectPet); } } //public void OnClick_Reinforce() //{ // if (CanReinforce(true)) // { // var petData = Get_SelectPetData(); // ServerInfo.Ins.Save_Pet_LvUp(petData.n_PetID, result => // { // var sdata = ServerInfo.Ins.m_ServerData; // var matID = table_GlobalValue.Ins.Get_Int("n_PetReinforceMaterialID"); // sdata.Use_Item(petData.n_PetID, result.usepet); // sdata.Use_Item(matID, result.usemat); // sdata.Add_PetLv(petData.n_PetID); // sdata.Add_MissionCount(ePurpose.PET_UPGRADE_ACC); // sdata.Add_MissionCount(ePurpose.PET_UPGRADE_ALL); // // 왼쪽 정보 설정 // m_PetUI_Left.Set(Get_SelectPetData()); // // 오른쪽 정보 설정 // Set_UI(); // }); // } //} public PetListTableData Get_SelectPetData() { return m_SelectPet.Get_Data() as PetListTableData; } }