You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

98 lines
3.4 KiB

using IVDataFormat;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// This is the view of our cell which handles how the cell looks.
/// </summary>
public class EScrEventRaise : EScrCell
{
private GameObject[] goItems, soldOut;
private Image[] imgIcons;
private TextMeshProUGUI[] txtNames, txtAvails, txtCounts, txtLefts;
public override void InitCell()
{
Transform trfself = transform;
int ilen = trfself.childCount;
goItems = new GameObject[ilen];
imgIcons = new Image[ilen];
txtNames = new TextMeshProUGUI[ilen];
txtAvails = new TextMeshProUGUI[ilen];
txtCounts = new TextMeshProUGUI[ilen];
txtLefts = new TextMeshProUGUI[ilen];
soldOut = new GameObject[ilen];
for (int i = 0; i < ilen; i++)
{
Transform trfchild = trfself.GetChild(i);
goItems[i] = trfchild.gameObject;
imgIcons[i] = trfchild.Find("icon").GetComponent<Image>();
txtNames[i] = trfchild.Find("txtName").GetComponent<TextMeshProUGUI>();
txtAvails[i] = trfchild.Find("txtAvail").GetComponent<TextMeshProUGUI>();
txtCounts[i] = trfchild.Find("txtCount").GetComponent<TextMeshProUGUI>();
txtLefts[i] = trfchild.Find("txtLeft").GetComponent<TextMeshProUGUI>();
soldOut[i] = trfchild.Find("EventRaise").gameObject;
}
}
public override void RefreshCellView()
{
SetData(itemID);
}
public override void SetData(int itemid)
{
itemID = itemid;
for (int i = 0; i < goItems.Length; i++)
{
// 이벤트 매니저에서 뽑기 가능한 보상을 행번호(itemid)와 열번호(i)로 가져옴.
int rewindex = EventMgr.SGetRaiseRewardIndex(itemid, i);
if (rewindex < 0)
{
goItems[i].gameObject.SetActive(false);
continue;
}
nGoods reward = EventMgr.SGetRaiseReward(rewindex);
imgIcons[i].sprite = AddressableMgr.GetIcon(reward.propertyType, reward.propertyId);
txtNames[i].text = FormatString.GetGoodsName(reward.propertyType, reward.propertyId);
txtCounts[i].text = reward.propertyCount.ToString();
txtAvails[i].gameObject.SetActive(false);
int buyGoods = 0;
for (int j = DataHandler.GetSysEventRaise().rewards.Length; j > 0; j--)
{
if (DataHandler.GetPlayEventRaise().rewards[j - 1].sid == DataHandler.GetSysEventRaise().rewards[rewindex].id)
{
buyGoods = DataHandler.GetPlayEventRaise().rewards[j - 1].cnt;
break;
}
}
txtLefts[i].text = FormatString.StringFormat(LocalizationText.GetText("even_left_goods_count"), DataHandler.GetSysEventRaise().rewards[rewindex].cnt - buyGoods, DataHandler.GetSysEventRaise().rewards[rewindex].cnt);
if(DataHandler.GetSysEventRaise().rewards[rewindex].cnt - buyGoods <= 0)
{
soldOut[i].SetActive(true);
}
else
{
soldOut[i].SetActive(false);
}
goItems[i].gameObject.SetActive(true);
}
}
public void OnBtnSelect(int ichildindex)
{
BagMgr.SSelectConsume(itemID, ichildindex);
}
}