using System; using System.Collections.Generic; using Cpp2IlInjected; using MarsSDK; using UnityEngine; using UnityEngine.UI; // Token: 0x0200026C RID: 620 [Token(Token = "0x200026C")] public class UIVideoMenu : GameCanvasBase { // Token: 0x170000F3 RID: 243 // (get) Token: 0x060017EF RID: 6127 RVA: 0x0003AA80 File Offset: 0x00038C80 [Token(Token = "0x170000F3")] private int currentTotalPages { [Token(Token = "0x60017EF")] [Address(RVA = "0x8BB680", Offset = "0x8BA480", VA = "0x1808BB680")] get { return this.videoHandlersList._size; } } // Token: 0x060017F0 RID: 6128 RVA: 0x0003AAA0 File Offset: 0x00038CA0 [Token(Token = "0x60017F0")] [Address(RVA = "0x8BA3F0", Offset = "0x8B91F0", VA = "0x1808BA3F0", Slot = "11")] public override void Init() { this.InitVideoHandlers(); this.InitPageDots(); this.InitUIStatus(); this.switchPageTip.Init(); LocalizationData localizationData = Game.GetLocalizationData(); ((IUIController)this).SwitchLeftward(); } // Token: 0x060017F1 RID: 6129 RVA: 0x0003AAE0 File Offset: 0x00038CE0 [Token(Token = "0x60017F1")] [Address(RVA = "0x4C0530", Offset = "0x4BF330", VA = "0x1804C0530")] public void BindVideoPlayedHandler(Action handler) { /* An exception occurred when decompiling this method (060017F1) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UIVideoMenu::BindVideoPlayedHandler(System.Action`1) ---> System.Exception: Basic block has to end with unconditional control flow. {; Block_0:; stfld:class [mscorlib]System.Action`1(UIVideoMenu::videoPlayedHandler, ldloc:UIVideoMenu(this), ldloc:class [mscorlib]System.Action`1(handler)); }; 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: 0x060017F2 RID: 6130 RVA: 0x0003AAF4 File Offset: 0x00038CF4 [Token(Token = "0x60017F2")] [Address(RVA = "0x8B8BB0", Offset = "0x8B79B0", VA = "0x1808B8BB0")] public void Dispose() { this.switchPageTip.Dispose(); } // Token: 0x060017F3 RID: 6131 RVA: 0x0003AB14 File Offset: 0x00038D14 [Token(Token = "0x60017F3")] [Address(RVA = "0x8B8AA0", Offset = "0x8B78A0", VA = "0x1808B8AA0", Slot = "12")] protected override void Appear(Action completeHandler) { int num = this.currentPageIndex; this.previousPageIndex = num; this.isMoveTweening = false; this.videoNavigation.HideImmediate(); this.bottomNavigation.HideImmediate(); GameObject gameObject = this.interactionIcon.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); this.UpdateDefaultHandler(); this.UpdateBackHandlerNavigation(); this.UpdatePageNumAndDots(); base.Appear(completeHandler); } // Token: 0x060017F4 RID: 6132 RVA: 0x0003AB80 File Offset: 0x00038D80 [Token(Token = "0x60017F4")] [Address(RVA = "0x764EC0", Offset = "0x763CC0", VA = "0x180764EC0", Slot = "18")] public override void Move(Direction2D direction) { this.navigator.Move(direction); } // Token: 0x060017F5 RID: 6133 RVA: 0x0003ABA0 File Offset: 0x00038DA0 [Token(Token = "0x60017F5")] [Address(RVA = "0x8B4730", Offset = "0x8B3530", VA = "0x1808B4730", Slot = "19")] public override void SwitchLeftward() { this.arrowController.SwitchPageLeftward(); } // Token: 0x060017F6 RID: 6134 RVA: 0x0003ABC0 File Offset: 0x00038DC0 [Token(Token = "0x60017F6")] [Address(RVA = "0x8BB000", Offset = "0x8B9E00", VA = "0x1808BB000")] private int TrySwitchLeftward() { if (!this.isMoveTweening) { int num = this.currentPageIndex; if (num != 0) { this.previousPageIndex = num; this.currentPageIndex = num; this.DoMoveTween(225f); return this.currentPageIndex; } } return -1; } // Token: 0x060017F7 RID: 6135 RVA: 0x0003AC04 File Offset: 0x00038E04 [Token(Token = "0x60017F7")] [Address(RVA = "0x8B4750", Offset = "0x8B3550", VA = "0x1808B4750", Slot = "20")] public override void SwitchRightward() { this.arrowController.SwitchPageRightward(); } // Token: 0x060017F8 RID: 6136 RVA: 0x0003AC24 File Offset: 0x00038E24 [Token(Token = "0x60017F8")] [Address(RVA = "0x8BB060", Offset = "0x8B9E60", VA = "0x1808BB060")] private int TrySwitchRightward() { if (!this.isMoveTweening) { int num = this.currentPageIndex; int size = this.videoHandlersList._size; if (num != size) { int num2 = this.currentPageIndex; this.previousPageIndex = num2; num2++; this.currentPageIndex = num2; this.DoMoveTween(-225f); return this.currentPageIndex; } } return -1; } // Token: 0x060017F9 RID: 6137 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60017F9")] [Address(RVA = "0x8BADC0", Offset = "0x8B9BC0", VA = "0x1808BADC0", Slot = "21")] public override void Submit() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060017FA RID: 6138 RVA: 0x0003AC84 File Offset: 0x00038E84 [Token(Token = "0x60017FA")] [Address(RVA = "0x8B8B50", Offset = "0x8B7950", VA = "0x1808B8B50", Slot = "23")] public override void Cancel() { Game.PlayCanvasSE(UICanvasSFX.Close); base.Close(); } // Token: 0x060017FB RID: 6139 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60017FB")] [Address(RVA = "0x8BA490", Offset = "0x8B9290", VA = "0x1808BA490", Slot = "25")] public override void Localize(LocalizationData data) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060017FC RID: 6140 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60017FC")] [Address(RVA = "0x8B9750", Offset = "0x8B8550", VA = "0x1808B9750")] private void InitVideoHandlers() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060017FD RID: 6141 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60017FD")] [Address(RVA = "0x8B9300", Offset = "0x8B8100", VA = "0x1808B9300")] private void InitPageDots() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060017FE RID: 6142 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x60017FE")] [Address(RVA = "0x8B9560", Offset = "0x8B8360", VA = "0x1808B9560")] private void InitUIStatus() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x060017FF RID: 6143 RVA: 0x0003ACA0 File Offset: 0x00038EA0 [Token(Token = "0x60017FF")] [Address(RVA = "0x8BA8E0", Offset = "0x8B96E0", VA = "0x1808BA8E0")] private void ResetUIStatus() { int num = this.currentPageIndex; this.previousPageIndex = num; this.isMoveTweening = false; this.videoNavigation.HideImmediate(); this.bottomNavigation.HideImmediate(); GameObject gameObject = this.interactionIcon.gameObject; int num2 = 0; gameObject.SetActive(num2 != 0); } // Token: 0x06001800 RID: 6144 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001800")] [Address(RVA = "0x8BA960", Offset = "0x8B9760", VA = "0x1808BA960")] private void SetupBackHandler(Direction2D direction2D, IEnumerable handlerBases) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001801 RID: 6145 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001801")] [Address(RVA = "0x8B8BF0", Offset = "0x8B79F0", VA = "0x1808B8BF0")] private void DoMoveTween(float offset) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001802 RID: 6146 RVA: 0x0003ACF4 File Offset: 0x00038EF4 [Token(Token = "0x6001802")] [Address(RVA = "0x8BA750", Offset = "0x8B9550", VA = "0x1808BA750")] private void MarkUIDirty() { this.UpdateDefaultHandler(); this.UpdateBackHandlerNavigation(); this.UpdatePageNumAndDots(); } // Token: 0x06001803 RID: 6147 RVA: 0x0003AD14 File Offset: 0x00038F14 [Token(Token = "0x6001803")] [Address(RVA = "0x8BB410", Offset = "0x8BA210", VA = "0x1808BB410")] private void UpdatePageIndex(int value) { int num = this.currentPageIndex; this.previousPageIndex = num; this.currentPageIndex = value; } // Token: 0x06001804 RID: 6148 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001804")] [Address(RVA = "0x8BB2A0", Offset = "0x8BA0A0", VA = "0x1808BB2A0")] private void UpdateDefaultHandler() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001805 RID: 6149 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001805")] [Address(RVA = "0x8BB150", Offset = "0x8B9F50", VA = "0x1808BB150")] private void UpdateBackHandlerNavigation() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001806 RID: 6150 RVA: 0x0003AD38 File Offset: 0x00038F38 [Token(Token = "0x6001806")] [Address(RVA = "0x8BB430", Offset = "0x8BA230", VA = "0x1808BB430")] private void UpdatePageNumAndDots() { Image[] array = this.pageDots; int num = 0; if (num < array.Length) { Image image = array[num]; Sprite[] array2 = this.pageDotSprites; if (num == this.currentPageIndex) { } Sprite sprite = array2[0]; image.sprite = sprite; Image[] array3 = this.pageDots; num++; } int num2 = this.currentPageIndex; num2++; Text text = this.pageNumber; int size = this.videoHandlersList._size; string text2 = string.Format("{0} / {1}", num2, num2); text.text = text2; } // Token: 0x06001807 RID: 6151 RVA: 0x0003ADD0 File Offset: 0x00038FD0 [Token(Token = "0x6001807")] [Address(RVA = "0x8BA7F0", Offset = "0x8B95F0", VA = "0x1808BA7F0")] private void OnHandlerSelected(UIHandlerBase handler) { UINavigationEffect uinavigationEffect = this.videoNavigation; Vector2 anchoredPosition = handler.rectTransform.anchoredPosition; uinavigationEffect.UpdatePos(anchoredPosition); this.videoNavigation.Appear(); Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x06001808 RID: 6152 RVA: 0x0003AE10 File Offset: 0x00039010 [Token(Token = "0x6001808")] [Address(RVA = "0x764EE0", Offset = "0x763CE0", VA = "0x180764EE0")] private void OnHandlerDeselected(UIHandlerBase handler) { this.videoNavigation.Hide(); } // Token: 0x06001809 RID: 6153 RVA: 0x0003AE30 File Offset: 0x00039030 [Token(Token = "0x6001809")] [Address(RVA = "0x8BA780", Offset = "0x8B9580", VA = "0x1808BA780")] private void OnBackButtonSelected(UIHandlerBase handler) { this.bottomNavigation.Appear(); Game.PlayHandlerSE(UIHandlerSFX.Navigation); } // Token: 0x0600180A RID: 6154 RVA: 0x0003AE54 File Offset: 0x00039054 [Token(Token = "0x600180A")] [Address(RVA = "0x8B3B00", Offset = "0x8B2900", VA = "0x1808B3B00")] private void OnBackButtonDeselected(UIHandlerBase handler) { this.bottomNavigation.Hide(); } // Token: 0x0600180B RID: 6155 RVA: 0x0003AE74 File Offset: 0x00039074 [Token(Token = "0x600180B")] [Address(RVA = "0x8BA8A0", Offset = "0x8B96A0", VA = "0x1808BA8A0")] private void PerformSubmitEffect() { this.interactionIcon.gameObject.SetActive(true); } // Token: 0x0600180C RID: 6156 RVA: 0x0003AE98 File Offset: 0x00039098 [Token(Token = "0x600180C")] [Address(RVA = "0x8B8F50", Offset = "0x8B7D50", VA = "0x1808B8F50")] private bool GetHandlerLockState(string videoName) { while (!videoName.Contains("Dream")) { if (!videoName.Contains("Tania")) { if (!videoName.Contains("Monica")) { if (!videoName.Contains("Vanessa")) { if (!videoName.Contains("Cat")) { return false; } GameCollection collection = Game.Collection; return true; } else if (Game.Collection.HasAchievementFlagUnlocked(37)) { return !Game.Collection.allVanessaPropsUnlock; } } else if (Game.Collection.HasAchievementFlagUnlocked(35)) { return !Game.Collection.allMonicaPropsUnlocked; } } else if (Game.Collection.HasAchievementFlagUnlocked(34)) { return !Game.Collection.allTaniaPropsUnlocked; } } return Game.Collection.gameCleared <= 0; } // Token: 0x0600180D RID: 6157 RVA: 0x0003AF94 File Offset: 0x00039194 [Token(Token = "0x600180D")] [Address(RVA = "0x8BAB80", Offset = "0x8B9980", VA = "0x1808BAB80")] private bool ShowDreamVideoHandler() { return Game.Collection.gameCleared > 0; } // Token: 0x0600180E RID: 6158 RVA: 0x0003AFB8 File Offset: 0x000391B8 [Token(Token = "0x600180E")] [Address(RVA = "0x8BAC80", Offset = "0x8B9A80", VA = "0x1808BAC80")] private bool ShowTaniaVideoHandler() { bool flag = Game.Collection.HasAchievementFlagUnlocked(34); if (!flag) { return flag; } return Game.Collection.allTaniaPropsUnlocked; } // Token: 0x0600180F RID: 6159 RVA: 0x0003AFEC File Offset: 0x000391EC [Token(Token = "0x600180F")] [Address(RVA = "0x8BABE0", Offset = "0x8B99E0", VA = "0x1808BABE0")] private bool ShowMonicaVideoHandler() { bool flag = Game.Collection.HasAchievementFlagUnlocked(35); if (!flag) { return flag; } return Game.Collection.allMonicaPropsUnlocked; } // Token: 0x06001810 RID: 6160 RVA: 0x0003B020 File Offset: 0x00039220 [Token(Token = "0x6001810")] [Address(RVA = "0x8BAD20", Offset = "0x8B9B20", VA = "0x1808BAD20")] private bool ShowVanesaVideoHandler() { bool flag = Game.Collection.HasAchievementFlagUnlocked(37); if (!flag) { return flag; } return Game.Collection.allVanessaPropsUnlock; } // Token: 0x06001811 RID: 6161 RVA: 0x000020D3 File Offset: 0x000002D3 [Token(Token = "0x6001811")] [Address(RVA = "0x8BAAF0", Offset = "0x8B98F0", VA = "0x1808BAAF0")] private bool ShowCatVideoHandler() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06001812 RID: 6162 RVA: 0x0003B054 File Offset: 0x00039254 [Token(Token = "0x6001812")] [Address(RVA = "0x8BB600", Offset = "0x8BA400", VA = "0x1808BB600")] public UIVideoMenu() { List list = new List(); this.videoHandlersList = list; base..ctor(); } // Token: 0x0400222D RID: 8749 [FieldOffset(Offset = "0x58")] [Token(Token = "0x400222D")] [SerializeField] private Text title; // Token: 0x0400222E RID: 8750 [FieldOffset(Offset = "0x60")] [Token(Token = "0x400222E")] [SerializeField] private RectTransform videosHandlersRoot; // Token: 0x0400222F RID: 8751 [FieldOffset(Offset = "0x68")] [Token(Token = "0x400222F")] [SerializeField] private UILabelHandler backHandler; // Token: 0x04002230 RID: 8752 [FieldOffset(Offset = "0x70")] [Token(Token = "0x4002230")] [SerializeField] private UISwitchArrowController arrowController; // Token: 0x04002231 RID: 8753 [FieldOffset(Offset = "0x78")] [Token(Token = "0x4002231")] [SerializeField] private UIVideoHandler videoHandlerTemplate; // Token: 0x04002232 RID: 8754 [FieldOffset(Offset = "0x80")] [Token(Token = "0x4002232")] [SerializeField] private CanvasGroup videoGroupTemplate; // Token: 0x04002233 RID: 8755 [FieldOffset(Offset = "0x88")] [Token(Token = "0x4002233")] [SerializeField] private Text pageNumber; // Token: 0x04002234 RID: 8756 [FieldOffset(Offset = "0x90")] [Token(Token = "0x4002234")] [SerializeField] private RectTransform pageDotsRoot; // Token: 0x04002235 RID: 8757 [FieldOffset(Offset = "0x98")] [Token(Token = "0x4002235")] [SerializeField] private Image pageDotTemplate; // Token: 0x04002236 RID: 8758 [FieldOffset(Offset = "0xA0")] [Token(Token = "0x4002236")] [SerializeField] private Sprite[] pageDotSprites; // Token: 0x04002237 RID: 8759 [FieldOffset(Offset = "0xA8")] [Token(Token = "0x4002237")] [SerializeField] private UINavigationEffect videoNavigation; // Token: 0x04002238 RID: 8760 [FieldOffset(Offset = "0xB0")] [Token(Token = "0x4002238")] [SerializeField] private UINavigationEffect bottomNavigation; // Token: 0x04002239 RID: 8761 [FieldOffset(Offset = "0xB8")] [Token(Token = "0x4002239")] [SerializeField] private Image interactionIcon; // Token: 0x0400223A RID: 8762 [FieldOffset(Offset = "0xC0")] [Token(Token = "0x400223A")] [SerializeField] private UISwitchPageTip switchPageTip; // Token: 0x0400223B RID: 8763 [FieldOffset(Offset = "0xC8")] [Token(Token = "0x400223B")] private CanvasGroup[] videoGroups; // Token: 0x0400223C RID: 8764 [FieldOffset(Offset = "0xD0")] [Token(Token = "0x400223C")] private List videoHandlersList; // Token: 0x0400223D RID: 8765 [FieldOffset(Offset = "0xD8")] [Token(Token = "0x400223D")] private Image[] pageDots; // Token: 0x0400223E RID: 8766 [FieldOffset(Offset = "0xE0")] [Token(Token = "0x400223E")] private Action videoPlayedHandler; // Token: 0x0400223F RID: 8767 [FieldOffset(Offset = "0xE8")] [Token(Token = "0x400223F")] private Dictionary videoDataMap; // Token: 0x04002240 RID: 8768 [FieldOffset(Offset = "0xF0")] [Token(Token = "0x4002240")] private bool isMoveTweening; // Token: 0x04002241 RID: 8769 [FieldOffset(Offset = "0xF4")] [Token(Token = "0x4002241")] private int previousPageIndex; // Token: 0x04002242 RID: 8770 [FieldOffset(Offset = "0xF8")] [Token(Token = "0x4002242")] private int currentPageIndex; // Token: 0x04002243 RID: 8771 [FieldOffset(Offset = "0xFC")] [Token(Token = "0x4002243")] private int currentTotalClips; // Token: 0x04002244 RID: 8772 [Token(Token = "0x4002244")] private const int PARTIAL_VIDEOS_COUNT = 8; // Token: 0x04002245 RID: 8773 [Token(Token = "0x4002245")] private const int FULL_VIDEOS_COUNT = 12; // Token: 0x04002246 RID: 8774 [Token(Token = "0x4002246")] private const int MAXIMUM_HANDLERS_LENGTH_PER_PAGE = 6; // Token: 0x04002247 RID: 8775 [Token(Token = "0x4002247")] private const int MAXIMUM_ROW_LIMITATION = 2; // Token: 0x04002248 RID: 8776 [Token(Token = "0x4002248")] private const int MAXIMUM_COLUMN_LIMITATION = 3; // Token: 0x04002249 RID: 8777 [Token(Token = "0x4002249")] private const float MOVE_DURATION = 0.6f; // Token: 0x0400224A RID: 8778 [Token(Token = "0x400224A")] private const float FADE_IN_DURATION = 0.1f; // Token: 0x0400224B RID: 8779 [Token(Token = "0x400224B")] private const float FADE_OUT_DURATION = 0.1f; }