using UnityEngine; using TMPro; using IVDataFormat; using UnityEngine.UI; public class IVPpRarityCheck : MonoBehaviour { protected TextMeshProUGUI txtTitle; protected TextMeshProUGUI txtDesc; protected TextMeshProUGUI txtBtnYes; protected TextMeshProUGUI txtBtnNo; protected GoodsItem goodsItem; protected Toggle[] tglRarities; protected ButtonIV btnYes; protected System.Action actionToggle; protected System.Action actionBtnYes; protected System.Action actionBtnNo; public bool IsOpen() { return gameObject.activeSelf; } public virtual void Init() { btnYes = transform.Find("btnYes").GetComponent(); txtTitle = transform.Find("txtTitle").GetComponent(); txtDesc = transform.Find("txtDesc").GetComponent(); txtBtnYes = btnYes.transform.Find("txt").GetComponent(); txtBtnNo = transform.Find("btnNo").Find("txt").GetComponent(); goodsItem = transform.Find("GoodsItem").GetComponent(); tglRarities = transform.Find("tgls").GetComponentsInChildren(true); } public void Open(nGoods goodsuse, fRangeRarity rarities, System.Action actiontoggle, System.Action actionyes, System.Action actionno = null, string strtitle = null, string strdesc = null, string stryes = null, string strno = null) { if (string.IsNullOrEmpty(strtitle)) strtitle = LocalizationText.GetText(Global.STR_USE); if (string.IsNullOrEmpty(stryes)) stryes = LocalizationText.GetText(Global.STR_USE); if (string.IsNullOrEmpty(strno)) strno = LocalizationText.GetText(Global.STR_CANCEL); txtTitle.text = strtitle; txtDesc.text = strdesc; txtBtnYes.text = stryes; txtBtnNo.text = strno; goodsItem.SetData(goodsuse); tglRarities[0].SetIsOnWithoutNotify(rarities.HasFlag(fRangeRarity.Normal)); tglRarities[1].SetIsOnWithoutNotify(rarities.HasFlag(fRangeRarity.Rare)); tglRarities[2].SetIsOnWithoutNotify(rarities.HasFlag(fRangeRarity.Epic)); tglRarities[3].SetIsOnWithoutNotify(rarities.HasFlag(fRangeRarity.Unique)); tglRarities[4].SetIsOnWithoutNotify(rarities.HasFlag(fRangeRarity.Hero)); tglRarities[5].SetIsOnWithoutNotify(rarities.HasFlag(fRangeRarity.Legend)); tglRarities[6].SetIsOnWithoutNotify(rarities.HasFlag(fRangeRarity.Myth)); actionToggle = actiontoggle; actionBtnYes = actionyes; actionBtnNo = actionno; gameObject.SetActive(true); } public void SetBtnYes(bool binteractable) { btnYes.interactable = binteractable; } public fRangeRarity GetPopupRarityCheck() { fRangeRarity rarities = fRangeRarity.None; if (tglRarities[0].isOn) rarities |= fRangeRarity.Normal; if (tglRarities[1].isOn) rarities |= fRangeRarity.Rare; if (tglRarities[2].isOn) rarities |= fRangeRarity.Epic; if (tglRarities[3].isOn) rarities |= fRangeRarity.Unique; if (tglRarities[4].isOn) rarities |= fRangeRarity.Hero; if (tglRarities[5].isOn) rarities |= fRangeRarity.Legend; if (tglRarities[6].isOn) rarities |= fRangeRarity.Myth; return rarities; } public void ToggleCheck() { SoundMgr.PlaySfx(SoundName.BtnPress); if (actionToggle != null) actionToggle.Invoke(); } public void BtnYesPressed() { SoundMgr.PlaySfx(SoundName.BtnPress); GameUIMgr.SOnClosePopup(); gameObject.SetActive(false); if (actionBtnYes != null) actionBtnYes.Invoke(); } public void BtnNoPressed() { SoundMgr.PlaySfx(SoundName.BtnPress); GameUIMgr.SOnClosePopup(); gameObject.SetActive(false); if (actionBtnNo != null) actionBtnNo.Invoke(); } }