//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, September 27, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class DungeonAncientKingWin : Window { [SerializeField] RectTransform m_ContainerBottom; [SerializeField] ItemCell[] m_Items; [SerializeField] Button m_Close; DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { MainPositionTween.switchFunctionStateEvent += OnChangeFuncBtnPosEvent; model.updateMissionEvent += DisplayPosition; DisplayAward(); DisplayPosition(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { MainPositionTween.switchFunctionStateEvent -= OnChangeFuncBtnPosEvent; model.updateMissionEvent -= DisplayPosition; } protected override void OnAfterClose() { } #endregion private void DisplayAward() { var awards = GeneralDefine.ancientKingAwards; for (int i = 0; i < m_Items.Length; i++) { m_Items[i].button.RemoveAllListeners(); if (i < awards.Count) { var award = awards[i]; m_Items[i].SetActive(true); ItemCellModel itemCellModel = new ItemCellModel(award.id, true, (ulong)award.count); m_Items[i].Init(itemCellModel); m_Items[i].button.AddListener(() => { ItemTipUtility.Show(award.id); }); } else { m_Items[i].SetActive(false); } } } private void OnChangeFuncBtnPosEvent(bool immedidately) { if (!MainPositionTween.isDefaultState) { CloseImmediately(); } } private void DisplayPosition() { var help = model.mission; bool hasKing = !string.IsNullOrEmpty(help.topName); m_ContainerBottom.localPosition = m_ContainerBottom.localPosition.SetY(hasKing ? -127 : -83); } } }