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.
166 lines
5.4 KiB
166 lines
5.4 KiB
using IVDataFormat;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using DG.Tweening;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class EScrTitle : EScrCell
|
|
{
|
|
[SerializeField] Color colShadow;
|
|
|
|
private RectTransform[] rtrfItems;
|
|
private TextMeshProUGUI[] txtTitleName;
|
|
private GraphicsColorSetter[] txtTitleNameColorSetter;
|
|
private Button[] btnSelect;
|
|
private RectTransform imgSelect;
|
|
private RectTransform[] imgBadges;
|
|
private Image[] imgIsEquip;
|
|
private Image[] imgShadow;
|
|
private int[] haveIds;
|
|
private nAchivement[] achives = new nAchivement[2];
|
|
|
|
public override void InitCell()
|
|
{
|
|
Transform trfself = transform;
|
|
|
|
const int len = 2;
|
|
rtrfItems = new RectTransform[len];
|
|
txtTitleName = new TextMeshProUGUI[len];
|
|
txtTitleNameColorSetter = new GraphicsColorSetter[len];
|
|
btnSelect = new Button[len];
|
|
imgBadges = new RectTransform[len];
|
|
imgSelect = new RectTransform();
|
|
haveIds = new int[len];
|
|
imgIsEquip = new Image[len];
|
|
imgShadow = new Image[len];
|
|
btnSelect = trfself.GetComponentsInChildren<Button>(true);
|
|
|
|
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 < len; i++)
|
|
{
|
|
rtrfItems[i] = btnSelect[i].GetComponent<RectTransform>();
|
|
txtTitleName[i] = rtrfItems[i].Find("txt").GetComponent<TextMeshProUGUI>();
|
|
txtTitleNameColorSetter[i] = txtTitleName[i].GetComponent<GraphicsColorSetter>();
|
|
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>();
|
|
}
|
|
}
|
|
|
|
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);
|
|
|
|
var title = DataHandler.GetPlayerTitle(haveIds[i]);
|
|
if (title != null && (int)title.category == ProfileMgr.SGetTitleContent())
|
|
{
|
|
achives[i] = new nAchivement(title);
|
|
btnSelect[i].gameObject.SetActive(true);
|
|
txtTitleName[i].text = FormatString.GetGoodsName(cGoods.TProfileTitle, haveIds[i]);
|
|
txtTitleNameColorSetter[i]?.SetColor(title.grade.ToString());
|
|
imgShadow[i].color = colShadow;
|
|
|
|
if (title.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.Instance.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();
|
|
}
|
|
}
|
|
}
|