Project_WL/Assets/Script/UI/Pet/PetUI_Right.cs

119 lines
4.0 KiB
C#

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
public GameObject go_noti;
PetCard m_SelectPet;
public override void Set()
{
Set_ScrollView(table_petlist.Ins.Get_DataList());
SelectPet(null);
Set_UI();
}
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.gos[1].SetActive(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.gos[1].SetActive(true);
// 왼쪽 정보 설정
m_PetUI_Left.Set(Get_SelectPetData());
// 오른쪽 정보 설정
Set_UI();
}
bool CanEquip() { return ServerInfo.Ins.m_ServerData.Get_PetLv(Get_SelectPetData().n_PetID) > 0; }
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())
{
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Equip.Set_Equip(eItem.Pet, Get_SelectPetData().n_PetID);
PCInfo.Ins.Make_Pet(false, sdata, MyValue.MyPC);
Set();
}
}
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);
// 왼쪽 정보 설정
m_PetUI_Left.Set(Get_SelectPetData());
// 오른쪽 정보 설정
Set_UI();
}
}
public PetListTableData Get_SelectPetData() { return m_SelectPet.Get_Data() as PetListTableData; }
}