hch
6 天以前 23c416e43615b956f9b685b2184e9b18bf9cb665
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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();
        }
    }
}