using UnityEngine; using UnityEngine.UI; namespace MoleMole { public class MonoItempediaIconButton : MonoBehaviour { public delegate void ClickCallBack(ItempediaDataAdapter item); private ClickCallBack _clickCallBack; public ItempediaDataAdapter _item; public Color inactiveColor; public void SetupView(ItempediaDataAdapter item, bool active) { _item = item; base.transform.Find("SelectedMark").gameObject.SetActive(false); base.transform.Find("ProtectedMark").gameObject.SetActive(false); base.transform.Find("NotEnough").gameObject.SetActive(false); base.transform.Find("Star").gameObject.SetActive(false); base.transform.Find("StigmataType").gameObject.SetActive(false); base.transform.Find("UnidentifyText").gameObject.SetActive(false); base.transform.Find("BG/Unselected").gameObject.SetActive(true); base.transform.Find("BG/Selected").gameObject.SetActive(false); base.transform.Find("Text").gameObject.SetActive(false); if (_item == null) { base.transform.Find("ItemIcon").gameObject.SetActive(false); return; } base.transform.Find("ItemIcon").gameObject.SetActive(true); Sprite spriteByPrefab = Miscs.GetSpriteByPrefab(item.iconPath); base.transform.Find("ItemIcon/Icon").GetComponent().sprite = spriteByPrefab; base.transform.Find("ItemIcon").GetComponent().color = Color.white; base.transform.Find("ItemIcon").GetComponent().sprite = Miscs.GetSpriteByPrefab(MiscData.Config.ItemRarityBGImgPath[item.rarity]); SetupRarityView(); SetupStigmataTypeIcon(); if (!active) { SetItemGrey(); } else { SetItemDefaultColor(); } } private void SetupCostView(bool bShowCostOver) { base.transform.Find("CostOver").gameObject.SetActive(bShowCostOver); } private void SetupUsedView(bool bUsed) { base.transform.Find("Used").gameObject.SetActive(bUsed); } private void SetupRarityView() { string hexString = MiscData.Config.ItemRarityColorList[_item.rarity]; base.transform.Find("ItemIcon").GetComponent().color = Miscs.ParseColor(hexString); base.transform.Find("Star").gameObject.SetActive(true); base.transform.Find("Star").GetComponent().SetupView(_item.rarity, _item.maxRarity); } private void SetupStigmataTypeIcon() { base.transform.Find("StigmataType").gameObject.SetActive(false); } private void SetItemGrey() { base.transform.Find("BG/Unselected/FrameComItem").GetComponent().color = MiscData.GetColor("DropItemImageGrey"); base.transform.Find("ItemIcon").GetComponent().material = null; base.transform.Find("ItemIcon").GetComponent().color = MiscData.GetColor("DropItemIconGrey"); base.transform.Find("ItemIcon").GetComponent().sprite = Miscs.GetSpriteByPrefab(MiscData.Config.ItemRarityBGImgPath[_item.rarity]); base.transform.Find("Star/1").GetComponent().color = MiscData.GetColor("DropItemIconGrey"); base.transform.Find("Star/2").GetComponent().color = MiscData.GetColor("DropItemIconGrey"); base.transform.Find("Star/3").GetComponent().color = MiscData.GetColor("DropItemIconGrey"); base.transform.Find("Star/4").GetComponent().color = MiscData.GetColor("DropItemIconGrey"); base.transform.Find("Star/5").GetComponent().color = MiscData.GetColor("DropItemIconGrey"); base.transform.Find("Star/6").GetComponent().color = MiscData.GetColor("DropItemIconGrey"); Image component = base.transform.Find("ItemIcon/Icon").GetComponent(); if (component.material != component.defaultMaterial) { component.color = MiscData.GetColor("DropItemIconFullGrey"); } else { component.color = MiscData.GetColor("DropItemIconGrey"); } } private void SetItemDefaultColor() { base.transform.Find("BG/Unselected/FrameComItem").GetComponent().material = null; base.transform.Find("BG/Unselected/FrameComItem").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("ItemIcon").GetComponent().material = null; base.transform.Find("ItemIcon").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("ItemIcon").GetComponent().sprite = Miscs.GetSpriteByPrefab(MiscData.Config.ItemRarityBGImgPath[_item.rarity]); base.transform.Find("Star/1").GetComponent().material = null; base.transform.Find("Star/1").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("Star/2").GetComponent().material = null; base.transform.Find("Star/2").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("Star/3").GetComponent().material = null; base.transform.Find("Star/3").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("Star/4").GetComponent().material = null; base.transform.Find("Star/4").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("Star/5").GetComponent().material = null; base.transform.Find("Star/5").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("Star/6").GetComponent().material = null; base.transform.Find("Star/6").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); base.transform.Find("ItemIcon/Icon").GetComponent().material = null; base.transform.Find("ItemIcon/Icon").GetComponent().color = MiscData.GetColor("DropItemImageDefaultColor"); } public void OnClick() { if (_clickCallBack != null) { _clickCallBack(_item); } } public void SetClickCallback(ClickCallBack callback) { _clickCallBack = callback; } } }