| using System; | 
| using UnityEngine; | 
|   | 
| public class ChallengeTabWin : UIBase | 
| { | 
|     [SerializeField] ChallengeTabButton btnBoneField; | 
|     [SerializeField] ChallengeTabButton btnArena; | 
|     public static Action OnCloseChallengeTabWin; | 
|     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; | 
|         OnCloseChallengeTabWin?.Invoke(); | 
|     } | 
|     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>(); | 
|         }); | 
|     } | 
|   | 
| } |