From 93634a9586de006846a8188f7a773b1aa6529c70 Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 17 Aug 2025 14:37:33 -0400 Subject: [PATCH] changed: tweaks to make grapple feel better --- Assets/Player/Graphs/GrappleAimBT.asset | 4 +- Assets/Player/Graphs/GroundedCheckBT.asset | 4 +- .../Runtime/Services/MonoManager.cs.meta | 19 +- Assets/Scenes/SampleScene.unity | 172 +++++++++--------- .../Scripts/Core/Graph Tasks/DoGrapplePull.cs | 72 ++++---- Assets/Scripts/Core/LockOnManager.cs.meta | 2 +- Assets/Scripts/Player/UnitMovementHandler.cs | 49 ++++- .../Player/UnitMovementHandler.cs.meta | 11 +- 8 files changed, 194 insertions(+), 139 deletions(-) diff --git a/Assets/Player/Graphs/GrappleAimBT.asset b/Assets/Player/Graphs/GrappleAimBT.asset index 456e475..a8d0ef2 100644 --- a/Assets/Player/Graphs/GrappleAimBT.asset +++ b/Assets/Player/Graphs/GrappleAimBT.asset @@ -16,7 +16,7 @@ MonoBehaviour: Damping","newValue":{"x":0.2,"z":0.2},"changeX":1,"changeZ":1},"orbitFollowTop":{"label":"Top","changeHeight":1,"height":2.0,"changeRadius":1,"radius":2.0},"orbitFollowCenter":{"label":"Center","changeHeight":1,"height":1.5,"changeRadius":1,"radius":2.4},"orbitFollowBottom":{"label":"Bottom","changeHeight":1,"height":0.2,"changeRadius":1,"radius":0.8},"cameraOffset":{"label":"Screen Position","newValue":{"x":2.0,"y":0.5,"z":-1.0},"changeX":1,"changeY":1,"changeZ":1},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"},"_position":{"x":-139.3679,"y":620.3029},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"2"},{"_action":{"actions":[{"eventName":{"_value":"Grapple Aimed"},"delay":{},"$type":"NodeCanvas.Tasks.Actions.SendEvent"},{"valueA":{"_name":"facingDirection","_targetVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5"},"valueB":{"_value":2},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection, - Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":91.0,"y":526.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"3"},{"_condition":{"actionName":{"_value":"Grapple"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_position":{"x":336.0,"y":511.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"4"},{"_action":{"boolVariable":{"_name":"_castHit"},"setTo":0,"$type":"NodeCanvas.Tasks.Actions.SetBoolean"},"_position":{"x":568.0,"y":515.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"5"},{"policy":1,"dynamic":true,"_position":{"x":749.7742,"y":517.9701},"$type":"NodeCanvas.BehaviourTrees.Parallel","$id":"6"},{"repeaterMode":2,"repeatTimes":{"_value":1},"_position":{"x":247.0,"y":763.0},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"7"},{"_condition":{"castType":{"_value":4},"length":{"_value":20.0},"direction":{"_value":{"z":1.0}},"offset":{},"ignoreLayers":{"_value":{"value":8}},"width":{"_value":3.0},"size":{},"rotation":{},"drawGizmos":true,"outputHit":{"_name":"_hit"},"overrideAgent":{"_type":"UnityEngine.Transform","_name":"camera","_targetVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":209.0,"y":870.0},"$type":"NodeCanvas.BehaviourTrees.BinarySelector","$id":"8"},{"_action":{"boolVariable":{"_name":"_castHit"},"$type":"NodeCanvas.Tasks.Actions.SetBoolean"},"_position":{"x":127.0,"y":975.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"9"},{"_action":{"boolVariable":{"_name":"_castHit"},"setTo":0,"$type":"NodeCanvas.Tasks.Actions.SetBoolean"},"_position":{"x":320.0,"y":973.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"10"},{"_position":{"x":841.0,"y":848.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"11"},{"_condition":{"actionName":{"_value":"Grapple"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_position":{"x":540.0,"y":973.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"12"},{"_condition":{"valueA":{"_name":"_castHit"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_position":{"x":569.0,"y":1078.0},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"13"},{"_action":{"actions":[{"raycastHit":{"_name":"_hit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{},"point":{"_name":"_hitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"objectName":{"_value":"Hit + Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":91.00002,"y":524.9998},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"3"},{"_condition":{"actionName":{"_value":"Grapple"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_position":{"x":336.0,"y":511.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"4"},{"_action":{"boolVariable":{"_name":"_castHit"},"setTo":0,"$type":"NodeCanvas.Tasks.Actions.SetBoolean"},"_position":{"x":568.0,"y":515.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"5"},{"policy":1,"dynamic":true,"_position":{"x":749.7742,"y":517.9701},"$type":"NodeCanvas.BehaviourTrees.Parallel","$id":"6"},{"repeaterMode":2,"repeatTimes":{"_value":1},"_position":{"x":247.0,"y":763.0},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"7"},{"_condition":{"castType":{"_value":4},"length":{"_value":80.0},"direction":{"_value":{"z":1.0}},"offset":{},"ignoreLayers":{"_value":{"value":8}},"width":{"_value":3.0},"size":{},"rotation":{},"drawGizmos":true,"outputHit":{"_name":"_hit"},"overrideAgent":{"_type":"UnityEngine.Transform","_name":"camera","_targetVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":209.0,"y":870.0},"$type":"NodeCanvas.BehaviourTrees.BinarySelector","$id":"8"},{"_action":{"boolVariable":{"_name":"_castHit"},"$type":"NodeCanvas.Tasks.Actions.SetBoolean"},"_position":{"x":127.0,"y":975.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"9"},{"_action":{"boolVariable":{"_name":"_castHit"},"setTo":0,"$type":"NodeCanvas.Tasks.Actions.SetBoolean"},"_position":{"x":320.0,"y":973.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"10"},{"_position":{"x":841.0,"y":848.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"11"},{"_condition":{"actionName":{"_value":"Grapple"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_position":{"x":540.0,"y":973.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"12"},{"_condition":{"valueA":{"_name":"_castHit"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_position":{"x":569.0,"y":1078.0},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"13"},{"_action":{"actions":[{"raycastHit":{"_name":"_hit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{},"point":{"_name":"_hitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"objectName":{"_value":"Hit Point"},"position":{"_name":"_hitPoint"},"rotation":{},"saveAs":{"_name":"_hitPointObject"},"$type":"NodeCanvas.Tasks.Actions.CreateGameObject"},{"relatedObject":{"_name":"_hitPointObject"},"weight":{"_value":0.15},"isMain":{"_value":true},"$type":"NodeCanvas.Tasks.Actions.UpdateObjectCameraTracking"}],"$type":"NodeCanvas.Framework.ActionList"},"_tag":"","_position":{"x":362.2634,"y":1221.254},"_comment":"","$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"14"},{"_position":{"x":852.0,"y":973.0},"$type":"NodeCanvas.BehaviourTrees.Inverter","$id":"15"},{"_condition":{"actionName":{"_value":"Grapple"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_position":{"x":799.0,"y":1035.0},"$type":"NodeCanvas.BehaviourTrees.Interruptor","$id":"16"},{"repeaterMode":2,"repeatTimes":{"_value":1},"_position":{"x":902.6089,"y":1145.236},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"17"},{"_position":{"x":912.0,"y":1202.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"18"},{"_action":{"enableXAxis":{"label":"Input Axis X Enabled","changeValue":1},"enableYAxis":{"label":"Input Axis Y Enabled","changeValue":1},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"},"_position":{"x":700.5458,"y":1355.854},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"19"},{"_action":{"actions":[{"actionName":{"_value":"Look"},"outputTo":{"_name":"_lookDir"},"$type":"NodeCanvas.Tasks.Actions.CheckInputValue`1[[UnityEngine.Vector2, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"targetVector":{"_name":"_lookDir"},"x":{"_name":""},"y":{"_name":"_lookDirY"},"z":{"_name":""},"$type":"NodeCanvas.Tasks.Actions.DecomposeVector"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":903.6424,"y":1356.633},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"20"},{"_condition":{"valueA":{"_name":"_lookDirY"},"checkType":1,"valueB":{"_value":0.5},"differenceThreshold":0.1,"$type":"NodeCanvas.Tasks.Conditions.CheckFloat"},"_position":{"x":1186.228,"y":1367.689},"$type":"NodeCanvas.BehaviourTrees.BinarySelector","$id":"21"},{"_action":{"actions":[{"orbitTargetOffset":{"label":"Target @@ -42,7 +42,7 @@ MonoBehaviour: _version: 3.31 _category: _comments: - _translation: {x: 53, y: -224} + _translation: {x: 180, y: -268} _zoomFactor: 0.9998386 _haltSerialization: 0 _externalSerializationFile: {fileID: 0} diff --git a/Assets/Player/Graphs/GroundedCheckBT.asset b/Assets/Player/Graphs/GroundedCheckBT.asset index 48f8634..85d3220 100644 --- a/Assets/Player/Graphs/GroundedCheckBT.asset +++ b/Assets/Player/Graphs/GroundedCheckBT.asset @@ -12,13 +12,13 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7a686a47eee2fa44cb0a34b5d86e4d5e, type: 3} m_Name: GroundedCheckBT m_EditorClassIdentifier: - _serializedGraph: '{"type":"NodeCanvas.BehaviourTrees.BehaviourTree","nodes":[{"repeaterMode":2,"repeatTimes":{"_value":1},"_position":{"x":476.0,"y":327.0},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"0"},{"_position":{"x":550.0,"y":433.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"1"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"09b3259f-8b50-439a-ab86-ea3d8a4916f1"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_position":{"x":458.0,"y":521.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"2"},{"_position":{"x":478.0,"y":709.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"3"},{"_action":{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"inputVector3":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.SetAirMovement"},"_position":{"x":294.0,"y":816.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"4"},{"_action":{"airMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"inputVector3":{},"$type":"NodeCanvas.Tasks.Actions.SetAirMovement"},"_position":{"x":471.0,"y":817.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"5"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"09b3259f-8b50-439a-ab86-ea3d8a4916f1"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_position":{"x":715.0,"y":523.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"6"}],"connections":[{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"_isDisabled":true,"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"4"},"_isDisabled":true,"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{}},"derivedData":{"repeat":true,"$type":"NodeCanvas.BehaviourTrees.BehaviourTree+DerivedSerializationData"}}' + _serializedGraph: '{"type":"NodeCanvas.BehaviourTrees.BehaviourTree","nodes":[{"repeaterMode":2,"repeatTimes":{"_value":1},"_position":{"x":476.0,"y":327.0},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"0"},{"_position":{"x":550.0,"y":433.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"1"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"09b3259f-8b50-439a-ab86-ea3d8a4916f1"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_position":{"x":458.0,"y":521.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"2"},{"_position":{"x":478.0,"y":709.0},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"3"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"09b3259f-8b50-439a-ab86-ea3d8a4916f1"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_position":{"x":715.0,"y":523.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"4"}],"connections":[{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"_isDisabled":true,"$type":"NodeCanvas.BehaviourTrees.BTConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{}},"derivedData":{"repeat":true,"$type":"NodeCanvas.BehaviourTrees.BehaviourTree+DerivedSerializationData"}}' _objectReferences: [] _graphSource: _version: 3.31 _category: _comments: - _translation: {x: 444, y: -12} + _translation: {x: 442.93335, y: -225.00038} _zoomFactor: 1 _haltSerialization: 0 _externalSerializationFile: {fileID: 0} diff --git a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs.meta b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs.meta index 458f3c3..5eac550 100644 --- a/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs.meta +++ b/Assets/Plugins/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs.meta @@ -1,15 +1,5 @@ fileFormatVersion: 2 guid: 44d2c5333075d6b4e80311cb6820c5f1 -timeCreated: 1539386928 -licenseType: Store -MonoImporter: - serializedVersion: 2 - defaultReferences: [] - executionOrder: 100 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: AssetOrigin: serializedVersion: 1 productId: 14914 @@ -17,3 +7,12 @@ AssetOrigin: packageVersion: 3.3.1 assetPath: Assets/ParadoxNotion/CanvasCore/Common/Runtime/Services/MonoManager.cs uploadId: 704937 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 90 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index d02e69a..b21883b 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -46842,8 +46842,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 330585543} serializedVersion: 2 - m_LocalRotation: {x: 0.039987642, y: -0.0000000031281908, z: 1.251891e-10, w: 0.99920017} - m_LocalPosition: {x: 6.503913, y: 2.0657892, z: -16.002365} + m_LocalRotation: {x: 0.039987653, y: -0.000000006234705, z: 2.4951077e-10, w: 0.99920017} + m_LocalPosition: {x: 58.503914, y: 2.0657892, z: -7.002365} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -50004,8 +50004,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 402424904} serializedVersion: 2 - m_LocalRotation: {x: 0.039987642, y: -0.0000000031281908, z: 1.2518941e-10, w: 0.99920017} - m_LocalPosition: {x: 6.503913, y: 2.0657892, z: -16.002365} + m_LocalRotation: {x: 0.03998765, y: -0.00000000622338, z: -3.346884e-11, w: 0.9992002} + m_LocalPosition: {x: 58.503914, y: 2.0657892, z: -7.002365} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -57115,7 +57115,7 @@ Transform: m_GameObject: {fileID: 615613679} serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 6.503913, y: -0.81913054, z: -10.437754} + m_LocalPosition: {x: 58.503914, y: -0.81913054, z: -1.4377536} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -99273,17 +99273,18 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: outputMoveDirection: {x: 0, y: 0, z: 0} + gravitySmooth: 0 data: accelerationSmoothing: 4 deaccelerationSmoothing: 6 airDirectionDecay: 0.5 - moveSpeed: 15 + moveSpeed: 12 moveSpeedSoothing: 5 jumpPower: 0 jumpPowerDecay: 2 gravityPower: 0 gravityMax: 8 - gravityAcceleration: 2.25 + gravityAcceleration: 1.3 gravityScale: 1 rotateFacing: rid: 2028245219396813027 @@ -99325,7 +99326,7 @@ Transform: m_GameObject: {fileID: 1992890470} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 5, y: 0, z: -10} + m_LocalPosition: {x: 57, y: 0, z: -1} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -99421,6 +99422,7 @@ MonoBehaviour: UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"currentSpeed":{"_name":"currentSpeed","_id":"f585caab-68c5-4ead-85c4-cbc16c18655e","$type":"NodeCanvas.Framework.Variable`1[[System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"movementData":{"_propertyPath":"Reset.Units.UnitMovementHandler.data","_name":"movementData","_id":"357123c2-2d10-4425-a3c9-7341e810fc88","$type":"NodeCanvas.Framework.Variable`1[[Reset.Units.UnitMovementData, Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"outputMoveDirection":{"_propertyPath":"Reset.Units.UnitMovementHandler.outputMoveDirection","_name":"outputMoveDirection","_id":"3b9833f5-870a-4182-9824-e31a9896eec2","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"position":{"_propertyPath":"UnityEngine.Transform.position","_name":"position","_id":"67d29b66-07a0-4575-9cf9-57e8c58c6e49","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}' _objectReferences: [] _serializedVariables: @@ -99445,6 +99447,9 @@ MonoBehaviour: - _json: '{"_propertyPath":"Reset.Units.UnitMovementHandler.outputMoveDirection","_name":"outputMoveDirection","_id":"3b9833f5-870a-4182-9824-e31a9896eec2","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' _references: [] + - _json: '{"_propertyPath":"UnityEngine.Transform.position","_name":"position","_id":"67d29b66-07a0-4575-9cf9-57e8c58c6e49","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' + _references: [] --- !u!114 &1992890478 MonoBehaviour: m_ObjectHideFlags: 0 @@ -99470,69 +99475,42 @@ MonoBehaviour: Speed Smoothing","changeValue":2},"accelerationSmoothing":{"label":"Acceleration Smoothing","changeValue":2},"deaccelerationSmoothing":{"label":"Deacceleration Smoothing","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration - Speed","changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":0,"$type":"PlayerFacingDirection"},"changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"foldEnter":true,"foldUpdate":true,"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Grounded","_position":{"x":511.6257,"y":386.7231},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"0"},{"_position":{"x":369.3697,"y":186.864},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"1"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeedSoothing":{"label":"Move + Speed","changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":0,"$type":"PlayerFacingDirection"},"changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"foldEnter":true,"foldUpdate":true,"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Grounded","_position":{"x":511.6257,"y":383.2603},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"0"},{"_position":{"x":369.3697,"y":186.864},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"1"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeedSoothing":{"label":"Move Speed Smoothing","value":1.0},"accelerationSmoothing":{"label":"Acceleration Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration Smoothing","value":1.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration - Speed","changeValue":2},"gravityScale":{"label":"Gravity Scale","changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9801429,"a":1.0},"_name":"Airborn - (Actionable)","_position":{"x":664.0512,"y":-115.5536},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"2"},{"_onEnterList":{"executionMode":1,"actions":[{"airDirectionDecay":{"label":"Air - Direction Decay","value":1.0,"changeValue":1},"accelerationSmoothing":{"label":"Acceleration + Speed","changeValue":2},"gravityScale":{"label":"Gravity Scale","changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_color":{"r":0.3647059,"g":0.3215686,"b":1.0,"a":1.0},"_name":"Airborne + Standard Movement","_position":{"x":782.0202,"y":-340.0203},"$type":"NodeCanvas.StateMachines.ActionState","$id":"2"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborn + (Standby)","_position":{"x":661.2523,"y":-113.9588},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"3"},{"_actionList":{"executionMode":1,"actions":[{"raycastHit":{"_name":"_wallJumpHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallJumpHitNormal"},"point":{},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Left + Side Wall Jump","_position":{"x":309.8118,"y":-282.4449},"$type":"NodeCanvas.StateMachines.ActionState","$id":"4"},{"_onEnterList":{"executionMode":1,"actions":[{"accelerationSmoothing":{"label":"Acceleration Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration Smoothing","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed New - Direction","newValue":{"z":0.1},"changeZ":1},"jumpPower":{"label":"Jump Power","value":16.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump - Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity - Acceleration Speed","value":1.0,"changeValue":2},"rotateFacing":{"label":"Facing - Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Wall - Climb Jump","_position":{"x":840.3389,"y":-341.4128},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"3"},{"_actionList":{"executionMode":1,"actions":[{"raycastHit":{"_name":"_wallJumpHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallJumpHitNormal"},"point":{},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Right - Side Wall Jump","_position":{"x":411.2476,"y":-480.2733},"$type":"NodeCanvas.StateMachines.ActionState","$id":"4"},{"_onEnterList":{"executionMode":1,"actions":[{"accelerationSmoothing":{"label":"Acceleration - Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration - Smoothing","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed New - Direction","newValue":{"x":-1.0,"z":0.5},"changeX":1,"changeZ":1},"newDirectionStrength":15.0,"jumpPower":{"label":"Jump - Power","value":20.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity - Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration - Speed","value":1.0,"changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Right - Side Wall Jump","_position":{"x":285.3196,"y":-670.1414},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"5"},{"_actionList":{"executionMode":1,"actions":[{"raycastHit":{"_name":"_wallJumpHit"},"transform":{},"collider":{},"gameObject":{"_name":""},"distance":{},"normal":{"_name":"_wallJumpHitNormal"},"point":{},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Left - Side Wall Jump","_position":{"x":262.1901,"y":-313.1208},"$type":"NodeCanvas.StateMachines.ActionState","$id":"6"},{"_onEnterList":{"executionMode":1,"actions":[{"accelerationSmoothing":{"label":"Acceleration - Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration - Smoothing","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed New - Direction","newValue":{"x":1.0,"z":0.5},"changeX":1,"changeZ":1},"newDirectionStrength":1.0,"jumpPower":{"label":"Jump - Power","value":20.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity + Direction","newValue":{"x":1.0,"z":0.5},"changeX":1,"changeZ":1},"newDirectionStrength":15.0,"jumpPower":{"label":"Jump + Power","value":28.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration Speed","value":1.0,"changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4132327,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Left - Side Wall Jump","_position":{"x":72.76006,"y":-425.8029},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"7"},{"_onEnterList":{"executionMode":1,"actions":[{"accelerationSmoothing":{"label":"Acceleration + Side Wall Jump","_position":{"x":72.76006,"y":-425.8029},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"5"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.5019608,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborn + (Locked)","_position":{"x":304.8749,"y":6.36377},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"6"},{"_position":{"x":-169.0027,"y":131.3442},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"7"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":1},"moveSpeedSoothing":{"label":"Move Speed Smoothing","value":1.0,"changeValue":1},"airDirectionDecay":{"label":"Air + Direction Decay","changeValue":2},"accelerationSmoothing":{"label":"Acceleration + Smoothing","changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration + Smoothing","changeValue":1},"gravityPower":{"label":"Gravity Power","changeValue":1},"gravityAcceleration":{"label":"Gravity + Acceleration Speed","changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"airDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"targetLocation":{"_name":"_grappleLaunchDir"},"offset":{"_value":{"y":1.0}},"relativeRotation":{},"launchRelativeTo":{},"useRelativeForce":{"_value":true},"minimumForce":{},"maximumForce":{"_value":100.0},"forceRelativeToDistance":{"_value":4.0},"force":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.StartLaunchJump"},{"grapplePoint":{"_name":"_grappleLaunchDir"},"offset":{},"pullAccelerationSpeed":{},"pullDeaccelerationSpeed":{},"pullTimeRange":{},"pullSpeedRange":{"_value":{"y":50.0}},"slowdownDistance":{"_value":40.0},"pullSpeedCurve":{"_value":{"keys":[{"time":0.006996155,"value":0.4524789,"tangentMode":0,"inTangent":0.1111637,"outTangent":0.1111637},{"time":0.2206978,"value":0.7016913,"tangentMode":0,"inTangent":0.5933766,"outTangent":0.5933766},{"time":0.4624784,"value":0.7784544,"tangentMode":0,"inTangent":0.081825,"outTangent":0.081825},{"time":1.0,"value":0.4377128,"tangentMode":0,"inTangent":-1.657803,"outTangent":-1.657803}],"preWrapMode":8,"postWrapMode":8}},"endDeaccelerationCurve":{"_value":{"keys":[{"time":0.09687042,"value":1.0,"tangentMode":136,"inTangent":0.0,"outTangent":0.0},{"time":0.9987154,"value":0.4624017,"tangentMode":136,"inTangent":0.0,"outTangent":0.0}],"preWrapMode":8,"postWrapMode":8}},"$type":"NodeCanvas.Tasks.Actions.DoGrapplePull"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":2},"moveSpeedSoothing":{"label":"Move Speed Smoothing","value":0.58,"changeValue":1},"accelerationSmoothing":{"label":"Acceleration Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration - Smoothing","value":1.0,"changeValue":1},"addDirectionFromInput":{"x":1.0,"y":1.0},"addInputPriorty":0.514,"jumpPower":{"label":"Jump - Power","value":13.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.0,"changeValue":1},"gravityPower":{"label":"Gravity - Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration - Speed","value":1.6,"changeValue":1},"gravityScale":{"label":"Gravity Scale","value":0.5},"rotateFacing":{"label":"Facing - Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"orbitFollowTop":{"label":"Top","changeRadius":1,"radius":7.0},"orbitFollowCenter":{"label":"Center","changeRadius":1,"radius":8.0},"orbitFollowBottom":{"label":"Bottom","changeRadius":1,"radius":5.0},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Standard - Jump","_position":{"x":950.2775,"y":47.71863},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"8"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[{"_missingType":"NodeCanvas.Tasks.Actions.CalculateAirMovement","_recoveryState":"{\r\n - \"airMoveDirection\": {\r\n \"_name\": \"airMoveDirection\",\r\n - \"_targetVariableID\": \"2fc91db6-09dd-4a1f-9195-426a0c44de31\"\r\n },\r\n - \"groundMoveDirection\": {\r\n \"_name\": \"groundMoveDirection\",\r\n - \"_targetVariableID\": \"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f\"\r\n },\r\n - \"$type\": \"NodeCanvas.Tasks.Actions.CalculateAirMovement\"\r\n}","$type":"NodeCanvas.Framework.Internal.MissingAction"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.5019608,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborn","_position":{"x":233.8749,"y":-22.63622},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"9"},{"_position":{"x":-169.0027,"y":131.3442},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"10"},{"_onEnterList":{"executionMode":1,"actions":[{"airDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"targetLocation":{"_name":"_grappleLaunchDir"},"offset":{"_value":{"y":1.0}},"relativeRotation":{},"launchRelativeTo":{},"useRelativeForce":{"_value":true},"minimumForce":{},"maximumForce":{"_value":100.0},"forceRelativeToDistance":{"_value":4.0},"force":{},"$type":"NodeCanvas.Tasks.Actions.StartLaunchJump"}]},"_onUpdateList":{"executionMode":1,"actions":[{"_missingType":"NodeCanvas.Tasks.Actions.CalculateAirMovement","_recoveryState":"{\r\n - \"airMoveDirection\": {\r\n \"_name\": \"airMoveDirection\",\r\n - \"_targetVariableID\": \"2fc91db6-09dd-4a1f-9195-426a0c44de31\"\r\n },\r\n - \"groundMoveDirection\": {\r\n \"_name\": \"groundMoveDirection\",\r\n - \"_targetVariableID\": \"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f\"\r\n },\r\n - \"$type\": \"NodeCanvas.Tasks.Actions.CalculateAirMovement\"\r\n}","$type":"NodeCanvas.Framework.Internal.MissingAction"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.5019608,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Grapple - Launch","_position":{"x":-670.4955,"y":-371.6953},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"11"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[{"_missingType":"NodeCanvas.Tasks.Actions.CalculateAirMovement","_recoveryState":"{\r\n - \"airMoveDirection\": {\r\n \"_name\": \"airMoveDirection\",\r\n - \"_targetVariableID\": \"2fc91db6-09dd-4a1f-9195-426a0c44de31\"\r\n },\r\n - \"groundMoveDirection\": {\r\n \"_name\": \"groundMoveDirection\",\r\n - \"_targetVariableID\": \"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f\"\r\n },\r\n - \"$type\": \"NodeCanvas.Tasks.Actions.CalculateAirMovement\"\r\n}","$type":"NodeCanvas.Framework.Internal.MissingAction"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.5019608,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Grapple - Airborn","_position":{"x":-85.80408,"y":-297.2082},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"12"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4132327,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Post - Grapple Jump","_position":{"x":-283.0,"y":-509.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"13"},{"_position":{"x":-368.1487,"y":-11.80579},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"14"},{"_onEnterList":{"executionMode":1,"actions":[{"airDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"targetLocation":{"_name":"_grappleLaunchDir"},"offset":{},"relativeRotation":{},"launchRelativeTo":{},"useRelativeForce":{"_value":true},"minimumForce":{},"maximumForce":{"_value":100.0},"forceRelativeToDistance":{"_value":4.0},"force":{},"$type":"NodeCanvas.Tasks.Actions.StartLaunchJump"}]},"_onUpdateList":{"executionMode":1,"actions":[{"_missingType":"NodeCanvas.Tasks.Actions.CalculateAirMovement","_recoveryState":"{\r\n - \"airMoveDirection\": {\r\n \"_name\": \"airMoveDirection\",\r\n - \"_targetVariableID\": \"2fc91db6-09dd-4a1f-9195-426a0c44de31\"\r\n },\r\n - \"groundMoveDirection\": {\r\n \"_name\": \"groundMoveDirection\",\r\n - \"_targetVariableID\": \"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f\"\r\n },\r\n - \"$type\": \"NodeCanvas.Tasks.Actions.CalculateAirMovement\"\r\n}","$type":"NodeCanvas.Framework.Internal.MissingAction"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.5019608,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Grapple - Pull","_position":{"x":-516.0585,"y":-217.0181},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"15"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"moveSpeedSoothing":{"label":"Move - Speed Smoothing","value":100.0,"changeValue":1},"accelerationSmoothing":{"label":"Acceleration + Smoothing","value":1.0,"changeValue":1},"gravityAcceleration":{"label":"Gravity + Acceleration Speed","value":1.0,"changeValue":1},"rotationSmoothing":{"label":"Rotation + Smoothing","value":1.0,"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.5019608,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Grapple + Launch","_position":{"x":-744.4955,"y":-368.6953},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"8"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4132327,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Post + Grapple Jump","_position":{"x":-343.0,"y":-614.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"9"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeedSoothing":{"label":"Move + Speed Smoothing","value":1.0},"accelerationSmoothing":{"label":"Acceleration + Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration + Smoothing","value":1.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay + Speed","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration + Speed","value":0.2,"changeValue":1},"gravityScale":{"label":"Gravity Scale","changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_color":{"r":0.3647059,"g":0.3215686,"b":1.0,"a":1.0},"_name":"Post + Grapple Movement","_position":{"x":-126.1861,"y":-216.9633},"$type":"NodeCanvas.StateMachines.ActionState","$id":"10"},{"_position":{"x":-368.1487,"y":-11.80579},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"11"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"moveSpeed":{"label":"Move + Speed","changeValue":1},"moveSpeedSoothing":{"label":"Move Speed Smoothing","value":100.0,"changeValue":1},"accelerationSmoothing":{"label":"Acceleration Smoothing","value":1.0,"changeValue":2},"deaccelerationSmoothing":{"label":"Deacceleration Smoothing","value":1.0,"changeValue":2},"feedNewDirection":{"label":"Feed New Direction","newValue":{"x":0.5,"z":0.5}},"jumpPower":{"label":"Jump Power","changeValue":2},"jumpPowerDecay":{"label":"Jump @@ -99540,24 +99518,25 @@ MonoBehaviour: Acceleration Speed","changeValue":1},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":5,"$type":"PlayerFacingDirection"},"changeValue":1},"rotationSmoothing":{"label":"Rotation Smoothing","value":30.0,"changeValue":1},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":1},"feedNewRotation":{"_value":{"y":-45.0}},"feedRelativeTo":{"_name":"_wallStickHitNormal"},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Right - Wall Stick","_position":{"x":1440.892,"y":491.8188},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"16"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeedSoothing":{"label":"Move - Speed Smoothing","changeValue":2},"accelerationSmoothing":{"label":"Acceleration + Wall Stick","_position":{"x":1440.892,"y":491.8188},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"12"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":2},"moveSpeedSoothing":{"label":"Move Speed Smoothing","changeValue":2},"accelerationSmoothing":{"label":"Acceleration Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration Smoothing","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed New - Direction","newValue":{"z":1.0},"changeX":1,"changeZ":1},"jumpPower":{"label":"Jump + Direction","newValue":{"z":1.0},"changeX":1,"changeZ":1},"newDirectionStrength":22.0,"jumpPower":{"label":"Jump Power","value":10.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration Speed","value":1.0,"changeValue":2},"gravityScale":{"label":"Gravity Scale","changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":2},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Right - Wall Launch","_position":{"x":1538.202,"y":-270.5961},"$type":"NodeCanvas.StateMachines.ActionState","$id":"17"},{"_name":"back - to airborne","_position":{"x":1318.265,"y":-168.164},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"18"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[{"jumpPowerDecay":{"label":"Jump + Wall Launch","_position":{"x":1539.249,"y":-269.5498},"$type":"NodeCanvas.StateMachines.ActionState","$id":"13"},{"_name":"back + to airborne","_position":{"x":1318.265,"y":-168.164},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"14"},{"_onEnterList":{"executionMode":1,"actions":[{"jumpPowerDecay":{"label":"Jump Decay Speed","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration Speed","changeValue":2},"gravityScale":{"label":"Gravity Scale","changeValue":2},"rotateFacing":{"label":"Facing - Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onExitList":{"executionMode":1,"actions":[]},"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Wall - Slide","_position":{"x":1163.601,"y":367.7003},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"19"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"moveSpeedSoothing":{"label":"Move - Speed Smoothing","value":100.0,"changeValue":1},"accelerationSmoothing":{"label":"Acceleration + Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":2},"moveSpeedSoothing":{"label":"Move Speed Smoothing","changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Wall + Slide","_position":{"x":1163.601,"y":367.7003},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"15"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"moveSpeed":{"label":"Move + Speed","changeValue":1},"moveSpeedSoothing":{"label":"Move Speed Smoothing","value":100.0,"changeValue":1},"accelerationSmoothing":{"label":"Acceleration Smoothing","value":1.0,"changeValue":2},"deaccelerationSmoothing":{"label":"Deacceleration Smoothing","value":1.0,"changeValue":2},"feedNewDirection":{"label":"Feed New Direction","newValue":{"x":0.5,"z":0.5}},"jumpPower":{"label":"Jump Power","value":5.0,"changeValue":2},"jumpPowerDecay":{"label":"Jump @@ -99565,18 +99544,41 @@ MonoBehaviour: Acceleration Speed","changeValue":1},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":5,"$type":"PlayerFacingDirection"},"changeValue":1},"rotationSmoothing":{"label":"Rotation Smoothing","value":30.0,"changeValue":1},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":1},"feedNewRotation":{"_value":{"y":45.0}},"feedRelativeTo":{"_name":"_wallStickHitNormal"},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Left - Wall Stick","_position":{"x":1293.098,"y":208.9184},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"20"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeedSoothing":{"label":"Move - Speed Smoothing","changeValue":2},"accelerationSmoothing":{"label":"Acceleration + Wall Stick","_position":{"x":1293.098,"y":193.9184},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"16"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":2},"moveSpeedSoothing":{"label":"Move Speed Smoothing","changeValue":2},"accelerationSmoothing":{"label":"Acceleration Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration Smoothing","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed New - Direction","newValue":{"z":1.0},"changeX":1,"changeZ":1},"jumpPower":{"label":"Jump + Direction","newValue":{"z":1.0},"changeX":1,"changeZ":1},"newDirectionStrength":22.0,"jumpPower":{"label":"Jump Power","value":10.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration Speed","value":1.0,"changeValue":2},"gravityScale":{"label":"Gravity Scale","changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":2},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Left - Wall Launch","_position":{"x":1462.118,"y":-136.9542},"$type":"NodeCanvas.StateMachines.ActionState","$id":"21"},{"_actionList":{"executionMode":1,"actions":[{"feedNewDirection":{"label":"Feed + Wall Launch","_position":{"x":1461.118,"y":-136.9542},"$type":"NodeCanvas.StateMachines.ActionState","$id":"17"},{"_onEnterList":{"executionMode":1,"actions":[{"airDirectionDecay":{"label":"Air + Direction Decay","value":1.0,"changeValue":1},"accelerationSmoothing":{"label":"Acceleration + Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration + Smoothing","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed New + Direction","newValue":{"z":0.1},"changeZ":1},"jumpPower":{"label":"Jump Power","value":16.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump + Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity + Acceleration Speed","value":1.0,"changeValue":2},"rotateFacing":{"label":"Facing + Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Wall + Climb Jump","_position":{"x":1001.339,"y":-546.4128},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"18"},{"_actionList":{"executionMode":1,"actions":[{"raycastHit":{"_name":"_wallJumpHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallJumpHitNormal"},"point":{},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Right + Side Wall Jump","_position":{"x":410.2013,"y":-480.2733},"$type":"NodeCanvas.StateMachines.ActionState","$id":"19"},{"_onEnterList":{"executionMode":1,"actions":[{"accelerationSmoothing":{"label":"Acceleration + Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration + Smoothing","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed New + Direction","newValue":{"x":-1.0,"z":0.5},"changeX":1,"changeZ":1},"newDirectionStrength":15.0,"jumpPower":{"label":"Jump + Power","value":28.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity + Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration + Speed","value":1.0,"changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Right + Side Wall Jump","_position":{"x":285.3196,"y":-670.1414},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"20"},{"_onEnterList":{"executionMode":1,"actions":[{"accelerationSmoothing":{"label":"Acceleration + Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration + Smoothing","value":1.0,"changeValue":1},"addDirectionFromInput":{"x":1.0,"y":1.0},"addInputPriorty":0.514,"jumpPower":{"label":"Jump + Power","value":13.0,"changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","value":1.0,"changeValue":1},"gravityPower":{"label":"Gravity + Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration + Speed","value":1.6,"changeValue":1},"gravityScale":{"label":"Gravity Scale","value":0.5},"rotateFacing":{"label":"Facing + Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"orbitFollowTop":{"label":"Top","changeRadius":1,"radius":7.0},"orbitFollowCenter":{"label":"Center","changeRadius":1,"radius":8.0},"orbitFollowBottom":{"label":"Bottom","changeRadius":1,"radius":5.0},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Standard + Jump","_position":{"x":977.3049,"y":37.70953},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"21"},{"_actionList":{"executionMode":1,"actions":[{"feedNewDirection":{"label":"Feed New Direction","newValue":{"z":1.0}},"gravityAcceleration":{"label":"Gravity Acceleration Speed","changeValue":1},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"fieldOfView":{"label":"FOV","value":100.0,"changeValue":1},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Sprint Burst","_position":{"x":638.7453,"y":540.2648},"$type":"NodeCanvas.StateMachines.ActionState","$id":"22"},{"_onEnterList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"valueB":{"_value":4},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[System.Int32, @@ -99591,19 +99593,23 @@ MonoBehaviour: Decay Speed","value":1.5,"changeValue":1},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration Speed","value":1.0,"changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Run - Jump","_position":{"x":1030.915,"y":224.8837},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"24"},{"_subTree":{"_value":1},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_value":{"$content":2,"$type":"UnityEngine.Transform"}},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canRead":true,"_canWrite":true,"_type":"PlayerFacingDirection","_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"}],"_position":{"x":38.10919,"y":111.7257},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":3},"_tag":"","_position":{"x":32.73846,"y":216.563},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_conditionList":{"conditions":[{"valueA":{"_name":"myBoolean","_targetVariableID":"c3172967-7d7a-44ba-837f-55b966e121b3"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}]},"_actionList":{"executionMode":1,"actions":[{"grapplePoint":{"_name":"myTransform","_targetVariableID":"681d2db9-2158-4a64-b889-0b1bf5deffe4"},"offset":{},"pullAccelerationSpeed":{},"pullDeaccelerationSpeed":{},"pullTimeRange":{},"pullSpeedRange":{"_value":{"y":50.0}},"slowdownDistance":{"_value":40.0},"pullSpeedCurve":{"_value":{"keys":[{"time":0.006996155,"value":0.4524789,"tangentMode":0,"inTangent":0.1111637,"outTangent":0.1111637},{"time":0.2206978,"value":0.7016913,"tangentMode":0,"inTangent":0.5933766,"outTangent":0.5933766},{"time":0.4624784,"value":0.7784544,"tangentMode":0,"inTangent":0.081825,"outTangent":0.081825},{"time":1.0,"value":0.4377128,"tangentMode":0,"inTangent":-1.657803,"outTangent":-1.657803}],"preWrapMode":8,"postWrapMode":8}},"endDeaccelerationCurve":{"_value":{"keys":[{"time":0.09687042,"value":1.0,"tangentMode":136,"inTangent":0.0,"outTangent":0.0},{"time":0.9987154,"value":0.4624017,"tangentMode":136,"inTangent":0.0,"outTangent":0.0}],"preWrapMode":8,"postWrapMode":8}},"$type":"NodeCanvas.Tasks.Actions.DoGrapplePull"}]},"_position":{"x":-695.7593,"y":410.6037},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"targetVector":{"_name":"outputMoveDirection","_targetVariableID":"3b9833f5-870a-4182-9824-e31a9896eec2"},"x":{"_name":""},"y":{"_name":"_currentYMoveDirection"},"z":{"_name":""},"$type":"NodeCanvas.Tasks.Actions.DecomposeVector"}]},"_position":{"x":-9.357971,"y":610.3325},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"}],"connections":[{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + Jump","_position":{"x":1032.146,"y":224.8837},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"24"},{"_onEnterList":{"executionMode":1,"actions":[{"airDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"targetLocation":{"_name":"_grappleLaunchDir"},"offset":{},"relativeRotation":{},"launchRelativeTo":{},"useRelativeForce":{"_value":true},"minimumForce":{},"maximumForce":{"_value":100.0},"forceRelativeToDistance":{"_value":4.0},"force":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.StartLaunchJump"},{"grapplePoint":{"_name":"_grappleLaunchDir"},"offset":{},"pullAccelerationSpeed":{},"pullDeaccelerationSpeed":{},"pullTimeRange":{},"pullSpeedRange":{"_value":{"y":50.0}},"slowdownDistance":{"_value":40.0},"pullSpeedCurve":{"_value":{"keys":[{"time":0.006996155,"value":0.4524789,"tangentMode":0,"inTangent":0.1111637,"outTangent":0.1111637},{"time":0.2206978,"value":0.7016913,"tangentMode":0,"inTangent":0.5933766,"outTangent":0.5933766},{"time":0.4624784,"value":0.7784544,"tangentMode":0,"inTangent":0.081825,"outTangent":0.081825},{"time":1.0,"value":0.4377128,"tangentMode":0,"inTangent":-1.657803,"outTangent":-1.657803}],"preWrapMode":8,"postWrapMode":8}},"endDeaccelerationCurve":{"_value":{"keys":[{"time":0.09687042,"value":1.0,"tangentMode":136,"inTangent":0.0,"outTangent":0.0},{"time":0.9987154,"value":0.4624017,"tangentMode":136,"inTangent":0.0,"outTangent":0.0}],"preWrapMode":8,"postWrapMode":8}},"$type":"NodeCanvas.Tasks.Actions.DoGrapplePull"},{"gravityPower":{"label":"Gravity + Power","changeValue":2},"gravityAcceleration":{"label":"Gravity Acceleration + Speed","changeValue":1},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.5019608,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Grapple + Pull","_position":{"x":-534.6552,"y":-152.7098},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"25"},{"_subTree":{"_value":1},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_value":{"$content":2,"$type":"UnityEngine.Transform"}},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canRead":true,"_canWrite":true,"_type":"PlayerFacingDirection","_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"}],"_position":{"x":38.10919,"y":111.7257},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":3},"_tag":"","_position":{"x":32.73846,"y":216.563},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_conditionList":{"conditions":[{"valueA":{"_name":"myBoolean","_targetVariableID":"c3172967-7d7a-44ba-837f-55b966e121b3"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}]},"_actionList":{"executionMode":1,"actions":[{"grapplePoint":{"_name":"_grappleLaunchDir"},"offset":{},"pullAccelerationSpeed":{},"pullDeaccelerationSpeed":{},"pullTimeRange":{},"pullSpeedRange":{"_value":{"y":50.0}},"slowdownDistance":{"_value":40.0},"pullSpeedCurve":{"_value":{"keys":[{"time":0.006996155,"value":0.4524789,"tangentMode":0,"inTangent":0.1111637,"outTangent":0.1111637},{"time":0.2206978,"value":0.7016913,"tangentMode":0,"inTangent":0.5933766,"outTangent":0.5933766},{"time":0.4624784,"value":0.7784544,"tangentMode":0,"inTangent":0.081825,"outTangent":0.081825},{"time":1.0,"value":0.4377128,"tangentMode":0,"inTangent":-1.657803,"outTangent":-1.657803}],"preWrapMode":8,"postWrapMode":8}},"endDeaccelerationCurve":{"_value":{"keys":[{"time":0.09687042,"value":1.0,"tangentMode":136,"inTangent":0.0,"outTangent":0.0},{"time":0.9987154,"value":0.4624017,"tangentMode":136,"inTangent":0.0,"outTangent":0.0}],"preWrapMode":8,"postWrapMode":8}},"$type":"NodeCanvas.Tasks.Actions.DoGrapplePull"}]},"_position":{"x":-695.7593,"y":411.6037},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"targetVector":{"_name":"outputMoveDirection","_targetVariableID":"3b9833f5-870a-4182-9824-e31a9896eec2"},"x":{"_name":""},"y":{"_name":"_currentYMoveDirection"},"z":{"_name":""},"$type":"NodeCanvas.Tasks.Actions.DecomposeVector"}]},"_position":{"x":-9.357971,"y":610.3325},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborne + Standby","_position":{"x":1300.0,"y":-381.196},"$type":"NodeCanvas.StateMachines.SuperActionState"}],"connections":[{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Launch"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Pull"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"22"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"wallclimb"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"right-walljump"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-walljump"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"checkType":4,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckInt"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"16"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"right-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"20"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"22"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-walljump"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"checkType":4,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckInt"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"right-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"16"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Launch"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Pull"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_name":"_wallJumpHitNormal"},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.5},"considerCameraRotation":{"_value":true},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_name":"_wallJumpHitNormal"},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.5},"considerCameraRotation":{"_value":true},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"7"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"_currentYMoveDirection"},"checkType":2,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckFloat"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"wallclimb"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"18"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"right-walljump"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"19"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_name":"_wallJumpHitNormal"},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.5},"considerCameraRotation":{"_value":true},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Launch"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Pull"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"11"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"11"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"19"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"18"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"18"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"timeout":{"_value":2.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"valueA":{"_name":"isGrounded","_targetVariableID":"09b3259f-8b50-439a-ab86-ea3d8a4916f1"},"valueB":{"_value":true},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"19"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"21"},"_targetNode":{"$ref":"18"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"22"},"_targetNode":{"$ref":"23"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"24"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGrounded":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"619300a4-be8b-4ad4-ba2a-978468094ba2","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"7"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"11"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"timeout":{"_value":2.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"18"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_name":"_wallJumpHitNormal"},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.5},"considerCameraRotation":{"_value":true},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"20"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"_currentYMoveDirection"},"checkType":2,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckFloat"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"21"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"22"},"_targetNode":{"$ref":"23"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"24"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGrounded":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"619300a4-be8b-4ad4-ba2a-978468094ba2","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"forwardRay":{"_propertyPath":"PlayerMovement.forwardRay","_name":"forwardRay","_id":"a2506ca5-1b47-4820-9921-3ff4ecc18564","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.RaycastHit, UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"airJumpsRemaining":{"_name":"airJumpsRemaining","_id":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d","$type":"NodeCanvas.Framework.Variable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"rotationSpeed":{"_value":0.5,"_name":"rotationSpeed","_id":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611","$type":"NodeCanvas.Framework.Variable`1[[System.Single, @@ -99624,8 +99630,8 @@ MonoBehaviour: _version: 3.31 _category: _comments: - _translation: {x: 589, y: 771} - _zoomFactor: 0.9928552 + _translation: {x: 467.77643, y: 399.5163} + _zoomFactor: 1 _firstActivation: 0 _enableAction: 0 _disableAction: 0 diff --git a/Assets/Scripts/Core/Graph Tasks/DoGrapplePull.cs b/Assets/Scripts/Core/Graph Tasks/DoGrapplePull.cs index 1c63c52..3ca24d8 100644 --- a/Assets/Scripts/Core/Graph Tasks/DoGrapplePull.cs +++ b/Assets/Scripts/Core/Graph Tasks/DoGrapplePull.cs @@ -2,6 +2,7 @@ using Drawing; using NodeCanvas.Framework; using ParadoxNotion.Design; using ParadoxNotion.Services; +using Reset.Units; using UnityEngine; @@ -9,7 +10,7 @@ namespace NodeCanvas.Tasks.Actions { [Category("Reset/Movement")] [Description("Pulls the agent towards a position with a spring-like effect")] - public class DoGrapplePull : ActionTask{ + public class DoGrapplePull : ActionTask{ public BBParameter grapplePoint; public BBParameter offset; @@ -26,17 +27,25 @@ namespace NodeCanvas.Tasks.Actions { public BBParameter pullSpeedCurve; public BBParameter endDeaccelerationCurve; - private float startTime; + + private Vector3 originalDirection; + + public float breakAtDistance; + public float breakAtDotProduct; private float currentSpeed; private Vector3 smoothedInput; private Vector3 smoothedInputRefVelocity; + + private Vector3 gizmoHookPoint; + + private Transform camera; //Use for initialization. This is called only once in the lifetime of the task. //Return null if init was successfull. Return an error string otherwise protected override string OnInit(){ - MonoManager.current.onLateUpdate += DrawGrappleGizmo; + return null; } @@ -44,14 +53,25 @@ namespace NodeCanvas.Tasks.Actions { //Call EndAction() to mark the action as finished, either in success or failure. //EndAction can be called from anywhere. protected override void OnExecute(){ + camera = Camera.main.transform; + MonoManager.current.onLateUpdate += DrawGrappleGizmo; + originalDirection = agent.transform.position.DirectionTo(grapplePoint.value); startTime = Time.time; currentSpeed = pullSpeedCurve.value[0].value * pullSpeedRange.value.y; } //Called once per frame while the action is active. - protected override void OnUpdate(){ + protected override void OnUpdate(){ + // Add input changes + Vector2 rawInput = agent.GetComponent().rawMoveInput; + Vector3 input = Quaternion.LookRotation(agent.transform.position.DirectionTo(grapplePoint.value)) * new Vector3(rawInput.x, rawInput.y, 0f); + input = Quaternion.LookRotation(agent.transform.position.DirectionTo(grapplePoint.value)) * (camera.rotation * input); + + smoothedInput = Vector3.SmoothDamp(smoothedInput, input, ref smoothedInputRefVelocity, 5f * Time.deltaTime); + // Create the distance variables - Vector3 dirToPoint = agent.transform.position.DirectionTo(grapplePoint.value); + Vector3 dirToPoint = agent.transform.position.DirectionTo(grapplePoint.value + (smoothedInput * 5)); + gizmoHookPoint = grapplePoint.value + (smoothedInput * 5); float evaluatedSpeed = pullSpeedCurve.value.Evaluate(Mathf.Clamp((Time.time - startTime) / 6f, 0f, Mathf.Infinity)); @@ -78,40 +98,30 @@ namespace NodeCanvas.Tasks.Actions { // Soften the speed changes currentSpeed = Mathf.Lerp(currentSpeed, speedAgainstCurve, 10f * Time.deltaTime); - // Add input changes - Vector2 rawInput = agent.GetComponent().rawMoveInput; - Vector3 input = Quaternion.LookRotation(dirToPoint) * new Vector3(rawInput.x, rawInput.y, 0f); - - smoothedInput = Vector3.SmoothDamp(smoothedInput, input, ref smoothedInputRefVelocity, 30f * Time.deltaTime); - - Debug.Log(input); - + Debug.Log(dirToPoint); dirToPoint.y *= 2.5f; - agent.Move((dirToPoint.normalized + smoothedInput) * currentSpeed * Time.deltaTime); + // agent.GetComponent().Move((dirToPoint.normalized + smoothedInput) * currentSpeed * Time.deltaTime); + agent.AddToCurrentDirection((dirToPoint + smoothedInput), currentSpeed * Time.deltaTime); + // agent.DisableNextMoveCall(); + // Debug.Log( $"{ endDeaccelerationCurve.value.Evaluate(((slowdownDistance.value - currentDist)) )}"); + if (Vector3.Dot(originalDirection, dirToPoint) < breakAtDotProduct) { + MonoManager.current.onLateUpdate -= DrawGrappleGizmo; + EndAction(true); + } else if (currentDist < breakAtDistance) { + MonoManager.current.onLateUpdate -= DrawGrappleGizmo; + EndAction(true); + } + // EndAction(true); } public void DrawGrappleGizmo(){ - // Vector3 dirToPoint = agent.transform.position.DirectionTo(grapplePoint.value); - // - // using (Draw.WithColor(Color.yellow)){ - // Draw.Line(agent.transform.position + Vector3.up, grapplePoint.value); - // - // // Draw Gizmo for minimum distance - // Vector3 minLocation = agent.transform.position + (Vector3.up * 1) + (dirToPoint * pullSpeedDistances.value.x); - // Vector3 minToScreen = minLocation.DirectionTo(Camera.main.transform.position); - // - // Draw.SolidCircle(minLocation,minToScreen , .2f); - // - // // Draw Gizmo for minimum distance - // Vector3 maxLocation = agent.transform.position + (Vector3.up * .8f) + (dirToPoint * pullSpeedDistances.value.y); - // Vector3 maxToScreen = maxLocation.DirectionTo(Camera.main.transform.position); - // - // Draw.SolidCircle(maxLocation,maxToScreen , .2f); - // } + using (Draw.WithColor(Color.blue)){ + Draw.SolidCircle(gizmoHookPoint, gizmoHookPoint.DirectionTo(camera.position), 1f); + } } //Called when the task is disabled. diff --git a/Assets/Scripts/Core/LockOnManager.cs.meta b/Assets/Scripts/Core/LockOnManager.cs.meta index ce65538..36701b1 100644 --- a/Assets/Scripts/Core/LockOnManager.cs.meta +++ b/Assets/Scripts/Core/LockOnManager.cs.meta @@ -4,7 +4,7 @@ MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] - executionOrder: 5000 + executionOrder: 95 icon: {instanceID: 0} userData: assetBundleName: diff --git a/Assets/Scripts/Player/UnitMovementHandler.cs b/Assets/Scripts/Player/UnitMovementHandler.cs index 1a1454c..7d19a4e 100644 --- a/Assets/Scripts/Player/UnitMovementHandler.cs +++ b/Assets/Scripts/Player/UnitMovementHandler.cs @@ -1,7 +1,9 @@ using System; +using NUnit.Framework.Internal; using UnityEngine; using ParadoxNotion.Design; using Sirenix.OdinInspector; +using UnityEditor.Rendering; using UnityEngine.Serialization; public enum PlayerFacingDirection{ @@ -71,11 +73,15 @@ namespace Reset.Units{ [ShowInInspector, ReadOnly] private float outputRotationSpeed; private float directionChangeDot; + private bool moveCallDisabledNextFrame; private CharacterController controller; private PlayerControls controls; private LockOnManager lockOnManager; + private Vector3 moveSmooth; + public float gravitySmooth; + [ShowInInspector, PropertyOrder(2)] public UnitMovementData data = new(); @@ -94,11 +100,14 @@ namespace Reset.Units{ void Update(){ UpdateCurrentDirection(); - UpdateCurrentSpeed(); UpdateCurrentGravity(); + UpdateCurrentSpeed(); + UpdateCurrentRotation(); DoMovement(); + + } // Add directly to the direction @@ -184,7 +193,7 @@ namespace Reset.Units{ } // Commit move direction - outputMoveDirection = new Vector3(currentNoY.x, outputMoveDirection.y, currentNoY.z); + outputMoveDirection = Vector3.SmoothDamp(outputMoveDirection, new Vector3(currentNoY.x, outputMoveDirection.y, currentNoY.z),ref moveSmooth , .5f *Time.deltaTime); } // Update the speed, called every frame @@ -195,8 +204,8 @@ namespace Reset.Units{ // Update the gravity, called every frame private void UpdateCurrentGravity(){ // Accelerate gravity - data.gravityPower += data.gravityAcceleration * Time.deltaTime; - data.gravityPower = Mathf.Min(data.gravityPower, data.gravityMax); + // data.gravityPower += data.gravityAcceleration * Time.deltaTime; + data.gravityPower = Mathf.Clamp(data.gravityPower, Mathf.NegativeInfinity, data.gravityMax); // Apply a constant gravity if the player is grounded if (controller.isGrounded) { @@ -207,7 +216,7 @@ namespace Reset.Units{ float gravityMoveDirection = data.jumpPower + (Physics.gravity.y * data.gravityPower); // Commit gravity to move direction, ignoring XZ since those are done in UpdateMovementDirection - outputMoveDirection.y = gravityMoveDirection; + outputMoveDirection.y = Mathf.SmoothDamp(outputMoveDirection.y, gravityMoveDirection, ref gravitySmooth, .1f * Time.deltaTime); } // Update the rotation, called every frame @@ -264,9 +273,24 @@ namespace Reset.Units{ public void DoMovement(){ DoMovement(outputMoveDirection, outputSpeed, data.gravityScale); } + + public void DisableNextMoveCall(){ + moveCallDisabledNextFrame = true; + } // Custom move from input - public void DoMovement(Vector3 moveDir, float speed, float gravity){ + public void DoMovement(Vector3 moveDir, float speed, float gravityScale, bool relativeToCamera = true){ + if (moveCallDisabledNextFrame) { + Vector3 velocity = transform.InverseTransformDirection(controller.velocity.normalized); + outputMoveDirection = new Vector3(velocity.x, outputMoveDirection.y, velocity.z); + + + moveCallDisabledNextFrame = false; + return; + } + + Debug.Log($"moveDir: {moveDir}, agent velocity: {transform.InverseTransformDirection(controller.velocity.normalized)}"); + // Seperate the different move directions. Additonal becomes it's own because it needs to be added independently of the other two Vector3 moveXZDir = new Vector3(moveDir.x, 0f, moveDir.z); Vector3 moveYDir = new Vector3(0f, moveDir.y, 0f); @@ -274,13 +298,17 @@ namespace Reset.Units{ // Add their related speeds moveXZDir *= speed * Time.deltaTime; - moveYDir *= gravity * Time.deltaTime; + moveYDir *= gravityScale * Time.deltaTime; addDir *= additionalSpeed * Time.deltaTime; // Construct the direction and move Vector3 finalDir = moveXZDir + moveYDir; - - controller.Move((Camera.main.transform.rotation.Flatten(0, null, 0) * finalDir) + addDir); + + if (relativeToCamera) { + controller.Move((Camera.main.transform.rotation.Flatten(0, null, 0) * finalDir) + addDir); + } else { + controller.Move(finalDir + addDir); + } } void LateUpdate(){ @@ -308,6 +336,9 @@ namespace Reset.Units{ // float deaccelValue = data.deaccelerationCurve.Evaluate(inputMovement.magnitude); additionalMoveDirection = Vector3.Lerp(additionalMoveDirection, Vector3.zero, data.deaccelerationSmoothing * Time.deltaTime); } + + // Decay the gravity + additionalMoveDirection.y -= data.gravityPower; } private void UpdateGravityLate(){ diff --git a/Assets/Scripts/Player/UnitMovementHandler.cs.meta b/Assets/Scripts/Player/UnitMovementHandler.cs.meta index 73a9236..15d8e75 100644 --- a/Assets/Scripts/Player/UnitMovementHandler.cs.meta +++ b/Assets/Scripts/Player/UnitMovementHandler.cs.meta @@ -1,2 +1,11 @@ fileFormatVersion: 2 -guid: b3b4e13d59527d1429a62dde97c6a001 \ No newline at end of file +guid: b3b4e13d59527d1429a62dde97c6a001 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 98 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: