//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, November 27, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { public class TreasureDungeonMissionHintWin : Window { [SerializeField] RectTransform m_ContainerDisplay; [SerializeField] Text m_Title; [SerializeField] Text m_Description; [SerializeField] Transform m_ContainerTreasure; [SerializeField] Image m_Icon; [SerializeField] ScreenMoveTo m_ScreenMoveTo; TreasureModel model { get { return ModelCenter.Instance.GetModel(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { m_ScreenMoveTo.gameObject.SetActive(false); BossNotify.OnNotifyStateEvent += OnNotifyStateEvent; BossShowModel.Instance.bossShowCompletedEvent += BossShowCompletedEvent; } protected override void OnAfterOpen() { } protected override void OnPreClose() { BossNotify.OnNotifyStateEvent -= OnNotifyStateEvent; BossShowModel.Instance.bossShowCompletedEvent -= BossShowCompletedEvent; m_ContainerDisplay.gameObject.SetActive(true); } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); if (!BossShowModel.Instance.BossShowing) { StartCoroutine(Co_TreasureBehaviour()); } } #endregion private void BossShowCompletedEvent() { StartCoroutine(Co_TreasureBehaviour()); } IEnumerator Co_TreasureBehaviour() { var allConfigs = Config.Instance.GetAllValues(); var treasureId = 0; foreach (var value in allConfigs) { if (value.MapId == PlayerDatas.Instance.baseData.MapID && value.LineId == PlayerDatas.Instance.baseData.dungeonLineId) { treasureId = value.ID; break; } } var config = Config.Instance.Get(treasureId); var dungeonId = dungeonModel.GetDungeonId(config.MapId, config.LineId); var dungeonConfig = Config.Instance.Get(dungeonId); m_Title.text = dungeonConfig.FBName; m_Description.text = dungeonConfig.Description; m_Icon.SetSprite(config.Icon); m_ScreenMoveTo.transform.SetParentEx(this.transform, Vector3.zero, Vector3.zero, Vector3.one); m_ScreenMoveTo.gameObject.SetActive(true); m_ScreenMoveTo.enabled = false; yield return new WaitForSeconds(1.5f); m_ScreenMoveTo.enabled = true; m_ScreenMoveTo.transform.SetParent(m_ContainerTreasure); m_ScreenMoveTo.destination = Vector2.zero; m_ScreenMoveTo.Begin(false); } private void OnNotifyStateEvent(int _skillId, bool _state) { var _config = Config.Instance.Get(_skillId); if (_config != null && _config.mode == 2) { m_ContainerDisplay.gameObject.SetActive(!_state); } } } }