From 2923ba0851789fd749c402aa0867dc0743e0547a Mon Sep 17 00:00:00 2001 From: Damian Date: Mon, 22 Sep 2025 11:31:02 +0200 Subject: [PATCH] Lawnmowwer is working! Done with the lawnmower section of the puzzle. --- .../Gardener/ANIM_Gardener_Scared.anim | 2 +- .../Gardener/GardenerController.controller | 2 +- .../HammerBirdPuzzle/InteractWLawnMower.asset | 3 +- Assets/Scenes/Levels/Quarry.unity | 180 ++++++++++++++++-- .../LawnMowerChaseBehaviour.cs | 23 +++ Assets/Scripts/PuzzleS/PuzzleManager.cs | 2 + 6 files changed, 190 insertions(+), 22 deletions(-) diff --git a/Assets/Art/Animations/Characters/Gardener/ANIM_Gardener_Scared.anim b/Assets/Art/Animations/Characters/Gardener/ANIM_Gardener_Scared.anim index 29f327ca..be908fbf 100644 --- a/Assets/Art/Animations/Characters/Gardener/ANIM_Gardener_Scared.anim +++ b/Assets/Art/Animations/Characters/Gardener/ANIM_Gardener_Scared.anim @@ -79,7 +79,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 + m_LoopTime: 1 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 diff --git a/Assets/Art/Animations/Characters/Gardener/GardenerController.controller b/Assets/Art/Animations/Characters/Gardener/GardenerController.controller index 349f85ca..53271ec0 100644 --- a/Assets/Art/Animations/Characters/Gardener/GardenerController.controller +++ b/Assets/Art/Animations/Characters/Gardener/GardenerController.controller @@ -64,7 +64,7 @@ AnimatorState: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: ANIM_Gardener_Scared - m_Speed: 1 + m_Speed: 0.5 m_CycleOffset: 0 m_Transitions: - {fileID: 2668893367386582248} diff --git a/Assets/Data/Puzzles/HammerBirdPuzzle/InteractWLawnMower.asset b/Assets/Data/Puzzles/HammerBirdPuzzle/InteractWLawnMower.asset index 33cbaff4..36bc2621 100644 --- a/Assets/Data/Puzzles/HammerBirdPuzzle/InteractWLawnMower.asset +++ b/Assets/Data/Puzzles/HammerBirdPuzzle/InteractWLawnMower.asset @@ -16,5 +16,4 @@ MonoBehaviour: displayName: Start Lawnmower description: Start up the lawnmower so the Gardener runs after it. icon: {fileID: 0} - unlocks: - - {fileID: 11400000, guid: f9da68caaae2a244885a13cf2e2e45c0, type: 2} + unlocks: [] diff --git a/Assets/Scenes/Levels/Quarry.unity b/Assets/Scenes/Levels/Quarry.unity index 6ab44047..591b8c1f 100644 --- a/Assets/Scenes/Levels/Quarry.unity +++ b/Assets/Scenes/Levels/Quarry.unity @@ -432,6 +432,11 @@ GameObject: m_CorrespondingSourceObject: {fileID: 780600094299918916, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} m_PrefabInstance: {fileID: 1101333109} m_PrefabAsset: {fileID: 0} +--- !u!4 &21238924 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6418503932309983819, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} + m_PrefabInstance: {fileID: 1101333109} + m_PrefabAsset: {fileID: 0} --- !u!1001 &28205340 PrefabInstance: m_ObjectHideFlags: 0 @@ -1716,7 +1721,7 @@ Transform: m_GameObject: {fileID: 207469555} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -4, y: 0, z: 1.0714284} + m_LocalPosition: {x: 2.77, y: 0, z: 1.0714284} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -434938,6 +434943,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 2264394306674147778, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} insertIndex: -1 addedObject: {fileID: 1682591185} + - targetCorrespondingSourceObject: {fileID: 6418503932309983819, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} + insertIndex: -1 + addedObject: {fileID: 1482548983} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 1102400833121127473, guid: 4b7426bc1f8736749b68973653f4dbfb, type: 3} insertIndex: -1 @@ -436205,6 +436213,11 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 0bbded61e58193848ac59c8eea761bcc, type: 3} +--- !u!4 &1209025755 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} + m_PrefabInstance: {fileID: 2024588806} + m_PrefabAsset: {fileID: 0} --- !u!1 &1212556098 stripped GameObject: m_CorrespondingSourceObject: {fileID: 1178648129422731606, guid: 3144c6bbac26fbd49a1608152821cc5f, type: 3} @@ -438060,6 +438073,11 @@ GameObject: m_CorrespondingSourceObject: {fileID: 1417937103223012543, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} m_PrefabInstance: {fileID: 4912039252317080710} m_PrefabAsset: {fileID: 0} +--- !u!4 &1482548983 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + m_PrefabInstance: {fileID: 7535757761066548300} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1482575303 PrefabInstance: m_ObjectHideFlags: 0 @@ -439587,6 +439605,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 1209025755} + - {fileID: 1704723657} - {fileID: 2122075106} - {fileID: 1767269979} - {fileID: 207469556} @@ -439787,6 +439807,108 @@ Transform: m_CorrespondingSourceObject: {fileID: 5145306031820616614, guid: fbbe1f4baf226904b96f839fe0c00181, type: 3} m_PrefabInstance: {fileID: 1693995484} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1704723656 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1682591185} + m_Modifications: + - target: {fileID: 368354309418136824, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: -4621719542000939027, guid: 091a3d095bd12aa48bc11c07f34f9482, type: 3} + - target: {fileID: 2605203974146157482, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_Name + value: VanOpen + objectReference: {fileID: 0} + - target: {fileID: 2605203974146157482, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4734006517558524600, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_Offset.x + value: 0.16 + objectReference: {fileID: 0} + - target: {fileID: 4734006517558524600, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_Offset.y + value: -1.15 + objectReference: {fileID: 0} + - target: {fileID: 4734006517558524600, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_SpriteTilingProperty.pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4734006517558524600, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_SpriteTilingProperty.pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4734006517558524600, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_SpriteTilingProperty.oldSize.x + value: 15.84 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalScale.x + value: 1.0714284 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalScale.y + value: 1.0714284 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalScale.z + value: 1.0714284 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalPosition.x + value: 9.38 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalPosition.y + value: 14.86 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} +--- !u!4 &1704723657 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + m_PrefabInstance: {fileID: 1704723656} + m_PrefabAsset: {fileID: 0} --- !u!4 &1707431187 stripped Transform: m_CorrespondingSourceObject: {fileID: 9067462609398217044, guid: 6cbcaf4eb20e63e4fb462f6fb1ada3a7, type: 3} @@ -441893,19 +442015,31 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1682591185} m_Modifications: - target: {fileID: 1784002662241348359, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_Name value: Nails objectReference: {fileID: 0} + - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} + propertyPath: m_LocalScale.x + value: 1.4285713 + objectReference: {fileID: 0} + - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} + propertyPath: m_LocalScale.y + value: 1.4285713 + objectReference: {fileID: 0} + - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} + propertyPath: m_LocalScale.z + value: 0.35714284 + objectReference: {fileID: 0} - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_LocalPosition.x - value: 28.14 + value: 4.657143 objectReference: {fileID: 0} - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_LocalPosition.y - value: 6.84 + value: 10.814285 objectReference: {fileID: 0} - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_LocalPosition.z @@ -441917,15 +442051,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7465517589433942351, guid: 0b255c6ea64a74240a8db4d9e8f820be, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -443428,7 +443562,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 2109569918951345984, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} propertyPath: m_LocalPosition.x - value: 72.06 + value: 86.3 objectReference: {fileID: 0} - target: {fileID: 2109569918951345984, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} propertyPath: m_LocalPosition.y @@ -443532,7 +443666,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6004009293778554413, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} propertyPath: m_LocalPosition.x - value: 72.06 + value: 86.3 objectReference: {fileID: 0} - target: {fileID: 6004009293778554413, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} propertyPath: m_LocalPosition.y @@ -443568,7 +443702,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6861958251714623620, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} propertyPath: m_LocalPosition.x - value: -143.61 + value: -157.3 objectReference: {fileID: 0} - target: {fileID: 6861958251714623620, guid: 1fda7fccaa5fbd04695f4c98d29bcbe0, type: 3} propertyPath: m_LocalPosition.y @@ -443952,7 +444086,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 21238924} m_Modifications: - target: {fileID: 2605203974146157482, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_Name @@ -443962,13 +444096,25 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalScale.x + value: 1.0714285 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalScale.y + value: 1.0714285 + objectReference: {fileID: 0} + - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} + propertyPath: m_LocalScale.z + value: 1.0714285 + objectReference: {fileID: 0} - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_LocalPosition.x - value: 36.9 + value: 2.1385722 objectReference: {fileID: 0} - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_LocalPosition.y - value: 10.7 + value: 2.1371412 objectReference: {fileID: 0} - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_LocalPosition.z @@ -443980,15 +444126,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 7902426247424835304, guid: e958998c2a0c82246b6269c32eb2a297, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -444182,7 +444328,6 @@ SceneRoots: - {fileID: 1363194738} - {fileID: 2926576032425091693} - {fileID: 1794862441} - - {fileID: 7535757761066548300} - {fileID: 7731287911925225729} - {fileID: 4656836127232412646} - {fileID: 5320929981885366459} @@ -444196,7 +444341,6 @@ SceneRoots: - {fileID: 1373293420} - {fileID: 1032520927} - {fileID: 5541405231515088532} - - {fileID: 2024588806} - {fileID: 1295249126} - {fileID: 520186664} - {fileID: 1328912324} diff --git a/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs b/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs index 3f34255f..ed351aab 100644 --- a/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs +++ b/Assets/Scripts/DamianExperiments/LawnMowerChaseBehaviour.cs @@ -17,6 +17,11 @@ public class LawnMowerChaseBehaviour : MonoBehaviour private bool _initialTweenActive = true; private float _initialTargetAnchor = 1f; + //Reference to the gardener's gameobject + public GameObject gardenerRef = null; + public Animator gardenerAnimator = null; + public bool gardenerChasing = true; + void Start() { LawnMowerObject.position = ChaseSpline.GetPosition(startPercentage); @@ -119,11 +124,29 @@ public class LawnMowerChaseBehaviour : MonoBehaviour private void flipSprite() { + if (gardenerRef == null) + { + gardenerRef = GameObject.Find("GardenerRunningSprite"); + gardenerAnimator = gardenerRef.GetComponent(); + } + Vector3 scale = LawnMowerObject.transform.localScale; Vector3 rotation = LawnMowerObject.transform.eulerAngles; scale.x *= -1; rotation.z *= -1; LawnMowerObject.transform.localScale = scale; LawnMowerObject.transform.eulerAngles = rotation; + if (gardenerChasing == true) + { + gardenerRef.transform.localPosition = new Vector3(-6.3f, -2.9f, gardenerRef.transform.localPosition.z); + gardenerAnimator.SetBool("IsScared?", true); + gardenerChasing = false; + } + else + { + gardenerRef.transform.localPosition = new Vector3(8.3f, 3.9f, gardenerRef.transform.localPosition.z); + gardenerAnimator.SetBool("IsScared?", false); + gardenerChasing = true; + } } } diff --git a/Assets/Scripts/PuzzleS/PuzzleManager.cs b/Assets/Scripts/PuzzleS/PuzzleManager.cs index 38277a05..58ad87ab 100644 --- a/Assets/Scripts/PuzzleS/PuzzleManager.cs +++ b/Assets/Scripts/PuzzleS/PuzzleManager.cs @@ -184,6 +184,8 @@ public class PuzzleManager : MonoBehaviour /// public bool IsStepUnlocked(PuzzleStepSO step) { + BuildRuntimeDependencies(); + UnlockInitialSteps(); return unlockedSteps.Contains(step); }