From 0bb10a8f46a1f111c795dc4333cafa325bf7e1e8 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 20 Oct 2025 16:36:23 -0400 Subject: [PATCH] added: full logic and ability for downing and picking up allies --- Assets/Player/Graphs/PlayerBaseFSM.asset | 59 +++++--- .../MaruTestController.controller | 51 ++++++- Assets/Player/Objects/Player.prefab | 89 +++++++++++- Assets/Scenes/CombatTest.unity | 105 +++++++++++++- .../Core/Graph Tasks/SendAnimationTrigger.cs | 2 +- .../Core/Graph Tasks/SendEventToUnit.cs | 33 ++--- .../Scripts/Core/Interfaces/IInteractable.cs | 1 + Assets/Scripts/Units/Player.cs | 129 ++++++++++++++++-- .../Scripts/Units/PlayerEnvironmentManager.cs | 3 +- Assets/Scripts/Units/Unit.cs | 81 ++++++++++- 10 files changed, 489 insertions(+), 64 deletions(-) diff --git a/Assets/Player/Graphs/PlayerBaseFSM.asset b/Assets/Player/Graphs/PlayerBaseFSM.asset index 1a02bb5..ed28d1a 100644 --- a/Assets/Player/Graphs/PlayerBaseFSM.asset +++ b/Assets/Player/Graphs/PlayerBaseFSM.asset @@ -51,12 +51,12 @@ MonoBehaviour: Air Movement Reset"},"eventValue":{"_value":2.5},"delay":{},"$type":"NodeCanvas.Tasks.Actions.SendEvent`1[[System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}]},"_color":{"r":0.3647059,"g":0.3215686,"b":1.0,"a":1.0},"_name":"Post Grapple Movement","_position":{"x":-100.2183,"y":-239.2994},"$type":"NodeCanvas.StateMachines.ActionState","$id":"10"},{"_position":{"x":-270.4407,"y":64.96476},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"11"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Right - Wall Stick","_position":{"x":1440.892,"y":491.8188},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"12"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Right - Wall Launch","_position":{"x":1540.333,"y":-269.5497},"$type":"NodeCanvas.StateMachines.ActionState","$id":"13"},{"_name":"back - to airborne","_position":{"x":1318.265,"y":-168.164},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"14"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Wall - Slide","_position":{"x":1163.601,"y":367.7003},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"15"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Left - Wall Stick","_position":{"x":1292.097,"y":191.7727},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"16"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Left - Wall Launch","_position":{"x":1460.118,"y":-138.9557},"$type":"NodeCanvas.StateMachines.ActionState","$id":"17"},{"_onEnterList":{"executionMode":1,"actions":[{"facingDirection":{"label":"Facing + Wall Stick","_position":{"x":1719.058,"y":197.8127},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"12"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Right + Wall Launch","_position":{"x":1554.001,"y":-221.7112},"$type":"NodeCanvas.StateMachines.ActionState","$id":"13"},{"_name":"back + to airborne","_position":{"x":1227.144,"y":-168.164},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"14"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Wall + Slide","_position":{"x":1489.875,"y":359.6696},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"15"},{"_onEnterList":{"actions":[{"raycastHit":{"_name":"_wallStickHit"},"transform":{},"collider":{},"gameObject":{},"distance":{},"normal":{"_name":"_wallStickHitNormal"},"point":{"_name":"_wallStickHitPoint"},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":0.4980392,"g":1.0,"b":0.9803922,"a":1.0},"_name":"Left + Wall Stick","_position":{"x":1279.881,"y":192.7907},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"16"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Left + Wall Launch","_position":{"x":1428.226,"y":-146.9287},"$type":"NodeCanvas.StateMachines.ActionState","$id":"17"},{"_onEnterList":{"executionMode":1,"actions":[{"facingDirection":{"label":"Facing Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{}},"rotationSpeed":{"label":"Rotation Speed","changeValue":{"_value":1},"value":{"_value":0.2},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"newRotation":{"_value":{"y":-45.0}},"absolute":{},"relativity":{"_value":1.0},"relativeTo":{"_name":"_wallJumpHitNormal"},"relativeToIsDirection":{"_value":true},"$type":"Reset.Units.SetNewRotation"},{"airDirectionDecay":{"label":"Air Direction Decay","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"gravityMax":{"label":"Gravity @@ -99,7 +99,19 @@ MonoBehaviour: Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"}]},"_onUpdateList":{"executionMode":1,"actions":[{"newGravity":{"_value":2.0},"absolute":{},"relativity":{"_value":0.86},"deltaTime":{"_value":true},"decayRate":{"_value":0.3},"$type":"Reset.Units.SetNewGravity"}]},"_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":697.7955,"y":220.1157},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"21"},{"_actionList":{"actions":[{"valueA":{"_name":"newAirMoveSmoothing"},"valueB":{"_value":1.0},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.SetFloat"},{"eventName":{"_value":"Air Reset Received"},"delay":{},"$type":"NodeCanvas.Tasks.Actions.SendEvent"}]},"_color":{"r":0.3647059,"g":0.3215686,"b":1.0,"a":1.0},"_name":"Airborne - Standard Movement","_position":{"x":227.1761,"y":27.24033},"$type":"NodeCanvas.StateMachines.ActionState","$id":"22"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Standard Movement","_position":{"x":227.1761,"y":27.24033},"$type":"NodeCanvas.StateMachines.ActionState","$id":"22"},{"_name":"INTERACT + OPTIONS","_position":{"x":967.8022,"y":970.8088},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"23"},{"_actionList":{"executionMode":1,"actions":[{"raycastHit":{"_name":"_hit"},"transform":{},"collider":{},"gameObject":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"distance":{},"normal":{},"point":{},"$type":"NodeCanvas.Tasks.Actions.DecomposeRaycastHit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":2055.0,"y":790.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"24"},{"_name":"Check + if interactable","_position":{"x":2335.022,"y":1165.423},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"25"},{"_actionList":{"executionMode":1,"actions":[{"log":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"$type":"NodeCanvas.Tasks.Actions.DebugLogText"},{"moveSpeed":{"label":"Move + Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":10.0},"_changeEasing":{"_value":1},"_easing":{"_value":5.0}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"facingDirection":{"label":"Facing + Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation + Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"target":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"eventToSend":"Pick + Up Start","$type":"Reset.Units.SendEventToUnit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Start + Ally Pickup","_position":{"x":2647.121,"y":1343.222},"$type":"NodeCanvas.StateMachines.ActionState","$id":"26"},{"_actionList":{"executionMode":1,"actions":[{"target":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"eventToSend":"Pick + Up Failed","$type":"Reset.Units.SendEventToUnit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Pickup + Failed","_position":{"x":2320.785,"y":1479.228},"$type":"NodeCanvas.StateMachines.ActionState","$id":"27"},{"_position":{"x":2055.903,"y":1096.625},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"28"},{"_actionList":{"executionMode":1,"actions":[{"valueA":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"valueB":{},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":1682.273,"y":1020.806},"$type":"NodeCanvas.StateMachines.ActionState","$id":"29"},{"_actionList":{"executionMode":1,"actions":[{"target":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"eventToSend":"Pick + Up Success","$type":"Reset.Units.SendEventToUnit"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Pickup + Success","_position":{"x":2312.675,"y":1237.935},"$type":"NodeCanvas.StateMachines.ActionState","$id":"30"},{"_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"},{"fieldOfView":{"label":"FOV","changeValue":{},"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 @@ -111,8 +123,8 @@ MonoBehaviour: 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":617.7376,"y":561.286},"$type":"NodeCanvas.StateMachines.ActionState","$id":"23"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move - Speed","changeValue":{"_value":1},"value":{"_value":60.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":828.8306,"y":724.4287},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"24"},{"_onEnterList":{"executionMode":1,"actions":[{"fieldOfView":{"label":"FOV","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"orbitTargetOffset":{"label":"Target + Burst","_position":{"x":1195.977,"y":588.8872},"$type":"NodeCanvas.StateMachines.ActionState","$id":"31"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":{"_value":1},"value":{"_value":60.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":1404.68,"y":706.4014},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"32"},{"_onEnterList":{"executionMode":1,"actions":[{"fieldOfView":{"label":"FOV","changeValue":{},"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":{"_value":1},"radius":{"_value":7.0},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":100.0},"_changeEasing":{"_value":1},"_easing":{"_value":100.0}},"orbitFollowCenter":{"label":"Center","changeHeight":{},"height":{},"changeRadius":{"_value":1},"radius":{"_value":8.0},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":100.0},"_changeEasing":{"_value":1},"_easing":{"_value":100.0}},"orbitFollowBottom":{"label":"Bottom","changeHeight":{},"height":{},"changeRadius":{"_value":1},"radius":{"_value":5.0},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":100.0},"_changeEasing":{"_value":1},"_easing":{"_value":100.0}},"enableXAxis":{"label":"Input Axis X Enabled","value":{"_value":true},"changeValue":{}},"enableYAxis":{"label":"Input @@ -130,14 +142,22 @@ MonoBehaviour: Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation Speed","changeValue":{"_value":1},"value":{"_value":6.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"moveSpeed":{"label":"Move Speed","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{"_value":1},"value":{"_value":1.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"newDirection":{"_value":{"y":1.0}},"absolute":{},"relativity":{},"setRawAsWell":{},"relativeTo":{},"$type":"Reset.Units.SetNewDirection"},{"newSpeed":{"_value":22.0},"absolute":{},"relativity":{},"$type":"Reset.Units.SetNewSpeed"}]},"_onUpdateList":{"executionMode":1,"actions":[{"newGravity":{"_value":2.0},"absolute":{},"relativity":{"_value":0.86},"deltaTime":{"_value":true},"decayRate":{"_value":0.3},"$type":"Reset.Units.SetNewGravity"}]},"_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":"Run - Jump","_position":{"x":1043.577,"y":32.57642},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"25"},{"_nestedBT":{"_value":1},"executionMode":0,"_variablesMap":[{"_targetSubGraphVariableID":"9de2ef67-d7a9-49dc-936e-63ede27a131b","_canWrite":true,"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8"}],"_position":{"x":29.0,"y":886.998},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"26"},{"_nestedBT":{"_value":2},"executionMode":0,"_position":{"x":193.9912,"y":723.5885},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"27"},{"_nestedBT":{"_value":3},"executionMode":0,"_position":{"x":288.3429,"y":1027.412},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"28"},{"_onEnterList":{"executionMode":1,"actions":[]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"Operation":2,"valueB":{"_value":1},"$type":"NodeCanvas.Tasks.Actions.SetInt"}]},"foldEnter":true,"foldExit":true,"_color":{"r":0.4117647,"g":0.945098,"b":0.254902,"a":1.0},"_name":"Run - Jump","_position":{"x":1030.708,"y":167.7085},"$type":"NodeCanvas.StateMachines.SuperActionState"},{"_subTree":{"_value":4},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_name":"mainCamera"},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canWrite":true,"_type":"Reset.Units.PlayerFacingDirection","_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}}],"_position":{"x":-513.2321,"y":190.793},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":5},"_tag":"","_position":{"x":88.88626,"y":312.6888},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"resolvedVector2":{"_name":"resolvedMoveVector2","_targetVariableID":"2aee664e-07ba-4e85-9d6a-a1393398789d"},"resolvedVector3":{"_name":"resolvedMoveVector3","_targetVariableID":"5d907161-2896-4b95-bfd2-0ea9426145d7"},"resolvedGravity":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"resolvedSpeed":{"_name":"resolvedSpeed","_targetVariableID":"a81cae83-1fb4-4a2c-bc68-ebf1781c2037"},"resolvedRotation":{"_name":"resolvedRotation","_targetVariableID":"f2ba350a-0fea-438e-9ad3-ed77db853d34"},"$type":"Reset.Units.GetResolvedMovementData"}]},"_position":{"x":43.41211,"y":188.3668},"$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":6},"_position":{"x":1126.753,"y":-309.6837},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subFSM":{"_value":7},"_position":{"x":-97.23633,"y":603.6638},"$type":"NodeCanvas.StateMachines.ConcurrentSubFSM"},{"_position":{"x":665.0,"y":989.0},"$type":"NodeCanvas.StateMachines.AnyState","$id":"36"},{"_actionList":{"executionMode":1,"actions":[{"control":1,"$type":"NodeCanvas.Tasks.Actions.GraphOwnerControl"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_position":{"x":825.0,"y":1072.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"37"}],"connections":[{"_condition":{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"observerLabel":{"_value":"itemdrop"},"outputHitTo":{},"deactivateOnFinish":false,"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + Jump","_position":{"x":1043.577,"y":32.57642},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"33"},{"_nestedBT":{"_value":1},"executionMode":0,"_variablesMap":[{"_targetSubGraphVariableID":"9de2ef67-d7a9-49dc-936e-63ede27a131b","_canWrite":true,"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8"}],"_position":{"x":6.297241,"y":862.5489},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"34"},{"_nestedBT":{"_value":2},"executionMode":0,"_position":{"x":171.2884,"y":699.1394},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"35"},{"_nestedBT":{"_value":3},"executionMode":0,"_position":{"x":265.6401,"y":1002.963},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"36"},{"_subTree":{"_value":4},"_variablesMap":[{"_targetSubGraphVariableID":"e1cfd0be-7f55-420d-bdd8-e72531fc61ba","_canWrite":true,"_type":"UnityEngine.Transform","_name":"mainCamera"},{"_targetSubGraphVariableID":"c4e68b75-5129-428c-8177-abb7b38986f5","_canWrite":true,"_type":"Reset.Units.PlayerFacingDirection","_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}}],"_position":{"x":-513.2321,"y":190.793},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subTree":{"_value":5},"_tag":"","_position":{"x":88.88626,"y":312.6888},"_comment":"","$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"resolvedVector2":{"_name":"resolvedMoveVector2","_targetVariableID":"2aee664e-07ba-4e85-9d6a-a1393398789d"},"resolvedVector3":{"_name":"resolvedMoveVector3","_targetVariableID":"5d907161-2896-4b95-bfd2-0ea9426145d7"},"resolvedGravity":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"resolvedSpeed":{"_name":"resolvedSpeed","_targetVariableID":"a81cae83-1fb4-4a2c-bc68-ebf1781c2037"},"resolvedRotation":{"_name":"resolvedRotation","_targetVariableID":"f2ba350a-0fea-438e-9ad3-ed77db853d34"},"$type":"Reset.Units.GetResolvedMovementData"}]},"_position":{"x":43.41211,"y":188.3668},"$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":6},"_position":{"x":1126.753,"y":-309.6837},"$type":"NodeCanvas.StateMachines.ConcurrentSubTree"},{"_subFSM":{"_value":7},"_position":{"x":-97.23633,"y":603.6638},"$type":"NodeCanvas.StateMachines.ConcurrentSubFSM"},{"_position":{"x":1228.18,"y":1604.454},"$type":"NodeCanvas.StateMachines.AnyState","$id":"43"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":10.0},"_changeEasing":{"_value":1},"_easing":{"_value":5.0}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"facingDirection":{"label":"Facing + Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation + Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"parameter":{"_value":"Downed"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"trigger":{"_value":"Downed"},"$type":"Reset.Core.SendAnimationTrigger"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Downed","_position":{"x":1127.07,"y":1850.24},"$type":"NodeCanvas.StateMachines.ActionState","$id":"44"},{"_actionList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move + Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":10.0},"_changeEasing":{"_value":1},"_easing":{"_value":5.0}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"facingDirection":{"label":"Facing + Direction","value":{"_value":{"$content":1,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation + Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"parameter":{"_value":"Downed"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Die","_position":{"x":1341.81,"y":1339.448},"$type":"NodeCanvas.StateMachines.ActionState","$id":"45"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Respawn","_position":{"x":1058.604,"y":1453.323},"$type":"NodeCanvas.StateMachines.ActionState","$id":"46"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Getting + Picked Up","_position":{"x":945.5722,"y":1718.105},"$type":"NodeCanvas.StateMachines.ActionState","$id":"47"},{"_actionList":{"executionMode":1,"actions":[{"trigger":{"_value":"PickUp"},"$type":"Reset.Core.SendAnimationTrigger"},{"parameter":{"_value":"PickUp"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"method":{"_baseInfo":"Reset.Units.Player|SetNewHealthRpc|System.Void","_paramsInfo":"System.Single"},"parameters":[{"_type":"System.Single","_value":{"$content":100.0,"$type":"System.Single"}}],"returnValue":{},"$type":"NodeCanvas.Tasks.Actions.ExecuteFunction_Multiplatform"}]},"_color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"_name":"Picked + Up","_position":{"x":770.7885,"y":1574.854},"$type":"NodeCanvas.StateMachines.ActionState","$id":"48"},{"_position":{"x":639.1807,"y":1779.759},"$type":"NodeCanvas.StateMachines.AnyState","$id":"49"},{"_actionList":{"executionMode":1,"actions":[{"control":1,"$type":"NodeCanvas.Tasks.Actions.GraphOwnerControl"}]},"_color":{"r":0.2358491,"g":0.2358491,"b":0.2358491,"a":1.0},"_name":"Not + Owned","_position":{"x":603.1617,"y":1881.634},"$type":"NodeCanvas.StateMachines.ActionState","$id":"50"}],"connections":[{"_condition":{"valueA":{"_name":"isGroundedOld","_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":"Interact"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"23"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":4},"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"observerLabel":{"_value":"itemdrop"},"outputHitTo":{},"deactivateOnFinish":false,"_invert":true,"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Launch"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Pull"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"23"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Melee"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"26"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Go - Hard"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"27"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Melee"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-walljump"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"checkType":4,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckInt"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"right-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"16"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"31"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Melee"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"34"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Go + Hard"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"35"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"actionName":{"_value":"Melee"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"inGoHard","_targetVariableID":"dc9f60c8-856e-4970-bf11-25745eff1201"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"36"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.2},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"1"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-walljump"},"outputHitTo":{"_name":"_wallJumpHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"airJumpsRemaining","_targetVariableID":"23f0ddc0-c4e8-462f-a7e0-fdd8e818d08d"},"checkType":4,"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckInt"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{"_value":true},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"left-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"conditions":[{"observerLabel":{"_value":"right-wallstick"},"outputHitTo":{"_name":"_wallStickHit"},"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"actionName":{"_value":"Stick"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"16"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Launch"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_sourceNode":{"$ref":"3"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Grapple Pull"},"saveEventValue":{"_name":"_grappleLaunchDir"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent`1[[UnityEngine.Vector3, @@ -147,7 +167,12 @@ 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":"isGroundedOld","_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},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"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":"isGroundedOld","_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"},{"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"27"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"28"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"method":{"_baseInfo":"Reset.Units.Player|UnitIsLocal|System.Boolean","_paramsInfo":""},"parameters":[],"checkValue":{"_type":"System.Boolean","_value":{"$content":false,"$type":"System.Boolean"}},"$type":"NodeCanvas.Tasks.Conditions.CheckFunction_Multiplatform"},"_sourceNode":{"$ref":"36"},"_targetNode":{"$ref":"37"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGroundedOld":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGroundedOld","_id":"619300a4-be8b-4ad4-ba2a-978468094ba2","_debugBoundValue":true,"$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":"isGroundedOld","_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},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},{"valueA":{"_name":"resolvedGravity","_targetVariableID":"7c9d4632-c537-44c4-ae35-d92fa64d5303"},"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":{"conditions":[{"observerLabel":{"_value":"player"},"outputHitTo":{"_name":"_hit"},"deactivateOnFinish":false,"$type":"NodeCanvas.Tasks.Conditions.CheckEnvironmentObserver"},{"valueA":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"valueB":{},"_invert":true,"_isDisabled":true,"$type":"NodeCanvas.Tasks.Conditions.CheckVariable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"valueA":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"valueB":{},"_invert":true,"_isDisabled":true,"$type":"NodeCanvas.Tasks.Conditions.CheckVariable`1[[Reset.Units.Player, + Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}],"$type":"NodeCanvas.Framework.ConditionList"},"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"24"},"_targetNode":{"$ref":"25"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"target":{"_name":"testobject","_targetVariableID":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea"},"$type":"Reset.Core.IsInteractable"},"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"26"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"25"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Interact"},"actionPhase":{"_value":4},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"27"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":5.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"30"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"27"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"28"},"_targetNode":{"$ref":"29"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"29"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"30"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":0.1},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"31"},"_targetNode":{"$ref":"32"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Jump"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"33"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"actionName":{"_value":"Sprint"},"actionPhase":{"_value":3},"$type":"NodeCanvas.Tasks.Conditions.CheckInput"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"valueA":{"_name":"isGroundedOld","_targetVariableID":"619300a4-be8b-4ad4-ba2a-978468094ba2"},"valueB":{},"$type":"NodeCanvas.Tasks.Conditions.CheckBoolean"},"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"33"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"34"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"35"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"36"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Downed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"43"},"_targetNode":{"$ref":"44"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Killed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"43"},"_targetNode":{"$ref":"45"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":25.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"44"},"_targetNode":{"$ref":"45"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Pick + Up Start"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"44"},"_targetNode":{"$ref":"47"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"timeout":{"_value":4.0},"$type":"NodeCanvas.Tasks.Conditions.Timeout"},"_sourceNode":{"$ref":"45"},"_targetNode":{"$ref":"46"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"46"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Pick + Up Success"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"47"},"_targetNode":{"$ref":"48"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"Pick + Up Failed"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_sourceNode":{"$ref":"47"},"_targetNode":{"$ref":"44"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_sourceNode":{"$ref":"48"},"_targetNode":{"$ref":"0"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"method":{"_baseInfo":"Reset.Units.Player|UnitIsLocal|System.Boolean","_paramsInfo":""},"parameters":[],"checkValue":{"_type":"System.Boolean","_value":{"$content":false,"$type":"System.Boolean"}},"$type":"NodeCanvas.Tasks.Conditions.CheckFunction_Multiplatform"},"_sourceNode":{"$ref":"49"},"_targetNode":{"$ref":"50"},"$type":"NodeCanvas.StateMachines.FSMConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"isGroundedOld":{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGroundedOld","_id":"619300a4-be8b-4ad4-ba2a-978468094ba2","_debugBoundValue":true,"$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"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]]"}}}}' _objectReferences: @@ -163,7 +188,7 @@ MonoBehaviour: _version: 3.31 _category: _comments: - _translation: {x: 31, y: -116} - _zoomFactor: 1 + _translation: {x: -161, y: -767} + _zoomFactor: 0.9671354 _haltSerialization: 0 _externalSerializationFile: {fileID: 0} diff --git a/Assets/Player/Models/MaruTestModel/MaruTestController.controller b/Assets/Player/Models/MaruTestModel/MaruTestController.controller index a08f480..f956ca0 100644 --- a/Assets/Player/Models/MaruTestModel/MaruTestController.controller +++ b/Assets/Player/Models/MaruTestModel/MaruTestController.controller @@ -497,6 +497,31 @@ BlendTree: m_UseAutomaticThresholds: 0 m_NormalizedBlendValues: 0 m_BlendType: 0 +--- !u!1101 &-1649584047298262204 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: PickUp + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3079066222818897921} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.87603307 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &-1540905845034213700 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -641,6 +666,18 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 9100000} + - m_Name: Downed + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + - m_Name: PickUp + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -754,14 +791,14 @@ AnimatorStateMachine: m_Position: {x: 910, y: 230, z: 0} - serializedVersion: 1 m_State: {fileID: 6032011949097874162} - m_Position: {x: 520, y: 570, z: 0} + m_Position: {x: 30, y: 250, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: - {fileID: 3576987541970407646} m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 230, y: 570, z: 0} + m_AnyStatePosition: {x: -190, y: 260, z: 0} m_EntryPosition: {x: 10, y: 150, z: 0} m_ExitPosition: {x: 1310, y: 280, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} @@ -825,7 +862,10 @@ AnimatorStateTransition: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: - m_Conditions: [] + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: Downed + m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 6032011949097874162} m_Solo: 0 @@ -974,10 +1014,11 @@ AnimatorState: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: New State + m_Name: Downed m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: -1649584047298262204} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 diff --git a/Assets/Player/Objects/Player.prefab b/Assets/Player/Objects/Player.prefab index 4302c36..2c75795 100644 --- a/Assets/Player/Objects/Player.prefab +++ b/Assets/Player/Objects/Player.prefab @@ -175,7 +175,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} m_Name: m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject - GlobalObjectIdHash: 3816484910 + GlobalObjectIdHash: 1109077195 InScenePlacedSourceGlobalObjectIdHash: 0 DeferredDespawnTick: 0 Ownership: 1 @@ -201,6 +201,76 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: ShowTopMostFoldoutHeaderGroup: 1 + state: + testSTate: + m_InternalValue: + utf8LengthInBytes: 0 + bytes: + offset0000: + byte0000: 0 + byte0001: 0 + byte0002: 0 + byte0003: 0 + byte0004: 0 + byte0005: 0 + byte0006: 0 + byte0007: 0 + byte0008: 0 + byte0009: 0 + byte0010: 0 + byte0011: 0 + byte0012: 0 + byte0013: 0 + byte0014: 0 + byte0015: 0 + offset0016: + byte0000: 0 + byte0001: 0 + byte0002: 0 + byte0003: 0 + byte0004: 0 + byte0005: 0 + byte0006: 0 + byte0007: 0 + byte0008: 0 + byte0009: 0 + byte0010: 0 + byte0011: 0 + byte0012: 0 + byte0013: 0 + byte0014: 0 + byte0015: 0 + offset0032: + byte0000: 0 + byte0001: 0 + byte0002: 0 + byte0003: 0 + byte0004: 0 + byte0005: 0 + byte0006: 0 + byte0007: 0 + byte0008: 0 + byte0009: 0 + byte0010: 0 + byte0011: 0 + byte0012: 0 + byte0013: 0 + byte0014: 0 + byte0015: 0 + byte0048: 0 + byte0049: 0 + byte0050: 0 + byte0051: 0 + byte0052: 0 + byte0053: 0 + byte0054: 0 + byte0055: 0 + byte0056: 0 + byte0057: 0 + byte0058: 0 + byte0059: 0 + byte0060: 0 + byte0061: 0 controls: {fileID: 0} _isDowned: m_InternalValue: 1 @@ -794,8 +864,8 @@ MonoBehaviour: UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"Combat Information":{"_value":{},"_name":"Combat Information","_id":"a15396c3-5ba0-4789-b5c5-39a6cfea1943","$type":"NodeCanvas.Framework.Variable`1[[NodeCanvas.Framework.VariableSeperator, ParadoxNotion, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"inGoHard":{"_propertyPath":"PlayerMeter.inGoHard","_name":"inGoHard","_id":"dc9f60c8-856e-4970-bf11-25745eff1201","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, - mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"pickupTarget":{"_propertyPath":"Reset.Units.Player.pickupTarget","_name":"pickupTarget","_id":"bf809a37-76c1-4dd7-8528-cc09527cb016","$type":"NodeCanvas.Framework.Variable`1[[Reset.Units.Player, - Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}' + mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"testobject":{"_name":"testobject","_id":"45e90651-1912-40ef-b4fc-6c27d00d0ef0","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}' _objectReferences: - {fileID: 0} - {fileID: 8505492416078151957} @@ -835,8 +905,8 @@ MonoBehaviour: - _json: '{"_propertyPath":"PlayerMeter.inGoHard","_name":"inGoHard","_id":"dc9f60c8-856e-4970-bf11-25745eff1201","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}' _references: [] - - _json: '{"_propertyPath":"Reset.Units.Player.pickupTarget","_name":"pickupTarget","_id":"bf809a37-76c1-4dd7-8528-cc09527cb016","$type":"NodeCanvas.Framework.Variable`1[[Reset.Units.Player, - Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' + - _json: '{"_name":"testobject","_id":"45e90651-1912-40ef-b4fc-6c27d00d0ef0","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' _references: [] --- !u!95 &8583102325603564116 Animator: @@ -978,7 +1048,14 @@ MonoBehaviour: TransitionDuration: 0.08350754 TriggerNameHash: -309998415 TransitionIndex: 0 - m_Animator: {fileID: 6535719103590072454} + - IsCrossFadeExit: 0 + Layer: 0 + OriginatingState: -660779543 + DestinationState: -50309357 + TransitionDuration: 0.25 + TriggerNameHash: -743040919 + TransitionIndex: 0 + m_Animator: {fileID: 8505492416078151957} --- !u!114 &2832127593411522816 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/CombatTest.unity b/Assets/Scenes/CombatTest.unity index ae60967..29936e5 100644 --- a/Assets/Scenes/CombatTest.unity +++ b/Assets/Scenes/CombatTest.unity @@ -1826,7 +1826,8 @@ PrefabInstance: UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"Combat Information":{"_value":{},"_name":"Combat Information","_id":"a15396c3-5ba0-4789-b5c5-39a6cfea1943","$type":"NodeCanvas.Framework.Variable`1[[NodeCanvas.Framework.VariableSeperator, ParadoxNotion, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"inGoHard":{"_propertyPath":"PlayerMeter.inGoHard","_name":"inGoHard","_id":"dc9f60c8-856e-4970-bf11-25745eff1201","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, - mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}}}' + mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"pickupTarget":{"_propertyPath":"Reset.Units.Player.pickupTarget","_name":"pickupTarget","_id":"bf809a37-76c1-4dd7-8528-cc09527cb016","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}' objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _objectReferences.Array.size @@ -1842,10 +1843,19 @@ PrefabInstance: value: '{"_name":"modelAnimator","_id":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator, UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' objectReference: {fileID: 0} + - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: _serializedVariables.Array.data[11]._json + value: '{"_propertyPath":"Reset.Units.Player.pickupTarget","_name":"pickupTarget","_id":"bf809a37-76c1-4dd7-8528-cc09527cb016","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' + objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _serializedVariables.Array.data[8]._references.Array.size value: 0 objectReference: {fileID: 0} + - target: {fileID: 6694215117007243537, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6755910944311034920, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 25.23057 @@ -1882,6 +1892,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 66.36815 objectReference: {fileID: 0} + - target: {fileID: 7010788291086685387, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7087274578062743959, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 83.97552 @@ -2078,6 +2092,10 @@ PrefabInstance: propertyPath: data.rotationSpeed.defaultValue value: 10 objectReference: {fileID: 0} + - target: {fileID: 8191935187182503649, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8195681124149962496, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: -63.06196 @@ -2182,6 +2200,22 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: -61.47872 objectReference: {fileID: 0} + - target: {fileID: 8855283078872505435, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8855283078872505435, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8855283078872505435, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8855283078872505435, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8921845175749348414, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 45.77425 @@ -3558,12 +3592,17 @@ PrefabInstance: UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"Combat Information":{"_value":{},"_name":"Combat Information","_id":"a15396c3-5ba0-4789-b5c5-39a6cfea1943","$type":"NodeCanvas.Framework.Variable`1[[NodeCanvas.Framework.VariableSeperator, ParadoxNotion, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"inGoHard":{"_propertyPath":"PlayerMeter.inGoHard","_name":"inGoHard","_id":"dc9f60c8-856e-4970-bf11-25745eff1201","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, - mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}}}' + mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"testobject":{"_name":"testobject","_id":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}' objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _objectReferences.Array.size value: 0 objectReference: {fileID: 0} + - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: _serializedVariables.Array.size + value: 12 + objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _serializedVariables.Array.data[6]._json value: '{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"5dbc6a46-39ce-4d74-87a2-ac8211a5a77f","_debugBoundValue":true,"$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, @@ -3574,6 +3613,11 @@ PrefabInstance: value: '{"_name":"modelAnimator","_id":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator, UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' objectReference: {fileID: 0} + - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: _serializedVariables.Array.data[11]._json + value: '{"_name":"testobject","_id":"1ed67ab7-76d3-45fa-b36b-7e676e69dcea","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' + objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _serializedVariables.Array.data[8]._references.Array.size value: 0 @@ -5288,6 +5332,50 @@ Mesh: - serializedVersion: 1 m_IndexStart: 0 m_IndexCount: 0 +--- !u!1 &1291419215 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1291419217} + - component: {fileID: 1291419216} + m_Layer: 0 + m_Name: WidgetEventDispatcher + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1291419216 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1291419215} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 318dc804b7b04630a9ed534a2243e51f, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Multiplayer.Widgets.Core::Unity.Multiplayer.Widgets.WidgetEventDispatcher +--- !u!4 &1291419217 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1291419215} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1379726749 GameObject: m_ObjectHideFlags: 0 @@ -6368,12 +6456,17 @@ PrefabInstance: UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"Combat Information":{"_value":{},"_name":"Combat Information","_id":"a15396c3-5ba0-4789-b5c5-39a6cfea1943","$type":"NodeCanvas.Framework.Variable`1[[NodeCanvas.Framework.VariableSeperator, ParadoxNotion, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"inGoHard":{"_propertyPath":"PlayerMeter.inGoHard","_name":"inGoHard","_id":"dc9f60c8-856e-4970-bf11-25745eff1201","$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, - mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"}}}' + mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"testobject":{"_name":"testobject","_id":"de2c7183-a5c3-4036-b92c-4b952c7a7af0","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}}}' objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _objectReferences.Array.size value: 0 objectReference: {fileID: 0} + - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: _serializedVariables.Array.size + value: 12 + objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _serializedVariables.Array.data[6]._json value: '{"_propertyPath":"UnityEngine.CharacterController.isGrounded","_name":"isGrounded","_id":"5dbc6a46-39ce-4d74-87a2-ac8211a5a77f","_debugBoundValue":true,"$type":"NodeCanvas.Framework.Variable`1[[System.Boolean, @@ -6384,6 +6477,11 @@ PrefabInstance: value: '{"_name":"modelAnimator","_id":"64fd28ff-2ca7-4b11-89b9-2c0cf8961bf8","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.Animator, UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' objectReference: {fileID: 0} + - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} + propertyPath: _serializedVariables.Array.data[11]._json + value: '{"_name":"testobject","_id":"de2c7183-a5c3-4036-b92c-4b952c7a7af0","$type":"NodeCanvas.Framework.Variable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}' + objectReference: {fileID: 0} - target: {fileID: 6546916578030478377, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3} propertyPath: _serializedVariables.Array.data[8]._references.Array.size value: 0 @@ -8530,3 +8628,4 @@ SceneRoots: - {fileID: 1834179742} - {fileID: 1113569334} - {fileID: 4518178797721885223} + - {fileID: 1291419217} diff --git a/Assets/Scripts/Core/Graph Tasks/SendAnimationTrigger.cs b/Assets/Scripts/Core/Graph Tasks/SendAnimationTrigger.cs index f596be6..0da3c4f 100644 --- a/Assets/Scripts/Core/Graph Tasks/SendAnimationTrigger.cs +++ b/Assets/Scripts/Core/Graph Tasks/SendAnimationTrigger.cs @@ -24,7 +24,7 @@ namespace Reset.Core { //EndAction can be called from anywhere. protected override void OnExecute(){ try { - agent.SetTrigger("trigger"); + agent.SetTrigger(trigger.value); } catch (Exception e) { Debug.LogError($"Did not set Network Animator trigger {trigger.name} on {(agent == null ? null : agent.name)}: {e.Message}"); } diff --git a/Assets/Scripts/Core/Graph Tasks/SendEventToUnit.cs b/Assets/Scripts/Core/Graph Tasks/SendEventToUnit.cs index b78b770..ce5d430 100644 --- a/Assets/Scripts/Core/Graph Tasks/SendEventToUnit.cs +++ b/Assets/Scripts/Core/Graph Tasks/SendEventToUnit.cs @@ -27,32 +27,29 @@ namespace Reset.Units { //This is called once each time the task is enabled. //Call EndAction() to mark the action as finished, either in success or failure. //EndAction can be called from anywhere. - protected override void OnExecute() { + protected override void OnExecute(){ + Unit targetUnit = target.value.GetComponent(); + + try { + if (targetUnit != null) { + if (target.value.GetComponent().UnitIsNetworked()) { + targetUnit.DoGraphEventRpc(eventToSend); + } else { + targetUnit.GetComponent().SendEvent("eventToSend"); + } + } + } catch (Exception e) { + Debug.LogError($"Failed to send event {eventToSend} to {target}: {e.Message}"); + } + EndAction(true); } //Called once per frame while the action is active. protected override void OnUpdate(){ - try { - if (target.value.GetComponent().UnitIsNetworked()) { - ulong targetID = (target.value.GetComponent()).NetworkObjectId; - - SendEventRpc(agent.RpcTarget.Single(targetID, RpcTargetUse.Temp)); - } else { - target.value.GetComponent().SendEvent("eventToSend"); - } - } catch (Exception e) { - Debug.LogError($"Failed to send event {eventToSend} to {target}: {e.Message}"); - } } - [Rpc(SendTo.SpecifiedInParams)] - void SendEventRpc(RpcParams rpcParams = default){ - target.value.GetComponent().SendEvent("eventToSend"); - Debug.Log(""); - } - //Called when the task is disabled. protected override void OnStop() { diff --git a/Assets/Scripts/Core/Interfaces/IInteractable.cs b/Assets/Scripts/Core/Interfaces/IInteractable.cs index d0e77e1..46f5c30 100644 --- a/Assets/Scripts/Core/Interfaces/IInteractable.cs +++ b/Assets/Scripts/Core/Interfaces/IInteractable.cs @@ -6,3 +6,4 @@ public interface IInteractable{ public void CancelInteract(); public void OnObserverDetected(EnvironmentObserver observer); } + diff --git a/Assets/Scripts/Units/Player.cs b/Assets/Scripts/Units/Player.cs index 1b61ad8..4b44c4a 100644 --- a/Assets/Scripts/Units/Player.cs +++ b/Assets/Scripts/Units/Player.cs @@ -1,24 +1,28 @@ -using System; using System.Collections; using Drawing; -using Reset; using Reset.Core; -using Reset.Core.Tools; -using Reset.Units; -using UnityEngine; using Sirenix.OdinInspector; -using Sirenix.Serialization; +using UnityEngine; using Unity.Netcode; namespace Reset.Units{ - public class Player : Unit, IKillable{ + public class Player : Unit, IKillable, IInteractable{ [HideInInspector] public PlayerControls controls; + + public float maxHealth{ get; set; } + public float currentHealth{ get; set; } - float IKillable.maxHealth{ get; set; } - float IKillable.currentHealth{ get; set; } + public NetworkVariable _isDowned; + + public bool IsDowned => _isDowned.Value; + + private float timeDowned; + + public GameObject pickupTarget; void Awake(){ controls = GetComponent(); + maxHealth = 20f; } public void Attach(){ @@ -47,6 +51,14 @@ namespace Reset.Units{ public override void UnitUpdate(){ GetComponent().DrawHealthDebug(); + + if (IsDowned) { + timeDowned += 1f * Time.deltaTime; + } + + if (timeDowned > 5f) { + Kill(); + } } public void TakeDamage(DamageSource[] sources){ @@ -58,14 +70,107 @@ namespace Reset.Units{ public void TakeDamage(DamageSource source){ ((IKillable)this).currentHealth -= source.damageDealt; + if (UnitIsNetworked()) { + SetNewHealthRpc(currentHealth); + } + + + } + + // TODO: Move somewhere not stupid so there's not an identical method in Enemy.cs + [Rpc(SendTo.Everyone)] + public void SetNewHealthRpc(float health){ + currentHealth = health; + + // NOTE: only here for testing. Move out of here into some "post damage" check method if (((IKillable)this).currentHealth <= 0) { - Kill(); + // if (UnitIsNetworked()) { + Down(); + // } else { + // Kill(); + // } } } - public void Kill(){ - throw new NotImplementedException(); + public override void SetNewPosition(Vector3 position){ + var contr = GetComponent(); + contr.enabled = false; + + transform.position = position; + + contr.enabled = true; } + public void Down(){ + Graph.SendEvent("Downed"); + } + + public void Kill(){ + Graph.SendEvent("Killed"); + } + + public void Interact(){ + // Check if the other player can be interacted with at all + if (pickupTarget&& pickupTarget.GetComponent().CanInteract()) { + // Tell the local player to start picking up the ally and switch states + Graph.SendEvent("Picking Up Ally"); + + // Tell the target player to start getting picked up. + pickupTarget.GetComponent().StartPickupRpc(); + + // Wait for the pickup timer to finish + StartCoroutine(PickupTimer()); + } + } + + [Rpc(SendTo.Owner)] + public void StartPickupRpc(){ + // When picked up by another player, move into the pick up state + // TODO: Turn all these send events into a goddamn task maybe? State stuff should happen in the state machine. Concurrent stuff should happen in code + Graph.SendEvent("Pick Up Start"); + } + + IEnumerator PickupTimer(){ + // Start a timer and wait for it to complete + float elapsed = 0f; + + while (elapsed < 7f) { + elapsed += 1f * Time.deltaTime; + + + + yield return null; + } + + Graph.SendEvent("Pick Up Success"); + } + + public bool CanInteract(){ + return IsDowned; + } + + public void CancelInteract(){ + Graph.SendEvent("Pick Up Failed"); + } + + public void OnObserverDetected(EnvironmentObserver observer){ + // Try and get a Player component from the current hit object + // The rest of the logic will continue as expected so long as an + pickupTarget = observer.hit.collider.gameObject; + DrawInteractStatus(); + } + + void DrawInteractStatus(){ + using (Draw.WithColor(Color.blue)) { + Draw.ingame.Label2D(transform.position + Vector3.up * 2.5f, "Interactable", + Color.orchid); + } + } + + void LateUpdate(){ + // Clear the pickupTarget every frame + // NOTE: Will this work online? + pickupTarget = null; + } } } \ No newline at end of file diff --git a/Assets/Scripts/Units/PlayerEnvironmentManager.cs b/Assets/Scripts/Units/PlayerEnvironmentManager.cs index 14794bc..867ef79 100644 --- a/Assets/Scripts/Units/PlayerEnvironmentManager.cs +++ b/Assets/Scripts/Units/PlayerEnvironmentManager.cs @@ -157,7 +157,8 @@ public class EnvironmentObserver{ } if (hit.transform != null) { - if (hit.transform.GetComponent() != null) { + IInteractable interactable = hit.transform.GetComponent(); + if (interactable != null && interactable.CanInteract()) { hit.transform.GetComponent().OnObserverDetected(this); } return true; diff --git a/Assets/Scripts/Units/Unit.cs b/Assets/Scripts/Units/Unit.cs index 2d169ea..ea590af 100644 --- a/Assets/Scripts/Units/Unit.cs +++ b/Assets/Scripts/Units/Unit.cs @@ -2,16 +2,54 @@ using System.Collections; using System.Threading.Tasks; using Drawing; +using NodeCanvas.BehaviourTrees; +using NodeCanvas.Framework; +using NodeCanvas.StateMachines; using Reset; using Reset.Units; +using Unity.Collections; using Unity.Netcode; using UnityEngine; namespace Reset.Units{ - public class Unit : NetworkBehaviour{ + public class Unit : NetworkBehaviour, INetworkSerializeByMemcpy{ + + public string state; + + public NetworkVariable testSTate; + + private FSMOwner fsm; + + private UnitMovementHandler _movement; + internal UnitMovementHandler Movement{ + get{ + if (!_movement) { + _movement = GetComponent(); + } + + return _movement; + } + } + + private GraphOwner _graph; + internal GraphOwner Graph{ + get{ + if (!_graph) { + _graph = GetComponent(); + } + + return _graph; + } + } + + private void Awake(){ + fsm = GetComponent(); + } + public virtual void Start(){ UnitStart(); } + public virtual void UnitStart(){ } @@ -36,10 +74,17 @@ namespace Reset.Units{ UnitUpdate(); } + + public virtual void SetNewPosition(Vector3 position){ } public virtual void UnitUpdate(){ } void UpdateGizmos(){ + DrawOnlineStatusGizmo(); + DrawStateGizmo(); + } + + private void DrawOnlineStatusGizmo(){ string onlineStatus = "Not Online"; Color onlineColor = Color.gray; @@ -55,10 +100,44 @@ namespace Reset.Units{ Draw.ingame.Label2D(transform.position + Vector3.up * 2.5f, onlineStatus, onlineColor); } + + private void DrawStateGizmo(){ + if (fsm && UnitIsLocal()) { + testSTate.Value = fsm.currentRootStateName; + // if (UnitIsNetworked()) { + // // state = fsm.currentRootStateName; + // SendStateInformationRpc(fsm.currentRootStateName); + // } else { + // state = fsm.currentRootStateName; + // } + } else { + fsm = GetComponent(); + } + + // state = state.ToString().ToUpper(); + + try { + Draw.ingame.Label2D(transform.position + Vector3.up * 2.7f, testSTate.Value.ToString(), Color.red); + } catch (Exception e) { + Debug.LogError(e.Message); + } + } + + [Rpc(SendTo.Everyone)] + public void SendStateInformationRpc(string newState){ + Debug.Log($"newstate! {newState}"); + state = newState; + } + [Rpc(SendTo.Owner)] public void TakeOwnershipRpc(ulong clientID){ GetComponent().ChangeOwnership(clientID); } + + [Rpc(SendTo.Owner)] + public void DoGraphEventRpc(string eventToSend){ + Debug.Log(eventToSend); + GetComponent().SendEvent(eventToSend); } } } \ No newline at end of file