using System;
|
using UnityEngine;
|
|
public class BoneFieldTabHandler : BaseChallengeTabHandler
|
{
|
protected override int GetIndex() => 2;
|
protected override int GetOpenState() => 0; // 0=FuncID
|
protected override int GetFuncId() => BoneFieldManager.Instance.funcId;
|
protected override int GetRedpointId() => MainRedDot.BoneFieldRepoint;
|
|
protected override string GetCountInfo()
|
{
|
if (BoneFieldManager.Instance.TryGetShowSweepCount(out int _, out int showrealRemainSweepCount))
|
{
|
return UIHelper.AppendColor(showrealRemainSweepCount > 0 ? TextColType.Green : TextColType.Red, Language.Get("Challenge01", showrealRemainSweepCount));
|
}
|
return string.Empty; // 获取失败时返回空
|
}
|
|
protected override Action GetOnClickAction()
|
{
|
return HandleBoneFieldNavigation;
|
}
|
|
private void HandleBoneFieldNavigation()
|
{
|
if (!FuncOpen.Instance.IsFuncOpen(GetFuncId(), true))
|
return;
|
|
BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(30010);
|
if (battleField != null)
|
{
|
BoneFieldBattleWin battleWin;
|
if (!UIManager.Instance.IsOpened<BoneFieldBattleWin>())
|
{
|
battleWin = UIManager.Instance.OpenWindow<BoneFieldBattleWin>();
|
}
|
else
|
{
|
battleWin = UIManager.Instance.GetUI<BoneFieldBattleWin>();
|
}
|
battleWin.SetBattleField(battleField as BoneBattleField);
|
}
|
else
|
{
|
UIManager.Instance.OpenWindow<BoneFieldWin>();
|
}
|
}
|
|
protected override void SubscribeToSpecificEvents()
|
{
|
|
DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChange;
|
AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdate;
|
}
|
|
protected override void UnsubscribeFromSpecificEvents()
|
{
|
DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChange;
|
AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdate;
|
}
|
|
private void OnUpdateFBInfoChange(int mapID, bool isADAddCntChange, bool isBuyAddCntChange, bool isItemAddCntChange)
|
{
|
if (mapID == BoneFieldManager.Instance.DataMapID)
|
{
|
Refresh();
|
}
|
}
|
|
private void OnAdsInfoListUpdate(int adID, int mapID)
|
{
|
if (mapID == BoneFieldManager.Instance.DataMapID)
|
{
|
Refresh();
|
}
|
}
|
}
|