Project_WL/Assets/Script/UI/Farm/FarmSelectEnchantCard.cs

76 lines
2.9 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class FarmSelectEnchantCard : CardBase
{
public Image[] images; // 0 인챈트, 1 bg
public TextMeshProUGUI[] texts; // 0 이름, 1 예상 수확물, 2 인챈트 수량
public GameObject[] gos; // 0 심기 버튼
public MoneyForm[] moneyForms;
EnchantListTableData m_Data;
public override void Set<T>(T _base)
{
base.Set(_base);
m_Data = _base as EnchantListTableData;
var sdata = ServerInfo.Ins.m_ServerData;
var amount = sdata.Get_EnchantAmount(m_Data.n_EnchantID);
images[0].sprite = UIAtlasMgr.Ins.Get_Sprite(m_Data.n_EnchantID);
texts[0].text = m_Data.Get_Name();
var item455 = table_itemlist.Ins.Get_ItemName(455);
var seed = table_itemlist.Ins.Get_ItemName(table_GlobalValue.Ins.Get_Int("n_FarmSeedID"));
texts[1].text = DSUtil.Format("{0}, {1}\n{2}", item455, m_Data.Get_FruitName(), seed);
texts[2].text = DSUtil.Format("{0}", amount);
Set_Selected(false);
gos[0].SetActive(false);
}
public override void Set_Selected(bool active)
{
images[1].sprite = UIAtlasMgr.Ins.Get_Sprite(active ? "slot 2" : "slot 1");
}
public override void Do_SomeThing()
{
gos[0].SetActive(true);
var seedid = table_GlobalValue.Ins.Get_Int("n_FarmSeedID");
var needamount = table_GlobalValue.Ins.Get_Int("n_FarmPlantingSeedAmount");
moneyForms[0].icon.sprite = UIAtlasMgr.Ins.Get_Sprite(seedid);
moneyForms[0].amount.text = needamount.ToString();
moneyForms[1].icon.sprite = images[0].sprite;
moneyForms[1].amount.text = "1";
}
public void OnClick_Select()
{
var sdata = ServerInfo.Ins.m_ServerData;
var seedid = table_GlobalValue.Ins.Get_Int("n_FarmSeedID");
var needamount = table_GlobalValue.Ins.Get_Int("n_FarmPlantingSeedAmount");
if (sdata.Check_ItemAmount(seedid, needamount) && sdata.Check_ItemAmount(m_Data.n_EnchantID, 1))
{
sdata.Use_Item(seedid, needamount);
sdata.Use_Item(m_Data.n_EnchantID, 1);
// 농장 슬롯에 등급과 시간 추가
var slotdata = FarmSelectEnchantUI.Ins.Get_SlotData();
var Tdata = table_harvestconfig.Ins.Get_RandomData();
var ainfo = MyValue.Get_ActorStatInfoorNull(eRole.PC, false);
var harvestTime = Tdata.n_HarvestTime - Tdata.n_HarvestTime * ainfo.Get_Stat(eStat.ReduceHarvestTime);
sdata.Set_FarmSlot(slotdata.Slot, Tdata.n_Grade, harvestTime, m_Data.n_EnchantID);
var itemData = table_itemlist.Ins.Get_Data(seedid);
sdata.Add_MissionCount(ePurpose.PLANTING_CROPS_GRADE_ALL);
sdata.Add_MissionCount(ePurpose.PLANTING_CROPS_GRADE_ACC, itemData.n_ItemGrade);
FarmSlotUI.Ins.Set();
ToastUI.Ins.Set(165);
}
FarmSlotUI.Ins.m_FarmSelectEnchantUI.Set_UI();
}
}