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.
 
 
 
 
 
 

163 lines
5.3 KiB

using TMPro;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
using IVDataFormat;
public class EScrIcon : EScrCell
{
private RectTransform[] rtrfItems;
private Button[] btnBackground;
private Image[] imgIcon;
private RectTransform imgSelect;
private RectTransform rtrfBadge;
private RectTransform[] imgBadges;
private Image[] imgIsEquip;
private Image[] imgShadow;
private Color colShadow;
private nAchivement[] achives = new nAchivement[4];
public override void InitCell()
{
Transform trfself = transform;
int ilen = 4;
rtrfBadge = new RectTransform();
rtrfItems = new RectTransform[ilen];
imgBadges = new RectTransform[ilen];
imgSelect = new RectTransform();
imgIcon = new Image[ilen];
imgIsEquip = new Image[ilen];
btnBackground = new Button[ilen];
imgShadow = new Image[ilen];
colShadow = Color.black;
colShadow.a = 0.5f;
imgSelect = trfself.Find("select").GetComponent<RectTransform>();
rtrfBadge = trfself.Find("Badges").GetComponent<RectTransform>();
imgBadges[0] = rtrfBadge.Find("badge0").GetComponent<RectTransform>();
imgBadges[1] = rtrfBadge.Find("badge1").GetComponent<RectTransform>();
imgBadges[2] = rtrfBadge.Find("badge2").GetComponent<RectTransform>();
imgBadges[3] = rtrfBadge.Find("badge3").GetComponent<RectTransform>();
for (int i = 0; i< ilen; i++)
{
btnBackground[i] = trfself.GetChild(i).GetComponent<Button>();
rtrfItems[i] = btnBackground[i].GetComponent<RectTransform>();
imgIcon[i] = rtrfItems[i].Find("imgIcon").GetComponent<Image>();
imgIsEquip[i] = rtrfItems[i].Find("equip").GetComponent<Image>();
imgShadow[i] = rtrfItems[i].Find("imgShadow").GetComponent<Image>();
imgIsEquip[i].transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equiping");
}
}
public override void Localize()
{
int ilen = 4;
for (int i = 0; i < ilen; i++)
{
imgIsEquip[i].transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equiping");
}
}
public override void RefreshCellView()
{
base.RefreshCellView();
SetData(itemID);
}
public override void SetData(int itemid)
{
itemID = itemid;
for (int i = 0; i<rtrfItems.Length; i++)
{
// �� �Ҵ�
achives[i] = new nAchivement(DataHandler.GetPlayerIcon(itemID + i));
if (DataHandler.GetPlayerIcon(itemid + i) != null)
{
btnBackground[i].gameObject.SetActive(true);
imgIcon[i].sprite = AddressableMgr.GetPlayerIcon(i + itemid);
//�ر� ������ ���¸�
if(DataHandler.GetPlayerIcon(i + itemid).have)
{
imgShadow[i].gameObject.SetActive(false);
imgBadges[i].gameObject.SetActive(false);
}
else if (DataHandler.isClearAchievements(achives[i]) > 0 && !DataHandler.GetPlayerIcon(i + itemid).have)
{
imgShadow[i].gameObject.SetActive(true);
imgBadges[i].gameObject.SetActive(true);
unlockEffect();
}
else//if(!DataHandler.GetPlayerIcon(i + itemid).have)
{
imgShadow[i].gameObject.SetActive(true);
imgBadges[i].gameObject.SetActive(false);
unlockEffect();
}
}
else
{
btnBackground[i].gameObject.SetActive(false);
imgBadges[i].gameObject.SetActive(false);
}
}
initSelect();
initEquip();
}
public void btnSelectIcon(int idx)
{
SoundMgr.Instance.PlaySfx(SoundName.BtnPress);
ProfileMgr.SSetSelectIconNum(itemID + idx);
}
private void initSelect()
{
for (int i = 0; i < rtrfItems.Length; i++)
{
if (ProfileMgr.SGetSelectIconNum() == itemID + i)
{
imgSelect.gameObject.SetActive(true);
imgSelect.transform.position = imgIcon[i].transform.position;
ProfileMgr.SSetIconUi(itemID + i);
return;
}
else
imgSelect.gameObject.SetActive(false);
}
}
public void initEquip()
{
for (int i = 0; i < rtrfItems.Length; i++)
{
if (DataHandler.PlayData.playerIcon == itemID + i)
{
imgIsEquip[i].gameObject.SetActive(true);
}
else
imgIsEquip[i].gameObject.SetActive(false);
}
}
public void unlockEffect()
{
for (int i = 0; i < 4; i++)
{
if (i < 4 && imgBadges[i].gameObject.activeSelf)
{
imgShadow[i].color = colShadow;
imgShadow[i].DOFade(0f, 0.5f).SetEase(Ease.Linear).SetLoops(-1, LoopType.Yoyo).Restart();
}
else
imgShadow[i].DOKill();
}
}
}