using System; using System.Collections.Generic; using System.Linq; using Cpp2IlInjected; using DG.Tweening; using MarsSDK; using UnityEngine; using UnityEngine.UI; // Token: 0x02000298 RID: 664 [Token(Token = "0x2000298")] public class UISkin : GameCanvasBase { // Token: 0x060018E1 RID: 6369 RVA: 0x0003BFA0 File Offset: 0x0003A1A0 [Token(Token = "0x60018E1")] [Address(RVA = "0x95EC10", Offset = "0x95DC10", VA = "0x18095EC10", Slot = "11")] public override void Init() { GameTextDataAdvance gameTextDataAdvance = Game.GetAchievementText(); this.achievementText = gameTextDataAdvance; this.InitIcons(); this.InitHandlers(); this.switchPageTip.Init(); } // Token: 0x060018E2 RID: 6370 RVA: 0x0003BFDC File Offset: 0x0003A1DC [Token(Token = "0x60018E2")] [Address(RVA = "0x95E8E0", Offset = "0x95D8E0", VA = "0x18095E8E0")] private void InitIcons() { Dictionary dictionary = new Dictionary(); this.iconMap = dictionary; IGamePlatform k__BackingField = Game.k__BackingField; int num = 0; bool useAchievement = Game.useAchievement; if (num < (useAchievement ? 1 : 0)) { GameObject gameObject = Resources.Load(string.Format("SkinUI/{0}", num)); int num2 = 0; if (gameObject == num2) { GameSkin gameSkin; GameObject gameObject2 = Resources.Load(string.Format("SkinUI/{0}", gameSkin)); } RectTransform rectTransform = this.skinIconRoot; GameObject gameObject3 = UnityEngine.Object.Instantiate(gameObject, rectTransform).GetComponent().gameObject; int num3 = 0; gameObject3.SetActive(num3 != 0); Dictionary dictionary2 = this.iconMap; throw new NullReferenceException(); } } // Token: 0x060018E3 RID: 6371 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018E3")] [Address(RVA = "0x95E090", Offset = "0x95D090", VA = "0x18095E090")] private void InitHandlers() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018E4 RID: 6372 RVA: 0x0003C080 File Offset: 0x0003A280 [Token(Token = "0x60018E4")] [Address(RVA = "0x95D5E0", Offset = "0x95C5E0", VA = "0x18095D5E0", Slot = "12")] protected override void Appear(Action completeHandler) { this.UpdateActiveSkins(); GameSkin[] array = this.activeSkins; int num = 0; if (num < array.Length) { GameSkin gameSkin = array[num]; GameCollection collection = Game.Collection; if (gameSkin != collection.currentSkin) { GameSkin[] array2 = this.activeSkins; num++; } } this.selectionIndex = num; UISkinIcon[] array3 = this.activeIcons; if (num < array3.Length) { UISkinIcon uiskinIcon = array3[num]; uiskinIcon.index = num; int num2 = 0; uiskinIcon.UpdatePosition(num2); UISkinIcon[] array4 = this.activeIcons; num++; while (array4 != 0) { } } this.UpdateUnlockStats(); GameSkin[] array5 = this.activeSkins; Func func = new Func(this.GetUnlockConditionText); string[] array6 = Enumerable.ToArray(Enumerable.Select(array5, func)); this.unlockConditionText = array6; this.UpdateSkinText(); UINavigator navigator = this.navigator; UILabelHandler uilabelHandler = this.cancel; navigator.SetDefaultHandler(uilabelHandler); GameObject gameObject = this.submissionEffect.gameObject; int num3 = 0; gameObject.SetActive(num3 != 0); UISkinIcon[] array7 = this.activeIcons; UISwitchArrowController uiswitchArrowController = this.arrowController; int num4 = this.selectionIndex; int length = array7.Length; uiswitchArrowController.pageAmount = length; uiswitchArrowController.UpdateArrowState(num4); base.Appear(completeHandler); } // Token: 0x060018E5 RID: 6373 RVA: 0x0003C1C0 File Offset: 0x0003A3C0 [Token(Token = "0x60018E5")] [Address(RVA = "0x95E050", Offset = "0x95D050", VA = "0x18095E050", Slot = "13")] protected override void Hide(Action completeHandler) { Sequence sequence = this.sequence; if (sequence != 0) { int num = 0; sequence.Kill(num != 0); } base.Hide(completeHandler); } // Token: 0x060018E6 RID: 6374 RVA: 0x0003C1E8 File Offset: 0x0003A3E8 [Token(Token = "0x60018E6")] [Address(RVA = "0x95F7F0", Offset = "0x95E7F0", VA = "0x18095F7F0", Slot = "19")] public override void SwitchLeftward() { UISwitchArrowController uiswitchArrowController = this.arrowController; Func trySwitchLeftward = uiswitchArrowController.trySwitchLeftward; if (trySwitchLeftward != 0) { int num = trySwitchLeftward(); if (num != -1) { uiswitchArrowController.switchArrows[0].PerformClickEffect(); uiswitchArrowController.UpdateArrowState(num); } } } // Token: 0x060018E7 RID: 6375 RVA: 0x0003C230 File Offset: 0x0003A430 [Token(Token = "0x60018E7")] [Address(RVA = "0x95FB90", Offset = "0x95EB90", VA = "0x18095FB90")] private int TrySwitchLeftward() { int num = this.selectionIndex; if (num != 0) { this.selectionIndex = num; this.SwitchSkinPreviews(); return this.selectionIndex; } return -1; } // Token: 0x060018E8 RID: 6376 RVA: 0x0003C260 File Offset: 0x0003A460 [Token(Token = "0x60018E8")] [Address(RVA = "0x95F890", Offset = "0x95E890", VA = "0x18095F890", Slot = "20")] public override void SwitchRightward() { UISwitchArrowController uiswitchArrowController = this.arrowController; Func trySwitchRightward = uiswitchArrowController.trySwitchRightward; if (trySwitchRightward != 0) { int num = trySwitchRightward(); if (num != -1) { uiswitchArrowController.switchArrows[1].PerformClickEffect(); uiswitchArrowController.UpdateArrowState(num); } } } // Token: 0x060018E9 RID: 6377 RVA: 0x0003C2A8 File Offset: 0x0003A4A8 [Token(Token = "0x60018E9")] [Address(RVA = "0x95FBD0", Offset = "0x95EBD0", VA = "0x18095FBD0")] private int TrySwitchRightward() { int length = this.activeSkins.Length; int num = this.selectionIndex; if (num != length) { int num2 = num + 1; this.selectionIndex = num2; this.SwitchSkinPreviews(); return this.selectionIndex; } return -1; } // Token: 0x060018EA RID: 6378 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018EA")] [Address(RVA = "0x95F930", Offset = "0x95E930", VA = "0x18095F930")] private void SwitchSkinPreviews() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018EB RID: 6379 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018EB")] [Address(RVA = "0x95ECA0", Offset = "0x95DCA0", VA = "0x18095ECA0")] private void JoinSelectionArrowEffect(Sequence sequence, float duration) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018EC RID: 6380 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018EC")] [Address(RVA = "0x95F350", Offset = "0x95E350", VA = "0x18095F350", Slot = "18")] public override void Move(Direction2D direction) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018ED RID: 6381 RVA: 0x0003C2EC File Offset: 0x0003A4EC [Token(Token = "0x60018ED")] [Address(RVA = "0x95F3B0", Offset = "0x95E3B0", VA = "0x18095F3B0")] private void OnHandlerSelected(UIHandlerBase handler) { UINavigationEffect uinavigationEffect = this.navigationEffect; Vector2 anchoredPosition = handler.rectTransform.anchoredPosition; uinavigationEffect.UpdatePos(anchoredPosition); UINavigationEffect uinavigationEffect2 = this.navigationEffect; if (handler.index != 0) { } UILabelHandler uilabelHandler = this.cancel; uinavigationEffect2.UpdateArrowPos(uilabelHandler); this.navigationEffect.Appear(); Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x060018EE RID: 6382 RVA: 0x0003C348 File Offset: 0x0003A548 [Token(Token = "0x60018EE")] [Address(RVA = "0x95F380", Offset = "0x95E380", VA = "0x18095F380")] private void OnHandlerDeselected(UIHandlerBase handler) { this.navigationEffect.Hide(); } // Token: 0x060018EF RID: 6383 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018EF")] [Address(RVA = "0x95F590", Offset = "0x95E590", VA = "0x18095F590", Slot = "21")] public override void Submit() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018F0 RID: 6384 RVA: 0x0003C368 File Offset: 0x0003A568 [Token(Token = "0x60018F0")] [Address(RVA = "0x95F4A0", Offset = "0x95E4A0", VA = "0x18095F4A0")] private void PerformSubmissionEffect() { RectTransform rectTransform = this.submissionEffect.rectTransform; Vector2 anchoredPosition = this.navigator.currentHandler.rectTransform.anchoredPosition; rectTransform.anchoredPosition = anchoredPosition; this.submissionEffect.gameObject.SetActive(true); Game.PlayHandlerScaleEffect(this.navigator.currentHandler); } // Token: 0x060018F1 RID: 6385 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018F1")] [Address(RVA = "0x95F150", Offset = "0x95E150", VA = "0x18095F150", Slot = "25")] public override void Localize(LocalizationData data) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018F2 RID: 6386 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018F2")] [Address(RVA = "0x95FC90", Offset = "0x95EC90", VA = "0x18095FC90")] private void UpdateActiveSkins() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018F3 RID: 6387 RVA: 0x0003C3C8 File Offset: 0x0003A5C8 [Token(Token = "0x60018F3")] [Address(RVA = "0x9600C0", Offset = "0x95F0C0", VA = "0x1809600C0")] private void UpdateSelection() { GameSkin[] array = this.activeSkins; int num = 0; int num2 = 0; if (num2 < array.Length) { GameSkin gameSkin = array[num]; GameCollection collection = Game.Collection; if (gameSkin != collection.currentSkin) { GameSkin[] array2 = this.activeSkins; num++; } this.selectionIndex = num; return; } this.selectionIndex = (int)((ulong)0L); } // Token: 0x060018F4 RID: 6388 RVA: 0x0003C42C File Offset: 0x0003A62C [Token(Token = "0x60018F4")] [Address(RVA = "0x9601B0", Offset = "0x95F1B0", VA = "0x1809601B0")] private void UpdateSkinIndices() { UISkinIcon[] array = this.activeIcons; int num = 0; if (num < array.Length) { UISkinIcon uiskinIcon = array[num]; uiskinIcon.index = num; int num2 = 0; uiskinIcon.UpdatePosition(num2); UISkinIcon[] array2 = this.activeIcons; num++; } } // Token: 0x060018F5 RID: 6389 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018F5")] [Address(RVA = "0x960480", Offset = "0x95F480", VA = "0x180960480")] private void UpdateUnlockStats() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018F6 RID: 6390 RVA: 0x0003C478 File Offset: 0x0003A678 [Token(Token = "0x60018F6")] [Address(RVA = "0x9603B0", Offset = "0x95F3B0", VA = "0x1809603B0")] private void UpdateUnlockConditionText() { /* An exception occurred when decompiling this method (060018F6) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UISkin::UpdateUnlockConditionText() ---> System.Exception: Basic block has to end with unconditional control flow. {; Block_0:; stloc:valuetype GameSkin[](var_0_06, ldfld:valuetype GameSkin[](UISkin::activeSkins, ldloc:UISkin(this))); stloc:class [mscorlib]System.Func`2(var_1_13, newobj:Func`2[exp:class [mscorlib]System.Func`2](Func`2::.ctor, ldloc:UISkin[exp:object](this), ldftn:native int(UISkin::GetUnlockConditionText))); stloc:string[](var_2_20, call:string[](Enumerable::ToArray, call:IEnumerable`1(Enumerable::Select, ldloc:valuetype GameSkin[][exp:IEnumerable`1](var_0_06), ldloc:class [mscorlib]System.Func`2[exp:Func`2](var_1_13)))); stfld:string[](UISkin::unlockConditionText, ldloc:UISkin(this), ldloc:string[](var_2_20)); }; 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: 0x060018F7 RID: 6391 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018F7")] [Address(RVA = "0x960240", Offset = "0x95F240", VA = "0x180960240")] private void UpdateSkinText() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018F8 RID: 6392 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018F8")] [Address(RVA = "0x95DD00", Offset = "0x95CD00", VA = "0x18095DD00")] private bool HasSkinUnlocked(GameSkin skin) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018F9 RID: 6393 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60018F9")] [Address(RVA = "0x95D890", Offset = "0x95C890", VA = "0x18095D890")] private string GetUnlockConditionText(GameSkin skin) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060018FA RID: 6394 RVA: 0x0003C4AC File Offset: 0x0003A6AC [Token(Token = "0x60018FA")] [Address(RVA = "0x94D9C0", Offset = "0x94C9C0", VA = "0x18094D9C0")] public UISkin() { } // Token: 0x04002388 RID: 9096 [FieldOffset(Offset = "0x58")] [Token(Token = "0x4002388")] [SerializeField] private Text title; // Token: 0x04002389 RID: 9097 [FieldOffset(Offset = "0x60")] [Token(Token = "0x4002389")] [SerializeField] private Text skinName; // Token: 0x0400238A RID: 9098 [FieldOffset(Offset = "0x68")] [Token(Token = "0x400238A")] [SerializeField] private Text unlockCondition; // Token: 0x0400238B RID: 9099 [FieldOffset(Offset = "0x70")] [Token(Token = "0x400238B")] [SerializeField] private UISwitchPageTip switchPageTip; // Token: 0x0400238C RID: 9100 [FieldOffset(Offset = "0x78")] [Token(Token = "0x400238C")] [SerializeField] private RectTransform skinIconRoot; // Token: 0x0400238D RID: 9101 [FieldOffset(Offset = "0x80")] [Token(Token = "0x400238D")] [SerializeField] private int selectionIndex; // Token: 0x0400238E RID: 9102 [FieldOffset(Offset = "0x88")] [Token(Token = "0x400238E")] [SerializeField] private GameSkin[] activeSkins; // Token: 0x0400238F RID: 9103 [FieldOffset(Offset = "0x90")] [Token(Token = "0x400238F")] [SerializeField] private UISkinIcon[] activeIcons; // Token: 0x04002390 RID: 9104 [FieldOffset(Offset = "0x98")] [Token(Token = "0x4002390")] [SerializeField] private CanvasGroup selectionTransparency; // Token: 0x04002391 RID: 9105 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x4002391")] [SerializeField] private Image[] selectionArrows; // Token: 0x04002392 RID: 9106 [FieldOffset(Offset = "0xA8")] [Token(Token = "0x4002392")] [SerializeField] private UISwitchArrowController arrowController; // Token: 0x04002393 RID: 9107 [FieldOffset(Offset = "0xB0")] [Token(Token = "0x4002393")] [SerializeField] private UILabelHandler cancel; // Token: 0x04002394 RID: 9108 [FieldOffset(Offset = "0xB8")] [Token(Token = "0x4002394")] [SerializeField] private UILabelHandler confirm; // Token: 0x04002395 RID: 9109 [FieldOffset(Offset = "0xC0")] [Token(Token = "0x4002395")] [SerializeField] private UINavigationEffect navigationEffect; // Token: 0x04002396 RID: 9110 [FieldOffset(Offset = "0xC8")] [Token(Token = "0x4002396")] [SerializeField] private Image submissionEffect; // Token: 0x04002397 RID: 9111 [Token(Token = "0x4002397")] private const int SKIN_NAME_INDEX = 600; // Token: 0x04002398 RID: 9112 [Token(Token = "0x4002398")] private const float DURATION = 0.3f; // Token: 0x04002399 RID: 9113 [Token(Token = "0x4002399")] private const float OFFSET = 55f; // Token: 0x0400239A RID: 9114 [FieldOffset(Offset = "0xD0")] [Token(Token = "0x400239A")] private Vector2[] selectionArrowPos; // Token: 0x0400239B RID: 9115 [FieldOffset(Offset = "0xD8")] [Token(Token = "0x400239B")] private Sequence sequence; // Token: 0x0400239C RID: 9116 [FieldOffset(Offset = "0xE0")] [Token(Token = "0x400239C")] private bool[] unlockFlags; // Token: 0x0400239D RID: 9117 [FieldOffset(Offset = "0xE8")] [Token(Token = "0x400239D")] private string[] unlockConditionText; // Token: 0x0400239E RID: 9118 [FieldOffset(Offset = "0xF0")] [Token(Token = "0x400239E")] private GameTextDataAdvance achievementText; // Token: 0x0400239F RID: 9119 [FieldOffset(Offset = "0xF8")] [Token(Token = "0x400239F")] private Dictionary iconMap; }