using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class TreasureSoulPattern1 : TreasureSoulPattern { [SerializeField] RectTransform m_ContainerNone; [SerializeField] RectTransform m_ContainerHas; [SerializeField] List properties; [SerializeField] Text m_ProgressTitle; [SerializeField] Text m_Progress; [SerializeField] Image m_Complete; [SerializeField] Button m_Goto; [SerializeField] Button m_Get; private void Awake() { m_Goto.onClick.AddListener(OnGoto); m_Get.onClick.AddListener(OnGet); } private void OnGet() { special.GetReward(); } private void OnGoto() { switch (special.type) { case TreasurePrivilege.DemonJarAtk: WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.LootPreciousFrameFunc1); break; case TreasurePrivilege.Sp: var treasureModel = ModelCenter.Instance.GetModel(); treasureModel.selectedTreasure = 101; treasureModel.currentCategory = TreasureCategory.Human; WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.TreasureCollectSoul); break; case TreasurePrivilege.MountAtk: WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.PetFunc1); break; case TreasurePrivilege.PetHp: WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.PetFunc2); break; } model.gotoSoul = (int)special.type; } public override void Display(int _id) { base.Display(_id); switch (special.type) { case TreasurePrivilege.DemonJarAtk: m_ProgressTitle.text = Language.Get("TreasurePrivilege_DemonJar"); break; case TreasurePrivilege.Sp: m_ProgressTitle.text = Language.Get("TreasurePrivilege_FairyBoss"); break; case TreasurePrivilege.MountAtk: m_ProgressTitle.text = Language.Get("TreasurePrivilege_Mount"); break; case TreasurePrivilege.PetHp: m_ProgressTitle.text = Language.Get("TreasurePrivilege_Pet"); break; } Display(); } private void Display() { m_Get.gameObject.SetActive(false); m_Goto.gameObject.SetActive(false); for (int i = 0; i < properties.Count; i++) { properties[i].gameObject.SetActive(false); } switch (special.type) { case TreasurePrivilege.DemonJarAtk: case TreasurePrivilege.Sp: case TreasurePrivilege.MountAtk: case TreasurePrivilege.PetHp: var _index = 0; m_ContainerHas.gameObject.SetActive(true); m_ContainerNone.gameObject.SetActive(false); foreach (var _key in special.propertyDict.Keys) { var _value = special.propertyDict[_key] * special.presentFinishCount / special.progress; if (_value <= 0) { m_ContainerHas.gameObject.SetActive(false); m_ContainerNone.gameObject.SetActive(true); break; } properties[_index].gameObject.SetActive(true); properties[_index].DisplayUpper(_key, _value); _index++; } m_Get.gameObject.SetActive(special.state == TreasurePrivilegeState.Reward); m_Goto.gameObject.SetActive(special.state == TreasurePrivilegeState.Doing); m_Progress.text = special.ProgressDisplay(); //m_Progress.color = specialData.state == TreasurePrivilegeState.Doing ? UIHelper.GetUIColor(TextColType.Red, true) : UIHelper.GetUIColor(TextColType.Green, true); m_Complete.gameObject.SetActive(special.state == TreasurePrivilegeState.Complete); break; } } protected override void TreasurePrivilegeUpdateEvent(int _id) { base.TreasurePrivilegeUpdateEvent(_id); if (_id == (int)special.type) { Display(); } } } }