//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, May 25, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Linq; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class TreasureNewStageWin : Window { [SerializeField] RectTransform m_ContainerProperty; [SerializeField] PropertyCompareBehaviour m_Property; [SerializeField] Button m_PropertyConfirmBtn; [SerializeField] RectTransform m_ContainerItem; [SerializeField] ItemCell m_Item; [SerializeField] Button m_ItemConfirm; Treasure treasure; TreasureModel m_Model; TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_PropertyConfirmBtn.onClick.AddListener(CloseClick); m_ItemConfirm.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion private void Display() { m_ContainerProperty.gameObject.SetActive(false); m_ContainerItem.gameObject.SetActive(false); model.TryGetTreasure(model.selectedTreasure, out treasure); if (treasure == null) { return; } var stage = treasure.treasureStages[treasure.stage]; switch (stage.unlockType) { case TreasureStageUnlock.Property: DisplayProperty(stage); break; case TreasureStageUnlock.Item: DisplayItem(stage); break; } } private void DisplayProperty(TreasureStage _stage) { m_ContainerProperty.gameObject.SetActive(true); var _keyValue = _stage.propertyDict.First(); var _beforeValue = UIHelper.GetPropertyMapPlayerData((AttrEnum)_keyValue.Key) - _keyValue.Value; m_Property.Display(_keyValue.Key, _beforeValue, UIHelper.GetPropertyMapPlayerData((AttrEnum)_keyValue.Key)); } private void DisplayItem(TreasureStage _stage) { m_ContainerItem.gameObject.SetActive(true); ItemCellModel itemCell = new ItemCellModel(_stage.item.id, true, (ulong)_stage.item.count, _stage.item.bind ? 1 : 0); m_Item.Init(itemCell); } } }