using System; 
 | 
using UnityEngine; 
 | 
  
 | 
public class ChallengeTabWin : UIBase 
 | 
{ 
 | 
    [SerializeField] ClickScreenOtherSpace clickScreenOtherSpace; 
 | 
    [SerializeField] ChallengeTabButton btnBoneField; 
 | 
    public static Action OnCloseChallengeTabWin; 
 | 
    protected override void InitComponent() 
 | 
    { 
 | 
        base.InitComponent(); 
 | 
        clickScreenOtherSpace.RemoveAllListeners(); 
 | 
        clickScreenOtherSpace.AddListener(() => 
 | 
        { 
 | 
            UIManager.Instance.CloseWindow<ChallengeTabWin>(); 
 | 
        }); 
 | 
  
 | 
    } 
 | 
    protected override void OnPreOpen() 
 | 
    { 
 | 
        base.OnPreOpen(); 
 | 
        DungeonManager.Instance.UpdateFBInfoChangeEvent += OnUpdateFBInfoChangeEvent; 
 | 
        AdsManager.Instance.OnAdsInfoListUpdateEvent += OnAdsInfoListUpdateEvent; 
 | 
        TimeMgr.Instance.OnDayEvent += OnDayEvent; 
 | 
        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; 
 | 
  
 | 
        Display(); 
 | 
    } 
 | 
  
 | 
    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(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    protected override void OnPreClose() 
 | 
    { 
 | 
        base.OnPreClose(); 
 | 
        DungeonManager.Instance.UpdateFBInfoChangeEvent -= OnUpdateFBInfoChangeEvent; 
 | 
        AdsManager.Instance.OnAdsInfoListUpdateEvent -= OnAdsInfoListUpdateEvent; 
 | 
        TimeMgr.Instance.OnDayEvent -= OnDayEvent; 
 | 
        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; 
 | 
        OnCloseChallengeTabWin?.Invoke(); 
 | 
    } 
 | 
    public void Display() 
 | 
    { 
 | 
        DisplayBoneFieldButton(); 
 | 
    } 
 | 
  
 | 
    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, () => 
 | 
        { 
 | 
            if (!FuncOpen.Instance.IsFuncOpen(funcId, true)) 
 | 
                return; 
 | 
            UIManager.Instance.OpenWindow<BoneFieldWin>(); 
 | 
        }); 
 | 
    } 
 | 
  
 | 
} 
 |