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.4 KiB
171 lines
5.4 KiB
using IVDataFormat;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
|
|
public class EScrCostume : EScrCell
|
|
{
|
|
[SerializeField] GraphicsColorSetter effectTxtColorSetter;
|
|
|
|
private TextMeshProUGUI txtName;
|
|
private TextMeshProUGUI txtEffect;
|
|
|
|
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>();
|
|
|
|
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)
|
|
{
|
|
effectTxtColorSetter?.SetColor("white_alp100");
|
|
}
|
|
else
|
|
{
|
|
effectTxtColorSetter?.SetColor("white_alp50");
|
|
}
|
|
|
|
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.Instance.PlaySfx(SoundName.BtnPress);
|
|
|
|
CustomizeMgr.SSelectCostume(iType, itemID, ichildindex);
|
|
}
|
|
}
|