//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Sunday, April 08, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
|
|
public class BossAreaMark
|
{
|
static bool ableToShowMark = true;
|
static int lastShowBoss = 0;
|
static Dictionary<int, float> lastShowTimeRecorders = new Dictionary<int, float>();
|
|
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 dataMapId = MapUtility.GetDataMapId();
|
var lineId = MapUtility.GetLineId();
|
var mapResConfig = MapResourcesConfig.GetConfig(dataMapId, lineId);
|
|
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<MapNameHintWin>();
|
WindowCenter.Instance.Close<NeutralMarkWin>();
|
WindowCenter.Instance.Open<BossAreaMarkWin>();
|
}
|
}
|
|
}
|
|
namespace vnxbqy.UI
|
{
|
|
public class BossAreaMarkWin : Window
|
{
|
|
[SerializeField] UIAlphaTween m_AlphaTween;
|
[SerializeField] Text m_Team;
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
m_Team.SetActive(false);
|
var mapList = new List<int> { 31020, 21070, 21100, 21110, 21310, 31150 };
|
if (mapList.Contains(PlayerDatas.Instance.baseData.MapID))
|
{
|
m_Team.SetActive(true);
|
}
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
m_AlphaTween.SetStartState();
|
m_AlphaTween.Play(CloseClick);
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
|