//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, April 22, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class WingTipWin : Window { [SerializeField] TipItemBaseInfoWidget m_BaseInfoWidget; [SerializeField] ScrollRect m_SrollRect; [SerializeField] TipBasePropertyWidget m_BasePropertyWidget; [SerializeField] TipLegendPropertyWidget m_LegendPropertyWidget; [SerializeField] TipWingRefineMaterialsWidget m_RefineMaterialsWidget; [SerializeField] TipItemDescriptionWidget m_DescriptionWidget; [SerializeField] TipBuyItemWidget m_BuyItemWidget; [SerializeField] TipGetWayEntranceWidget m_GetWayEntranceWidget; [SerializeField] TipGetWaysWidget m_GetWaysWidget; [SerializeField] TipJobAndPlaceWidget m_JobAndPlaceWidget; [SerializeField] TipOperateButton[] m_OperateButtons; [SerializeField] Button m_Close; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.SetListener(() => { WindowCenter.Instance.Close(this.GetType().Name); }); } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); m_SrollRect.verticalNormalizedPosition = 1f; DisplayBaseInfo(); DisplayBaseProperty(); DisplayLegendProperty(); DisplayRefineMaterials(); DisplayItemDescription(); DisplayBuyItem(); DisplayJobAndPlace(); DisplayGetWays(); DisplayOperateButton(); } #endregion private void DisplayBaseInfo() { var baseInfo = ItemTipUtility.mainTipData.baseInfo; m_BaseInfoWidget.Display(baseInfo); } private void DisplayBaseProperty() { var baseProperty = ItemTipUtility.mainTipData.baseProperty; m_BasePropertyWidget.Display(baseProperty); } private void DisplayLegendProperty() { var legendProperty = ItemTipUtility.mainTipData.legendProperty; m_LegendPropertyWidget.gameObject.SetActive(!legendProperty.properties.IsNullOrEmpty()); if (!legendProperty.properties.IsNullOrEmpty()) { m_LegendPropertyWidget.Display(legendProperty); } } private void DisplayRefineMaterials() { var refineMaterials = ItemTipUtility.mainTipData.refineMaterials; m_RefineMaterialsWidget.gameObject.SetActive(!refineMaterials.materials.IsNullOrEmpty()); if (!refineMaterials.materials.IsNullOrEmpty()) { m_RefineMaterialsWidget.Display(refineMaterials); } } private void DisplayItemDescription() { var itemId = ItemTipUtility.mainTipData.baseInfo.itemId; m_DescriptionWidget.Display(itemId); } private void DisplayBuyItem() { m_BuyItemWidget.gameObject.SetActive(ItemTipUtility.mainTipData.goodId > 0); if (ItemTipUtility.mainTipData.goodId > 0) { m_BuyItemWidget.Display(ItemTipUtility.mainTipData.goodId); } } private void DisplayGetWays() { var getWay = ItemTipUtility.mainTipData.getWay; var hasGetWay = !getWay.ways.IsNullOrEmpty(); m_GetWayEntranceWidget.gameObject.SetActive(hasGetWay); m_GetWaysWidget.gameObject.SetActive(false); if (hasGetWay) { m_GetWayEntranceWidget.SetListener(() => { if (!m_GetWaysWidget.gameObject.activeSelf) { m_GetWaysWidget.Display(getWay); } else { m_GetWaysWidget.Hide(); } }); } } private void DisplayJobAndPlace() { var itemId = ItemTipUtility.mainTipData.baseInfo.itemId; m_JobAndPlaceWidget.Display(itemId); } private void DisplayOperateButton() { var operates = ItemTipUtility.mainTipData.operates; var guid = ItemTipUtility.mainTipData.guid; if (operates.IsNullOrEmpty()) { for (int i = 0; i < m_OperateButtons.Length; i++) { var button = m_OperateButtons[i]; button.SetActive(false); } } else { for (int i = 0; i < m_OperateButtons.Length; i++) { var button = m_OperateButtons[i]; if (i < operates.Count) { button.SetActive(true); button.Bind("WingTipWin", operates[i], guid); } else { button.SetActive(false); } } } } } }