using System; using System.Linq; using Cpp2IlInjected; using DG.Tweening; using DG.Tweening.Core; using DG.Tweening.Plugins.Options; using MarsSDK; using UnityEngine; using UnityEngine.UI; // Token: 0x02000287 RID: 647 [Token(Token = "0x2000287")] public abstract class UIValueBindingBase : UISubSettingsBase { // Token: 0x06001829 RID: 6185 RVA: 0x00037AD0 File Offset: 0x00035CD0 [Token(Token = "0x6001829")] [Address(RVA = "0xCC14E0", Offset = "0xCC04E0", VA = "0x180CC14E0", Slot = "11")] public override void Init(CanvasGroup mainCanvasGroup, Action cancelHandler, Text title) { int num = 0; base.Init(mainCanvasGroup, cancelHandler, title); UIValueBindingHandler[] array = this.topHandlers; if (num < array.Length) { array[num].index = num; num++; UIValueBindingHandler[] array2 = this.topHandlers; } this.bottomNavigationEffect.Hide(); GameObject gameObject = this.submissionEffect.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); CanvasGroup subCanvasGroup = this.subCanvasGroup; int num3 = 0; subCanvasGroup.alpha = (float)num3; CanvasGroup subCanvasGroup2 = this.subCanvasGroup; int num4 = 0; subCanvasGroup2.blocksRaycasts = num4 != 0; } // Token: 0x0600182A RID: 6186 RVA: 0x00037B60 File Offset: 0x00035D60 [Token(Token = "0x600182A")] [Address(RVA = "0xCC0C70", Offset = "0xCBFC70", VA = "0x180CC0C70")] protected void InitHandlers(UIValueBindingHandler[] activeTopHandlers) { UINavigator navigator2; UIHandlerBase[] array2; UILabelHandler uilabelHandler22; for (;;) { UIValueBindingHandler uivalueBindingHandler = activeTopHandlers[0]; this.defaultHandler = uivalueBindingHandler; int num = 0; UINavigationSetter.Get(UINavigationMode.Vertical, true, num).Apply(activeTopHandlers); int length = activeTopHandlers.Length; UIValueBindingHandler uivalueBindingHandler2 = activeTopHandlers[0]; UILabelHandler uilabelHandler = this.backHandler; uivalueBindingHandler2.SetupNavigationHandler(Direction2D.Up, uilabelHandler); int num2 = length - 1; UIValueBindingHandler uivalueBindingHandler3 = activeTopHandlers[num2]; UILabelHandler uilabelHandler2 = this.backHandler; uivalueBindingHandler3.SetupNavigationHandler(Direction2D.Down, uilabelHandler2); int num3 = 0; int length2 = activeTopHandlers.Length; if (num3 < length2) { UIValueBindingHandler uivalueBindingHandler4 = activeTopHandlers[num3]; Action action = new Action(this.OnTopHandlerSelected); uivalueBindingHandler4.onSelectedHandler = action; Action action2 = new Action(this.OnTopHandlerDeselected); uivalueBindingHandler4.onDeselectedHandler = action2; num3++; } this.navigator.BindPointerEnterEvent(activeTopHandlers); this.navigator.BindPointerExitEvent(activeTopHandlers); this.resetHandler.index = (int)((ulong)100L); UILabelHandler uilabelHandler3 = this.resetHandler; UILabelHandler uilabelHandler4 = this.backHandler; uilabelHandler3.SetupNavigationHandler(Direction2D.Left, uilabelHandler4); UILabelHandler uilabelHandler5 = this.resetHandler; UILabelHandler uilabelHandler6 = this.backHandler; uilabelHandler5.SetupNavigationHandler(Direction2D.Right, uilabelHandler6); int length3 = activeTopHandlers.Length; UILabelHandler uilabelHandler7 = this.resetHandler; int num4 = length3 - 1; UIValueBindingHandler uivalueBindingHandler5 = activeTopHandlers[num4]; uilabelHandler7.SetupNavigationHandler(Direction2D.Up, uivalueBindingHandler5); UILabelHandler uilabelHandler8 = this.resetHandler; UIValueBindingHandler uivalueBindingHandler6 = activeTopHandlers[0]; uilabelHandler8.SetupNavigationHandler(Direction2D.Down, uivalueBindingHandler6); UILabelHandler uilabelHandler9 = this.resetHandler; Action action3 = new Action(this.OnBottomHandlerSelected); uilabelHandler9.onSelectedHandler = action3; UILabelHandler uilabelHandler10 = this.resetHandler; Action action4 = new Action(this.OnBottomHandlerDeselected); uilabelHandler10.onDeselectedHandler = action4; this.backHandler.index = (int)((ulong)101L); UILabelHandler uilabelHandler11 = this.backHandler; UILabelHandler uilabelHandler12 = this.resetHandler; uilabelHandler11.SetupNavigationHandler(Direction2D.Left, uilabelHandler12); UILabelHandler uilabelHandler13 = this.backHandler; UILabelHandler uilabelHandler14 = this.resetHandler; uilabelHandler13.SetupNavigationHandler(Direction2D.Right, uilabelHandler14); int length4 = activeTopHandlers.Length; UILabelHandler uilabelHandler15 = this.backHandler; int num5 = length4 - 1; UIValueBindingHandler uivalueBindingHandler7 = activeTopHandlers[num5]; uilabelHandler15.SetupNavigationHandler(Direction2D.Up, uivalueBindingHandler7); UILabelHandler uilabelHandler16 = this.backHandler; UIValueBindingHandler uivalueBindingHandler8 = activeTopHandlers[0]; uilabelHandler16.SetupNavigationHandler(Direction2D.Down, uivalueBindingHandler8); UILabelHandler uilabelHandler17 = this.backHandler; Action action5 = new Action(this.OnBottomHandlerSelected); uilabelHandler17.onSelectedHandler = action5; UILabelHandler uilabelHandler18 = this.backHandler; Action action6 = new Action(this.OnBottomHandlerDeselected); uilabelHandler18.onDeselectedHandler = action6; UINavigator navigator = this.navigator; UIHandlerBase[] array = new UIHandlerBase[2]; UILabelHandler uilabelHandler19 = this.resetHandler; if (uilabelHandler19 == 0 || array != 0) { array[0] = uilabelHandler19; UILabelHandler uilabelHandler20 = this.backHandler; if (uilabelHandler20 == 0 || array != 0) { array[1] = uilabelHandler20; navigator.BindPointerEnterEvent(array); navigator2 = this.navigator; array2 = new UIHandlerBase[2]; UILabelHandler uilabelHandler21 = this.resetHandler; if (uilabelHandler21 == 0 || array2 != 0) { array2[0] = uilabelHandler21; uilabelHandler22 = this.backHandler; if (uilabelHandler22 == 0 || array2 != 0) { break; } } } } } array2[1] = uilabelHandler22; navigator2.BindPointerExitEvent(array2); this.InitTopHandlerLayout(activeTopHandlers); } // Token: 0x0600182B RID: 6187 RVA: 0x00037E7C File Offset: 0x0003607C [Token(Token = "0x600182B")] [Address(RVA = "0xCC1350", Offset = "0xCC0350", VA = "0x180CC1350")] private void InitTopHandlerLayout(UIValueBindingHandler[] activeHandlers) { UIValueBindingHandler[] array = this.topHandlers; int length = activeHandlers.Length; if (array.Length != length) { UIValueBindingHandler[] array2 = Enumerable.ToArray(Enumerable.Except(array, activeHandlers)); int num = 0; int length2 = array2.Length; if (num < length2) { GameObject gameObject = array2[num].root.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); num++; } this.layoutGroup.enabled = true; LayoutRebuilder.ForceRebuildLayoutImmediate(this.layoutGroup.GetComponent()); LayoutGroup layoutGroup = this.layoutGroup; int num3 = 0; layoutGroup.enabled = num3 != 0; } } // Token: 0x0600182C RID: 6188 RVA: 0x00037F18 File Offset: 0x00036118 [Token(Token = "0x600182C")] [Address(RVA = "0xCC1990", Offset = "0xCC0990", VA = "0x180CC1990", Slot = "12")] public override void Open() { Text title = this.title; string text = this.titleText; title.text = text; ValueType[] configValues = this.GetConfigValues(); this.originConfigValues = configValues; this.bottomNavigationEffect.HideImmediate(); GameObject gameObject = this.submissionEffect.gameObject; int num = 0; gameObject.SetActive(num != 0); this.UpdateTopHandlers(); UINavigator navigator = this.navigator; UIValueBindingHandler uivalueBindingHandler = this.defaultHandler; navigator.SetDefaultHandler(uivalueBindingHandler); base.Appear(); } // Token: 0x0600182D RID: 6189 RVA: 0x00037F98 File Offset: 0x00036198 [Token(Token = "0x600182D")] [Address(RVA = "0xCC1940", Offset = "0xCC0940", VA = "0x180CC1940")] private void OnTopHandlerSelected(UIHandlerBase handler) { Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x0600182E RID: 6190 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600182E")] [Address(RVA = "0x29E8B0", Offset = "0x29D8B0", VA = "0x18029E8B0")] private void OnTopHandlerDeselected(UIHandlerBase handler) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600182F RID: 6191 RVA: 0x00037FAC File Offset: 0x000361AC [Token(Token = "0x600182F")] [Address(RVA = "0xCC1860", Offset = "0xCC0860", VA = "0x180CC1860")] private void OnBottomHandlerSelected(UIHandlerBase handler) { UINavigationEffect uinavigationEffect = this.bottomNavigationEffect; Vector2 anchoredPosition = handler.rectTransform.anchoredPosition; uinavigationEffect.UpdatePos(anchoredPosition); if (handler.index == 100) { } UILabelHandler uilabelHandler = this.backHandler; this.bottomNavigationEffect.UpdateArrowPos(uilabelHandler); this.bottomNavigationEffect.Appear(); Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x06001830 RID: 6192 RVA: 0x00038008 File Offset: 0x00036208 [Token(Token = "0x6001830")] [Address(RVA = "0xCC1840", Offset = "0xCC0840", VA = "0x180CC1840")] private void OnBottomHandlerDeselected(UIHandlerBase handler) { this.bottomNavigationEffect.Hide(); } // Token: 0x06001831 RID: 6193 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001831")] [Address(RVA = "0xCC15D0", Offset = "0xCC05D0", VA = "0x180CC15D0", Slot = "19")] public override bool IsDirty() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001832 RID: 6194 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001832")] [Address(RVA = "0xCC1730", Offset = "0xCC0730", VA = "0x180CC1730", Slot = "13")] public override void Move(Direction2D direction) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001833 RID: 6195 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001833")] [Address(RVA = "0xCC1E40", Offset = "0xCC0E40", VA = "0x180CC1E40")] protected void TrySwitchHandlerValue(Direction2D direction) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001834 RID: 6196 RVA: 0x00038028 File Offset: 0x00036228 [Token(Token = "0x6001834")] [Address(RVA = "0xCC1B50", Offset = "0xCC0B50", VA = "0x180CC1B50", Slot = "22")] protected virtual void PlayHandlerMoveSE() { Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x06001835 RID: 6197 RVA: 0x0003803C File Offset: 0x0003623C [Token(Token = "0x6001835")] [Address(RVA = "0xCC1EA0", Offset = "0xCC0EA0", VA = "0x180CC1EA0", Slot = "21")] public override void UpdateDirtyCheckValue() { /* An exception occurred when decompiling this method (06001835) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UIValueBindingBase::UpdateDirtyCheckValue() ---> System.Exception: Basic block has to end with unconditional control flow. {; Block_0:; stloc:class [mscorlib]System.ValueType[](var_0_06, callvirt:class [mscorlib]System.ValueType[](UIValueBindingBase::GetConfigValues, ldloc:UIValueBindingBase(this))); stfld:class [mscorlib]System.ValueType[](UIValueBindingBase::originConfigValues, ldloc:UIValueBindingBase(this), ldloc:class [mscorlib]System.ValueType[](var_0_06)); }; at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88 --- End of inner exception stack trace --- at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618 */; } // Token: 0x06001836 RID: 6198 [Token(Token = "0x6001836")] [Address(Slot = "23")] protected abstract ValueType[] GetConfigValues(); // Token: 0x06001837 RID: 6199 [Token(Token = "0x6001837")] [Address(Slot = "24")] protected abstract void UpdateTopHandlers(); // Token: 0x06001838 RID: 6200 RVA: 0x00038058 File Offset: 0x00036258 [Token(Token = "0x6001838")] [Address(RVA = "0xCC1BA0", Offset = "0xCC0BA0", VA = "0x180CC1BA0", Slot = "16")] public override void Submit() { bool flag = this.navigator.currentHandler; if (flag) { if (this.navigator.currentHandler.index == 100) { this.PerformSubmissionEffect(true); Game.PlayHandlerScaleEffect(this.navigator.currentHandler); Game.PlayHandlerSE(UIHandlerSFX.ResetDefault); this.SetDefault(); } else { ValueType[] configValues; if (flag) { int num = 0; this.PerformSubmissionEffect(num != 0); Game.PlayHandlerScaleEffect(this.navigator.currentHandler); configValues = this.GetConfigValues(); return; } UIValueBindingHandler uivalueBindingHandler = this.topHandlers[configValues]; RectTransform rectTransform = uivalueBindingHandler.value.rectTransform; int num2 = 0; int num3 = rectTransform.DOKill(num2 != 0); TweenerCore tweenerCore = ShortcutExtensions.DOScale(uivalueBindingHandler.value.rectTransform, 0.7f, 0.075f); int num4 = 0; TweenerCore tweenerCore2 = TweenSettingsExtensions.From(tweenerCore, 1f, true, num4 != 0).SetLoops(2, LoopType.Yoyo).SetEase((Ease)((uint)3)) .Play>(); return; } } } // Token: 0x06001839 RID: 6201 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001839")] [Address(RVA = "0xCC1A50", Offset = "0xCC0A50", VA = "0x180CC1A50")] private void PerformSubmissionEffect(bool withFadingAnimation) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600183A RID: 6202 [Token(Token = "0x600183A")] [Address(Slot = "25")] protected abstract void SetDefault(); // Token: 0x0600183B RID: 6203 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600183B")] [Address(RVA = "0xCC1690", Offset = "0xCC0690", VA = "0x180CC1690")] protected bool IsTopHandlerSelected() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600183C RID: 6204 RVA: 0x00038148 File Offset: 0x00036348 [Token(Token = "0x600183C")] [Address(RVA = "0xCC0B40", Offset = "0xCBFB40", VA = "0x180CC0B40")] protected string[] GetSwitchText(GameTextData data) { string[] array; string text2; for (;;) { array = new string[2]; string text = data.GetText(325); if (text == 0 || text != 0) { array[0] = text; text2 = data.GetText(324); if (text2 == 0 || text2 != 0) { break; } } } array[1] = text2; return array; } // Token: 0x0600183D RID: 6205 RVA: 0x0003819C File Offset: 0x0003639C [Token(Token = "0x600183D")] [Address(RVA = "0xCC04A0", Offset = "0xCBF4A0", VA = "0x180CC04A0")] protected string[] GetDashMethodText(GameTextData data) { string[] array; string text2; for (;;) { array = new string[2]; string text = data.GetText(329); if (text == 0 || text != 0) { array[0] = text; text2 = data.GetText(328); if (text2 == 0 || text2 != 0) { break; } } } array[1] = text2; return array; } // Token: 0x0600183E RID: 6206 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x600183E")] [Address(RVA = "0xCC05D0", Offset = "0xCBF5D0", VA = "0x180CC05D0")] protected string[] GetDifficultyText(GameTextData data) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0600183F RID: 6207 RVA: 0x000381F0 File Offset: 0x000363F0 [Token(Token = "0x600183F")] [Address(RVA = "0xCC0A10", Offset = "0xCBFA10", VA = "0x180CC0A10")] protected string[] GetQualityText(GameTextData data) { string[] array; string text2; for (;;) { array = new string[2]; string text = data.GetText(326); if (text == 0 || text != 0) { array[0] = text; text2 = data.GetText(327); if (text2 == 0 || text2 != 0) { break; } } } array[1] = text2; return array; } // Token: 0x06001840 RID: 6208 RVA: 0x00038244 File Offset: 0x00036444 [Token(Token = "0x6001840")] [Address(RVA = "0xCC07F0", Offset = "0xCBF7F0", VA = "0x180CC07F0")] protected string[] GetFpsText(GameTextData data) { string[] array; string text; for (;;) { array = new string[4]; if ("30 FPS" == 0 || "30 FPS" != 0) { array[0] = "30 FPS"; if ("60 FPS" == 0 || "60 FPS" != 0) { array[1] = "60 FPS"; if ("120 FPS" == 0 || "120 FPS" != 0) { array[2] = "120 FPS"; text = data.GetText(330); if (text == 0 || text != 0) { break; } } } } } array[3] = text; return array; } // Token: 0x06001841 RID: 6209 RVA: 0x000382D0 File Offset: 0x000364D0 [Token(Token = "0x6001841")] [Address(RVA = "0x41ED30", Offset = "0x41DD30", VA = "0x18041ED30")] protected UIValueBindingBase() { } // Token: 0x04002344 RID: 9028 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4002344")] [SerializeField] protected LayoutGroup layoutGroup; // Token: 0x04002345 RID: 9029 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4002345")] [SerializeField] protected UIValueBindingHandler[] topHandlers; // Token: 0x04002346 RID: 9030 [FieldOffset(Offset = "0x50")] [Token(Token = "0x4002346")] [SerializeField] protected UILabelHandler resetHandler; // Token: 0x04002347 RID: 9031 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4002347")] [SerializeField] protected UILabelHandler backHandler; // Token: 0x04002348 RID: 9032 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4002348")] [SerializeField] protected UINavigationEffect bottomNavigationEffect; // Token: 0x04002349 RID: 9033 [FieldOffset(Offset = "0x68")] [Token(Token = "0x4002349")] [SerializeField] protected Image submissionEffect; // Token: 0x0400234A RID: 9034 [FieldOffset(Offset = "0x70")] [Token(Token = "0x400234A")] protected string titleText; // Token: 0x0400234B RID: 9035 [FieldOffset(Offset = "0x78")] [Token(Token = "0x400234B")] protected ValueType[] originConfigValues; // Token: 0x0400234C RID: 9036 [FieldOffset(Offset = "0x80")] [Token(Token = "0x400234C")] protected UIValueBindingHandler defaultHandler; // Token: 0x0400234D RID: 9037 [Token(Token = "0x400234D")] private const int RESET_HANDLER_INDEX = 100; // Token: 0x0400234E RID: 9038 [Token(Token = "0x400234E")] private const int BACK_HANDLER_INDEX = 101; }