Add dev options ot the minigame menu

This commit is contained in:
Michal Pikulski
2025-11-07 17:49:43 +01:00
parent 29d01df3ce
commit 6e466cd7aa
3 changed files with 577 additions and 4 deletions

View File

@@ -1,5 +1,83 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &511275990325051221
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8251498226431799150}
- component: {fileID: 8048467747487978610}
- component: {fileID: 8715265251219887933}
m_Layer: 0
m_Name: DevButtons
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &8251498226431799150
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 511275990325051221}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7689186332346484199}
- {fileID: 6468639774908699391}
- {fileID: 3190171609966749241}
m_Father: {fileID: 1302888740346723223}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.25412482, y: 0.22863281}
m_AnchorMax: {x: 0.7471072, y: 0.67300004}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -0.000044160523, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &8048467747487978610
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 511275990325051221}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GridLayoutGroup
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 4
m_StartCorner: 0
m_StartAxis: 0
m_CellSize: {x: 200, y: 200}
m_Spacing: {x: 100, y: 100}
m_Constraint: 1
m_ConstraintCount: 2
--- !u!114 &8715265251219887933
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 511275990325051221}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.AspectRatioFitter
m_AspectMode: 2
m_AspectRatio: 1.0827775
--- !u!1 &667683895919791839
GameObject:
m_ObjectHideFlags: 0
@@ -35,6 +113,7 @@ RectTransform:
m_Children:
- {fileID: 1639126667473908565}
- {fileID: 5605205583985027889}
- {fileID: 8251498226431799150}
- {fileID: 9052230212113207254}
m_Father: {fileID: 1596438591304698361}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -110,6 +189,9 @@ MonoBehaviour:
pauseMenuPanel: {fileID: 667683895919791839}
pauseButton: {fileID: 2741683265562644894}
canvasGroup: {fileID: 0}
devOptionsButton: {fileID: 3801156735001504240}
mainOptionsContainer: {fileID: 9039430485754110792}
devOptionsContainer: {fileID: 511275990325051221}
--- !u!114 &2181820907823665012
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -341,6 +423,138 @@ MonoBehaviour:
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!1 &2364804940449778366
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7689186332346484199}
- component: {fileID: 4934815337806418604}
- component: {fileID: 3115384282291981250}
- component: {fileID: 3988503693081324047}
m_Layer: 0
m_Name: ResetAll
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7689186332346484199
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2364804940449778366}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8251498226431799150}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 152.26892, y: -129.16074}
m_SizeDelta: {x: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4934815337806418604
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2364804940449778366}
m_CullTransparentMesh: 1
--- !u!114 &3115384282291981250
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2364804940449778366}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -1083306995931140661, guid: 9d084ac2438d6f9448c61a62639581ba, type: 3}
m_Type: 0
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &3988503693081324047
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2364804940449778366}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 0.85165936, b: 0.5058824, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3115384282291981250}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 3083882772934295339}
m_TargetAssemblyTypeName: UI.PauseMenu, AppleHillsScripts
m_MethodName: DevResetAndReload
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &2741683265562644894
GameObject:
m_ObjectHideFlags: 0
@@ -618,6 +832,126 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &4043066030284804420
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3190171609966749241}
- component: {fileID: 3944772580628863841}
- component: {fileID: 500835664005007083}
- component: {fileID: 4615815710691098141}
m_Layer: 0
m_Name: ExitDev
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3190171609966749241
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4043066030284804420}
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 0.57}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8251498226431799150}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 152.26892, y: -429.16074}
m_SizeDelta: {x: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3944772580628863841
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4043066030284804420}
m_CullTransparentMesh: 1
--- !u!114 &500835664005007083
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4043066030284804420}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -4346244404228752641, guid: 7b5d036a9fa30484e911f4752e3a64c8, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &4615815710691098141
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4043066030284804420}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 500835664005007083}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &4393876071688605581
GameObject:
m_ObjectHideFlags: 0
@@ -1180,6 +1514,138 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &6345139731443986799
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6468639774908699391}
- component: {fileID: 8103997363025124610}
- component: {fileID: 4839534564758666043}
- component: {fileID: 8926505797013142345}
m_Layer: 0
m_Name: Boosters
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6468639774908699391
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6345139731443986799}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8251498226431799150}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 452.26892, y: -129.16074}
m_SizeDelta: {x: 200, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8103997363025124610
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6345139731443986799}
m_CullTransparentMesh: 1
--- !u!114 &4839534564758666043
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6345139731443986799}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 4365544765984126881, guid: 9dac643e78ad86e4988c11a92f9c7a6d, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &8926505797013142345
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6345139731443986799}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 4839534564758666043}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 3083882772934295339}
m_TargetAssemblyTypeName: UI.PauseMenu, AppleHillsScripts
m_MethodName: DevGiveBoosters
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &6742380579958252912
GameObject:
m_ObjectHideFlags: 0
@@ -1296,14 +1762,14 @@ MonoBehaviour:
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 0
m_Interactable: 1
m_TargetGraphic: {fileID: 3509344351066108678}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 3083882772934295339}
m_TargetAssemblyTypeName: UI.PauseMenu, AppleHillsScripts
m_MethodName: ExitGame
m_MethodName: ShowDevOptions
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}

View File

@@ -1,10 +1,9 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using AppleHills.Data.CardSystem;
using Core;
using Core.Lifecycle;
using Core.SaveLoad;
using UnityEngine;
namespace Data.CardSystem
@@ -703,6 +702,22 @@ namespace Data.CardSystem
}
}
/// <summary>
/// Clears all card collection data - inventory, pending cards, boosters, and placement tracking
/// Used for dev reset functionality
/// </summary>
public void ClearAllCollectionData()
{
playerInventory.ClearAllCards();
playerInventory.BoosterPackCount = 0;
_pendingRevealCards.Clear();
_placedInAlbumCardIds.Clear();
OnBoosterCountChanged?.Invoke(0);
Logging.Debug("[CardSystemManager] Cleared all collection data (inventory, boosters, pending, placement tracking)");
}
#region Save/Load Lifecycle Hooks
protected override string OnGlobalSaveRequested()

View File

@@ -1,6 +1,7 @@
using System;
using Core;
using Core.SaveLoad;
using Data.CardSystem;
using UnityEngine;
using UnityEngine.SceneManagement;
using UI.Core;
@@ -21,6 +22,11 @@ namespace UI
[SerializeField] private GameObject pauseMenuPanel;
[SerializeField] private GameObject pauseButton;
[SerializeField] private CanvasGroup canvasGroup;
[Header("Dev Options")]
[SerializeField] private UnityEngine.UI.Button devOptionsButton;
[SerializeField] private GameObject mainOptionsContainer;
[SerializeField] private GameObject devOptionsContainer;
// After UIPageController (50)
public override int ManagedAwakePriority => 55;
@@ -373,5 +379,91 @@ namespace UI
// Just ensure the parent is active. Do not force pause or transitions here.
parent.SetActive(true);
}
#region Dev Options
/// <summary>
/// Shows dev options panel and hides main options
/// </summary>
public void ShowDevOptions()
{
if (mainOptionsContainer != null) mainOptionsContainer.SetActive(false);
if (devOptionsContainer != null) devOptionsContainer.SetActive(true);
Logging.Debug("[PauseMenu] Showing dev options");
}
/// <summary>
/// Hides dev options panel and shows main options
/// </summary>
public void HideDevOptions()
{
if (devOptionsContainer != null) devOptionsContainer.SetActive(false);
if (mainOptionsContainer != null) mainOptionsContainer.SetActive(true);
Logging.Debug("[PauseMenu] Hiding dev options");
}
/// <summary>
/// Dev option: Completely wipes all save data and reloads the current level
/// </summary>
public async void DevResetAndReload()
{
Logging.Debug("[PauseMenu] Dev Reset: Clearing all save data and reloading level");
// Clear the card collection
if (CardSystemManager.Instance != null)
{
CardSystemManager.Instance.ClearAllCollectionData();
Logging.Debug("[PauseMenu] Cleared card collection");
}
// Clear all save data from memory
if (SaveLoadManager.Instance != null && SaveLoadManager.Instance.currentSaveData != null)
{
SaveLoadManager.Instance.currentSaveData.participantStates.Clear();
SaveLoadManager.Instance.currentSaveData.unlockedMinigames.Clear();
Logging.Debug("[PauseMenu] Cleared all save data from memory");
}
// Delete the save file
string saveFolder = System.IO.Path.Combine(Application.persistentDataPath, "GameSaves");
if (System.IO.Directory.Exists(saveFolder))
{
try
{
string[] files = System.IO.Directory.GetFiles(saveFolder);
foreach (string file in files)
{
System.IO.File.Delete(file);
Logging.Debug($"[PauseMenu] Deleted save file: {file}");
}
}
catch (Exception ex)
{
Logging.Warning($"[PauseMenu] Failed to delete some save files: {ex.Message}");
}
}
// Now reload the current scene - skipSave=true prevents re-saving the cleared data
var progress = new Progress<float>(p => Logging.Debug($"Loading progress: {p * 100:F0}%"));
await SceneManagerService.Instance.ReloadCurrentScene(progress, autoHideLoadingScreen: true, skipSave: true);
}
/// <summary>
/// Dev option: Gives the player 3 booster packs
/// </summary>
public void DevGiveBoosters()
{
if (CardSystemManager.Instance != null)
{
CardSystemManager.Instance.AddBoosterPack(3);
Logging.Debug("[PauseMenu] Dev: Granted 3 booster packs");
}
else
{
Logging.Warning("[PauseMenu] Dev: CardSystemManager not available");
}
}
#endregion
}
}