diff --git a/Assets/Scripts/PuzzleS/BirdGameStats.cs b/Assets/Scripts/PuzzleS/BirdGameStats.cs
index 36af2d90..4dff5880 100644
--- a/Assets/Scripts/PuzzleS/BirdGameStats.cs
+++ b/Assets/Scripts/PuzzleS/BirdGameStats.cs
@@ -1,19 +1,73 @@
+using System;
+using Core.Lifecycle;
using UnityEngine;
-public class BirdGameStats : MonoBehaviour
+namespace PuzzleS
{
- public int birdsFoundInLevel;
-
- // Start is called once before the first execution of Update after the MonoBehaviour is created
- void Start()
+ ///
+ /// Tracks bird discovery progress in the bird finding minigame.
+ /// Saves scene-specific progress using the ManagedBehaviour lifecycle system.
+ ///
+ public class BirdGameStats : ManagedBehaviour
{
-
+ public int birdsFoundInLevel;
+
+ // Save system configuration
+ public override bool AutoRegisterForSave => true;
+
+ protected override void OnManagedAwake()
+ {
+ // Initialize after all managers are ready
+ }
+
+ public void BirdFound()
+ {
+ birdsFoundInLevel += 1;
+ }
+
+ #region Save/Load Lifecycle Hooks
+
+ protected override string OnSceneSaveRequested()
+ {
+ // Save scene-specific progress
+ var state = new BirdGameState
+ {
+ birdsFoundInLevel = this.birdsFoundInLevel
+ };
+ return JsonUtility.ToJson(state);
+ }
+
+ protected override void OnSceneRestoreRequested(string serializedData)
+ {
+ if (string.IsNullOrEmpty(serializedData))
+ {
+ // No saved data, keep default values
+ return;
+ }
+
+ try
+ {
+ var state = JsonUtility.FromJson(serializedData);
+ if (state != null)
+ {
+ birdsFoundInLevel = state.birdsFoundInLevel;
+ }
+ }
+ catch (Exception ex)
+ {
+ Debug.LogWarning($"[BirdGameStats] Failed to restore state: {ex.Message}");
+ }
+ }
+
+ #endregion
}
- public void BirdFound()
+ ///
+ /// Serializable state for bird game progress
+ ///
+ [Serializable]
+ public class BirdGameState
{
- birdsFoundInLevel += 1;
+ public int birdsFoundInLevel;
}
-
-
}
diff --git a/Assets/Scripts/Sound/BushAudioController.cs b/Assets/Scripts/Sound/BushAudioController.cs
index 3b4ddc5a..a924b2de 100644
--- a/Assets/Scripts/Sound/BushAudioController.cs
+++ b/Assets/Scripts/Sound/BushAudioController.cs
@@ -6,6 +6,7 @@ using UnityEngine;
using UnityEngine.Audio;
using Core;
using Core.Lifecycle;
+using PuzzleS;
public class BushAudioController : ManagedBehaviour
{