using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
namespace vnxbqy.UI
|
{
|
public class TeamFailEnterDungeonHandle : Singleton<TeamFailEnterDungeonHandle>
|
{
|
Dictionary<int, Action> tasks = new Dictionary<int, Action>();
|
public TeamFailEnterDungeonHandle()
|
{
|
StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;
|
}
|
|
private void OnStageLoadFinish()
|
{
|
foreach (var action in tasks.Values)
|
{
|
try
|
{
|
action();
|
}
|
catch (Exception e)
|
{
|
DebugEx.Log(e.StackTrace);
|
}
|
}
|
tasks.Clear();
|
}
|
|
public void ReceiveReason(HB913_tagGCEnterTeamFBFailReason package)
|
{
|
switch (package.MapID)
|
{
|
case 31080:
|
HandleFairyLand(package.AskType, package.Reason);
|
break;
|
}
|
}
|
|
public void HandleFairyLand(int type, int reason)
|
{
|
if (reason == 6)
|
{
|
HandleFairyLandLackTicket();
|
}
|
}
|
|
void HandleFairyLandLackTicket()
|
{
|
var dayRemindKey = TeamDungeonTicketLackWin.GetDayRemindKey(TeamDungeonTicketLackWin.LackType.FairyLand);
|
if (DayRemind.Instance.GetDayRemind(dayRemindKey))//设置了今日不再提醒
|
{
|
return;
|
}
|
if (NewBieCenter.Instance.inGuiding)//引导中不弹
|
{
|
return;
|
}
|
if (WindowCenter.Instance.IsOpen<TeamDungeonTicketLackWin>()
|
|| WindowCenter.Instance.IsOpen<ComposeWin>())
|
{
|
return;
|
}
|
if (!(StageLoad.Instance.currentStage is DungeonStage))
|
{
|
return;
|
}
|
var mapId = PlayerDatas.Instance.baseData.MapID;
|
var mapConfig = MapConfig.Get(mapId);
|
if (mapConfig == null || mapConfig.MapFBType != (int)MapType.OpenCountry)
|
{
|
return;
|
}
|
if (StageLoad.Instance.isLoading)
|
{
|
if (!tasks.ContainsKey(31080))
|
{
|
tasks.Add(31080, RecheckFairyLandTicket);
|
}
|
return;
|
}
|
TeamDungeonTicketLackWin.lackType = TeamDungeonTicketLackWin.LackType.FairyLand;
|
WindowCenter.Instance.Open<TeamDungeonTicketLackWin>();
|
}
|
|
void RecheckFairyLandTicket()
|
{
|
SnxxzGame.Instance.StartCoroutine(Co_Load());
|
}
|
|
IEnumerator Co_Load()
|
{
|
yield return WaitingForSecondConst.WaitMS500;
|
HandleFairyLandLackTicket();
|
}
|
}
|
}
|
|