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.
 
 
 
 
 
 

171 lines
5.5 KiB

using IVDataFormat;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
public class EScrTitle : EScrCell
{
private RectTransform[] rtrfItems;
private TextMeshProUGUI[] txtTitleName;
private Button[] btnSelect;
private RectTransform imgSelect;
private RectTransform[] imgBadges;
private Image[] imgIsEquip;
private Image[] imgShadow;
private int[] difficulty;
private int[] haveIds;
private Color colShadow;
private nAchivement[] achives = new nAchivement[2];
//private int iSelectNum;
public override void InitCell()
{
Transform trfself = transform;
int ilen = 2;
rtrfItems = new RectTransform[ilen];
txtTitleName = new TextMeshProUGUI[ilen];
btnSelect = new Button[ilen];
imgBadges = new RectTransform[ilen];
imgSelect = new RectTransform();
difficulty = new int[ilen];
haveIds = new int[ilen];
imgIsEquip = new Image[ilen];
imgShadow = new Image[ilen];
btnSelect = trfself.GetComponentsInChildren<Button>(true);
colShadow = Color.black;
colShadow.a = 0.5f;
imgBadges[0] = trfself.Find("Badges").Find("badge0").GetComponent<RectTransform>();
imgBadges[1] = trfself.Find("Badges").Find("badge1").GetComponent<RectTransform>();
imgSelect = trfself.Find("select").GetComponent<RectTransform>();
for (int i = 0; i < ilen; i++)
{
rtrfItems[i] = btnSelect[i].GetComponent<RectTransform>();
txtTitleName[i] = rtrfItems[i].Find("txt").GetComponent<TextMeshProUGUI>();
imgIsEquip[i] = rtrfItems[i].Find("equip").GetComponent<Image>();
imgIsEquip[i].transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equiping");
imgShadow[i] = rtrfItems[i].Find("imgShadow").GetComponent<Image>();
}
//iSelectNum = ProfileMgr.GetSelectTitleNum();
}
public override void Localize()
{
for (int i = 0; i < imgIsEquip.Length; 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<txtTitleName.Length; i++)
{
haveIds[i] = ProfileMgr.SGetTitleId(itemid + i);
achives[i] = new nAchivement(DataHandler.GetPlayerTitle(haveIds[i]));
if (DataHandler.GetPlayerTitle(haveIds[i]) != null && (int)DataHandler.GetPlayerTitle(haveIds[i]).category == ProfileMgr.SGetTitleContent())
{
btnSelect[i].gameObject.SetActive(true);
txtTitleName[i].text = FormatString.GetGoodsName(cGoods.TProfileTitle, haveIds[i]);
difficulty[i] = (int)DataHandler.GetPlayerTitle(haveIds[i]).grade;
txtTitleName[i].color = Global.CLR_Title[difficulty[i]];
imgShadow[i].color = colShadow;
if (DataHandler.GetPlayerTitle(haveIds[i]).have)
{
imgShadow[i].gameObject.SetActive(false);
imgBadges[i].gameObject.SetActive(false);
}
else if (DataHandler.isClearAchievements(achives[i]) > 0)
{
imgShadow[i].gameObject.SetActive(true);
imgBadges[i].gameObject.SetActive(true);
unlockEffect();
}
else
{
imgShadow[i].gameObject.SetActive(true);
imgBadges[i].gameObject.SetActive(false);
unlockEffect();
}
}
else
{
btnSelect[i].gameObject.SetActive(false);
imgBadges[i].gameObject.SetActive(false);
}
}
initSelect();
initEquip();
}
public void btnSelectTitle(int idx)
{
SoundMgr.PlaySfx(SoundName.BtnPress);
ProfileMgr.SSetSelectTitleNum(haveIds[idx]);
}
public void initSelect()
{
for(int i = 0; i<txtTitleName.Length; i++)
{
if (ProfileMgr.SGetSelectTitleNum() == haveIds[i])
{
ProfileMgr.SSetTitleUi(haveIds[i]);
imgSelect.transform.position = btnSelect[i].transform.position;
imgSelect.gameObject.SetActive(true);
return;
}
else
{
imgSelect.gameObject.SetActive(false);
}
}
}
public void initEquip()
{
for (int i = 0; i < txtTitleName.Length; i++)
{
if (DataHandler.PlayData.playerTitle == haveIds[i])
{
imgIsEquip[i].gameObject.SetActive(true);
}
else
imgIsEquip[i].gameObject.SetActive(false);
}
}
public void unlockEffect()
{
for (int i = 0; i < 2; i++)
{
if (i < 2 && 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();
}
}
}