using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class TreasureUnlockCell : CellView { [SerializeField] Image m_Icon; [SerializeField] Text m_Func; [SerializeField] Image m_Cutline; [SerializeField] Button m_Button; TreasureModel model { get { return ModelCenter.Instance.GetModel(); } } public void Display(int id, int stage) { m_Button.RemoveAllListeners(); Treasure treasure; if (model.TryGetTreasure(id, out treasure)) { var treasureStage = treasure.treasureStages.Find((x) => { return x.stage == stage; }); bool last = true; for (int i = 0; i < treasure.treasureStages.Count; i++) { var _stage = treasure.treasureStages[i]; if (stage < _stage.stage && (_stage.unlockType == TreasureStageUnlock.Func || _stage.unlockType == TreasureStageUnlock.Skill || _stage.unlockType == TreasureStageUnlock.Treasure)) { last = false; break; } } m_Cutline.gameObject.SetActive(!last); if (treasureStage != null) { switch (treasureStage.unlockType) { case TreasureStageUnlock.Skill: var skillConfig = Config.Instance.Get(treasureStage.GetSkill(PlayerDatas.Instance.baseData.Job)); if (skillConfig != null) { m_Icon.SetSprite(skillConfig.IconName); m_Func.text = Language.Get("TreasureUnlockNewSkill"); } break; case TreasureStageUnlock.Func: var funcConfig = Config.Instance.Get(treasureStage.func); if (funcConfig != null) { m_Icon.SetSprite(funcConfig.Icon); m_Func.text = Language.Get("TreasureUnlockNewFunc"); } break; case TreasureStageUnlock.Treasure: var treasureConfig = Config.Instance.Get(treasureStage.treasure); if (treasureConfig != null) { m_Icon.SetSprite(treasureConfig.Icon); m_Func.text = Language.Get("TreasureUnlockNewTreasure"); } break; } m_Button.AddListener(() => { if (model.treasureStepUpShow) { return; } model.selectedStage = treasureStage.stage; if (!WindowCenter.Instance.CheckOpen()) { TreasureStageTipWin.SetTargetPosition(m_Button.transform as RectTransform); WindowCenter.Instance.Open(); } }); } } } } }