diff --git a/Assets/Prefabs/Puzzles/AnneLise/AnneLiseBaseBush.prefab b/Assets/Prefabs/Puzzles/AnneLise/AnneLiseBaseBush.prefab
index b2b09792..67496df5 100644
--- a/Assets/Prefabs/Puzzles/AnneLise/AnneLiseBaseBush.prefab
+++ b/Assets/Prefabs/Puzzles/AnneLise/AnneLiseBaseBush.prefab
@@ -226,7 +226,7 @@ GameObject:
- component: {fileID: 2741639361616064442}
- component: {fileID: 4903273501345439385}
- component: {fileID: 1054459649399154791}
- - component: {fileID: 7319925080429004531}
+ - component: {fileID: 61210891595976786}
m_Layer: 10
m_Name: Hidden
m_TagString: Untagged
@@ -451,7 +451,7 @@ MonoBehaviour:
audioSource: {fileID: 0}
clipPriority: 0
sourcePriority: 1
---- !u!114 &7319925080429004531
+--- !u!114 &61210891595976786
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -460,9 +460,9 @@ MonoBehaviour:
m_GameObject: {fileID: 1011363502278351410}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 95e46aacea5b42888ee7881894193c11, type: 3}
+ m_Script: {fileID: 11500000, guid: 1fa347bfb45f473f8639842928f8cfa1, type: 3}
m_Name:
- m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleState
+ m_EditorClassIdentifier: AppleHillsScripts::StateMachines.Quarry.AnneLise.HiddenState
--- !u!1 &1674229500073894281
GameObject:
m_ObjectHideFlags: 0
@@ -830,6 +830,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 603ecc4a6ab6bb84c8cb9773fa310b69, type: 3}
m_Name:
m_EditorClassIdentifier: '::'
+ dialogueCanvas: {fileID: 7042752134100908030}
--- !u!114 &1193493154550576580
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -1740,3 +1741,8 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 3484825090253933040, guid: a8b0a1c6cf21352439dc24d3b03182db, type: 3}
m_PrefabInstance: {fileID: 4289827099693551234}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &7042752134100908030 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 6499933157207406972, guid: a8b0a1c6cf21352439dc24d3b03182db, type: 3}
+ m_PrefabInstance: {fileID: 4289827099693551234}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Scripts/DamianExperiments/SoundBirdPuzzleSection/cameraSwitcherNests.cs b/Assets/Scripts/DamianExperiments/SoundBirdPuzzleSection/cameraSwitcherNests.cs
index 59c5d709..c55b6c22 100644
--- a/Assets/Scripts/DamianExperiments/SoundBirdPuzzleSection/cameraSwitcherNests.cs
+++ b/Assets/Scripts/DamianExperiments/SoundBirdPuzzleSection/cameraSwitcherNests.cs
@@ -30,7 +30,7 @@ public class cameraSwitcherNailBird : MonoBehaviour
private void OnTriggerExit2D(Collider2D other)
{
- if (other.CompareTag("Player"))
+ if (other.CompareTag("Player") && gameObject.activeInHierarchy)
{
playerInsideCount--;
if (playerInsideCount == 0 && virtualCamera != null)
diff --git a/Assets/Scripts/StateMachines/Quarry/AnneLise/AnneLiseBushBehaviour.cs b/Assets/Scripts/StateMachines/Quarry/AnneLise/AnneLiseBushBehaviour.cs
index 2553c719..c9905088 100644
--- a/Assets/Scripts/StateMachines/Quarry/AnneLise/AnneLiseBushBehaviour.cs
+++ b/Assets/Scripts/StateMachines/Quarry/AnneLise/AnneLiseBushBehaviour.cs
@@ -6,7 +6,9 @@ namespace StateMachines.Quarry.AnneLise
{
public class AnneLiseBushBehaviour : MonoBehaviour
{
-
+ [SerializeField] private GameObject dialogueCanvas;
+
+
private AppleMachine _anneLiseBushStateMachine;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
@@ -16,6 +18,7 @@ namespace StateMachines.Quarry.AnneLise
public void TakePhoto()
{
+ dialogueCanvas?.SetActive(false);
_anneLiseBushStateMachine.ChangeState("TakePhoto");
}
}
diff --git a/Assets/Scripts/StateMachines/Quarry/AnneLise/HiddenState.cs b/Assets/Scripts/StateMachines/Quarry/AnneLise/HiddenState.cs
new file mode 100644
index 00000000..4ecf39c8
--- /dev/null
+++ b/Assets/Scripts/StateMachines/Quarry/AnneLise/HiddenState.cs
@@ -0,0 +1,78 @@
+using Core.SaveLoad;
+using UnityEngine;
+
+namespace StateMachines.Quarry.AnneLise
+{
+ ///
+ /// Hidden state for Anne Lise that saves/restores the DialogueCanvas active state
+ ///
+ public class HiddenState : AppleState
+ {
+ private GameObject _dialogueCanvas;
+
+ ///
+ /// Serializable data for the hidden state
+ ///
+ [System.Serializable]
+ private class HiddenStateData
+ {
+ public bool wasDialogueCanvasActive;
+ }
+
+ private void Awake()
+ {
+ // Find the immediate child called "DialogueCanvas"
+ Transform childTransform = transform.Find("DialogueCanvas");
+ if (childTransform != null)
+ {
+ _dialogueCanvas = childTransform.gameObject;
+ }
+ else
+ {
+ Debug.LogWarning($"[HiddenState] DialogueCanvas child not found on {gameObject.name}");
+ }
+ }
+
+ public override string SerializeState()
+ {
+ if (_dialogueCanvas == null)
+ {
+ Debug.LogWarning("[HiddenState] Cannot serialize state - DialogueCanvas is null");
+ return "";
+ }
+
+ HiddenStateData data = new HiddenStateData
+ {
+ wasDialogueCanvasActive = _dialogueCanvas.activeSelf
+ };
+
+ return JsonUtility.ToJson(data);
+ }
+
+ public override void OnRestoreState(string data)
+ {
+ if (string.IsNullOrEmpty(data))
+ {
+ Debug.LogWarning("[HiddenState] No data to restore");
+ return;
+ }
+
+ if (_dialogueCanvas == null)
+ {
+ Debug.LogWarning("[HiddenState] Cannot restore state - DialogueCanvas is null");
+ return;
+ }
+
+ try
+ {
+ HiddenStateData stateData = JsonUtility.FromJson(data);
+ _dialogueCanvas.SetActive(stateData.wasDialogueCanvasActive);
+ Debug.Log($"[HiddenState] Restored DialogueCanvas active state to: {stateData.wasDialogueCanvasActive}");
+ }
+ catch (System.Exception ex)
+ {
+ Debug.LogError($"[HiddenState] Failed to restore state: {ex.Message}");
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/StateMachines/Quarry/AnneLise/HiddenState.cs.meta b/Assets/Scripts/StateMachines/Quarry/AnneLise/HiddenState.cs.meta
new file mode 100644
index 00000000..f7cd9b78
--- /dev/null
+++ b/Assets/Scripts/StateMachines/Quarry/AnneLise/HiddenState.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 1fa347bfb45f473f8639842928f8cfa1
+timeCreated: 1763978213
\ No newline at end of file