From 33af26fd733f6ed1747ef8f8115e91dd3e1ff788 Mon Sep 17 00:00:00 2001 From: DamianCorazza <79833283+DamianCorazza@users.noreply.github.com> Date: Wed, 15 Oct 2025 13:59:51 +0200 Subject: [PATCH 1/2] Added the puzzle indicators to the FootballBird Puzzle --- .../InteractWithBallTree.asset | 5 +- .../FootballBirdPuzzle/PickUpFootball.asset | 4 +- Assets/Scenes/Levels/Quarry.unity | 398 +++++++++++++++++- 3 files changed, 397 insertions(+), 10 deletions(-) diff --git a/Assets/Data/Puzzles/FootballBirdPuzzle/InteractWithBallTree.asset b/Assets/Data/Puzzles/FootballBirdPuzzle/InteractWithBallTree.asset index ffdda44d..6e84b1e2 100644 --- a/Assets/Data/Puzzles/FootballBirdPuzzle/InteractWithBallTree.asset +++ b/Assets/Data/Puzzles/FootballBirdPuzzle/InteractWithBallTree.asset @@ -16,5 +16,6 @@ MonoBehaviour: displayName: Interact With Ball tree description: Whack the tree with a cucumba. icon: {fileID: 0} - unlocks: [] - showIndicator: 0 + unlocks: + - {fileID: 11400000, guid: 6386246caab8faa40b2da221d9ab9b8a, type: 2} + showIndicator: 1 diff --git a/Assets/Data/Puzzles/FootballBirdPuzzle/PickUpFootball.asset b/Assets/Data/Puzzles/FootballBirdPuzzle/PickUpFootball.asset index cac75e31..49145e04 100644 --- a/Assets/Data/Puzzles/FootballBirdPuzzle/PickUpFootball.asset +++ b/Assets/Data/Puzzles/FootballBirdPuzzle/PickUpFootball.asset @@ -16,4 +16,6 @@ MonoBehaviour: displayName: Pick Football description: pick up the football to lure the football bird icon: {fileID: 0} - unlocks: [] + unlocks: + - {fileID: 11400000, guid: 0fb0ab2b55d93a24685e9f6651adcf30, type: 2} + showIndicator: 0 diff --git a/Assets/Scenes/Levels/Quarry.unity b/Assets/Scenes/Levels/Quarry.unity index 7bfa12f4..fe24982d 100644 --- a/Assets/Scenes/Levels/Quarry.unity +++ b/Assets/Scenes/Levels/Quarry.unity @@ -434106,6 +434106,38 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &369578433 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 369578434} + m_Layer: 10 + m_Name: AnimContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &369578434 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 369578433} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.42, z: 0} + m_LocalScale: {x: 0.25, y: 0.25, z: 0.25} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 689881713} + m_Father: {fileID: 8013274907828598644} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &372719405 PrefabInstance: m_ObjectHideFlags: 0 @@ -439535,6 +439567,93 @@ Transform: m_CorrespondingSourceObject: {fileID: 5145306031820616614, guid: fbbe1f4baf226904b96f839fe0c00181, type: 3} m_PrefabInstance: {fileID: 685147236} m_PrefabAsset: {fileID: 0} +--- !u!1001 &689881711 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 369578434} + m_Modifications: + - target: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_Name + value: NextStepIndicator + objectReference: {fileID: 0} + - target: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_ConstrainProportionsScale + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} +--- !u!1 &689881712 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + m_PrefabInstance: {fileID: 689881711} + m_PrefabAsset: {fileID: 0} +--- !u!4 &689881713 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + m_PrefabInstance: {fileID: 689881711} + m_PrefabAsset: {fileID: 0} --- !u!4 &693396273 stripped Transform: m_CorrespondingSourceObject: {fileID: 2071071585578300598, guid: 9b2926886934b554f9a1727331d34787, type: 3} @@ -440310,6 +440429,93 @@ Transform: m_CorrespondingSourceObject: {fileID: 6638967295122936466, guid: f4ac8282240dd544e9a92e7635486fd1, type: 3} m_PrefabInstance: {fileID: 702911162} m_PrefabAsset: {fileID: 0} +--- !u!1001 &705662619 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1084908570} + m_Modifications: + - target: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_Name + value: NextStepIndicator + objectReference: {fileID: 0} + - target: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_ConstrainProportionsScale + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} +--- !u!4 &705662620 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + m_PrefabInstance: {fileID: 705662619} + m_PrefabAsset: {fileID: 0} +--- !u!1 &705662621 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + m_PrefabInstance: {fileID: 705662619} + m_PrefabAsset: {fileID: 0} --- !u!1 &713720583 GameObject: m_ObjectHideFlags: 0 @@ -446724,6 +446930,38 @@ Transform: m_CorrespondingSourceObject: {fileID: 5145306031820616614, guid: fbbe1f4baf226904b96f839fe0c00181, type: 3} m_PrefabInstance: {fileID: 1082413465} m_PrefabAsset: {fileID: 0} +--- !u!1 &1084908569 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1084908570} + m_Layer: 10 + m_Name: NextStepIndicator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1084908570 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1084908569} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.02, y: 1.06, z: 0} + m_LocalScale: {x: 0.1851852, y: 0.1851852, z: 0.7407408} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 705662620} + m_Father: {fileID: 457896108} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &1091359312 stripped Transform: m_CorrespondingSourceObject: {fileID: 106062057957134378, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} @@ -448489,7 +448727,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: stepData: {fileID: 11400000, guid: 8ac614a698631554ab8ac39aed04a189, type: 2} - puzzleIndicator: {fileID: 0} + puzzleIndicator: {fileID: 1974667227} drawPromptRangeGizmo: 1 --- !u!114 &1182494941 MonoBehaviour: @@ -449393,6 +449631,38 @@ Transform: m_Children: [] m_Father: {fileID: 764788851} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 7.957} +--- !u!1 &1230365908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1230365909} + m_Layer: 10 + m_Name: AnimContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1230365909 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1230365908} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.826, y: 1.333, z: 0} + m_LocalScale: {x: 0.1851852, y: 0.1851852, z: 0.1851852} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1974667228} + m_Father: {fileID: 7530821580781571561} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1230441486 GameObject: m_ObjectHideFlags: 0 @@ -450374,13 +450644,17 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 898680540} m_Modifications: + - target: {fileID: 1242278318846904640, guid: 30285f2632211504484661965ed61c57, type: 3} + propertyPath: puzzleIndicator + value: + objectReference: {fileID: 705662621} - target: {fileID: 3606875748053192296, guid: 30285f2632211504484661965ed61c57, type: 3} propertyPath: m_Name value: FootballBall objectReference: {fileID: 0} - target: {fileID: 3606875748053192296, guid: 30285f2632211504484661965ed61c57, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 4386785291364665203, guid: 30285f2632211504484661965ed61c57, type: 3} propertyPath: characterToInteract @@ -450448,7 +450722,10 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 5572894649736340512, guid: 30285f2632211504484661965ed61c57, type: 3} + insertIndex: -1 + addedObject: {fileID: 1084908570} m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 30285f2632211504484661965ed61c57, type: 3} --- !u!1001 &1313372821 @@ -462782,6 +463059,93 @@ BoxCollider2D: m_AutoTiling: 0 m_Size: {x: 1.5, y: 1.5} m_EdgeRadius: 0 +--- !u!1001 &1974667226 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1230365909} + m_Modifications: + - target: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_Name + value: NextStepIndicator + objectReference: {fileID: 0} + - target: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + propertyPath: m_ConstrainProportionsScale + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} +--- !u!1 &1974667227 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5383276844808284485, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + m_PrefabInstance: {fileID: 1974667226} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1974667228 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5507990123417429516, guid: afbb486e5456a20479aee4cf8bc949b6, type: 3} + m_PrefabInstance: {fileID: 1974667226} + m_PrefabAsset: {fileID: 0} --- !u!4 &1979553424 stripped Transform: m_CorrespondingSourceObject: {fileID: 2064225848720495177, guid: 0bbded61e58193848ac59c8eea761bcc, type: 3} @@ -467464,11 +467828,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4937390562043858043, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} propertyPath: m_LocalPosition.x - value: -38.67 + value: -38.7 objectReference: {fileID: 0} - target: {fileID: 4937390562043858043, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} propertyPath: m_LocalPosition.y - value: 91.2 + value: 91.26 objectReference: {fileID: 0} - target: {fileID: 4937390562043858043, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} propertyPath: m_LocalPosition.z @@ -467632,7 +467996,10 @@ PrefabInstance: objectReference: {fileID: 11400000, guid: ee609df51f47bd541a23d5425e289e30, type: 2} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 4937390562043858043, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} + insertIndex: 0 + addedObject: {fileID: 1230365909} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 7379304988657006554, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} insertIndex: -1 @@ -467647,6 +468014,11 @@ PrefabInstance: insertIndex: -1 addedObject: {fileID: 1182494942} m_SourcePrefab: {fileID: 100100000, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} +--- !u!4 &7530821580781571561 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4937390562043858043, guid: c36b48a324dcaef4cb5ee0f8ca57f0d6, type: 3} + m_PrefabInstance: {fileID: 7530821580781571560} + m_PrefabAsset: {fileID: 0} --- !u!1001 &7535757761066548300 PrefabInstance: m_ObjectHideFlags: 0 @@ -467872,6 +468244,10 @@ PrefabInstance: propertyPath: m_Enabled value: 1 objectReference: {fileID: 0} + - target: {fileID: 2277261512137882881, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} + propertyPath: puzzleIndicator + value: + objectReference: {fileID: 689881712} - target: {fileID: 2706936531024020228, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} propertyPath: characterToInteract value: 2 @@ -468011,12 +468387,20 @@ PrefabInstance: m_RemovedComponents: - {fileID: 2944268128369172028, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} m_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 2045549771447434109, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} + insertIndex: 0 + addedObject: {fileID: 369578434} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 3134003919645739551, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} insertIndex: -1 addedObject: {fileID: 1398916133} m_SourcePrefab: {fileID: 100100000, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} +--- !u!4 &8013274907828598644 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2045549771447434109, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} + m_PrefabInstance: {fileID: 8013274907828598643} + m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 From c0f141f5ac1d1d52cbdcb5635f47307978e35585 Mon Sep 17 00:00:00 2001 From: Michal Pikulski Date: Wed, 15 Oct 2025 14:02:12 +0200 Subject: [PATCH 2/2] Fix issues with the indicator null checks --- .../Scripts/PuzzleS/ObjectiveStepBehaviour.cs | 24 ++++++++++++------- Assets/Scripts/PuzzleS/PuzzleStepSO.cs | 15 ------------ 2 files changed, 16 insertions(+), 23 deletions(-) diff --git a/Assets/Scripts/PuzzleS/ObjectiveStepBehaviour.cs b/Assets/Scripts/PuzzleS/ObjectiveStepBehaviour.cs index 9d1a60de..e11e168d 100644 --- a/Assets/Scripts/PuzzleS/ObjectiveStepBehaviour.cs +++ b/Assets/Scripts/PuzzleS/ObjectiveStepBehaviour.cs @@ -25,6 +25,7 @@ namespace PuzzleS private Interactable _interactable; private bool _isUnlocked = false; + private bool _isCompleted = false; private IPuzzlePrompt _indicator; // Current proximity state tracked by PuzzleManager @@ -72,6 +73,7 @@ namespace PuzzleS public void UpdateProximityState(ProximityState newState) { if (_currentProximityState == newState) return; + if (_indicator == null) return; // Determine state changes and call appropriate methods if (newState == ProximityState.Close) @@ -96,7 +98,7 @@ namespace PuzzleS public virtual void OnShow() { // Delegate to indicator if available - if (_indicator != null) + if (IsIndicatorValid()) { _indicator.OnShow(); return; @@ -112,7 +114,7 @@ namespace PuzzleS public virtual void OnHide() { // Delegate to indicator if available - if (_indicator != null) + if (IsIndicatorValid()) { _indicator.OnHide(); return; @@ -131,7 +133,7 @@ namespace PuzzleS if (!_isUnlocked) return; // Delegate to indicator if available - if (_indicator != null) + if (IsIndicatorValid()) { _indicator.ShowFar(); return; @@ -150,7 +152,7 @@ namespace PuzzleS if (!_isUnlocked) return; // Delegate to indicator if available - if (_indicator != null) + if (IsIndicatorValid()) { _indicator.ShowClose(); return; @@ -169,7 +171,7 @@ namespace PuzzleS if (!_isUnlocked) return; // Delegate to indicator if available - if (_indicator != null) + if (IsIndicatorValid()) { _indicator.HideClose(); return; @@ -188,7 +190,7 @@ namespace PuzzleS if (!_isUnlocked) return; // Delegate to indicator if available - if (_indicator != null) + if (IsIndicatorValid()) { _indicator.HideFar(); return; @@ -266,7 +268,7 @@ namespace PuzzleS Logging.Debug($"[Puzzles] Step locked: {stepData?.stepId} on {gameObject.name}"); // Hide indicator - if (_indicator != null) + if (IsIndicatorValid()) { _indicator.OnHide(); } @@ -298,11 +300,17 @@ namespace PuzzleS if (success) { Logging.Debug($"[Puzzles] Step interacted: {stepData?.stepId} on {gameObject.name}"); - Destroy(puzzleIndicator); + _isCompleted = true; PuzzleManager.Instance?.MarkPuzzleStepCompleted(stepData); + Destroy(puzzleIndicator); } } + private bool IsIndicatorValid() + { + return _indicator != null && puzzleIndicator != null && !_isCompleted; + } + /// /// Visualizes the puzzle prompt ranges in the editor. /// diff --git a/Assets/Scripts/PuzzleS/PuzzleStepSO.cs b/Assets/Scripts/PuzzleS/PuzzleStepSO.cs index b0844507..7a2bd299 100644 --- a/Assets/Scripts/PuzzleS/PuzzleStepSO.cs +++ b/Assets/Scripts/PuzzleS/PuzzleStepSO.cs @@ -29,19 +29,4 @@ public class PuzzleStepSO : ScriptableObject /// [Header("Unlocks")] public List unlocks = new List(); - - [Header("Interaction Settings")] - [Tooltip("Whether to show an indicator when this step is unlocked")] - [SerializeField] private bool showIndicator = false; - - /// - /// Whether to show an indicator when this step is unlocked. - /// - public bool ShowIndicator => showIndicator; - - /// - /// Gets or sets whether to show an indicator. - /// - public bool GetShowIndicator() => showIndicator; - public void SetShowIndicator(bool value) => showIndicator = value; }