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(); }); } 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(); }); } }