From c08fc4a720aaffd37e5334902b49bcbfaf7bc563 Mon Sep 17 00:00:00 2001 From: Damian Date: Thu, 13 Nov 2025 16:23:52 +0100 Subject: [PATCH] WIP Butterfly can be set free, now only missing forcing the couple to look. --- Assets/Scenes/Levels/Quarry.unity | 182 +++++++++++++----- .../DamianExperiments/ButterFlyBehaviour.cs | 44 ++--- .../DamianExperiments/ButterFlyState.cs | 13 ++ .../DamianExperiments/ButterFlyState.cs.meta | 2 + .../ButterflyFreeBehaviour.cs | 19 ++ .../ButterflyFreeBehaviour.cs.meta | 2 + 6 files changed, 196 insertions(+), 66 deletions(-) create mode 100644 Assets/Scripts/DamianExperiments/ButterFlyState.cs create mode 100644 Assets/Scripts/DamianExperiments/ButterFlyState.cs.meta create mode 100644 Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs create mode 100644 Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs.meta diff --git a/Assets/Scenes/Levels/Quarry.unity b/Assets/Scenes/Levels/Quarry.unity index 075a5841..d62fd7e9 100644 --- a/Assets/Scenes/Levels/Quarry.unity +++ b/Assets/Scenes/Levels/Quarry.unity @@ -433210,7 +433210,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &318146997 Transform: m_ObjectHideFlags: 0 @@ -433221,7 +433221,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.5, z: -0.5} - m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507} + m_LocalScale: {x: 0.13, y: 0.13, z: 0.13} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 495112254} @@ -434738,7 +434738,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &423383083 Transform: m_ObjectHideFlags: 0 @@ -434749,7 +434749,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: -0.5, z: 0.5} - m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507} + m_LocalScale: {x: 0.13, y: 0.13, z: 0.13} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1807522040} @@ -438951,7 +438951,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: -0.5, z: 0.5} - m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507} + m_LocalScale: {x: 0.13, y: 0.13, z: 0.13} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 495112254} @@ -445569,7 +445569,7 @@ Transform: m_GameObject: {fileID: 971772283} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 19.54, y: 42.61, z: 0} + m_LocalPosition: {x: 23.4, y: 45.12, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -446023,7 +446023,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507} + m_LocalScale: {x: 0.21, y: 0.21, z: 0.21} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1807522040} @@ -447368,13 +447368,14 @@ GameObject: - component: {fileID: 1046094549} - component: {fileID: 1046094550} - component: {fileID: 1046094551} - m_Layer: 0 + - component: {fileID: 1046094552} + m_Layer: 10 m_Name: Trapped m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &1046094549 Transform: m_ObjectHideFlags: 0 @@ -447412,9 +447413,9 @@ MonoBehaviour: m_GameObject: {fileID: 1046094548} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 73d6494a73174ffabc6a7d3089d51e73, type: 3} + m_Script: {fileID: 11500000, guid: 833a4ccef651449e973e623d9107bef5, type: 3} m_Name: - m_EditorClassIdentifier: AppleHillsScripts::Interactions.InteractableBase + m_EditorClassIdentifier: AppleHillsScripts::Interactions.OneClickInteraction isOneTime: 0 cooldown: -1 characterToInteract: 2 @@ -447430,18 +447431,64 @@ MonoBehaviour: interactionComplete: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 0} - m_TargetAssemblyTypeName: Core.SaveLoad.AppleMachine, AppleHillsScripts - m_MethodName: + - m_Target: {fileID: 1471606857} + m_TargetAssemblyTypeName: ButterFlyState, AppleHillsScripts + m_MethodName: stateSwitch m_Mode: 5 m_Arguments: m_ObjectArgument: {fileID: 0} m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine m_IntArgument: 0 m_FloatArgument: 0 - m_StringArgument: + m_StringArgument: Flying m_BoolArgument: 0 m_CallState: 2 +--- !u!61 &1046094552 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1046094548} + m_Enabled: 1 + serializedVersion: 3 + m_Density: 1 + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ForceSendLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ForceReceiveLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_ContactCaptureLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_CallbackLayers: + serializedVersion: 2 + m_Bits: 4294967295 + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_CompositeOperation: 0 + m_CompositeOrder: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + m_Size: {x: 4.43, y: 4.39} + m_EdgeRadius: 0 --- !u!1 &1052177242 GameObject: m_ObjectHideFlags: 0 @@ -453771,13 +453818,14 @@ GameObject: m_Component: - component: {fileID: 1339904432} - component: {fileID: 1339904433} + - component: {fileID: 1339904434} m_Layer: 0 m_Name: Free m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &1339904432 Transform: m_ObjectHideFlags: 0 @@ -453787,7 +453835,7 @@ Transform: m_GameObject: {fileID: 1339904431} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 49.15, y: -5.5, z: 1.5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -453806,6 +453854,19 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 95e46aacea5b42888ee7881894193c11, type: 3} m_Name: m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleState +--- !u!114 &1339904434 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1339904431} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6821f70f6ac4b85418b15ce068ddc6da, type: 3} + m_Name: + m_EditorClassIdentifier: '::' + butterflyRef: {fileID: 0} --- !u!1001 &1347210919 PrefabInstance: m_ObjectHideFlags: 0 @@ -456431,7 +456492,7 @@ GameObject: m_Component: - component: {fileID: 1471606854} - component: {fileID: 1471606856} - - component: {fileID: 1471606855} + - component: {fileID: 1471606857} m_Layer: 0 m_Name: ButterflyStateMachine m_TagString: Untagged @@ -456457,7 +456518,7 @@ Transform: - {fileID: 1339904432} m_Father: {fileID: 971772284} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1471606855 +--- !u!114 &1471606856 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -456466,12 +456527,24 @@ MonoBehaviour: m_GameObject: {fileID: 1471606853} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6f56763d30b94bf6873d395a6c116eb5, type: 3} + m_Script: {fileID: 11500000, guid: 55938fb1577dd4ad3af7e994048c86f6, type: 3} m_Name: - m_EditorClassIdentifier: AppleHillsScripts::Core.SaveLoad.AppleMachine + m_EditorClassIdentifier: PixelplacementAssembly::Pixelplacement.Initialization +--- !u!114 &1471606857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1471606853} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b889d915f28f8ac4ebeb12013bcaa4ce, type: 3} + m_Name: + m_EditorClassIdentifier: '::' defaultState: {fileID: 1046094548} currentState: {fileID: 0} - _unityEventsFolded: 1 + _unityEventsFolded: 0 verbose: 0 allowReentry: 0 returnToDefaultOnDisable: 1 @@ -456494,18 +456567,6 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] customSaveId: ---- !u!114 &1471606856 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1471606853} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 55938fb1577dd4ad3af7e994048c86f6, type: 3} - m_Name: - m_EditorClassIdentifier: PixelplacementAssembly::Pixelplacement.Initialization --- !u!95 &1476225951 stripped Animator: m_CorrespondingSourceObject: {fileID: 876931666302761994, guid: 2b23896b733c2ae4cba6dcf21193402b, type: 3} @@ -458960,7 +459021,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507} + m_LocalScale: {x: 0.21, y: 0.21, z: 0.21} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 495112254} @@ -461197,7 +461258,7 @@ GameObject: - component: {fileID: 1731509962} - component: {fileID: 1731509961} m_Layer: 0 - m_Name: Animation + m_Name: ButterflyFlying m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -461216,7 +461277,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2136071208} + m_Father: {fileID: 2143678520} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &1731509961 Animator: @@ -462915,7 +462976,7 @@ Transform: m_GameObject: {fileID: 1807522039} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 23.17, y: -1.5, z: 1.5} + m_LocalPosition: {x: 49.15, y: -5.5, z: 1.5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -467533,7 +467594,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0.5, z: -0.5} - m_LocalScale: {x: 0.22958507, y: 0.22958507, z: 0.22958507} + m_LocalScale: {x: 0.13, y: 0.13, z: 0.13} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1807522040} @@ -470183,7 +470244,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1731509960} + - {fileID: 2143678520} - {fileID: 495112254} - {fileID: 1807522040} m_Father: {fileID: 1471606854} @@ -470217,7 +470278,10 @@ MonoBehaviour: defaultTangentMode: 0 direction: 0 loop: 0 - followers: [] + followers: + - target: {fileID: 2143678520} + percentage: 0 + faceDirection: 0 --- !u!114 &2136071211 MonoBehaviour: m_ObjectHideFlags: 0 @@ -470230,11 +470294,43 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f8cd0ca91dab0404daaa3fa1dc722658, type: 3} m_Name: m_EditorClassIdentifier: AppleHillsScripts::ButterFlyBehaviour + butterStateMachine: {fileID: 1471606857} butterflightSpline: {fileID: 2136071210} - butterflyObject: {fileID: 1731509960} + butterflyObject: {fileID: 2143678520} flightDuration: 2 flightDelay: 0 - startPercentage: 0 +--- !u!1 &2143678519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2143678520} + m_Layer: 0 + m_Name: Animation + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2143678520 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2143678519} + serializedVersion: 2 + 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: 1731509960} + m_Father: {fileID: 2136071208} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &2144703707 stripped Transform: m_CorrespondingSourceObject: {fileID: 9067462609398217044, guid: 6cbcaf4eb20e63e4fb462f6fb1ada3a7, type: 3} diff --git a/Assets/Scripts/DamianExperiments/ButterFlyBehaviour.cs b/Assets/Scripts/DamianExperiments/ButterFlyBehaviour.cs index 651491ca..3c19b6a1 100644 --- a/Assets/Scripts/DamianExperiments/ButterFlyBehaviour.cs +++ b/Assets/Scripts/DamianExperiments/ButterFlyBehaviour.cs @@ -4,52 +4,50 @@ using Core.SaveLoad; public class ButterFlyBehaviour : MonoBehaviour { + public AppleMachine butterStateMachine; public Spline butterflightSpline; public Transform butterflyObject; public float flightDuration = 2f; public float flightDelay = 0f; - [Range(0, 1)] public float startPercentage = 0f; private const float AnchorThreshold = 0.05f; + private Animator butterflyAnimator; // Called when entering the butterfly flight state - public void OnEnterState() + public void OnEnable() { if (butterflightSpline == null || butterflyObject == null) { Debug.LogWarning("ButterFlyBehaviour: Missing spline or butterfly object reference."); return; } - - butterflyObject.position = butterflightSpline.GetPosition(startPercentage); - - float distanceToStart = Mathf.Abs(startPercentage - 0f); - float distanceToEnd = Mathf.Abs(startPercentage - 1f); - - float targetPercentage; - float duration; - - if (distanceToStart < distanceToEnd) + if (butterflyObject != null ) { - targetPercentage = 1f; - duration = flightDuration * (1f - startPercentage); - } - else - { - targetPercentage = 0f; - duration = flightDuration * startPercentage; + butterflyAnimator = butterflyObject.GetComponentInChildren(); } + butterflyAnimator.SetTrigger("BrokeOut"); + Tween.Spline( butterflightSpline, butterflyObject, - startPercentage, - targetPercentage, + 0, + 1, false, - duration, + flightDuration, flightDelay, Tween.EaseInOut, - Tween.LoopType.None + Tween.LoopType.None, HandleTweenStarted, HandleTweenFinished ); } + public void HandleTweenStarted() + { + + } + + public void HandleTweenFinished() + { + butterStateMachine.ChangeState("Free"); + } + } diff --git a/Assets/Scripts/DamianExperiments/ButterFlyState.cs b/Assets/Scripts/DamianExperiments/ButterFlyState.cs new file mode 100644 index 00000000..b277d88d --- /dev/null +++ b/Assets/Scripts/DamianExperiments/ButterFlyState.cs @@ -0,0 +1,13 @@ +using Core.SaveLoad; +using Core; +using UnityEngine; + +public class ButterFlyState : AppleMachine +{ + + public void stateSwitch(string StateName) + { + Logging.Debug("State Switch to: " + StateName); + ChangeState(StateName); + } +} diff --git a/Assets/Scripts/DamianExperiments/ButterFlyState.cs.meta b/Assets/Scripts/DamianExperiments/ButterFlyState.cs.meta new file mode 100644 index 00000000..25210e71 --- /dev/null +++ b/Assets/Scripts/DamianExperiments/ButterFlyState.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b889d915f28f8ac4ebeb12013bcaa4ce \ No newline at end of file diff --git a/Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs b/Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs new file mode 100644 index 00000000..7ac7b41d --- /dev/null +++ b/Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs @@ -0,0 +1,19 @@ +using Pixelplacement; +using UnityEngine; +using Core.SaveLoad; +public class ButterflyFreeBehaviour : MonoBehaviour +{ + public GameObject butterflyRef; + private Animator butterflyAnimator; + public void OnEnable() + { + if (butterflyRef != null) + { + butterflyAnimator = butterflyRef.GetComponentInChildren(); + } + butterflyAnimator.SetTrigger("IsFree"); + + Debug.Log("ButterflyFreeBehaviour enabled"); + } +} + diff --git a/Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs.meta b/Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs.meta new file mode 100644 index 00000000..1a5a74c7 --- /dev/null +++ b/Assets/Scripts/DamianExperiments/ButterflyFreeBehaviour.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6821f70f6ac4b85418b15ce068ddc6da \ No newline at end of file