//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Sunday, April 08, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Snxxz.UI; using TableConfig; public class BossAreaMark { static bool ableToShowMark = true; static int lastShowBoss = 0; static Dictionary lastShowTimeRecorders = new Dictionary(); public static void Init() { GA_Hero.OnEnterOrExitArea += OnExitOrEnterArea; GA_NpcFightBoss.s_OnSelect += OnSelectedBoss; GA_NpcClientFightBoss.s_OnSelect += OnSelectedBoss; } private static void OnExitOrEnterArea(MapArea.E_Type _type, bool _enter) { if (_type == MapArea.E_Type.Boss) { ableToShowMark = true; } } private static void OnSelectedBoss(uint _instanceId, int _npcId, bool _show) { var mapResConfig = DTCA127_tagMCStartChangeMap.GetMapResourcesConfig(); if (mapResConfig == null || mapResConfig.ShowBOSSTime <= 0)//如果这个值为0,不显示boss出现 { return; } if (lastShowBoss == _npcId) { if (lastShowTimeRecorders.ContainsKey(_npcId) && (Time.time - lastShowTimeRecorders[_npcId]) < mapResConfig.ShowBOSSTime) { return; } } if (PreFightMission.Instance.IsFinished() && _show && ableToShowMark) { ableToShowMark = false; lastShowBoss = _npcId; lastShowTimeRecorders[_npcId] = Time.time; WindowCenter.Instance.Close(); WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); } } } namespace Snxxz.UI { public class BossAreaMarkWin : Window { [SerializeField] UIAlphaTween m_AlphaTween; #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); m_AlphaTween.SetStartState(); m_AlphaTween.Play(CloseClick); } #endregion } }