diff --git a/Assets/Enemies/Common/Graphs/BasicEnemyFSM.asset b/Assets/Enemies/Common/Graphs/BasicEnemyFSM.asset index 35f810c..e4f46ae 100644 --- a/Assets/Enemies/Common/Graphs/BasicEnemyFSM.asset +++ b/Assets/Enemies/Common/Graphs/BasicEnemyFSM.asset @@ -16,7 +16,7 @@ MonoBehaviour: Stand-by","_position":{"x":83.0,"y":289.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"1"},{"_onEnterList":{"executionMode":1,"actions":[{"moveSpeed":{"label":"Move Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"newSpeed":{},"absolute":{},"relativity":{},"$type":"Reset.Units.SetNewSpeed"},{"log":{"_value":"!?"},"secondsToRun":3.0,"verboseMode":2,"$type":"NodeCanvas.Tasks.Actions.DebugLogText"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[]},"foldEnter":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Detect","_position":{"x":486.012,"y":-16.01074},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"2"},{"_actionList":{"executionMode":1,"actions":[{"log":{"_value":"Entering Combat!"},"$type":"NodeCanvas.Tasks.Actions.DebugLogText"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Enter - Combat","_position":{"x":756.0,"y":-110.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"3"},{"_nestedFSM":{"_value":1},"_variablesMap":[{"_targetSubGraphVariableID":"7222df40-dd9e-41ce-a85a-a5221009180e","_canWrite":true,"_type":"UnityEngine.Animator","_name":"testModelAnimator","_targetVariableID":"2a36b4ca-c66b-4748-9a01-d054a460e3d3"},{"_targetSubGraphVariableID":"00b78a8a-fb9e-44d0-b9a8-81c6992abd41","_canWrite":true,"_type":"UnityEngine.Animator","_name":"bodyAnimator","_targetVariableID":"596577fd-def2-446f-855c-d366b7f6cc67"}],"_name":"In + Combat","_position":{"x":757.0,"y":-95.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"3"},{"_nestedFSM":{"_value":1},"_variablesMap":[],"_name":"In Combat","_position":{"x":969.3454,"y":362.9611},"$type":"NodeCanvas.StateMachines.NestedFSMState","$id":"4"},{"_actionList":{"executionMode":1,"actions":[{"$type":"Reset.Units.SetWanderingPath"},{"minValue":{"_value":2.0},"maxValue":{"_value":7.0},"floatVariable":{"_name":"_newSpeed"},"$type":"NodeCanvas.Tasks.Actions.SetFloatRandom"},{"moveSpeed":{"label":"Move Speed","changeValue":{"_value":1},"value":{"_name":"_newSpeed"},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"newSpeed":{"_name":"_newSpeed"},"absolute":{},"relativity":{},"$type":"Reset.Units.SetNewSpeed"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Get New Wandering Path","_position":{"x":-134.0,"y":112.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"5"}],"connections":[{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.StateMachines.FSMConnection"},{"_condition":{"eventName":{"_value":"New @@ -32,7 +32,7 @@ MonoBehaviour: _version: 3.31 _category: _comments: - _translation: {x: 219, y: 300} + _translation: {x: 211, y: 477} _zoomFactor: 1 _haltSerialization: 0 _externalSerializationFile: {fileID: 0} diff --git a/Assets/Enemies/TestEnemy/Graphs/TestEnemyCombatFSM.asset b/Assets/Enemies/TestEnemy/Graphs/TestEnemyCombatFSM.asset index a3d9d33..7e7f1e2 100644 --- a/Assets/Enemies/TestEnemy/Graphs/TestEnemyCombatFSM.asset +++ b/Assets/Enemies/TestEnemy/Graphs/TestEnemyCombatFSM.asset @@ -14,7 +14,7 @@ MonoBehaviour: m_EditorClassIdentifier: NodeCanvas::NodeCanvas.StateMachines.FSM _serializedGraph: '{"type":"NodeCanvas.StateMachines.FSM","nodes":[{"_actionList":{"executionMode":1,"actions":[{"pauseIntervalRange":{"_value":{"x":1.0,"y":3.0}},"unpauseIntervalRange":{"_value":{"x":1.0,"y":3.0}},"speedRange":{"_value":{"x":1.0,"y":3.0}},"speedChangeIntervalRange":{"_value":{"x":1.0,"y":3.0}},"speedSmoothing":{"_value":0.5},"strafeDirectionChangeInterval":{"_value":{"x":1.0,"y":3.0}},"directionSmoothing":{"_value":0.5},"$type":"Reset.Units.CircleTarget"}]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Circling Movement","_position":{"x":589.0,"y":145.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"0"},{"_name":"Try - to Attack","_position":{"x":805.0,"y":384.0},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"1"},{"_nestedBT":{"_value":1},"executionMode":0,"_variablesMap":[{"_targetSubGraphVariableID":"c96d2e2b-e09d-4abc-a287-3e6821b42c4b","_canWrite":true,"_type":"UnityEngine.Animator","_name":"bodyAnimator","_targetVariableID":"00b78a8a-fb9e-44d0-b9a8-81c6992abd41"}],"_position":{"x":1007.0,"y":208.0},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"2"},{"_onEnterList":{"executionMode":1,"actions":[{"value":{"_value":true},"$type":"Reset.Units.TogglePathfinding"},{"target":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"$type":"Reset.Units.SetNewPathfindingPath"}]},"_onUpdateList":{"executionMode":1,"actions":[]},"_onExitList":{"executionMode":1,"actions":[{"value":{},"$type":"Reset.Units.TogglePathfinding"}]},"foldEnter":true,"foldExit":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Walk + to Attack","_position":{"x":805.0,"y":384.0},"$type":"NodeCanvas.StateMachines.EmptyState","$id":"1"},{"_nestedBT":{"_value":1},"executionMode":0,"_variablesMap":[{"_targetSubGraphVariableID":"c96d2e2b-e09d-4abc-a287-3e6821b42c4b","_canWrite":true,"_type":"UnityEngine.Animator","_name":"bodyAnimator","_targetVariableID":"00b78a8a-fb9e-44d0-b9a8-81c6992abd41"}],"_position":{"x":1006.0,"y":208.0},"$type":"NodeCanvas.StateMachines.NestedBTState","$id":"2"},{"_onEnterList":{"executionMode":1,"actions":[{"value":{"_value":true},"$type":"Reset.Units.TogglePathfinding"},{"target":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"$type":"Reset.Units.SetNewPathfindingPath"}]},"_onUpdateList":{"executionMode":1,"actions":[{"target":{"_name":"target","_targetVariableID":"4a2889be-2a8a-4a68-ab49-fa456e2c9a19"},"useTimer":true,"$type":"Reset.Units.SetNewPathfindingPath"}]},"_onExitList":{"executionMode":1,"actions":[{"value":{},"$type":"Reset.Units.TogglePathfinding"}]},"foldEnter":true,"foldUpdate":true,"foldExit":true,"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Walk To Target","_position":{"x":306.0,"y":-148.0},"$type":"NodeCanvas.StateMachines.SuperActionState","$id":"3"},{"_actionList":{"executionMode":1,"actions":[]},"_color":{"r":1.0,"g":0.42,"b":0.32,"a":1.0},"_name":"Target Too Close","_position":{"x":318.0,"y":369.0},"$type":"NodeCanvas.StateMachines.ActionState","$id":"4"},{"_conditionList":{"conditions":[]},"_actionList":{"executionMode":1,"actions":[{"facingDirection":{"label":"Facing Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.UnitFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation @@ -29,7 +29,7 @@ MonoBehaviour: _version: 3.31 _category: _comments: - _translation: {x: 294, y: 427} + _translation: {x: 230, y: 392} _zoomFactor: 1 _haltSerialization: 0 _externalSerializationFile: {fileID: 0} diff --git a/Assets/Scripts/Units/Graph Tasks/SetNewPathfindingPath.cs b/Assets/Scripts/Units/Graph Tasks/SetNewPathfindingPath.cs index 3ab72d5..d7c610f 100644 --- a/Assets/Scripts/Units/Graph Tasks/SetNewPathfindingPath.cs +++ b/Assets/Scripts/Units/Graph Tasks/SetNewPathfindingPath.cs @@ -11,6 +11,9 @@ namespace Reset.Units { public class SetNewPathfindingPath : ActionTask{ public BBParameter target; + public bool useTimer; + public BBParameter timeToRepath; + //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() { @@ -27,7 +30,11 @@ namespace Reset.Units { //EndAction can be called from anywhere. protected override void OnExecute() { agent.seeker.StartPath(agent.transform.position, target.value.transform.position, OnPathComplete); - + + if (useTimer) { + return; + } + EndAction(true); } @@ -39,7 +46,10 @@ namespace Reset.Units { //Called once per frame while the action is active. protected override void OnUpdate() { - + if (useTimer && elapsedTime > timeToRepath.value) { + agent.seeker.StartPath(agent.transform.position, target.value.transform.position, OnPathComplete); + EndAction(); + } } //Called when the task is disabled.