using System; 
 | 
using UnityEngine; 
 | 
  
 | 
public class ChallengeTabWin : UIBase 
 | 
{ 
 | 
    [SerializeField] ChallengeTabButton btnBoneField; 
 | 
    [SerializeField] ChallengeTabButton btnArena; 
 | 
     
 | 
    protected override void InitComponent() 
 | 
    { 
 | 
        base.InitComponent(); 
 | 
    } 
 | 
    protected override void OnPreOpen() 
 | 
    { 
 | 
        base.OnPreOpen(); 
 | 
        DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChangeEvent; 
 | 
        AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; 
 | 
        TimeMgr.Instance.OnDayEvent += OnDayEvent; 
 | 
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; 
 | 
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; 
 | 
        Display(); 
 | 
    } 
 | 
    protected override void OnPreClose() 
 | 
    { 
 | 
        base.OnPreClose(); 
 | 
        DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChangeEvent; 
 | 
        AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent; 
 | 
        TimeMgr.Instance.OnDayEvent -= OnDayEvent; 
 | 
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; 
 | 
        PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; 
 | 
        UIManager.Instance.GetUI<MainWin>()?.RestoreFuncBtn(); 
 | 
    } 
 | 
    private void OnDayEvent() 
 | 
    { 
 | 
        Display(); 
 | 
    } 
 | 
  
 | 
    private void OnAdsInfoListUpdateEvent(int id, int mapId) 
 | 
    { 
 | 
        Display(); 
 | 
    } 
 | 
  
 | 
    private void OnUpdateFBInfoChangeEvent(int arg1, bool arg2, bool arg3, bool arg4) 
 | 
    { 
 | 
        if (arg1 == BoneFieldManager.Instance.DataMapID) 
 | 
        { 
 | 
            DisplayBoneFieldButton(); 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    public void OnFuncStateChangeEvent(int funcId) 
 | 
    { 
 | 
        if (funcId == BoneFieldManager.Instance.funcId) 
 | 
        { 
 | 
            DisplayBoneFieldButton(); 
 | 
        } 
 | 
        else if (funcId == ArenaManager.Instance.funcId) 
 | 
        { 
 | 
            DisplayArenaButton(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    private void PlayerDataRefresh(PlayerDataType type) 
 | 
    { 
 | 
        if (type == PlayerDataType.ChallengeVoucher) 
 | 
        { 
 | 
            DisplayArenaButton(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public void Display() 
 | 
    { 
 | 
        DisplayBoneFieldButton(); 
 | 
        DisplayArenaButton(); 
 | 
    } 
 | 
  
 | 
    public void DisplayArenaButton() 
 | 
    { 
 | 
        int index = 1; 
 | 
        int funcId = ArenaManager.Instance.funcId; 
 | 
        int redpointId = MainRedDot.ArenaRepoint; 
 | 
        bool isLock = FuncOpen.Instance.IsFuncOpen(funcId); 
 | 
        int type = ArenaManager.Instance.ChallengeMoneyType; 
 | 
        long nowCount = UIHelper.GetMoneyCnt(type); 
 | 
        string countInfo = UIHelper.AppendColor(nowCount > 0 ? TextColType.Green : TextColType.Red, Language.Get("Challenge03", nowCount)); 
 | 
        string lockInfo = !isLock ? Language.Get("Challenge02") : string.Empty; 
 | 
        btnArena.Display(index, redpointId, isLock, countInfo, lockInfo, () => 
 | 
        { 
 | 
            UIManager.Instance.CloseWindow<ChallengeTabWin>(); 
 | 
            if (!FuncOpen.Instance.IsFuncOpen(funcId, true)) 
 | 
                return; 
 | 
            BattleField arenaBattle = BattleManager.Instance.GetBattleFieldByMapID(3); 
 | 
            if (arenaBattle != null) 
 | 
            { 
 | 
                ArenaBattleWin battleWin; 
 | 
                if (!UIManager.Instance.IsOpened<ArenaBattleWin>()) 
 | 
                { 
 | 
                    battleWin = UIManager.Instance.OpenWindow<ArenaBattleWin>(); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    battleWin = UIManager.Instance.GetUI<ArenaBattleWin>(); 
 | 
                } 
 | 
                battleWin.SetBattleField(arenaBattle); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                UIManager.Instance.OpenWindow<ArenaWin>(); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    public void DisplayBoneFieldButton() 
 | 
    { 
 | 
        int index = 2; 
 | 
        int funcId = BoneFieldManager.Instance.funcId; 
 | 
        int redpointId = MainRedDot.BoneFieldRepoint; 
 | 
        bool isLock = FuncOpen.Instance.IsFuncOpen(funcId); 
 | 
        if (!BoneFieldManager.Instance.TryGetShowSweepCount(out int showSweepMaxCount, out int showrealRemainSweepCount)) 
 | 
            return; 
 | 
        string countInfo = UIHelper.AppendColor(showrealRemainSweepCount > 0 ? TextColType.Green : TextColType.Red, Language.Get("Challenge01", showrealRemainSweepCount)); 
 | 
        string lockInfo = !isLock ? Language.Get("Challenge02") : string.Empty; 
 | 
        btnBoneField.Display(index, redpointId, isLock, countInfo, lockInfo, () => 
 | 
        { 
 | 
            UIManager.Instance.CloseWindow<ChallengeTabWin>(); 
 | 
            if (!FuncOpen.Instance.IsFuncOpen(funcId, true)) 
 | 
                return; 
 | 
            UIManager.Instance.OpenWindow<BoneFieldWin>(); 
 | 
        }); 
 | 
    } 
 | 
  
 | 
} 
 |