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.
186 lines
5.9 KiB
186 lines
5.9 KiB
using IVDataFormat;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
|
|
public class EScrCostume : EScrCell
|
|
{
|
|
private TextMeshProUGUI txtName;
|
|
private TextMeshProUGUI txtEffect;
|
|
private Image effectBg;
|
|
|
|
private RectTransform rtrfSelect;
|
|
private RectTransform rtrfSet;
|
|
|
|
private RectTransform[] rtrfItems;
|
|
private Button[] btnItems;
|
|
private Image[] imgBg;
|
|
private Image[] imgIcons;
|
|
private Image[] imgNotHaves;
|
|
private Image[] imgBadges;
|
|
|
|
public override void InitCell()
|
|
{
|
|
Transform trfself = transform;
|
|
txtName = trfself.Find("txtName").GetComponent<TextMeshProUGUI>();
|
|
txtEffect = trfself.Find("txtEffect").GetComponent<TextMeshProUGUI>();
|
|
effectBg = trfself.Find("txtbg").GetComponent<Image>();
|
|
|
|
|
|
rtrfSelect = trfself.Find("select").GetComponent<RectTransform>();
|
|
rtrfSet = trfself.Find("set").GetComponent<RectTransform>();
|
|
rtrfSet.GetChild(0).Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equiping");
|
|
|
|
btnItems = trfself.GetComponentsInChildren<Button>(true);
|
|
int ilen = btnItems.Length;
|
|
rtrfItems = new RectTransform[ilen];
|
|
imgBg = new Image[ilen];
|
|
imgIcons = new Image[ilen];
|
|
imgNotHaves = new Image[ilen];
|
|
imgBadges = new Image[ilen];
|
|
|
|
for (int i = 0; i < ilen; i++)
|
|
{
|
|
rtrfItems[i] = btnItems[i].GetComponent<RectTransform>();
|
|
imgBg[i] = btnItems[i].GetComponent<Image>();
|
|
imgIcons[i] = rtrfItems[i].Find("imgIcon").GetComponent<Image>();
|
|
imgNotHaves[i] = rtrfItems[i].Find("goNotHave").GetComponent<Image>();
|
|
imgBadges[i] = rtrfItems[i].Find("badge").GetComponent<Image>();
|
|
}
|
|
}
|
|
|
|
public override void Localize()
|
|
{
|
|
rtrfSet.GetChild(0).Find("txt").GetComponent<TextMeshProUGUI>().text = LocalizationText.GetText("all_equiping");
|
|
}
|
|
|
|
public override void RefreshCellView()
|
|
{
|
|
SetData(itemID);
|
|
}
|
|
|
|
public override void SetData(int itemid)
|
|
{
|
|
itemID = itemid;
|
|
|
|
bool ballhave = true;
|
|
int iselectindex = -1;
|
|
int isetindex = -1;
|
|
|
|
// 의상.
|
|
if (iType == 0)
|
|
{
|
|
dCostumeSet data = DataHandler.GetCosClothSet(itemid);
|
|
if (data == null)
|
|
return;
|
|
|
|
txtName.text = FormatString.GetSetName(cGoods.TCosCloth, itemid);
|
|
txtEffect.text = FormatString.TextEffectTitleValue(data.abilityType, data.abilityValue);
|
|
|
|
for (int i = 0; i < imgIcons.Length; i++)
|
|
{
|
|
if (i >= data.set.Length || data.set[i] < 0)
|
|
{
|
|
btnItems[i].gameObject.SetActive(false);
|
|
continue;
|
|
}
|
|
|
|
int idx = data.set[i];
|
|
if (CustomizeMgr.SIsSelectCostume(iType, idx))
|
|
iselectindex = i;
|
|
if (DataHandler.PlayEquipCostume.outfitId == idx)
|
|
isetindex = i;
|
|
|
|
imgIcons[i].sprite = AddressableMgr.GetCosClothIcon(idx);
|
|
imgNotHaves[i].enabled = !DataHandler.IsCosClothHave(idx);
|
|
btnItems[i].interactable = iselectindex != i;
|
|
btnItems[i].gameObject.SetActive(true);
|
|
if (imgNotHaves[i].enabled)
|
|
ballhave = false;
|
|
}
|
|
}
|
|
// 무기.
|
|
else
|
|
{
|
|
dCostumeSet data = DataHandler.GetCosWeaponSet(itemid);
|
|
if (data == null)
|
|
return;
|
|
|
|
txtName.text = FormatString.GetSetName(cGoods.TCosWeapon, itemid);
|
|
txtEffect.text = FormatString.TextEffectTitleValue(data.abilityType, data.abilityValue);
|
|
|
|
for (int i = 0; i < imgIcons.Length; i++)
|
|
{
|
|
if (i >= data.set.Length || data.set[i] < 0)
|
|
{
|
|
btnItems[i].gameObject.SetActive(false);
|
|
continue;
|
|
}
|
|
|
|
int idx = data.set[i];
|
|
if (CustomizeMgr.SIsSelectCostume(iType, idx))
|
|
iselectindex = i;
|
|
if (DataHandler.PlayEquipCostume.weaponId == idx)
|
|
isetindex = i;
|
|
|
|
imgIcons[i].sprite = AddressableMgr.GetCosWeaponIcon(idx);
|
|
imgNotHaves[i].enabled = !DataHandler.IsCosWeaponHave(idx);
|
|
btnItems[i].interactable = iselectindex != i;
|
|
btnItems[i].gameObject.SetActive(true);
|
|
if (imgNotHaves[i].enabled)
|
|
ballhave = false;
|
|
}
|
|
}
|
|
|
|
if (ballhave)
|
|
{
|
|
txtEffect.color = Global.CLR_White;
|
|
effectBg.color = new Color(255f / 255f, 237f / 255f, 96f / 255f, 255f / 255f);
|
|
for (int i = 0; i < imgBg.Length; i++)
|
|
{
|
|
//imgBg[i].color = Global.CLR_TextYellow;
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
{
|
|
txtEffect.color = Global.CLR_FrontNotHave;
|
|
effectBg.color = new Color(142f / 255f, 114f / 255f, 47f / 255f, 255f / 255f);
|
|
for(int i = 0; i < imgBg.Length; i++)
|
|
{
|
|
//imgBg[i].color= new Color(156f / 255f, 200f / 255f, 255f / 255f, 1f);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
if (iselectindex >= 0)
|
|
{
|
|
rtrfSelect.anchoredPosition = rtrfItems[iselectindex].anchoredPosition;
|
|
rtrfSelect.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
rtrfSelect.gameObject.SetActive(false);
|
|
}
|
|
|
|
if (isetindex >= 0)
|
|
{
|
|
rtrfSet.anchoredPosition = rtrfItems[isetindex].anchoredPosition;
|
|
rtrfSet.gameObject.SetActive(true);
|
|
}
|
|
else
|
|
{
|
|
rtrfSet.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
public void OnBtnSelect(int ichildindex)
|
|
{
|
|
SoundMgr.PlaySfx(SoundName.BtnPress);
|
|
|
|
CustomizeMgr.SSelectCostume(iType, itemID, ichildindex);
|
|
}
|
|
}
|