diff --git a/Assets/Player/Graphs/PlayerBaseFSM.asset b/Assets/Player/Graphs/PlayerBaseFSM.asset index 835e452..ca0b67b 100644 --- a/Assets/Player/Graphs/PlayerBaseFSM.asset +++ b/Assets/Player/Graphs/PlayerBaseFSM.asset @@ -36,7 +36,8 @@ MonoBehaviour: Axis Y Enabled","value":{"_value":true},"changeValue":{}},"axisLookXGain":{"label":"Look Orbit X Gain","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"axisLookYGain":{"label":"Look Orbit Y Gain","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"screenPosition":{"label":"Screen - Position","value":{},"changeX":{},"changeY":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"cameraOffset":{"label":"Offset","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"},{"newGravity":{"_value":-0.03},"absolute":{"_value":true},"relativity":{"_value":1.0},"$type":"Reset.Units.SetNewGravity"}]},"_onUpdateList":{"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Position","value":{},"changeX":{},"changeY":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"cameraOffset":{"label":"Offset","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"},{"newGravity":{"_value":-0.03},"absolute":{"_value":true},"relativity":{"_value":1.0},"$type":"Reset.Units.SetNewGravity"},{"moveSpeed":{"label":"Move + Speed","changeValue":{"_value":2},"value":{},"_changeSmoothing":{"_value":2},"_smoothing":{},"_changeEasing":{"_value":2},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"}]},"_onUpdateList":{"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"moveSpeedSoothing":{"label":"Move Speed Smoothing","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"airDirectionDecay":{"label":"Air Direction Decay","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"accelerationSmoothing":{"label":"Acceleration @@ -65,7 +66,7 @@ MonoBehaviour: Acceleration Speed","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityScale":{"label":"Gravity Scale","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"settingsChangeSmoothing":{"label":"Settings Change Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotateFacing":{"label":"Facing - Direction","value":{"_value":{"$content":0,"$type":"PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation + Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"valueA":{"_name":"newAirMoveSmoothing","_targetVariableID":"9ba7a222-e29f-4ef5-8f1e-144189e5e5d3"},"valueB":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"eventName":{"_value":"Air @@ -120,7 +121,7 @@ MonoBehaviour: Acceleration Speed","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityScale":{"label":"Gravity Scale","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"settingsChangeSmoothing":{"label":"Settings Change Smoothing","changeValue":{"_value":1},"value":{"_value":0.2},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotateFacing":{"label":"Facing - Direction","value":{"_value":{"$content":0,"$type":"PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation + Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"valueA":{"_name":"newAirMoveSmoothing","_targetVariableID":"9ba7a222-e29f-4ef5-8f1e-144189e5e5d3"},"valueB":{"_value":0.6},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"eventName":{"_value":"Delay @@ -190,7 +191,7 @@ MonoBehaviour: Acceleration Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityScale":{"label":"Gravity Scale","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"settingsChangeSmoothing":{"label":"Settings Change Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotateFacing":{"label":"Facing - Direction","value":{"_value":{"$content":0,"$type":"PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation + Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Wall @@ -291,60 +292,14 @@ MonoBehaviour: Acceleration Speed","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityScale":{"label":"Gravity Scale","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"settingsChangeSmoothing":{"label":"Settings Change Smoothing","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotateFacing":{"label":"Facing - Direction","value":{"_value":{"$content":0,"$type":"PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation + Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"}]},"_color":{"r":0.3647059,"g":0.3215686,"b":1.0,"a":1.0},"_name":"Airborne - Standard Movement","_position":{"x":286.209,"y":31.4603},"$type":"NodeCanvas.StateMachines.ActionState","$id":"22"},{"_actionList":{"executionMode":1,"actions":[{"fieldOfView":{"label":"FOV","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitTargetOffset":{"label":"Target - Offset","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitPositionDamping":{"label":"Position - Damping","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitFollowTop":{"label":"Top","changeHeight":{},"height":{},"changeRadius":{},"radius":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitFollowCenter":{"label":"Center","changeHeight":{},"height":{},"changeRadius":{},"radius":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitFollowBottom":{"label":"Bottom","changeHeight":{},"height":{},"changeRadius":{},"radius":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"enableXAxis":{"label":"Input - Axis X Enabled","value":{"_value":true},"changeValue":{}},"enableYAxis":{"label":"Input - Axis Y Enabled","value":{"_value":true},"changeValue":{}},"axisLookXGain":{"label":"Look - Orbit X Gain","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"axisLookYGain":{"label":"Look - Orbit Y Gain","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"screenPosition":{"label":"Screen - Position","value":{},"changeX":{},"changeY":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"cameraOffset":{"label":"Offset","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Sprint - Burst","_position":{"x":633.7453,"y":530.2648},"$type":"NodeCanvas.StateMachines.ActionState","$id":"23"},{"_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]]"},{"moveSpeed":{"label":"Move - Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"moveSpeedSoothing":{"label":"Move - Speed Smoothing","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"airDirectionDecay":{"label":"Air - Direction Decay","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"accelerationSmoothing":{"label":"Acceleration - Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deaccelerationSmoothing":{"label":"Deacceleration - Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"jumpPower":{"label":"Jump - Power","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"jumpPowerDecay":{"label":"Jump - Decay Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityPower":{"label":"Gravity - Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityMax":{"label":"Gravity - Max","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityAcceleration":{"label":"Gravity - Acceleration Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityScale":{"label":"Gravity - Scale","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"settingsChangeSmoothing":{"label":"Settings - Change Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotateFacing":{"label":"Facing - Direction","value":{},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation - Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationSmoothing":{"label":"Rotation - Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationInputBlending":{"label":"Rotation - Input Blending","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"feedNewRotation":{},"feedRelativeTo":{},"$type":"Reset.Core.ChangeMovementSettings"},{"fieldOfView":{"label":"FOV","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitTargetOffset":{"label":"Target - Offset","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitPositionDamping":{"label":"Position - Damping","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitFollowTop":{"label":"Top","changeHeight":{},"height":{},"changeRadius":{},"radius":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitFollowCenter":{"label":"Center","changeHeight":{},"height":{},"changeRadius":{},"radius":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitFollowBottom":{"label":"Bottom","changeHeight":{},"height":{},"changeRadius":{},"radius":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"enableXAxis":{"label":"Input - Axis X Enabled","value":{"_value":true},"changeValue":{}},"enableYAxis":{"label":"Input - Axis Y Enabled","value":{"_value":true},"changeValue":{}},"axisLookXGain":{"label":"Look - Orbit X Gain","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"axisLookYGain":{"label":"Look - Orbit Y Gain","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"screenPosition":{"label":"Screen - Position","value":{},"changeX":{},"changeY":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"cameraOffset":{"label":"Offset","value":{},"changeX":{},"changeY":{},"changeZ":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"NodeCanvas.Tasks.Actions.ChangeCameraSettings"}]},"_onUpdateList":{"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move - Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"moveSpeedSoothing":{"label":"Move - Speed Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"airDirectionDecay":{"label":"Air - Direction Decay","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"accelerationSmoothing":{"label":"Acceleration - Smoothing","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deaccelerationSmoothing":{"label":"Deacceleration - Smoothing","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"jumpPower":{"label":"Jump - Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"jumpPowerDecay":{"label":"Jump - Decay Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityPower":{"label":"Gravity - Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityMax":{"label":"Gravity - Max","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityAcceleration":{"label":"Gravity - Acceleration Speed","changeValue":{"_value":2},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityScale":{"label":"Gravity - Scale","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"settingsChangeSmoothing":{"label":"Settings - Change Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotateFacing":{"label":"Facing - Direction","value":{},"changeValue":{"_value":2}},"rotationSpeed":{"label":"Rotation - Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationSmoothing":{"label":"Rotation - Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationInputBlending":{"label":"Rotation - Input Blending","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"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":829.2946,"y":679.0282},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"24"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Standard Movement","_position":{"x":286.209,"y":31.4603},"$type":"NodeCanvas.StateMachines.ActionState","$id":"22"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":{"_value":1},"value":{"_value":30.0},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":0.1},"_changeEasing":{"_value":1},"_easing":{"_value":0.1}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Sprint + Burst","_position":{"x":631.7453,"y":530.2648},"$type":"NodeCanvas.StateMachines.ActionState","$id":"23"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":{"_value":1},"value":{"_value":20.0},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":2.0},"_changeEasing":{"_value":1},"_easing":{"_value":2.0}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{"_value":1},"value":{"_value":10.0},"_changeSmoothing":{"_value":1},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_position":{"x":827.5781,"y":724.4287},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"24"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"moveSpeedSoothing":{"label":"Move Speed Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"airDirectionDecay":{"label":"Air Direction Decay","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"accelerationSmoothing":{"label":"Acceleration @@ -361,7 +316,7 @@ MonoBehaviour: Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationSmoothing":{"label":"Rotation Smoothing","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"rotationInputBlending":{"label":"Rotation Input Blending","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"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":1013.465,"y":94.1021},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"25"},{"_subTree":{"_value":1},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_name":"mainCamera","_targetVariableID":"2bc9b3d6-dcbe-45de-8f8c-911adedd6ab0"},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canWrite":true,"_type":"PlayerFacingDirection","_value":{"$content":0,"$type":"PlayerFacingDirection"}}],"_position":{"x":-510.8982,"y":192.1267},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":2},"_tag":"","_position":{"x":88.88627,"y":313.6888},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_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":40.44446,"y":195.4959},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborne + Jump","_position":{"x":1013.465,"y":94.1021},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"25"},{"_subTree":{"_value":1},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_name":"mainCamera","_targetVariableID":"2bc9b3d6-dcbe-45de-8f8c-911adedd6ab0"},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canWrite":true,"_type":"Reset.Units.PlayerFacingDirection","_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}}],"_position":{"x":-510.8982,"y":192.1267},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":2},"_tag":"","_position":{"x":88.88627,"y":313.6888},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_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":40.44446,"y":195.4959},"$type":"NodeCanvas.StateMachines.OnFSMUpdate"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Airborne Standby","_position":{"x":1509.989,"y":-548.8954},"$type":"NodeCanvas.StateMachines.SuperActionState"},{"_subTree":{"_value":3},"_position":{"x":1125.669,"y":-308.5995},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subFSM":{"_value":4},"_position":{"x":175.7607,"y":577.6639},"$type":"NodeCanvas.StateMachines.ConcurrentSubFSM"},{"_actionList":{"executionMode":1,"actions":[{"jumpPower":{"label":"Jump Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"jumpPowerDecay":{"label":"Jump Power Decay","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityPower":{"label":"Jump @@ -380,7 +335,7 @@ MonoBehaviour: Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityMax":{"label":"Jump Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityAcceleration":{"label":"Jump Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityScale":{"label":"Jump - Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeGravitySettings"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":575.1819,"y":820.8906},"$type":"NodeCanvas.StateMachines.ActionState"},{"_actionList":{"executionMode":1,"actions":[{"jumpPower":{"label":"Jump + Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeGravitySettings"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":582.1819,"y":1069.891},"$type":"NodeCanvas.StateMachines.ActionState"},{"_actionList":{"executionMode":1,"actions":[{"jumpPower":{"label":"Jump Power","changeValue":{"_value":1},"value":{"_value":69.0},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":25.0},"_changeEasing":{"_value":1},"_easing":{"_value":62.0}},"jumpPowerDecay":{"label":"Jump Power Decay","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityPower":{"label":"Jump Power","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityMax":{"label":"Jump @@ -400,13 +355,13 @@ MonoBehaviour: 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":"6"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Pull"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"7"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"11"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"timeout":{"_value":2.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"18"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_name":"_wallJumpHitNormal"},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.5},"considerCameraRotation":{"_value":true},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"20"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"_currentYMoveDirection"},"checkType":2,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckFloat"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"21"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"22"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"24"},"_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":"24"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"24"},"_targetNode":{"$ref":"25"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGrounded":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"619300a4-be8b-4ad4-ba2a-978468094ba2","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"6"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"7"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"9"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"11"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"12"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"13"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"timeout":{"_value":2.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},{"valueA":{"_name":"isGrounded","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"15"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":1.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"18"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkAgainst":2,"checkAgainstValue":{"_name":"_wallJumpHitNormal"},"desiredValue":{"_value":1.0},"tolerance":{"_value":0.5},"considerCameraRotation":{"_value":true},"negate":{},"$type":"NodeCanvas.Tasks.Conditions.GetMovementInputDotProduct"},"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"20"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"checkMode":1,"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"_currentYMoveDirection"},"checkType":2,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckFloat"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"21"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"22"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"24"},"_targetNode":{"$ref":"25"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"24"},"_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":"24"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGrounded":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"619300a4-be8b-4ad4-ba2a-978468094ba2","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, 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[[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[[Reset.Units.PlayerFacingDirection, Core, 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]]"},"newAirMoveSmoothing":{"_value":1.0,"_name":"newAirMoveSmoothing","_id":"9ba7a222-e29f-4ef5-8f1e-144189e5e5d3","$type":"NodeCanvas.Framework.Variable`1[[System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"mainCamera":{"_name":"mainCamera","_id":"2bc9b3d6-dcbe-45de-8f8c-911adedd6ab0","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Transform, @@ -421,7 +376,7 @@ MonoBehaviour: _version: 3.31 _category: _comments: - _translation: {x: -36, y: 350} + _translation: {x: 132, y: -162} _zoomFactor: 1 _haltSerialization: 0 _externalSerializationFile: {fileID: 0} diff --git a/Assets/Player/Objects/Player.prefab b/Assets/Player/Objects/Player.prefab index c0737c0..2e49927 100644 --- a/Assets/Player/Objects/Player.prefab +++ b/Assets/Player/Objects/Player.prefab @@ -225,9 +225,9 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 - deaccerlation: - value: 6 - smoothing: 1 + deacceleration: + value: 1 + smoothing: 7.46 easing: 2 currentSmoothing: 0 currentValue: 0 @@ -239,6 +239,13 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 + softening: + value: 5 + smoothing: 1 + easing: 2 + currentSmoothing: 0 + currentValue: 0 + refVel: 0 moveSpeed: value: 10 smoothing: 10 @@ -319,7 +326,7 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 - deaccerlation: + deacceleration: value: 0 smoothing: 1 easing: 2 @@ -333,6 +340,13 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 + softening: + value: 0 + smoothing: 10 + easing: 2 + currentSmoothing: 0 + currentValue: 0 + refVel: 0 moveSpeed: value: 0 smoothing: 10 @@ -413,7 +427,7 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 - deaccerlation: + deacceleration: value: 0 smoothing: 1 easing: 2 @@ -427,6 +441,13 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 + softening: + value: 0 + smoothing: 10 + easing: 2 + currentSmoothing: 0 + currentValue: 0 + refVel: 0 moveSpeed: value: 0 smoothing: 10 @@ -507,7 +528,7 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 - deaccerlation: + deacceleration: value: 0 smoothing: 1 easing: 2 @@ -521,6 +542,13 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 + softening: + value: 0 + smoothing: 10 + easing: 2 + currentSmoothing: 0 + currentValue: 0 + refVel: 0 moveSpeed: value: 0 smoothing: 10 @@ -601,7 +629,7 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 - deaccerlation: + deacceleration: value: 0 smoothing: 1 easing: 2 @@ -615,6 +643,13 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 + softening: + value: 0 + smoothing: 10 + easing: 2 + currentSmoothing: 0 + currentValue: 0 + refVel: 0 moveSpeed: value: 0 smoothing: 10 @@ -695,7 +730,7 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 - deaccerlation: + deacceleration: value: 0 smoothing: 1 easing: 2 @@ -709,6 +744,13 @@ MonoBehaviour: currentSmoothing: 0 currentValue: 0 refVel: 0 + softening: + value: 0 + smoothing: 10 + easing: 2 + currentSmoothing: 0 + currentValue: 0 + refVel: 0 moveSpeed: value: 0 smoothing: 10 diff --git a/Assets/Scripts/Core/Graph Tasks/ChangeCameraSettings.cs b/Assets/Scripts/Core/Graph Tasks/ChangeCameraSettings.cs index 570f897..59100d5 100644 --- a/Assets/Scripts/Core/Graph Tasks/ChangeCameraSettings.cs +++ b/Assets/Scripts/Core/Graph Tasks/ChangeCameraSettings.cs @@ -42,23 +42,23 @@ namespace NodeCanvas.Tasks.Actions { //Call EndAction() to mark the action as finished, either in success or failure. //EndAction can be called from anywhere. protected override void OnExecute(){ - OrbitalFollowValueGroup.UpdateValue(orbitFollowTop, ref CameraSettingsProcessor.data.orbitFollowTopHeight.value, ref CameraSettingsProcessor.original.orbitFollowTopRadius.value); - OrbitalFollowValueGroup.UpdateValue(orbitFollowCenter, ref CameraSettingsProcessor.data.orbitFollowCenterHeight.value, ref CameraSettingsProcessor.original.orbitFollowCenterRadius.value); - OrbitalFollowValueGroup.UpdateValue(orbitFollowBottom, ref CameraSettingsProcessor.data.orbitFollowBottomHeight.value, ref CameraSettingsProcessor.original.orbitFollowBottomRadius.value); + OrbitalFollowValueGroup.UpdateValue(orbitFollowTop, ref CameraSettingsProcessor.data.orbitFollowTopHeight.targetValue, ref CameraSettingsProcessor.original.orbitFollowTopRadius.targetValue); + OrbitalFollowValueGroup.UpdateValue(orbitFollowCenter, ref CameraSettingsProcessor.data.orbitFollowCenterHeight.targetValue, ref CameraSettingsProcessor.original.orbitFollowCenterRadius.targetValue); + OrbitalFollowValueGroup.UpdateValue(orbitFollowBottom, ref CameraSettingsProcessor.data.orbitFollowBottomHeight.targetValue, ref CameraSettingsProcessor.original.orbitFollowBottomRadius.targetValue); - Vector3ValueGroup.UpdateValue(cameraOffset, ref CameraSettingsProcessor.data.cameraOffsetOffset.value, ref CameraSettingsProcessor.original.cameraOffsetOffset.value); + Vector3ValueGroup.UpdateValue(cameraOffset, ref CameraSettingsProcessor.data.cameraOffsetOffset.targetValue, ref CameraSettingsProcessor.original.cameraOffsetOffset.targetValue); - Vector3ValueGroup.UpdateValue(orbitPositionDamping, ref CameraSettingsProcessor.data.orbitPositionDamping.value, ref CameraSettingsProcessor.original.cameraOffsetOffset.value); - Vector3ValueGroup.UpdateValue(orbitTargetOffset, ref CameraSettingsProcessor.data.orbitTargetOffset.value, ref CameraSettingsProcessor.original.cameraOffsetOffset.value); + Vector3ValueGroup.UpdateValue(orbitPositionDamping, ref CameraSettingsProcessor.data.orbitPositionDamping.targetValue, ref CameraSettingsProcessor.original.cameraOffsetOffset.targetValue); + Vector3ValueGroup.UpdateValue(orbitTargetOffset, ref CameraSettingsProcessor.data.orbitTargetOffset.targetValue, ref CameraSettingsProcessor.original.cameraOffsetOffset.targetValue); - Vector2ValueGroup.UpdateValue(screenPosition, ref CameraSettingsProcessor.data.rotationComposerScreenPos.value, ref CameraSettingsProcessor.original.rotationComposerScreenPos.value); - FloatValueGroup.UpdateValue(fieldOfView, ref CameraSettingsProcessor.data.mainFieldOfView.value, ref CameraSettingsProcessor.original.mainFieldOfView.value); + Vector2ValueGroup.UpdateValue(screenPosition, ref CameraSettingsProcessor.data.rotationComposerScreenPos.targetValue, ref CameraSettingsProcessor.original.rotationComposerScreenPos.targetValue); + FloatValueGroup.UpdateValue(fieldOfView, ref CameraSettingsProcessor.data.mainFieldOfView.targetValue, ref CameraSettingsProcessor.original.mainFieldOfView.targetValue); - FloatValueGroup.UpdateValue(axisLookXGain, ref CameraSettingsProcessor.data.axisLookGainX.value, ref CameraSettingsProcessor.original.axisLookGainX.value); - FloatValueGroup.UpdateValue(axisLookYGain, ref CameraSettingsProcessor.data.axisLookGainY.value, ref CameraSettingsProcessor.original.axisLookGainY.value); + FloatValueGroup.UpdateValue(axisLookXGain, ref CameraSettingsProcessor.data.axisLookGainX.targetValue, ref CameraSettingsProcessor.original.axisLookGainX.targetValue); + FloatValueGroup.UpdateValue(axisLookYGain, ref CameraSettingsProcessor.data.axisLookGainY.targetValue, ref CameraSettingsProcessor.original.axisLookGainY.targetValue); - BoolValueGroup.UpdateValue(enableXAxis, ref CameraSettingsProcessor.data.axisLookEnabledX.value, ref CameraSettingsProcessor.original.axisLookEnabledX.value); - BoolValueGroup.UpdateValue(enableYAxis, ref CameraSettingsProcessor.data.axisLookEnabledY.value, ref CameraSettingsProcessor.original.axisLookEnabledY.value); + BoolValueGroup.UpdateValue(enableXAxis, ref CameraSettingsProcessor.data.axisLookEnabledX.targetValue, ref CameraSettingsProcessor.original.axisLookEnabledX.targetValue); + BoolValueGroup.UpdateValue(enableYAxis, ref CameraSettingsProcessor.data.axisLookEnabledY.targetValue, ref CameraSettingsProcessor.original.axisLookEnabledY.targetValue); EndAction(true); } diff --git a/Assets/Scripts/Core/Graph Tasks/ChangeMovementSettings.cs b/Assets/Scripts/Core/Graph Tasks/ChangeMovementSettings.cs index 81ab5d5..69f15df 100644 --- a/Assets/Scripts/Core/Graph Tasks/ChangeMovementSettings.cs +++ b/Assets/Scripts/Core/Graph Tasks/ChangeMovementSettings.cs @@ -16,12 +16,11 @@ namespace Reset.Core { public FloatValueGroup moveSpeedSoothing = new (newLabel: "Move Speed Smoothing"); [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"); // Currently unused, may return - - // Jumping [ParadoxNotion.Design.Header("Jumping")] diff --git a/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeDirectionSettings.cs b/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeDirectionSettings.cs index 3103685..33e6347 100644 --- a/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeDirectionSettings.cs +++ b/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeDirectionSettings.cs @@ -18,6 +18,8 @@ namespace Reset.Units { [SliderField(0,1)] public float addInputPriorty; + public FloatValueGroup directionSmoothing = new FloatValueGroup("Direction Smoothing"); + //Use for initialization. This is called only once in the lifetime of the task. //Return null if init was successfull. Return an error string otherwise protected override string OnInit() { diff --git a/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeGravitySettings.cs b/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeGravitySettings.cs index 3951321..594e0cb 100644 --- a/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeGravitySettings.cs +++ b/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeGravitySettings.cs @@ -33,26 +33,18 @@ namespace Reset.Units { // ValueGroup.ChangeSmoothingEasing(jumpPower, ref agent.data.jumpPower.currentSmoothing, // ref agent.data.jumpPower.easing, ref agent.defaultData.jumpPower.smoothing, ref agent.defaultData.jumpPower.easing); - FloatValueGroup.UpdateValue(jumpPowerDecay, ref agent.data.jumpPowerDecay.value, ref agent.defaultData.jumpPowerDecay.value); - ValueGroup.ChangeSmoothingEasing(jumpPowerDecay, ref agent.data.jumpPowerDecay.currentSmoothing, - ref agent.data.jumpPowerDecay.easing, ref agent.defaultData.jumpPowerDecay.smoothing, ref agent.defaultData.jumpPowerDecay.easing); - + FloatValueGroup.UpdateValue(jumpPowerDecay, agent.data.jumpPowerDecay); + // Deprecated by SetNewGravity // FloatValueGroup.UpdateValue(gravityPower, ref agent.data.gravityPower.value, ref agent.defaultData.gravityPower.value); // ValueGroup.ChangeSmoothingEasing(gravityPower, ref agent.data.gravityPower.currentSmoothing, // ref agent.data.gravityPower.easing, ref agent.defaultData.gravityPower.smoothing, ref agent.defaultData.gravityPower.easing); - FloatValueGroup.UpdateValue(gravityMax, ref agent.data.gravityMax.value, ref agent.defaultData.gravityMax.value); - ValueGroup.ChangeSmoothingEasing(gravityMax, ref agent.data.gravityMax.currentSmoothing, - ref agent.data.gravityMax.easing, ref agent.defaultData.gravityMax.smoothing, ref agent.defaultData.gravityMax.easing); + FloatValueGroup.UpdateValue(gravityMax, agent.data.gravityMax); - FloatValueGroup.UpdateValue(gravityAcceleration, ref agent.data.gravityAcceleration.value, ref agent.defaultData.gravityAcceleration.value); - ValueGroup.ChangeSmoothingEasing(gravityAcceleration, ref agent.data.gravityAcceleration.currentSmoothing, - ref agent.data.gravityAcceleration.easing, ref agent.defaultData.gravityAcceleration.smoothing, ref agent.defaultData.gravityAcceleration.easing); + FloatValueGroup.UpdateValue(gravityAcceleration, agent.data.gravityAcceleration); - FloatValueGroup.UpdateValue(gravityScale, ref agent.data.gravityScale.value, ref agent.defaultData.gravityScale.value); - ValueGroup.ChangeSmoothingEasing(gravityScale, ref agent.data.gravityScale.currentSmoothing, - ref agent.data.gravityScale.easing, ref agent.defaultData.gravityScale.smoothing, ref agent.defaultData.gravityScale.easing); + FloatValueGroup.UpdateValue(gravityScale, agent.data.gravityScale); } //Called once per frame while the action is active. diff --git a/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeMoveSpeedSettings.cs b/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeMoveSpeedSettings.cs index 407d204..c88f96e 100644 --- a/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeMoveSpeedSettings.cs +++ b/Assets/Scripts/Core/Graph Tasks/Movement Settings Changes/ChangeMoveSpeedSettings.cs @@ -1,12 +1,17 @@ using NodeCanvas.Framework; using ParadoxNotion.Design; +using Reset.Core; +using UnityEngine; namespace Reset.Units { [Category("Reset/Movement")] public class ChangeMoveSpeedSettings : ActionTask { - + [SerializeField] public FloatValueGroup moveSpeed = new (newLabel: "Move Speed"); + [SerializeField] public FloatValueGroup acceleration = new (newLabel: "Acceleration"); + [SerializeField] public FloatValueGroup deacceleration = new (newLabel: "Deacceleration"); + //Use for initialization. This is called only once in the lifetime of the task. //Return null if init was successfull. Return an error string otherwise protected override string OnInit() { @@ -17,6 +22,19 @@ namespace Reset.Units { //Call EndAction() to mark the action as finished, either in success or failure. //EndAction can be called from anywhere. protected override void OnExecute() { + FloatValueGroup.UpdateValue(moveSpeed, ref agent.data.moveSpeed.targetValue, ref agent.data.moveSpeed.defaultValue); + ValueGroup.ChangeSmoothingEasing(moveSpeed, ref agent.data.moveSpeed.targetSmoothing, + ref agent.data.moveSpeed.targetEasing, ref agent.data.moveSpeed.defaultSmoothing, ref agent.data.moveSpeed.defaultEasing); + + FloatValueGroup.UpdateValue(acceleration, ref agent.data.acceleration.targetValue, ref agent.data.acceleration.defaultValue); + ValueGroup.ChangeSmoothingEasing(acceleration, ref agent.data.acceleration.targetSmoothing, + ref agent.data.acceleration.targetEasing, ref agent.data.acceleration.defaultSmoothing, ref agent.data.acceleration.defaultEasing); + + FloatValueGroup.UpdateValue(deacceleration, ref agent.data.deacceleration.targetValue, ref agent.data.deacceleration.defaultValue); + ValueGroup.ChangeSmoothingEasing(deacceleration, ref agent.data.deacceleration.targetSmoothing, + ref agent.data.deacceleration.targetEasing, ref agent.data.deacceleration.defaultSmoothing, ref agent.data.deacceleration.defaultEasing); + + EndAction(true); } diff --git a/Assets/Scripts/Core/Graph Tasks/StartLaunchJump.cs b/Assets/Scripts/Core/Graph Tasks/StartLaunchJump.cs index fc5631b..421a11d 100644 --- a/Assets/Scripts/Core/Graph Tasks/StartLaunchJump.cs +++ b/Assets/Scripts/Core/Graph Tasks/StartLaunchJump.cs @@ -2,6 +2,7 @@ using System; using NodeCanvas.Framework; using ParadoxNotion.Design; using Reset.Movement; +using Reset.Units; using UnityEngine; namespace NodeCanvas.Tasks.Actions { diff --git a/Assets/Scripts/Core/ValueGroup.cs b/Assets/Scripts/Core/ValueGroup.cs index b99a0ef..cd6ec2f 100644 --- a/Assets/Scripts/Core/ValueGroup.cs +++ b/Assets/Scripts/Core/ValueGroup.cs @@ -384,7 +384,25 @@ namespace Reset.Core{ Easing = new BBParameter().value = 0f; } + public static void UpdateValue(FloatValueGroup valueGroup, SettingValue settingValue){ + switch (valueGroup.changeValue.value) { + case ValueChangeAction.NewValue: + settingValue.Value = valueGroup.value.value; + break; + case ValueChangeAction.ResetValue: + settingValue.Value = settingValue.defaultValue; + break; + case ValueChangeAction.RelativeValue: + settingValue.Value += valueGroup.value.value; + break; + } + + ValueGroup.ChangeSmoothingEasing(valueGroup, ref settingValue.targetSmoothing, + ref settingValue.targetEasing, ref settingValue.defaultEasing, ref settingValue.defaultSmoothing); + } + public static void UpdateValue(FloatValueGroup valueGroup, ref float targetProperty, ref float defaultProperty){ + Debug.LogWarning("Deprecated call of UpdateValue(). Use the new one with only two arguments!"); switch (valueGroup.changeValue.value) { case ValueChangeAction.NewValue: targetProperty = valueGroup.value.value; diff --git a/Assets/Scripts/Player/CameraSettingsProcessor.cs b/Assets/Scripts/Player/CameraSettingsProcessor.cs index 64f2107..1bea146 100644 --- a/Assets/Scripts/Player/CameraSettingsProcessor.cs +++ b/Assets/Scripts/Player/CameraSettingsProcessor.cs @@ -69,111 +69,77 @@ public class CameraSettingsProcessor : MonoBehaviour{ axisCont = mainCamera.GetComponent(); // Initialize camera settings values from current values - data.mainFieldOfView.value = main.Lens.FieldOfView; + data.mainFieldOfView.targetValue = main.Lens.FieldOfView; - data.orbitPositionDamping.value = orbit.TrackerSettings.PositionDamping; - data.orbitTargetOffset.value = orbit.TargetOffset; + data.orbitPositionDamping.targetValue = orbit.TrackerSettings.PositionDamping; + data.orbitTargetOffset.targetValue = orbit.TargetOffset; - data.axisLookEnabledX.value = axisCont.Controllers[0].Enabled; - data.axisLookEnabledY.value = axisCont.Controllers[1].Enabled; + data.axisLookEnabledX.targetValue = axisCont.Controllers[0].Enabled; + data.axisLookEnabledY.targetValue = axisCont.Controllers[1].Enabled; - data.axisLookGainX.value = axisCont.Controllers[0].Input.Gain; - data.axisLookGainY.value = axisCont.Controllers[1].Input.Gain; + data.axisLookGainX.targetValue = axisCont.Controllers[0].Input.Gain; + data.axisLookGainY.targetValue = axisCont.Controllers[1].Input.Gain; - data.orbitFollowTopHeight.value = orbit.Orbits.Top.Height; - data.orbitFollowTopRadius.value = orbit.Orbits.Top.Radius; - data.orbitFollowCenterHeight.value = orbit.Orbits.Center.Height; - data.orbitFollowCenterRadius.value = orbit.Orbits.Center.Radius; - data.orbitFollowBottomHeight.value = orbit.Orbits.Bottom.Height; - data.orbitFollowBottomRadius.value = orbit.Orbits.Bottom.Radius; + data.orbitFollowTopHeight.targetValue = orbit.Orbits.Top.Height; + data.orbitFollowTopRadius.targetValue = orbit.Orbits.Top.Radius; + data.orbitFollowCenterHeight.targetValue = orbit.Orbits.Center.Height; + data.orbitFollowCenterRadius.targetValue = orbit.Orbits.Center.Radius; + data.orbitFollowBottomHeight.targetValue = orbit.Orbits.Bottom.Height; + data.orbitFollowBottomRadius.targetValue = orbit.Orbits.Bottom.Radius; - data.rotationComposerScreenPos.value = rotComp.Composition.ScreenPosition; - data.cameraOffsetOffset.value = offset.Offset; + data.rotationComposerScreenPos.targetValue = rotComp.Composition.ScreenPosition; + data.cameraOffsetOffset.targetValue = offset.Offset; // And copy to the original original = (CameraSettingData)data.Clone(); } void Update(){ - EaseToNewSmoothingValues(); - ProcessCameraValues(); + // EaseToNewSmoothingValues(); + // ProcessCameraValues(); } void EaseToNewSmoothingValues(){ - data.mainFieldOfView.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, data.mainFieldOfView.easing * Time.deltaTime); + data.mainFieldOfView.SmoothAndEase(); - data.orbitPositionDamping.currentSmoothing = Mathf.MoveTowards(data.orbitPositionDamping.currentSmoothing, data.orbitPositionDamping.smoothing, easing.orbitPositionDamping.easing * Time.deltaTime); - data.orbitTargetOffset.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); + data.orbitPositionDamping.SmoothAndEase(); + data.orbitTargetOffset.SmoothAndEase(); - data.axisLookGainX.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); - data.axisLookGainY.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); + data.axisLookGainX.SmoothAndEase(); + data.axisLookGainY.SmoothAndEase(); - data.orbitFollowTopHeight.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); - data.orbitFollowTopRadius.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); - data.orbitFollowCenterHeight.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); - data.orbitFollowCenterRadius.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); - data.orbitFollowBottomHeight.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); - data.orbitFollowBottomRadius.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); + data.orbitFollowTopHeight.SmoothAndEase(); + data.orbitFollowTopRadius.SmoothAndEase(); + data.orbitFollowCenterHeight.SmoothAndEase(); + data.orbitFollowCenterRadius.SmoothAndEase(); + data.orbitFollowBottomHeight.SmoothAndEase(); + data.orbitFollowBottomRadius.SmoothAndEase(); - data.rotationComposerScreenPos.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); - data.cameraOffsetOffset.currentSmoothing = Mathf.MoveTowards(data.mainFieldOfView.currentSmoothing, data.mainFieldOfView.smoothing, easing.mainFieldOfView.easing * Time.deltaTime); + data.rotationComposerScreenPos.SmoothAndEase(); + data.cameraOffsetOffset.SmoothAndEase(); } void ProcessCameraValues(){ - main.Lens.FieldOfView = Mathf.SmoothDamp(main.Lens.FieldOfView, - data.mainFieldOfView.value, ref data.mainFieldOfView.refVel, - data.mainFieldOfView.smoothing); + main.Lens.FieldOfView = data.mainFieldOfView.Value; - axisCont.Controllers[0].Enabled = data.axisLookEnabledX.value; - - axisCont.Controllers[1].Enabled = data.axisLookEnabledY.value; + axisCont.Controllers[0].Enabled = data.axisLookEnabledX.Value; + axisCont.Controllers[1].Enabled = data.axisLookEnabledY.Value; - axisCont.Controllers[0].Input.Gain = Mathf.SmoothDamp(axisCont.Controllers[0].Input.Gain, - data.axisLookGainX.value, ref data.axisLookGainX.refVel, - data.axisLookGainX.smoothing); + axisCont.Controllers[0].Input.Gain = data.axisLookGainX.Value; + axisCont.Controllers[1].Input.Gain = data.axisLookGainY.Value; + + orbit.TrackerSettings.PositionDamping = data.orbitPositionDamping.Value; + orbit.TargetOffset = data.orbitTargetOffset.Value; + + orbit.Orbits.Top.Height = data.orbitFollowTopHeight.Value; + orbit.Orbits.Top.Radius = data.orbitFollowTopRadius.Value; + orbit.Orbits.Center.Height = data.orbitFollowCenterHeight.Value; + orbit.Orbits.Center.Radius = data.orbitFollowCenterRadius.Value; + orbit.Orbits.Bottom.Height = data.orbitFollowBottomHeight.Value; + orbit.Orbits.Bottom.Radius = data.orbitFollowBottomRadius.Value; - axisCont.Controllers[1].Input.Gain = Mathf.SmoothDamp(axisCont.Controllers[1].Input.Gain, - data.axisLookGainY.value, ref data.axisLookGainY.refVel, - data.axisLookGainY.smoothing); + rotComp.Composition.ScreenPosition = data.rotationComposerScreenPos.Value; - orbit.TargetOffset = Vector3.SmoothDamp(orbit.TargetOffset, - data.orbitTargetOffset.value, ref data.orbitTargetOffset.refVel, - data.orbitTargetOffset.smoothing); - - orbit.TrackerSettings.PositionDamping = Vector3.SmoothDamp(orbit.TrackerSettings.PositionDamping, - data.orbitPositionDamping.value, ref data.orbitPositionDamping.refVel, - data.orbitPositionDamping.smoothing); - - orbit.Orbits.Top.Height = Mathf.SmoothDamp(orbit.Orbits.Top.Height, - data.orbitFollowTopHeight.value, ref data.orbitFollowTopHeight.refVel, - data.orbitFollowTopHeight.smoothing); - - orbit.Orbits.Top.Radius = Mathf.SmoothDamp(orbit.Orbits.Top.Radius, - data.orbitFollowTopRadius.value, ref data.orbitFollowTopRadius.refVel, - data.orbitFollowTopRadius.smoothing); - - orbit.Orbits.Center.Height = Mathf.SmoothDamp(orbit.Orbits.Center.Height, - data.orbitFollowCenterHeight.value, ref data.orbitFollowCenterHeight.refVel, - data.orbitFollowCenterHeight.smoothing); - - orbit.Orbits.Center.Radius = Mathf.SmoothDamp(orbit.Orbits.Center.Radius, - data.orbitFollowCenterRadius.value, ref data.orbitFollowCenterRadius.refVel, - data.orbitFollowCenterRadius.smoothing); - - orbit.Orbits.Bottom.Height = Mathf.SmoothDamp(orbit.Orbits.Bottom.Height, - data.orbitFollowBottomHeight.value, ref data.orbitFollowBottomHeight.refVel, - data.orbitFollowBottomHeight.smoothing); - - orbit.Orbits.Bottom.Radius = Mathf.SmoothDamp(orbit.Orbits.Bottom.Radius, - data.orbitFollowBottomRadius.value, ref data.orbitFollowBottomRadius.refVel, - data.orbitFollowBottomRadius.smoothing); - - rotComp.Composition.ScreenPosition = Vector2.SmoothDamp(rotComp.Composition.ScreenPosition, - data.rotationComposerScreenPos.value, ref data.rotationComposerScreenPos.refVel, - data.rotationComposerScreenPos.smoothing); - - offset.Offset = Vector3.SmoothDamp(offset.Offset, - data.cameraOffsetOffset.value, ref data.cameraOffsetOffset.refVel, - data.cameraOffsetOffset.smoothing); + offset.Offset = data.cameraOffsetOffset.Value; } } diff --git a/Assets/Scripts/Player/PlayerFacingDirection.cs b/Assets/Scripts/Player/PlayerFacingDirection.cs new file mode 100644 index 0000000..06f9872 --- /dev/null +++ b/Assets/Scripts/Player/PlayerFacingDirection.cs @@ -0,0 +1,10 @@ +namespace Reset.Units{ + public enum PlayerFacingDirection{ + TowardsTarget = 0, + MatchForward, + MatchCamera, + Static, + Momentum, + SpecifiedDirection + } +} \ No newline at end of file diff --git a/Assets/Scripts/Player/PlayerFacingDirection.cs.meta b/Assets/Scripts/Player/PlayerFacingDirection.cs.meta new file mode 100644 index 0000000..e64e829 --- /dev/null +++ b/Assets/Scripts/Player/PlayerFacingDirection.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 81d909774c8e4b66be6e96fd13f9bff4 +timeCreated: 1758478092 \ No newline at end of file diff --git a/Assets/Scripts/Player/ResolvedMovement.cs b/Assets/Scripts/Player/ResolvedMovement.cs new file mode 100644 index 0000000..81b8082 --- /dev/null +++ b/Assets/Scripts/Player/ResolvedMovement.cs @@ -0,0 +1,37 @@ +using Sirenix.OdinInspector; +using UnityEngine; + +namespace Reset.Units{ + public class ResolvedMovement{ + public struct MoveDirection{ + private Transform owner; + + private Vector2 _moveDir; // Always local + + public Vector2 World{ + get => owner.TransformDirection(_moveDir); + set{ + _moveDir = owner.InverseTransformDirection(value); + } + } + + public Vector2 Local{ + get => _moveDir; + set { + _moveDir = value; + } + } + + public MoveDirection(Transform ownerTransform){ + owner = ownerTransform; + _moveDir = Vector2.zero; + } + } + + [ShowInInspector] public MoveDirection moveDirection; + public float moveSpeed; + public Quaternion rotation; + public float rotationSpeed; + public float gravity; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Player/ResolvedMovement.cs.meta b/Assets/Scripts/Player/ResolvedMovement.cs.meta new file mode 100644 index 0000000..ef38d79 --- /dev/null +++ b/Assets/Scripts/Player/ResolvedMovement.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d663059052094322bff98f9ed2839fd9 +timeCreated: 1758478092 \ No newline at end of file diff --git a/Assets/Scripts/Player/SettingValue.cs b/Assets/Scripts/Player/SettingValue.cs index 1e48f37..5bd59d3 100644 --- a/Assets/Scripts/Player/SettingValue.cs +++ b/Assets/Scripts/Player/SettingValue.cs @@ -1,24 +1,80 @@ using System; +using UnityEngine; +using UnityEngine.Serialization; + +public interface IResettableSettingValue{ + public abstract void SmoothAndEase(); +} [Serializable] -public struct SettingValue{ - public T value; - public float smoothing; // Smoothing changes how fast value is changed. - public float easing; // Easing changes how fast smoothing is changed, when given a new value. +public struct SettingValue : IResettableSettingValue{ + public T targetValue; + public T currentValue; + public T refVel; - public float currentSmoothing; // Actively eased and accessed value - public float currentValue; // Actively smoothed and accessed value + public float targetSmoothing; // Smoothing changes how fast the value is changed. + public float targetEasing; // Easing changes how fast smoothing is changed, when given a new value. - public T refVel; // For use with SmoothDamp + public T Value{ + get => currentValue; + set => targetValue = value; + } + private float currentSmoothing; + + public T defaultValue; + public float defaultSmoothing; + public float defaultEasing; + + private float refVelFloat; // For use with SmoothDamp + private Vector3 refVelV3; // For use with SmoothDamp + private Vector2 refVelV2; // For use with SmoothDamp + + public SettingValue(T initValue, float defaultEasing = 2f, float defaultSmoothing = 1f){ - value = initValue; - - easing = defaultEasing; - value = default; - smoothing = defaultSmoothing; - currentSmoothing = 0; - currentValue = 0; + targetValue = initValue; + + this.defaultSmoothing = defaultSmoothing; + this.defaultEasing = defaultEasing; + + targetEasing = defaultEasing; + targetSmoothing = defaultSmoothing; + + currentSmoothing = targetSmoothing; + currentValue = targetValue; + + refVelFloat = 0; + refVelV3 = default; + refVelV2 = default; refVel = default; + + defaultValue = initValue; + } + + public void SmoothAndEase(){ + Debug.Log("Worked!"); + return; + + currentSmoothing = Mathf.MoveTowards(currentSmoothing, targetSmoothing, targetEasing * 1f * Time.deltaTime); + + if (typeof(T) == typeof(float)) { + currentValue = (T)(object)Mathf.SmoothDamp((float)(object)currentValue, (float)(object)targetValue, ref refVelFloat, currentSmoothing * Time.deltaTime); + } + + if (typeof(T) == typeof(Vector2)) { + currentValue = (T)(object)Vector2.SmoothDamp((Vector2)(object)currentValue, (Vector2)(object)targetValue, ref refVelV2, currentSmoothing * Time.deltaTime); + } + + if (typeof(T) == typeof(Vector3)) { + currentValue = (T)(object)Vector3.SmoothDamp((Vector3)(object)currentValue, (Vector3)(object)targetValue, ref refVelV3, currentSmoothing * Time.deltaTime); + } + + if (typeof(T) == typeof(Vector4) || typeof(T) == typeof(Quaternion)) { + // I have... zero clue if this will work. There is no Vector4 or Quaternion SmoothDamp + Vector3 v3value = Vector3.SmoothDamp((Vector4)(object)currentValue, (Vector4)(object)targetValue, ref refVelV3, currentSmoothing * Time.deltaTime); + float v4value = Mathf.SmoothDamp(((Vector4)(object)currentValue).z, ((Vector4)(object)targetValue).z, ref refVelFloat, currentSmoothing * Time.deltaTime); + + currentValue = (T)(object)new Vector4(v3value.x, v3value.y, v3value.z, v4value); + } } } \ No newline at end of file diff --git a/Assets/Scripts/Player/UnitMovementData.cs b/Assets/Scripts/Player/UnitMovementData.cs new file mode 100644 index 0000000..912e8cf --- /dev/null +++ b/Assets/Scripts/Player/UnitMovementData.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using ParadoxNotion.Design; +using Sirenix.OdinInspector; +using UnityEngine; + +namespace Reset.Units{ + [Serializable] + public class UnitMovementData : ICloneable{ + // Movement Direction + public SettingValue moveSmoothing = new SettingValue(new Vector2(.5f, .5f)); + public SettingValue acceleration = new SettingValue(5f); + public SettingValue deacceleration = new SettingValue(5f); + + [SliderField(0,1)] + public SettingValue airDirectionDecay = new SettingValue(1f); // TODO: Check default value + + // Move Speed + public SettingValue softening = new SettingValue(1f, defaultSmoothing: 1f); + public SettingValue moveSpeed = new SettingValue(15f, defaultSmoothing: 10f); + + // Jumping + [ShowInInspector] public SettingValue jumpPower = new SettingValue(0f); + public SettingValue jumpPowerDecay = new SettingValue(3f); // TODO: Check default value + + // Gravity + [ShowInInspector] public SettingValue gravityPower = new SettingValue(1f); + public SettingValue gravityMax = new SettingValue(8f); + public SettingValue gravityAcceleration = new SettingValue(1f); + public SettingValue gravityScale = new SettingValue(1f); + + // Rotation + [ShowInInspector, SerializeReference] public Enum rotateFacing; + public SettingValue rotationSpeed = new SettingValue(5f); + public SettingValue rotationInputBlending = new SettingValue(.3f); + + public object Clone(){ + return MemberwiseClone(); + } + + public List GetAllSettings(){ + var outputList = new List(); + + IResettableSettingValue[] test = new[]{ + moveSmoothing as IResettableSettingValue, + }; + + test[0].SmoothAndEase(); + + outputList.AddRange(test); + + return outputList; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Player/UnitMovementData.cs.meta b/Assets/Scripts/Player/UnitMovementData.cs.meta new file mode 100644 index 0000000..5d035c9 --- /dev/null +++ b/Assets/Scripts/Player/UnitMovementData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7f5d86c96bcf450b888da32d1cf253e7 +timeCreated: 1758478092 \ No newline at end of file diff --git a/Assets/Scripts/Player/UnitMovementHandler.cs b/Assets/Scripts/Player/UnitMovementHandler.cs index 1a15a9f..b780490 100644 --- a/Assets/Scripts/Player/UnitMovementHandler.cs +++ b/Assets/Scripts/Player/UnitMovementHandler.cs @@ -1,101 +1,12 @@ -using System; using UnityEngine; -using ParadoxNotion.Design; -using PlasticPipe.PlasticProtocol.Messages; using Reset.Core.Tools; using Sirenix.OdinInspector; -public enum PlayerFacingDirection{ - TowardsTarget = 0, - MatchForward, - MatchCamera, - Static, - Momentum, - SpecifiedDirection -} - namespace Reset.Units{ - // public interface IBuffSource{ - Unused good idea? - // public Object sourceObject(); - // public - // } - - [Serializable] - public class UnitMovementData : ICloneable{ - // Movement Direction - public SettingValue moveSmoothing = new SettingValue(new Vector2(.5f, .5f)); - public SettingValue acceleration = new SettingValue(5f); - public SettingValue deaccerlation = new SettingValue(5f); - - [SliderField(0,1)] - public SettingValue airDirectionDecay = new SettingValue(1f); // TODO: Check default value - - // Move Speed - public SettingValue moveSpeed = new SettingValue(15f, defaultSmoothing: 10f); - - // Jumping - [ShowInInspector] public SettingValue jumpPower = new SettingValue(0f); - public SettingValue jumpPowerDecay = new SettingValue(3f); // TODO: Check default value - - // Gravity - [ShowInInspector] public SettingValue gravityPower = new SettingValue(1f); - public SettingValue gravityMax = new SettingValue(8f); - public SettingValue gravityAcceleration = new SettingValue(1f); - public SettingValue gravityScale = new SettingValue(1f); - - // Rotation - [ShowInInspector, SerializeReference] public Enum rotateFacing; - public SettingValue rotationSpeed = new SettingValue(5f); - public SettingValue rotationInputBlending = new SettingValue(.3f); - - public object Clone(){ - return MemberwiseClone(); - } - } - - public class ResolvedMovement{ - [ShowInInspector] public UnitMovementHandler.MoveDirection moveDirection; - public float moveSpeed; - public Quaternion rotation; - public float rotationSpeed; - public float gravity; - } - public class UnitMovementHandler : MonoBehaviour{ - public struct MoveDirection{ - private Transform owner; - - private Vector2 _moveDir; // Always local - - public Vector2 World{ - get => owner.TransformDirection(_moveDir); - set{ - _moveDir = owner.InverseTransformDirection(value); - } - } - - public Vector2 Local{ - get => _moveDir; - set { - _moveDir = value; - } - } - - public MoveDirection(Transform ownerTransform){ - owner = ownerTransform; - _moveDir = Vector2.zero; - } - } - [ShowInInspector] public ResolvedMovement resolvedMovement; - - // class MovementFloatModifier{ - // // IBuffSource source - // public float value; - // } - // [FoldoutGroup("Final Values"), ShowInInspector, ReadOnly] private float outputSpeed; [FoldoutGroup("Final Values"), ShowInInspector, ReadOnly] private float additionalSpeed; [FoldoutGroup("Final Values"), ShowInInspector, ReadOnly] public Vector3 outputMoveDirection; @@ -104,7 +15,7 @@ namespace Reset.Units{ [FoldoutGroup("Final Values"), ShowInInspector, ReadOnly] private Quaternion specifiedRotation; [FoldoutGroup("Final Values"), ShowInInspector, ReadOnly] private float outputRotationSpeed; - // Lerps + // Smoothing Values private float directionChangeDotLerp; private Vector3 moveSmoothVelocityRef; private float gravitySmoothVelocityRef; @@ -116,12 +27,7 @@ namespace Reset.Units{ // Movement Data [ShowInInspector, PropertyOrder(2)] public UnitMovementData data = new(); - [ShowInInspector, PropertyOrder(2)] public UnitMovementData smoothing = new(); - [ShowInInspector, PropertyOrder(2)] public UnitMovementData easing = new(); - - [HideInInspector] public UnitMovementData defaultData; - [HideInInspector] public UnitMovementData defaultSmoothing; - [HideInInspector] public UnitMovementData defaultEasing; + void Awake(){ controller = GetComponent(); @@ -130,12 +36,8 @@ namespace Reset.Units{ } void Start(){ - defaultData = (UnitMovementData)data.Clone(); - defaultSmoothing = (UnitMovementData)smoothing.Clone(); - defaultEasing = (UnitMovementData)easing.Clone(); - resolvedMovement = new ResolvedMovement(); - resolvedMovement.moveDirection = new MoveDirection(transform); + resolvedMovement.moveDirection = new ResolvedMovement.MoveDirection(transform); } void Update(){ @@ -188,7 +90,7 @@ namespace Reset.Units{ return; } - outputSpeed = Mathf.Lerp(outputSpeed, Mathf.Max(data.moveSpeed.value, speed), priority); + outputSpeed = Mathf.Lerp(outputSpeed, Mathf.Max(data.moveSpeed.Value, speed), priority); } // Setting absolute to true will cause the current gravity to snap to the new gravity value. @@ -228,53 +130,47 @@ namespace Reset.Units{ // 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 (targetDirection.magnitude > currentDirection.magnitude) { - if (controller.isGrounded){ - slerpedValue = Vector3.Slerp(currentDirection, targetDirection, data.acceleration.value * Time.deltaTime); // This used to be a slerp. If rotational movement broke this is why - - // slerpedValue = Quaternion.AngleAxis(30, Vector3.up) * slerpedValue; - lerpedValue = Vector2.Lerp(currentDirection, targetDirection,data.acceleration.value * Time.deltaTime); - - newDirection = Vector2.Lerp(slerpedValue, slerpedValue, directionChangeDotLerp); - // newDirection = slerpedValue; - } else { - newDirection = Vector2.Lerp(currentDirection, targetDirection, data.acceleration.value * Time.deltaTime); - } + if (controller.isGrounded){ + slerpedValue = Vector3.Slerp(currentDirection, targetDirection, data.softening.Value * Time.deltaTime); // This used to be a slerp. If rotational movement broke this is why + lerpedValue = Vector2.Lerp(currentDirection, targetDirection, data.softening.Value * Time.deltaTime); + + newDirection = Vector2.Lerp(slerpedValue, lerpedValue, directionChangeDotLerp); } else { - if (controller.isGrounded){ - slerpedValue = Vector3.Slerp(currentDirection, targetDirection, data.deaccerlation.value * Time.deltaTime); // This used to be a slerp. If rotational movement broke this is why - lerpedValue = Vector2.Lerp(currentDirection, targetDirection, data.deaccerlation.value * Time.deltaTime); - - newDirection = Vector2.Lerp(lerpedValue, slerpedValue, directionChangeDotLerp); - } else { - newDirection = Vector2.Lerp(currentDirection, targetDirection, data.deaccerlation.value * data.airDirectionDecay.value * Time.deltaTime); - } - } - + newDirection = Vector2.Lerp(currentDirection, targetDirection, data.softening.Value * data.airDirectionDecay.Value * Time.deltaTime); + } + // newDirection = Vector2.MoveTowards(currentDirection, targetDirection.Rotate(-Vector2.Angle(currentDirection, targetDirection)), 2f * Time.deltaTime); // Commit move direction - resolvedMovement.moveDirection.Local = Vector2.SmoothDamp( - resolvedMovement.moveDirection.Local, - newDirection, - ref smoothing.moveSmoothing.refVel, - smoothing.moveSmoothing.smoothing *Time.deltaTime); // TODO: Check this smoothing + // resolvedMovement.moveDirection.Local = Vector2.SmoothDamp( + // resolvedMovement.moveDirection.Local, + // newDirection, + // ref smoothing.moveSmoothing.refVel, + // smoothing.moveSmoothing.smoothing *Time.deltaTime); // TODO: Check this smoothing resolvedMovement.moveDirection.Local = newDirection; } // Update the speed, called every frame private void UpdateCurrentSpeed(){ - //TODO: Is accel/deaccel ever used in this file???????? + float speed; - resolvedMovement.moveSpeed = Mathf.Lerp(resolvedMovement.moveSpeed, data.moveSpeed.value, data.moveSpeed.smoothing * Time.deltaTime); + if (resolvedMovement.moveDirection.Local.magnitude < controls.rawMoveInput.magnitude) { + speed = data.moveSpeed.Value * Time.deltaTime * data.acceleration.Value; + } else { + speed = data.moveSpeed.Value * Time.deltaTime * data.deacceleration.Value; + } + + resolvedMovement.moveSpeed = speed; + + DebugOverlayDrawer.ChangeValue("Movement", "Resolved Speed", resolvedMovement.moveSpeed); } // Update the gravity, called every frame private void UpdateCurrentGravity(){ // Accelerate gravity if (!controller.isGrounded){ - resolvedMovement.gravity -= data.gravityAcceleration.value * Time.deltaTime; + resolvedMovement.gravity -= data.gravityAcceleration.Value * Time.deltaTime; } // resolvedMovement.gravity = Mathf.Clamp(resolvedMovement.gravity, Mathf.NegativeInfinity, data.gravityMax.value); @@ -285,7 +181,7 @@ namespace Reset.Units{ } // Create the final gravity value - float gravityMoveDirection = data.jumpPower.value + (Physics.gravity.y * resolvedMovement.gravity); + float gravityMoveDirection = data.jumpPower.Value + (Physics.gravity.y * resolvedMovement.gravity); // resolvedMovement.gravity = data.jumpPower.value + (Physics.gravity.y * data.gravityPower.currentValue); // Commit gravity to move direction, ignoring XZ since those are done in UpdateMovementDirection @@ -332,11 +228,12 @@ namespace Reset.Units{ // 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.value); + outputRotation = Quaternion.Lerp(outputRotation, Camera.main.transform.rotation * Quaternion.LookRotation(inputMovement), data.rotationInputBlending.Value); } // 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.value, data.rotationSpeed.smoothing * Time.deltaTime); + + outputRotationSpeed = Mathf.Lerp(outputRotationSpeed, data.rotationSpeed.Value, data.softening.Value * Time.deltaTime); // Set final rotation transform.rotation = Quaternion.Slerp(transform.rotation, outputRotation, outputRotationSpeed * Time.deltaTime).Flatten(0, null, 0); @@ -344,7 +241,7 @@ namespace Reset.Units{ // Move with default settings public void DoMovement(){ - DoMovement(resolvedMovement.moveDirection.Local, resolvedMovement.moveSpeed, data.gravityScale.value); // TODO: Gets multiplied a second time in DoMovement by gravity scale???? + DoMovement(resolvedMovement.moveDirection.Local, resolvedMovement.moveSpeed, data.gravityScale.Value); // TODO: Gets multiplied a second time in DoMovement by gravity scale???? } // Custom move from input @@ -358,7 +255,7 @@ namespace Reset.Units{ // Add their related speeds moveXZDir *= speed * Time.deltaTime; - moveYDir *= data.gravityScale.value * Time.deltaTime; + moveYDir *= data.gravityScale.Value * Time.deltaTime; addDir *= additionalSpeed * Time.deltaTime; // Construct the direction and move @@ -385,21 +282,30 @@ namespace Reset.Units{ // Decay the direction if (inputMovement.magnitude < currentNoY.magnitude) { - additionalMoveDirection = Vector3.Slerp(additionalMoveDirection, Vector3.zero,data.acceleration.value * Time.deltaTime); + additionalMoveDirection = Vector3.Slerp(additionalMoveDirection, Vector3.zero,data.acceleration.Value * Time.deltaTime); } else { // float deaccelValue = data.deaccelerationCurve.Evaluate(inputMovement.magnitude); - additionalMoveDirection = Vector3.Lerp(additionalMoveDirection, Vector3.zero, data.deaccerlation.value * Time.deltaTime); + additionalMoveDirection = Vector3.Lerp(additionalMoveDirection, Vector3.zero, data.deacceleration.Value * Time.deltaTime); } // Decay the gravity - additionalMoveDirection.y -= data.gravityPower.value; + additionalMoveDirection.y -= data.gravityPower.Value; additionalMoveDirection.y = Mathf.Max(0f, additionalMoveDirection.y); } private void UpdateGravityLate(){ // Decay jump power - data.jumpPower.value -= data.jumpPowerDecay.value * Time.deltaTime; - data.jumpPower.value = Mathf.Max(0f, data.jumpPower.value); + data.jumpPower.Value -= data.jumpPowerDecay.Value * Time.deltaTime; + data.jumpPower.Value = Mathf.Max(0f, data.jumpPower.Value); + } + + [Button("Initialize Settings")] + void InitAllSettings(){ + var newthing = data.GetAllSettings(); + } + + void SmoothAllSettings(){ + } } }