3 Commits

Author SHA1 Message Date
Chris
59114b08ee changed: movement now also handles opposing inputs. value tweaks. 2025-08-14 19:50:34 -04:00
Chris
2261d1bd00 maint: cleaned up some files and tweaked some movement 2025-08-14 18:39:36 -04:00
Chris
6f1aa17d52 changed: graph to use new system 2025-08-13 17:06:45 -04:00
8 changed files with 393 additions and 125 deletions

View File

@@ -42,7 +42,7 @@ MonoBehaviour:
_version: 3.31
_category:
_comments:
_translation: {x: 370, y: 304}
_zoomFactor: 0.37090367
_translation: {x: 483, y: -194}
_zoomFactor: 0.9998386
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -12,7 +12,7 @@ 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":522.0,"y":632.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":399.0,"y":775.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":576.0,"y":776.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"},"$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"},{"_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"}}'
_objectReferences: []
_graphSource:
_version: 3.31

View File

@@ -12,22 +12,22 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f945e777233a59f4aba40aeca29093a6, type: 3}
m_Name: PlayerLocomotionFSM
m_EditorClassIdentifier:
_serializedGraph: '{"type":"NodeCanvas.StateMachines.FSM","nodes":[{"_position":{"x":253.0,"y":606.9789},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"0"},{"_onEnterList":{"executionMode":1,"actions":[{"valueA":{"_name":"facingDirection","_targetVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37"},"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[Reset.Movement.PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_onUpdateList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":12.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":10.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":535.0,"y":768.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"1"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":30.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37"},"valueB":{"_value":2},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[Reset.Movement.PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":917.0839,"y":852.7302},"$type":"NodeCanvas.StateMachines.ActionState","$id":"2"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":20.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":2.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":1161.288,"y":522.152},"$type":"NodeCanvas.StateMachines.ActionState","$id":"3"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":327.7592,"y":812.7609},"$type":"NodeCanvas.StateMachines.ActionState"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":12.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":10.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37"},"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[Reset.Movement.PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":389.9924,"y":1029.762},"$type":"NodeCanvas.StateMachines.ActionState"},{"_position":{"x":218.6569,"y":475.1322},"$type":"NodeCanvas.StateMachines.AnyState","$id":"6"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":5.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":602.0,"y":269.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"7"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":402.0,"y":177.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"8"}],"connections":[{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"321e55c7-f93e-4667-a0dc-559eb61c6898"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_value":{"z":1.0}},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.32},"considerCameraRotation":{},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"321e55c7-f93e-4667-a0dc-559eb61c6898"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
Aimed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
Confirmed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGrounded":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"321e55c7-f93e-4667-a0dc-559eb61c6898","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean,
_serializedGraph: '{"type":"NodeCanvas.StateMachines.FSM","nodes":[{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":327.7592,"y":812.7609},"$type":"NodeCanvas.StateMachines.ActionState"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":12.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":10.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37"},"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":389.9924,"y":1029.762},"$type":"NodeCanvas.StateMachines.ActionState"},{"_position":{"x":218.6569,"y":475.1322},"$type":"NodeCanvas.StateMachines.AnyState","$id":"2"},{"_position":{"x":253.0,"y":606.9789},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"3"},{"_onEnterList":{"executionMode":1,"actions":[{"valueA":{"_name":"facingDirection","_targetVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37"},"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_onUpdateList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":12.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":10.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":535.0,"y":768.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"4"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":30.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37"},"valueB":{"_value":2},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":917.0839,"y":852.7302},"$type":"NodeCanvas.StateMachines.ActionState","$id":"5"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":20.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5"},"valueB":{"_value":2.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":1161.288,"y":522.152},"$type":"NodeCanvas.StateMachines.ActionState","$id":"6"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"_value":5.0},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":602.0,"y":269.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"7"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{},"moveDirection":{"_name":"groundMoveDirection","_targetVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6"},"$type":"NodeCanvas.Tasks.Actions.CalculateGroundedLocomotion"}]},"_repeatStateActions":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":402.0,"y":177.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"8"}],"connections":[{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"321e55c7-f93e-4667-a0dc-559eb61c6898"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"_isDisabled":true,"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
Aimed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
Confirmed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"321e55c7-f93e-4667-a0dc-559eb61c6898"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_value":{"z":1.0}},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.32},"considerCameraRotation":{},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGrounded":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"321e55c7-f93e-4667-a0dc-559eb61c6898","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"groundMoveDirection":{"_name":"groundMoveDirection","_id":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6","_isPublic":true,"$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"rotationSpeed":{"_name":"rotationSpeed","_id":"d888730f-97df-4288-bb99-1f6c8a34a7c5","_isPublic":true,"$type":"NodeCanvas.Framework.Variable`1[[System.Single,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"facingDirection":{"_name":"facingDirection","_id":"c713d622-aafb-43e7-ae0e-ac0b86a85a37","_isPublic":true,"$type":"NodeCanvas.Framework.Variable`1[[Reset.Movement.PlayerFacingDirection,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"facingDirection":{"_name":"facingDirection","_id":"c713d622-aafb-43e7-ae0e-ac0b86a85a37","_isPublic":true,"$type":"NodeCanvas.Framework.Variable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}'
_objectReferences: []
_graphSource:
_version: 3.31
_category:
_comments:
_translation: {x: 574, y: -35}
_translation: {x: 467, y: -132}
_zoomFactor: 0.9793777
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -46843,7 +46843,7 @@ Transform:
m_GameObject: {fileID: 330585543}
serializedVersion: 2
m_LocalRotation: {x: 0.039987642, y: -0.0000000031281908, z: 1.251891e-10, w: 0.99920017}
m_LocalPosition: {x: 3.5039132, y: 2.0657892, z: -113.002365}
m_LocalPosition: {x: 6.503913, y: 2.0657892, z: -16.002365}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -50005,7 +50005,7 @@ Transform:
m_GameObject: {fileID: 402424904}
serializedVersion: 2
m_LocalRotation: {x: 0.039987642, y: -0.0000000031281908, z: 1.2518941e-10, w: 0.99920017}
m_LocalPosition: {x: 3.5039132, y: 2.0657892, z: -113.002365}
m_LocalPosition: {x: 6.503913, y: 2.0657892, z: -16.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: 3.5039132, y: -0.81913054, z: -107.43775}
m_LocalPosition: {x: 6.503913, y: -0.81913054, z: -10.437754}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
@@ -99272,6 +99272,81 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b3b4e13d59527d1429a62dde97c6a001, type: 3}
m_Name:
m_EditorClassIdentifier:
outputMoveDirection: {x: 0, y: 0, z: 0}
controls: {fileID: 1992890471}
data:
accelerationSmoothing: 4
deaccelerationSmoothing: 6
deaccelerationCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: -0.0013999939
value: 0.9952698
inSlope: -0.99206036
outSlope: -0.99206036
tangentMode: 34
weightedMode: 0
inWeight: 0
outWeight: 0.33333334
- serializedVersion: 3
time: 1.0042114
value: -0.002357483
inSlope: -0.99206036
outSlope: -0.99206036
tangentMode: 34
weightedMode: 0
inWeight: 0.33333334
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
airDirectionDecay: 0.5
moveSpeedTarget: 12
moveSpeedSoothing: 5
jumpPower: 0
jumpPowerDecay: 2
gravityPower: 0
gravityMax: 8
gravityAcceleration: 2.25
gravityScale: 1
rotateFacing:
rid: 2028245219396813027
rotationSpeedTarget: 10
rotationSmoothing: 1
rotationInputBlending: 5
defaultData:
accelerationSmoothing: 5
deaccelerationSmoothing: 5
deaccelerationCurve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
airDirectionDecay: 0
moveSpeedTarget: 15
moveSpeedSoothing: 10
jumpPower: 0
jumpPowerDecay: 3
gravityPower: 0
gravityMax: 8
gravityAcceleration: 1
gravityScale: 1
rotateFacing:
rid: -2
rotationSpeedTarget: 5
rotationSmoothing: 1
rotationInputBlending: 0.3
references:
version: 2
RefIds:
- rid: -2
type: {class: , ns: , asm: }
- rid: 2028245219396813027
type: {class: PlayerFacingDirection, ns: , asm: Core}
data:
value__: 1
--- !u!4 &1992890473
Transform:
m_ObjectHideFlags: 0
@@ -99281,7 +99356,7 @@ Transform:
m_GameObject: {fileID: 1992890470}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2, y: 0, z: -107}
m_LocalPosition: {x: 5, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
@@ -99331,7 +99406,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
controls: {fileID: 0}
movement: {fileID: 0}
camera: {fileID: 0}
--- !u!143 &1992890476
CharacterController:
@@ -99374,6 +99448,10 @@ MonoBehaviour:
_serializedBlackboard: '{"_variables":{"isGrounded":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"09b3259f-8b50-439a-ab86-ea3d8a4916f1","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"airMoveDirection":{"_name":"airMoveDirection","_id":"2fc91db6-09dd-4a1f-9195-426a0c44de31","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"groundMoveDirection":{"_name":"groundMoveDirection","_id":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"moveDirection":{"_name":"moveDirection","_id":"b2342f45-29ba-4805-adb4-6940dde8f4aa","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3,
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]]"}}}'
_objectReferences: []
_serializedVariables:
@@ -99386,6 +99464,18 @@ MonoBehaviour:
- _json: '{"_name":"groundMoveDirection","_id":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}'
_references: []
- _json: '{"_name":"moveDirection","_id":"b2342f45-29ba-4805-adb4-6940dde8f4aa","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}'
_references: []
- _json: '{"_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]]"}'
_references: []
- _json: '{"_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]]"}'
_references: []
- _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: []
--- !u!114 &1992890478
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -99400,50 +99490,148 @@ MonoBehaviour:
m_EditorClassIdentifier:
_serializedExposedParameters: []
_boundGraphSerialization: '{"type":"NodeCanvas.StateMachines.FSM","nodes":[{"_onEnterList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"valueB":{"_value":4},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[System.Int32,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},{"valueA":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"valueB":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[UnityEngine.Vector3,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldExit":true,"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Grounded","_position":{"x":272.0613,"y":285.2572},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"0"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":682.0512,"y":-146.5536},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"1"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":12.5},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.2},"directionalForce":{"_value":{"y":1.0,"z":0.3}},"directionalForceStrength":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_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":928.3156,"y":-465.0193},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"2"},{"_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},"_position":{"x":411.2476,"y":-480.2733},"$type":"NodeCanvas.StateMachines.ActionState","$id":"3"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":16.0},"standStillJumpStrength":{},"currentVelocityInheritence":{},"directionalForce":{"_value":{"x":-1.0,"y":0.1,"z":0.5}},"directionalForceStrength":{"_value":0.888},"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_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
Wall Jump","_position":{"x":285.3196,"y":-670.1414},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"4"},{"_actionList":{"executionMode":1,"actions":[{"raycastHit":{"_name":"_wallJumpHit"},"transform":{},"collider":{},"gameObject":{"_name":""},"distance":{},"normal":{"_name":"_wallJumpHitNormal"},"point":{},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"signalDefinition":{},"argumentsMap":{},"$type":"NodeCanvas.Tasks.Conditions.InvokeSignal"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":254.1901,"y":-285.1208},"$type":"NodeCanvas.StateMachines.ActionState","$id":"5"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":16.0},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.3},"directionalForce":{"_value":{"x":1.0,"y":0.1,"z":0.5}},"directionalForceStrength":{"_value":0.839},"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_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
Wall Jump","_position":{"x":112.6937,"y":-458.72},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"6"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":12.0},"standStillJumpStrength":{"_value":1.0},"currentVelocityInheritence":{"_value":1.0},"directionalForce":{},"directionalForceStrength":{},"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_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":"Standard
Jump","_position":{"x":899.8688,"y":90.13001},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"7"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":115.2589,"y":0.04748535},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"8"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_value":{"y":-45.0}},"relativeToSelf":{},"relativeValue":{"_name":"_wallStickHitNormal"},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":3},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[Reset.Movement.PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"valueA":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetVector3"},{"valueA":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_onUpdateList":{"executionMode":1,"actions":[{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"forcePositionChange":{},"targetValue":{"_value":{"y":-1.0}},"relativeToSelf":{"_value":true},"relativeValue":{},"changeInstantly":{},"smoothing":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{"_value":10.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[Reset.Movement.PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"foldEnter":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Left
Wall Stick","_position":{"x":1248.076,"y":207.5006},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"9"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldUpdate":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Wall
Slide","_position":{"x":1027.8,"y":453.9219},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"10"},{"_actionList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":18.0},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.2},"directionalForce":{"_value":{"x":-0.5,"y":0.5}},"directionalForceStrength":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.AddJump"}]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Left
Wall Launch","_position":{"x":1608.682,"y":-194.6805},"$type":"NodeCanvas.StateMachines.ActionState","$id":"11"},{"_name":"back
to airborne","_position":{"x":1218.379,"y":-228.1178},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"12"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_value":{"y":-45.0}},"relativeToSelf":{},"relativeValue":{"_name":"_wallStickHitNormal"},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":3},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[Reset.Movement.PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"valueA":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetVector3"},{"valueA":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_onUpdateList":{"executionMode":1,"actions":[{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"forcePositionChange":{},"targetValue":{"_value":{"y":-1.0}},"relativeToSelf":{"_value":true},"relativeValue":{},"changeInstantly":{},"smoothing":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{"_value":10.0},"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[Reset.Movement.PlayerFacingDirection,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},{"valueA":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"moveSpeedTarget":{"label":"Move
Speed","value":15.0,"changeValue":2},"moveSpeedSoothing":{"label":"Move Speed
Smoothing","changeValue":2},"airDirectionDecay":{"label":"Air Direction Decay","changeValue":2},"accelerationSmoothing":{"label":"Acceleration
Smoothing","changeValue":2},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","changeValue":2},"deaccelerationCurve":{"label":"Deacceleration Curve","newValue":{"keys":[],"preWrapMode":8,"postWrapMode":8},"changeValue":2},"jumpPower":{"label":"Jump
Power","changeValue":1},"jumpPowerDecay":{"label":"Jump Decay Speed","changeValue":2},"gravityPower":{"label":"Gravity
Power","changeValue":2},"gravityMax":{"label":"Gravity Max","changeValue":2},"gravityAcceleration":{"label":"Gravity
Acceleration Speed","changeValue":1},"gravityScale":{"label":"Gravity Scale","changeValue":2},"rotateFacing":{"label":"Facing
Direction","newValue":{"$content":0,"$type":"PlayerFacingDirection"},"changeValue":2},"rotationSpeedTarget":{"label":"Rotation
Speed","changeValue":2},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"orbitFollowTop":{"label":"Top","changeRadius":2},"orbitFollowCenter":{"label":"Center","changeRadius":2},"orbitFollowBottom":{"label":"Bottom","changeRadius":2},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"}]},"_onUpdateList":{"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"moveSpeedTarget":{"label":"Move
Speed","changeValue":2},"moveSpeedSoothing":{"label":"Move 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":[{"moveSpeedTarget":{"label":"Move
Speed","value":10.0,"changeValue":1},"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},"rotationSpeedTarget":{"label":"Rotation
Speed","value":1.0,"changeValue":1},"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":684.0512,"y":-147.5536},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"2"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":12.5},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.2},"directionalForce":{"_value":{"y":1.0,"z":0.3}},"directionalForceStrength":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"moveSpeedTarget":{"label":"Move
Speed","changeValue":1},"airDirectionDecay":{"label":"Air Direction Decay","value":1.0,"changeValue":1},"feedNewDirection":{"label":"Feed
New Direction","newValue":{"z":0.1},"changeZ":1},"newDirectionPower":0.5,"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":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":941.6774,"y":-395.0986},"$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},"_position":{"x":411.2476,"y":-480.2733},"$type":"NodeCanvas.StateMachines.ActionState","$id":"4"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":16.0},"standStillJumpStrength":{},"currentVelocityInheritence":{},"directionalForce":{"_value":{"x":-1.0,"y":0.1,"z":0.5}},"directionalForceStrength":{"_value":0.888},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"feedNewDirection":{"label":"Feed
New Direction","newValue":{"x":-1.0,"z":0.5},"changeX":1,"changeZ":1},"newDirectionPower":15.0,"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":1},"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
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},"_position":{"x":254.1901,"y":-285.1208},"$type":"NodeCanvas.StateMachines.ActionState","$id":"6"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":16.0},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.3},"directionalForce":{"_value":{"x":1.0,"y":0.1,"z":0.5}},"directionalForceStrength":{"_value":0.839},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"feedNewDirection":{"label":"Feed
New Direction","newValue":{"x":1.0,"z":0.5},"changeX":1,"changeZ":1},"newDirectionPower":15.0,"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":1},"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.4132327,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Left
Wall Jump","_position":{"x":72.76006,"y":-425.8029},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"7"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":12.0},"standStillJumpStrength":{"_value":1.0},"currentVelocityInheritence":{"_value":1.0},"directionalForce":{},"directionalForceStrength":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"addDirectionFromInput":{"x":1.0,"y":1.0},"addInputPriorty":0.514,"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":1},"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":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_value":{"y":-45.0}},"relativeToSelf":{},"relativeValue":{"_name":"_wallStickHitNormal"},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":3},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"valueA":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetVector3"},{"valueA":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"moveSpeedTarget":{"label":"Move
Speed","changeValue":1},"moveSpeedSoothing":{"label":"Move Speed Smoothing","value":100.0,"changeValue":1},"feedNewDirection":{"label":"Feed
New Direction","newValue":{"x":0.5,"z":0.5}},"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":2},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":2},"jumpPower":{"label":"Jump Power","value":5.0,"changeValue":2},"jumpPowerDecay":{"label":"Jump
Decay Speed","value":1.5,"changeValue":2},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity
Acceleration Speed","changeValue":1},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":5,"$type":"PlayerFacingDirection"},"changeValue":1},"rotationSpeedTarget":{"label":"Rotation
Speed","value":15.0,"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":[{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"forcePositionChange":{},"targetValue":{"_value":{"y":-1.0}},"relativeToSelf":{"_value":true},"relativeValue":{},"changeInstantly":{},"smoothing":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{"_value":10.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":1},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"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":"10"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"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":[]},"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":"11"},{"_actionList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":18.0},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.2},"directionalForce":{"_value":{"x":-0.5,"y":0.5}},"directionalForceStrength":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"moveSpeedTarget":{"label":"Move
Speed","changeValue":2},"moveSpeedSoothing":{"label":"Move Speed Smoothing","changeValue":2},"feedNewDirection":{"label":"Feed
New Direction","newValue":{"z":1.0},"changeX":1,"changeZ":1},"newDirectionPower":20.0,"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":1},"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},"rotationSpeedTarget":{"label":"Rotation
Speed","changeValue":2},"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":1520.304,"y":-201.3502},"$type":"NodeCanvas.StateMachines.ActionState","$id":"12"},{"_name":"back
to airborne","_position":{"x":1344.641,"y":-234.3273},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"13"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_value":{"y":-45.0}},"relativeToSelf":{},"relativeValue":{"_name":"_wallStickHitNormal"},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":3},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"valueA":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetVector3"},{"valueA":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"moveSpeedTarget":{"label":"Move
Speed","changeValue":1},"moveSpeedSoothing":{"label":"Move Speed Smoothing","value":100.0,"changeValue":1},"feedNewDirection":{"label":"Feed
New Direction","newValue":{"x":0.5,"z":0.5}},"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":2},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":2},"jumpPower":{"label":"Jump Power","changeValue":2},"jumpPowerDecay":{"label":"Jump
Decay Speed","value":1.5,"changeValue":2},"gravityPower":{"label":"Gravity Power","changeValue":2},"gravityAcceleration":{"label":"Gravity
Acceleration Speed","changeValue":1},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":5,"$type":"PlayerFacingDirection"},"changeValue":1},"rotationSpeedTarget":{"label":"Rotation
Speed","value":15.0,"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":[{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"forcePositionChange":{},"targetValue":{"_value":{"y":-1.0}},"relativeToSelf":{"_value":true},"relativeValue":{},"changeInstantly":{},"smoothing":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},"valueB":{"_value":10.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"valueA":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"valueB":{"_value":1},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"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":1472.857,"y":367.8537},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"13"},{"_actionList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":18.0},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.2},"directionalForce":{"_value":{"x":0.5,"y":0.5}},"directionalForceStrength":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.AddJump"}]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Right
Wall Launch","_position":{"x":1519.156,"y":-282.6531},"$type":"NodeCanvas.StateMachines.ActionState","$id":"14"},{"_position":{"x":-206.0027,"y":131.3442},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"15"},{"_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":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":"16"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":"17"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":17.6},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.25},"directionalForce":{"_value":{"y":0.1,"z":1.0}},"directionalForceStrength":{"_value":0.839},"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_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":-298.0,"y":-529.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"18"},{"_position":{"x":-404.1487,"y":-11.80579},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"19"},{"_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":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":"20"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":126.1762,"y":674.8022},"$type":"NodeCanvas.StateMachines.ActionState"},{"_actionList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"forcePositionChange":{},"targetValue":{"_name":"_wallStickHitPoint"},"relativeToSelf":{},"relativeValue":{},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_name":"_wallStickHitNormal"},"relativeToSelf":{},"relativeValue":{"_value":{"y":45.0}},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Right
Side Stick","_position":{"x":1758.793,"y":576.0048},"$type":"NodeCanvas.StateMachines.ActionState","$id":"22"},{"_actionList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_name":"_wallStickHitNormal"},"relativeToSelf":{},"relativeValue":{"_value":{"y":-45.0}},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Left
Side Stick","_position":{"x":1742.802,"y":691.8009},"$type":"NodeCanvas.StateMachines.ActionState","$id":"23"},{"_subFSM":{"_value":1},"_variablesMap":[{"_targetSubGraphVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6","_canRead":true,"_canWrite":true,"_type":"UnityEngine.Vector3","_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},{"_targetSubGraphVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5","_canRead":true,"_canWrite":true,"_type":"System.Single","_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},{"_targetSubGraphVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37","_canRead":true,"_canWrite":true,"_type":"Reset.Movement.PlayerFacingDirection","_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"}],"_position":{"x":496.6182,"y":388.929},"$type":"NodeCanvas.StateMachines.ConcurrentSubFSM"},{"_subTree":{"_value":2},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_value":{"$content":3,"$type":"UnityEngine.Transform"}},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canRead":true,"_canWrite":true,"_type":"Reset.Movement.PlayerFacingDirection","_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"}],"_position":{"x":-66.94133,"y":157.5691},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":4},"_tag":"","_position":{"x":418.7391,"y":13.22665},"_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":-571.8279,"y":411.6659},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"playerFacingDirection":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"$type":"NodeCanvas.Tasks.Actions.ProcessMovement"},{"moveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"playerFacingDirection":{"_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"},"rotationSpeed":{"_value":5.0},"rotationSmoothing":{},"$type":"Reset.Player.Movement.ProcessRotation"},{"moveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpPowerDecay":{"_value":1.0},"gravityAcceleration":{"_value":1.0},"gravityMax":{"_value":8.0},"gravityPower":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"$type":"Reset.Movement.ProcessGravity"}]},"_position":{"x":-211.7045,"y":564.7838},"$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":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
Wall Stick","_position":{"x":1440.892,"y":491.8188},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"14"},{"_actionList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":18.0},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.2},"directionalForce":{"_value":{"x":0.5,"y":0.5}},"directionalForceStrength":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"moveSpeedTarget":{"label":"Move
Speed","changeValue":2},"moveSpeedSoothing":{"label":"Move Speed Smoothing","changeValue":2},"feedNewDirection":{"label":"Feed
New Direction","newValue":{"z":1.0},"changeX":1,"changeZ":1},"newDirectionPower":20.0,"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":1},"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},"rotationSpeedTarget":{"label":"Rotation
Speed","changeValue":2},"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":1639.958,"y":-298.358},"$type":"NodeCanvas.StateMachines.ActionState","$id":"15"},{"_position":{"x":-169.0027,"y":131.3442},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"16"},{"_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":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":"17"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":"18"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":17.6},"standStillJumpStrength":{},"currentVelocityInheritence":{"_value":0.25},"directionalForce":{"_value":{"y":0.1,"z":1.0}},"directionalForceStrength":{"_value":0.839},"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetFloat"}]},"_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":"19"},{"_position":{"x":-368.1487,"y":-11.80579},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"20"},{"_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":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"groundMoveDirection":{"_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},"$type":"NodeCanvas.Tasks.Actions.CalculateAirMovement"}]},"_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":"21"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeedTarget":{"label":"Move
Speed","value":40.0,"changeValue":1},"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,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},{"valueA":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"moveSpeedTarget":{"label":"Move
Speed","value":20.0,"changeValue":1},"moveSpeedSoothing":{"label":"Move Speed
Smoothing","value":1.0,"changeValue":1},"jumpPower":{"label":"Jump Power","changeValue":1},"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","changeValue":2},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"}]},"_onUpdateList":{"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"moveSpeedTarget":{"label":"Move
Speed","value":20.0,"changeValue":1},"gravityAcceleration":{"label":"Gravity
Acceleration Speed","changeValue":2},"rotateFacing":{"label":"Facing Direction","newValue":{"$content":4,"$type":"PlayerFacingDirection"},"changeValue":2},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Grounded
Running","_position":{"x":828.2946,"y":679.0282},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"23"},{"_onEnterList":{"executionMode":1,"actions":[{"airMoveDirection":{"_name":"airMoveDirection","_targetVariableID":"2fc91db6-09dd-4a1f-9195-426a0c44de31"},"jumpPower":{"_name":"jumpPower","_targetVariableID":"9a82efee-e317-423c-ad6e-5ef7e6145396"},"jumpStrength":{"_value":12.0},"standStillJumpStrength":{"_value":1.0},"currentVelocityInheritence":{"_value":1.0},"directionalForce":{},"directionalForceStrength":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.AddJump"},{"valueA":{"_name":"gravityPower","_targetVariableID":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e"},"valueB":{},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"feedNewDirection":{"label":"Feed
New Direction","newValue":{"z":1.0},"changeZ":1},"newDirectionPower":5.0,"accelerationSmoothing":{"label":"Acceleration
Smoothing","value":1.0,"changeValue":1},"deaccelerationSmoothing":{"label":"Deacceleration
Smoothing","value":1.0,"changeValue":1},"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":"Run
Jump","_position":{"x":1030.915,"y":224.8837},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"24"},{"_actionList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"forcePositionChange":{},"targetValue":{"_name":"_wallStickHitPoint"},"relativeToSelf":{},"relativeValue":{},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_name":"_wallStickHitNormal"},"relativeToSelf":{},"relativeValue":{"_value":{"y":45.0}},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Right
Side Stick","_position":{"x":1758.793,"y":576.0048},"$type":"NodeCanvas.StateMachines.ActionState","$id":"25"},{"_actionList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"},{"targetProperty":1,"forcePositionChange":{},"targetValue":{"_name":"_wallStickHitNormal"},"relativeToSelf":{},"relativeValue":{"_value":{"y":-45.0}},"changeInstantly":{"_value":true},"smoothing":{"_value":0.5},"$type":"NodeCanvas.Tasks.Actions.ChangeAgentTransform"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Left
Side Stick","_position":{"x":1742.802,"y":691.8009},"$type":"NodeCanvas.StateMachines.ActionState","$id":"26"},{"_subFSM":{"_value":1},"_variablesMap":[{"_targetSubGraphVariableID":"16ae5ce4-097a-4c21-94a5-2c5d9ce73eb6","_canRead":true,"_canWrite":true,"_type":"UnityEngine.Vector3","_name":"groundMoveDirection","_targetVariableID":"a2c4fe25-9549-4bdd-8cec-2dbfc4a8856f"},{"_targetSubGraphVariableID":"d888730f-97df-4288-bb99-1f6c8a34a7c5","_canRead":true,"_canWrite":true,"_type":"System.Single","_name":"rotationSpeed","_targetVariableID":"3a7d1c7c-8fb6-4a99-b25a-b434b62d4611"},{"_targetSubGraphVariableID":"c713d622-aafb-43e7-ae0e-ac0b86a85a37","_canRead":true,"_canWrite":true,"_type":"PlayerFacingDirection","_name":"facingDirection","_targetVariableID":"ff039cd9-e306-4c88-84db-54cbd3708ed5"}],"_position":{"x":105.3889,"y":314.4862},"$type":"NodeCanvas.StateMachines.ConcurrentSubFSM"},{"_subTree":{"_value":2},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_value":{"$content":3,"$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":4},"_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":-564.7592,"y":674.6037},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_conditionList":{"conditions":[{"$type":"NodeCanvas.Tasks.Conditions.DebugCondition"}]},"_actionList":{"executionMode":1,"actions":[{"moveDirection":{"_name":"moveDirection","_targetVariableID":"b2342f45-29ba-4805-adb4-6940dde8f4aa"},"currentSpeed":{"_name":"currentSpeed","_targetVariableID":"f585caab-68c5-4ead-85c4-cbc16c18655e"},"$type":"Reset.Movement.FinalizeMovement"}]},"_position":{"x":-359.606,"y":674.8529},"_comment":"NOTE:
Needs to be in the Movement > Gravity > Rotation order","$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_actionList":{"executionMode":1,"actions":[{"moveDirection":{},"jumpPower":{},"jumpPowerDecay":{},"gravityAcceleration":{"_value":1.0},"gravityMax":{"_value":8.0},"gravityPower":{},"$type":"Reset.Movement.UpdateGravityDirection"},{"moveDirection":{},"playerFacingDirection":{},"accelerationSmoothing":{"_value":5.0},"deaccelerationSmoothing":{"_value":5.0},"deaccelerationCurve":{},"directionChangeMinimumMagnitude":{},"$type":"NodeCanvas.Tasks.Actions.UpdateMovementDirection"},{"target":{},"speed":{},"smoothing":{"_value":10.0},"$type":"Reset.Movement.UpdateMovementSpeed"},{"moveDirection":{},"playerFacingDirection":{},"rotationSpeed":{"_value":5.0},"rotationSmoothing":{},"$type":"Reset.Player.Movement.UpdateRotation"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Template","_position":{"x":-163.8713,"y":674.4864},"$type":"NodeCanvas.StateMachines.ActionState"},{"_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":24.61323,"y":475.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
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":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"16"},"$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":"19"},"$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":"1"},"_targetNode":{"$ref":"2"},"$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":"1"},"_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":"1"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"checkType":4,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckInt"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"1"},"_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":"1"},"_targetNode":{"$ref":"13"},"$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":"1"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"20"},"$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":"14"},"$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":"10"},"$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":"1"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"16"},"$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":"1"},"_targetNode":{"$ref":"19"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"1"},"$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":"3"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"1"},"$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":"5"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"7"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"0"},"$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":"8"},"_targetNode":{"$ref":"9"},"_isDisabled":true,"$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":"8"},"_targetNode":{"$ref":"13"},"_isDisabled":true,"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"20"},"$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":{"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":"9"},"_targetNode":{"$ref":"10"},"_isDisabled":true,"$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":"9"},"_targetNode":{"$ref":"14"},"_isDisabled":true,"$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":"8"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"16"},"$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":"8"},"_targetNode":{"$ref":"19"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"11"},"$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":"10"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"11"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"16"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$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":"16"},"_targetNode":{"$ref":"18"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"18"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"20"},"$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":"20"},"_targetNode":{"$ref":"18"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"22"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"9"},"$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":"9"},"_targetNode":{"$ref":"20"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"12"},"$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":"11"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"18"},"$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":"17"},"_targetNode":{"$ref":"19"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"18"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"18"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"21"},"$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":"21"},"_targetNode":{"$ref":"19"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_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"},{"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"26"},"_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,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"jumpPower":{"_name":"jumpPower","_id":"9a82efee-e317-423c-ad6e-5ef7e6145396","$type":"NodeCanvas.Framework.Variable`1[[System.Single,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"gravityPower":{"_name":"gravityPower","_id":"2221dc20-d9b3-4781-bd23-0b2038a7ff5e","$type":"NodeCanvas.Framework.Variable`1[[System.Single,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"facingDirection":{"_value":1,"_name":"facingDirection","_id":"ff039cd9-e306-4c88-84db-54cbd3708ed5","$type":"NodeCanvas.Framework.Variable`1[[Reset.Movement.PlayerFacingDirection,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"facingDirection":{"_value":1,"_name":"facingDirection","_id":"ff039cd9-e306-4c88-84db-54cbd3708ed5","$type":"NodeCanvas.Framework.Variable`1[[PlayerFacingDirection,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"myBoolean":{"_value":true,"_name":"myBoolean","_id":"c3172967-7d7a-44ba-837f-55b966e121b3","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean,
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"myTransform":{"_value":5,"_name":"myTransform","_id":"681d2db9-2158-4a64-b889-0b1bf5deffe4","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Transform,
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}'
UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"data":{"_propertyPath":"Reset.Units.UnitMovementHandler.data","_name":"data","_id":"3940e941-2f6b-4469-bcdb-5629c78ab674","$type":"NodeCanvas.Framework.Variable`1[[Reset.Units.UnitMovementData,
Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}}'
_boundGraphObjectReferences:
- {fileID: 0}
- {fileID: 11400000, guid: b307c218c1a404548afe65e66737fa80, type: 2}
@@ -99455,8 +99643,8 @@ MonoBehaviour:
_version: 3.31
_category:
_comments:
_translation: {x: 595, y: 364}
_zoomFactor: 0.96729493
_translation: {x: -677, y: 524}
_zoomFactor: 1
_firstActivation: 0
_enableAction: 0
_disableAction: 0
@@ -99573,7 +99761,7 @@ MonoBehaviour:
hitTextSize: 0
hitLocationOffset: {x: 0, y: 0, z: 0}
hitRotationOffset: {x: 0, y: 0, z: 0}
gizmoDrawingCondition: 0
gizmoDrawingCondition: 2
children: []
- label: right-walljump
castType: 4
@@ -99598,7 +99786,7 @@ MonoBehaviour:
hitTextSize: 0
hitLocationOffset: {x: 0, y: 0, z: 0}
hitRotationOffset: {x: 0, y: 0, z: 0}
gizmoDrawingCondition: 0
gizmoDrawingCondition: 2
children: []
- label: grapple
castType: 4
@@ -99623,7 +99811,7 @@ MonoBehaviour:
hitTextSize: 0
hitLocationOffset: {x: 0, y: 0, z: 0}
hitRotationOffset: {x: 0, y: 0, z: 0}
gizmoDrawingCondition: 0
gizmoDrawingCondition: 2
children: []
- label: wallclimb
castType: 3
@@ -99648,7 +99836,7 @@ MonoBehaviour:
hitTextSize: 0
hitLocationOffset: {x: 0, y: 0, z: 0}
hitRotationOffset: {x: 0, y: 0, z: 0}
gizmoDrawingCondition: 0
gizmoDrawingCondition: 2
children: []
references:
version: 2

View File

@@ -8,19 +8,27 @@ namespace Reset.Core {
[Category("Reset")]
[Description("Commits movement unit changes to the handler.")]
public class ChangeMovementSettings : ActionTask<UnitMovementHandler> {
//Use for initialization. This is called only once in the lifetime of the task.
// Move Speed
[ParadoxNotion.Design.Header("Speed")]
public FloatValueGroup moveSpeedTarget = new (newLabel: "Move Speed");
public FloatValueGroup moveSpeed = new (newLabel: "Move Speed");
public FloatValueGroup moveSpeedSoothing = new (newLabel: "Move Speed Smoothing");
[ParadoxNotion.Design.Header("Speed")]
public Vector3ValueGroup feedNewDirection = new Vector3ValueGroup("Feed New Direction");
public float newDirectionPower;
[ParadoxNotion.Design.Header("Direction")]
public FloatValueGroup airDirectionDecay = new FloatValueGroup("Air Direction Decay");
public FloatValueGroup accelerationSmoothing = new (newLabel: "Acceleration Smoothing");
public FloatValueGroup deaccelerationSmoothing = new (newLabel: "Deacceleration Smoothing");
public CurveValueGroup deaccelerationCurve = new (newLabel: "Deacceleration Curve");
// public CurveValueGroup deaccelerationCurve = new (newLabel: "Deacceleration Curve"); // Currently unused, may return
// Direction
[Space(5)]
public Vector3ValueGroup feedNewDirection = new Vector3ValueGroup("Feed New Direction");
public float newDirectionStrength;
[Space(5)]
public Vector2 addDirectionFromInput;
public float addInputStrength;
[SliderField(0,1)]
public float addInputPriorty;
// Jumping
[ParadoxNotion.Design.Header("Jumping")]
@@ -37,16 +45,16 @@ namespace Reset.Core {
// Rotation
[ParadoxNotion.Design.Header("Rotation")]
public EnumValueGroup rotateFacing = new EnumValueGroup("Facing Direction", PlayerFacingDirection.TowardsTarget);
public FloatValueGroup rotationSpeedTarget = new (newLabel: "Rotation Speed");
public FloatValueGroup rotationSpeed = new (newLabel: "Rotation Speed");
public FloatValueGroup rotationSmoothing = new (newLabel: "Rotation Smoothing");
public FloatValueGroup rotationInputBlending = new("Rotation Input Blending");
[Space(5)]
public BBParameter<Vector3> feedNewRotation;
public BBParameter<Vector3> feedRelativeTo;
public Space rotationRelativeSpace;
private Vector3 feedDir;
//Return null if init was successfull. Return an error string otherwise
protected override string OnInit() {
return null;
}
@@ -55,35 +63,49 @@ namespace Reset.Core {
//Call EndAction() to mark the action as finished, either in success or failure.
//EndAction can be called from anywhere.
protected override void OnExecute() {
// Direction
UpdateFloatValue(airDirectionDecay, ref agent.data.airDirectionDecay, ref agent.data.airDirectionDecay);
UpdateFloatValue(accelerationSmoothing, ref agent.data.accelerationSmoothing, ref agent.defaultData.accelerationSmoothing);
UpdateFloatValue(deaccelerationSmoothing, ref agent.data.deaccelerationSmoothing, ref agent.defaultData.deaccelerationSmoothing);
UpdateCurveProperty(deaccelerationCurve, ref agent.data.deaccelerationCurve, ref agent.defaultData.deaccelerationCurve);
// UpdateCurveProperty(deaccelerationCurve, ref agent.data.deaccelerationCurve, ref agent.defaultData.deaccelerationCurve); // Currently unused, may return
UpdateFloatValue(moveSpeedTarget, ref agent.data.moveSpeedTarget, ref agent.defaultData.moveSpeedTarget);
// Direction from value
// Check that feedDir is not changed
UpdateVector3Value(feedNewDirection, ref feedDir, ref feedDir);
// If there's a direciton add it to the player for a frame
if (feedDir != Vector3.zero) {
agent.AddToCurrentDirection(agent.transform.rotation * feedDir.normalized, newDirectionStrength);
// Reset the fed direction after it's added so future runs don't have
feedDir = Vector3.zero;
}
// Direction from controller input
if (addDirectionFromInput != Vector2.zero){
agent.OverwriteDirectionFromInput(new Vector3(addDirectionFromInput.x, addDirectionFromInput.y), addInputPriorty, addInputStrength);
}
// Move Speed
UpdateFloatValue(moveSpeed, ref agent.data.moveSpeed, ref agent.defaultData.moveSpeed);
UpdateFloatValue(moveSpeedSoothing, ref agent.data.moveSpeedSoothing, ref agent.defaultData.moveSpeedSoothing);
// Jump
UpdateFloatValue(jumpPower, ref agent.data.jumpPower, ref agent.defaultData.jumpPower);
UpdateFloatValue(jumpPowerDecay, ref agent.data.jumpPowerDecay, ref agent.defaultData.jumpPowerDecay);
// Gravity
UpdateFloatValue(gravityPower, ref agent.data.gravityPower, ref agent.defaultData.gravityPower);
UpdateFloatValue(gravityMax, ref agent.data.gravityMax, ref agent.defaultData.gravityMax);
UpdateFloatValue(gravityAcceleration, ref agent.data.gravityAcceleration, ref agent.defaultData.gravityAcceleration);
UpdateFloatValue(gravityScale, ref agent.data.gravityScale, ref agent.defaultData.gravityScale);
// Rotation
UpdateEnumValue(rotateFacing, ref agent.data.rotateFacing, ref agent.defaultData.rotateFacing);
UpdateFloatValue(rotationSpeedTarget, ref agent.data.rotationSpeedTarget, ref agent.defaultData.rotationSpeedTarget);
UpdateFloatValue(rotationSpeed, ref agent.data.rotationSpeed, ref agent.defaultData.rotationSpeed);
UpdateFloatValue(rotationSmoothing, ref agent.data.rotationSmoothing, ref agent.defaultData.rotationSmoothing);
UpdateVector3Value(feedNewDirection, ref feedDir, ref feedDir);
// Debug.Log(feedDir);
UpdateFloatValue(rotationInputBlending, ref agent.data.rotationInputBlending, ref agent.defaultData.rotationInputBlending);
if (feedDir != Vector3.zero) {
agent.AddToCurrentDirection(agent.transform.rotation * feedDir.normalized, newDirectionPower);
feedDir = Vector3.zero;
}
// Rotation from value
if (feedNewRotation.value != Vector3.zero) {
if (rotationRelativeSpace == Space.World) {
Debug.Log(Quaternion.LookRotation(feedRelativeTo.value));
@@ -91,9 +113,7 @@ namespace Reset.Core {
} else {
agent.SetSpecifiedRotation(agent.transform.rotation * Quaternion.Euler(feedNewRotation.value) * Quaternion.LookRotation(feedRelativeTo.value));
}
}
EndAction(true);
}

View File

@@ -29,8 +29,7 @@ public class LockOnManager : MonoBehaviour{
// Lock On Tracking
[Space(10)]
[ShowInInspector]
ActiveLockOnTarget mainTarget;
public ActiveLockOnTarget mainTarget;
public List<ActiveLockOnTarget> activeTargets = new List<ActiveLockOnTarget>();
@@ -54,7 +53,6 @@ public class LockOnManager : MonoBehaviour{
return;
}
// Quick check for things in lock-on target that aren't lock-onable
if (mainTarget != null && mainTarget.gameObject.GetComponent<ILockOnTarget>() == null) {
mainTarget.gameObject.AddComponent<GenericLockOnTarget>();

View File

@@ -1,6 +1,5 @@
using System;
using ParadoxNotion.Design;
using Reset.Core;
using UnityEditor;
using UnityEngine;
@@ -483,6 +482,6 @@ namespace Reset.Core{
return _instance;
}
}
#endif
#endif
}

View File

@@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using Drawing;
using Reset.Movement;
using ParadoxNotion.Design;
using Sirenix.OdinInspector;
using UnityEngine.Serialization;
public enum PlayerFacingDirection{
TowardsTarget = 0,
@@ -25,10 +24,13 @@ namespace Reset.Units{
// Movement Direction
public float accelerationSmoothing = 5f;
public float deaccelerationSmoothing = 5f;
public AnimationCurve deaccelerationCurve;
// public AnimationCurve deaccelerationCurve; // Currently unused, may return
[SliderField(0,1)]
public float airDirectionDecay;
// Move Speed
public float moveSpeedTarget = 15f;
public float moveSpeed = 15f;
public float moveSpeedSoothing = 10f;
// Jumping
@@ -44,11 +46,12 @@ namespace Reset.Units{
// Rotation
[ShowInInspector, SerializeReference]
public Enum rotateFacing;
public float rotationSpeedTarget = 5f;
[FormerlySerializedAs("rotationSpeedTarget")] public float rotationSpeed = 5f;
public float rotationSmoothing = 1f;
public float rotationInputBlending = .3f;
public object Clone(){
return this.MemberwiseClone();
return MemberwiseClone();
}
}
@@ -59,32 +62,30 @@ namespace Reset.Units{
// }
// Debug viewing
// Smoothed Values
[ShowInInspector, ReadOnly] private float outputSpeed;
[ShowInInspector, ReadOnly] private float additionalSpeed;
[ShowInInspector, ReadOnly] private Vector3 outputMoveDirection;
[ShowInInspector, ReadOnly] public Vector3 outputMoveDirection;
[ShowInInspector, ReadOnly] private Vector3 additionalMoveDirection;
[ShowInInspector, ReadOnly] private Quaternion outputRotation;
[ShowInInspector, ReadOnly] private Quaternion specifiedRotation;
[ShowInInspector, ReadOnly] private float outputRotationSpeed;
private float directionChangeDot;
private CharacterController controller;
public PlayerControls controls;
private PlayerControls controls;
private LockOnManager lockOnManager;
[ShowInInspector, PropertyOrder(2)]
public UnitMovementData data = new UnitMovementData();
public UnitMovementData data = new();
[HideInInspector]
public UnitMovementData defaultData;
[Button, PropertyOrder(1)]
void ResetMovementData(){
data = new UnitMovementData();
}
void Awake(){
controller = GetComponent<CharacterController>();
controls = GetComponent<PlayerControls>();
lockOnManager = GetComponent<LockOnManager>();
}
private void Start(){
@@ -100,15 +101,40 @@ namespace Reset.Units{
DoMovement();
}
// Add directly to the direction
public void AddToCurrentDirection(Vector3 inputDirection, float power){
additionalMoveDirection += inputDirection.normalized;
additionalSpeed = power;
}
// Hold a new rotation to be moved to during PlayerFacingDirection.SpecifiedRotation
public void SetSpecifiedRotation(Quaternion inputRotation){
specifiedRotation = inputRotation;
}
// Blend between the current direction and an input direction, based on the current controller input
public void OverwriteDirectionFromInput(Vector2 value, float priority, float speed = Mathf.Infinity){
// Create a new direction that is the current controller input * the amount of power they should have
Vector3 dirToAdd = new Vector3(controls.rawMoveInput.x * value.x, 0f, controls.rawMoveInput.y * value.y);
// Multiply it by the current magnitude (why? i forgor)
dirToAdd *= controls.rawMoveInput.magnitude;
// Blend the existing direction into it
dirToAdd = Vector3.Lerp(outputMoveDirection, dirToAdd, priority * controls.rawMoveInput.magnitude);
// Set the new direction
outputMoveDirection = new Vector3(dirToAdd.x, outputMoveDirection.y, dirToAdd.z);
// Everthing under here is for the speed now. If it's not set do...nothing. Otherwise set it to the max value between move speed and the new speed
if (float.IsPositiveInfinity(speed)) {
return;
}
outputSpeed = Mathf.Lerp(outputSpeed, Mathf.Max(data.moveSpeed, speed), priority);
}
// Update the direction, called every frame
private void UpdateCurrentDirection(){
// Get input value
Vector3 inputMovement = new Vector3(controls.rawMoveInput.x, 0f, controls.rawMoveInput.y);
@@ -116,7 +142,8 @@ namespace Reset.Units{
// Construct move direction
Vector3 targetDirection = inputMovement;
if (inputMovement.magnitude < .1f) {
// Deadzone
if (inputMovement.magnitude < .05f) {
targetDirection = Vector3.zero;
}
@@ -124,24 +151,48 @@ namespace Reset.Units{
Vector3 targetNoY = new Vector3(targetDirection.x, 0f, targetDirection.z);
Vector3 currentNoY = new Vector3(outputMoveDirection.x, 0f, outputMoveDirection.z);
// Smooth movement
if (targetNoY.magnitude > currentNoY.magnitude) {
currentNoY = Vector3.Slerp(currentNoY, targetNoY,data.accelerationSmoothing * Time.deltaTime);
// Also need to find the dot value of the current input versus the current move direction
Vector3 slerpedValue;
Vector3 lerpedValue;
float switchedDirection = Vector3.Dot(inputMovement, outputMoveDirection);
float switchedDirectionRemapped = Mathf.Lerp(0, 1, switchedDirection);
directionChangeDot = Mathf.Lerp(switchedDirection, switchedDirectionRemapped, 5f * Time.deltaTime) ; // turn that .5f into a variable
// Smooth movement. Use deaccel smoothing if the input magnitude is lower, and accel smoothing if it's higher
// Also checks when grounded to only use Slerp on the ground
if (targetNoY.magnitude > currentNoY.magnitude) {
if (controller.isGrounded){
slerpedValue = Vector3.Slerp(currentNoY, targetNoY, data.accelerationSmoothing * Time.deltaTime);
lerpedValue = Vector3.Lerp(currentNoY, targetNoY, data.accelerationSmoothing * Time.deltaTime);
currentNoY = Vector3.Lerp(lerpedValue, slerpedValue, directionChangeDot);
} else {
currentNoY = Vector3.Lerp(currentNoY, targetNoY, data.accelerationSmoothing * Time.deltaTime);
}
} else {
// float deaccelValue = data.deaccelerationCurve.Evaluate(inputMovement.magnitude);
currentNoY = Vector3.Lerp(currentNoY, targetNoY, data.deaccelerationSmoothing * Time.deltaTime);
if (controller.isGrounded){
slerpedValue = Vector3.Slerp(currentNoY, targetNoY, data.deaccelerationSmoothing * Time.deltaTime);
lerpedValue = Vector3.Lerp(currentNoY, targetNoY, data.deaccelerationSmoothing * Time.deltaTime);
currentNoY = Vector3.Lerp(lerpedValue, slerpedValue, directionChangeDot);
} else {
currentNoY = Vector3.Lerp(currentNoY, targetNoY, data.deaccelerationSmoothing * data.airDirectionDecay * Time.deltaTime);
}
}
// Commit move direction
outputMoveDirection = new Vector3(currentNoY.x, outputMoveDirection.y, currentNoY.z);
}
// Update the speed, called every frame
private void UpdateCurrentSpeed(){
outputSpeed = Mathf.Lerp(outputSpeed, data.moveSpeedTarget, data.moveSpeedSoothing * Time.deltaTime);
outputSpeed = Mathf.Lerp(outputSpeed, data.moveSpeed, data.moveSpeedSoothing * Time.deltaTime);
}
// Update the gravity, called every frame
private void UpdateCurrentGravity(){
// Accelerate gravity
data.gravityPower += data.gravityAcceleration * Time.deltaTime;
@@ -159,58 +210,74 @@ namespace Reset.Units{
outputMoveDirection.y = gravityMoveDirection;
}
// Update the rotation, called every frame
private void UpdateCurrentRotation(){
// Get input value
Vector3 inputMovement = new Vector3(controls.rawMoveInput.x, 0f, controls.rawMoveInput.y);
// Switch the desired rotation based on current movement setting
switch (data.rotateFacing) {
// TODO: Recomment
// Just look at target
case PlayerFacingDirection.TowardsTarget:
Debug.LogError("Not implemented...");
// Look directly at the target
outputRotation = Quaternion.LookRotation(transform.position.DirectionTo(lockOnManager.mainTarget.gameObject.transform.position));
break;
case PlayerFacingDirection.Momentum:
if (inputMovement.magnitude > .03f){
// Look towards the current direction the agent is moving
if (inputMovement.magnitude > .05f){
outputRotation = Camera.main.transform.rotation * Quaternion.LookRotation(outputMoveDirection);
}
break;
case PlayerFacingDirection.MatchForward:
if (controls.rawMoveInput.magnitude < 0.01f) { break; }
// Look towards the input direction....why??? I guess cause move direction is PlayerFacingDirection.Momentum.
if (controls.rawMoveInput.magnitude < 0.05f) { break; }
outputRotation = Camera.main.transform.rotation * Quaternion.LookRotation(inputMovement);
break;
case PlayerFacingDirection.MatchCamera:
// Look the same direction as the camera
outputRotation = Quaternion.Euler(Camera.main.transform.rotation.eulerAngles.Flatten(0, null, 0));
break;
case PlayerFacingDirection.Static:
// Don't change
outputRotation = transform.rotation;
break;
case PlayerFacingDirection.SpecifiedDirection:
// Look at an inputed rotation
outputRotation = specifiedRotation;
break;
}
}
// Calculate rotation speed
outputRotationSpeed = Mathf.Lerp(outputRotationSpeed, data.rotationSpeedTarget, data.rotationSmoothing * Time.deltaTime);
// Add the current input into the created rotation
if (inputMovement.magnitude > .05){
outputRotation = Quaternion.Lerp(outputRotation, Camera.main.transform.rotation * Quaternion.LookRotation(inputMovement), data.rotationInputBlending);
}
// Calculate rotation speed, as in how fast the fella rotates. This value has it's own smoothing to allow for gradual increasing/decreasing of the speed till it reaches the target
outputRotationSpeed = Mathf.Lerp(outputRotationSpeed, data.rotationSpeed, data.rotationSmoothing * Time.deltaTime);
// Set final rotation
transform.rotation = Quaternion.Lerp(transform.rotation, outputRotation, outputRotationSpeed * Time.deltaTime).Flatten(0, null, 0);
transform.rotation = Quaternion.Slerp(transform.rotation, outputRotation, outputRotationSpeed * Time.deltaTime).Flatten(0, null, 0);
}
// Move with default settings
public void DoMovement(){
DoMovement(outputMoveDirection, outputSpeed, data.gravityScale);
}
// Custom move from input
public void DoMovement(Vector3 moveDir, float speed, float gravity){
// Commit the move, with respect to the camera's rotation
// 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);
Vector3 addDir = additionalMoveDirection;
// Add their related speeds
moveXZDir *= speed * Time.deltaTime;
moveYDir *= gravity * 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);
@@ -233,12 +300,12 @@ namespace Reset.Units{
// Remove Y from variables
Vector3 currentNoY = new Vector3(additionalMoveDirection.x, 0f, additionalMoveDirection.z);
// Decay the direction
if (inputMovement.magnitude < currentNoY.magnitude) {
additionalMoveDirection = Vector3.Slerp(additionalMoveDirection, Vector3.zero,data.accelerationSmoothing * Time.deltaTime);
} else {
// float deaccelValue = data.deaccelerationCurve.Evaluate(inputMovement.magnitude);
// float deaccelValue = data.deaccelerationCurve.Evaluate(inputMovement.magnitude);
additionalMoveDirection = Vector3.Lerp(additionalMoveDirection, Vector3.zero, data.deaccelerationSmoothing * Time.deltaTime);
}
}
@@ -248,10 +315,6 @@ namespace Reset.Units{
data.jumpPower -= data.jumpPowerDecay * Time.deltaTime;
data.jumpPower = Mathf.Max(0f, data.jumpPower);
}
public void AssignNewData(UnitMovementData movementData){
data = (UnitMovementData)movementData.Clone();
}
}
}