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

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);
}
}