From 631627009bc7118cbfdf8823024b9a69807f2654 Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 16 Jan 2026 17:42:34 -0500 Subject: [PATCH] feat: update shuriken behaviour shuriken now rotates better goes towards both target and nothing if no target hitbox spawns in right location --- .../TestShuriken/TestShurikenAttack.asset | 14 +++--- Assets/Scripts/Items/Weapons/ShurikenActor.cs | 48 ++++++++++++++++--- 2 files changed, 49 insertions(+), 13 deletions(-) diff --git a/Assets/Player/Attacks/TestShuriken/TestShurikenAttack.asset b/Assets/Player/Attacks/TestShuriken/TestShurikenAttack.asset index 777b48e..7e54642 100644 --- a/Assets/Player/Attacks/TestShuriken/TestShurikenAttack.asset +++ b/Assets/Player/Attacks/TestShuriken/TestShurikenAttack.asset @@ -13,22 +13,24 @@ MonoBehaviour: m_Name: TestShurikenAttack m_EditorClassIdentifier: NodeCanvas::NodeCanvas.BehaviourTrees.BehaviourTree _serializedGraph: '{"type":"NodeCanvas.BehaviourTrees.BehaviourTree","nodes":[{"_position":{"x":-215.9104,"y":-492.4742},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"0"},{"_action":{"actions":[{"facingDirection":{"label":"Facing - Direction","value":{"_value":{"$content":3,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation - Speed","changeValue":{"_value":1},"value":{"_value":0.5},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"moveSpeed":{"label":"Move + Direction","value":{"_value":{"$content":0,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation + Speed","changeValue":{"_value":1},"value":{"_value":10.0},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"moveSpeed":{"label":"Move Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":10.0},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"parameter":{"_value":"Attack"},"parameterHashID":{},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"saveAs":{"_name":"_self"},"$type":"NodeCanvas.Tasks.Actions.GetSelf"},{"damage":{"_value":10.0},"source":{"_name":"_self"},"outputDamageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.CreateDamageSource"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-548.4763,"y":-247.9589},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"1"},{"_condition":{"eventName":{"_value":"Weapon Release"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_position":{"x":-247.0,"y":-257.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"2"},{"_action":{"actions":[{"target":{"_name":"_target"},"$type":"Reset.Units.GetCurrentTarget"},{"variable":{"_value":"target"},"value":{"_name":"_target"},"$type":"Reset.Items.SetWeaponActorVariable"},{"weaponEvent":{"_value":"Set Target"},"$type":"Reset.Items.SendWeaponActorEvent"},{"weaponEvent":{"_value":"Fly To Target"},"$type":"Reset.Items.SendWeaponActorEvent"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-290.0,"y":-131.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"3"},{"_condition":{"variable":{"_value":"state"},"value":{"_value":"At Target"},"$type":"Reset.Items.CheckWeaponActorVariable`1[[System.String, mscorlib, - Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"_position":{"y":-252.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"4"},{"policy":1,"_position":{"x":114.1325,"y":-7.008179},"$type":"NodeCanvas.BehaviourTrees.Parallel","$id":"5"},{"_action":{"waitTime":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.Wait"},"_position":{"x":31.93254,"y":116.2722},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"6"},{"repeaterMode":2,"repeatTimes":{"_value":1},"_position":{"x":162.1885,"y":116.1349},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"7"},{"_position":{"x":280.3257,"y":221.2572},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"8"},{"_action":{"variable":{"_value":"position"},"saveValueTo":{"_name":"_weaponPosition"},"$type":"Reset.Items.GetWeaponActorVariable`1[[UnityEngine.Vector3, - UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},"_position":{"x":-82.0,"y":331.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"9"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"z":1.0}},"layerMask":{"_value":{"value":128}},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":186.4656,"y":325.1814},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"10"},{"_action":{"actions":[{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":190.3937,"y":413.1797},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"11"},{"_action":{"waitTime":{"_value":0.1},"$type":"NodeCanvas.Tasks.Actions.Wait"},"_position":{"x":400.4654,"y":329.3828},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"12"},{"_action":{"weaponEvent":{"_value":"Fly + Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"_position":{"y":-252.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"4"},{"policy":1,"_position":{"x":114.1325,"y":-7.008179},"$type":"NodeCanvas.BehaviourTrees.Parallel","$id":"5"},{"_action":{"waitTime":{"_value":1.0},"$type":"NodeCanvas.Tasks.Actions.Wait"},"_position":{"x":31.93254,"y":116.2722},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"6"},{"repeaterMode":2,"repeatTimes":{"_value":1},"_position":{"x":162.1885,"y":116.1349},"$type":"NodeCanvas.BehaviourTrees.Repeater","$id":"7"},{"_position":{"x":280.3257,"y":221.2572},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"8"},{"_action":{"actions":[{"variable":{"_value":"relativePosition"},"saveValueTo":{"_name":"_weaponPosition"},"$type":"Reset.Items.GetWeaponActorVariable`1[[UnityEngine.Vector3, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"variable":{"_value":"relativeOffset"},"saveValueTo":{"_name":"_weaponOffset"},"$type":"Reset.Items.GetWeaponActorVariable`1[[UnityEngine.Vector3, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-82.0,"y":330.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"9"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_name":"_weaponPosition"},"offset":{"_name":"_weaponOffset"},"layerMask":{"_value":{"value":128}},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":187.4656,"y":325.1814},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"10"},{"_action":{"actions":[{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":190.3937,"y":413.1797},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"11"},{"_action":{"waitTime":{"_value":0.1},"$type":"NodeCanvas.Tasks.Actions.Wait"},"_position":{"x":400.4654,"y":329.3828},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"12"},{"_action":{"weaponEvent":{"_value":"Fly To Hand"},"$type":"Reset.Items.SendWeaponActorEvent"},"_position":{"x":343.6353,"y":-249.7256},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"13"},{"_condition":{"variable":{"_value":"state"},"value":{"_value":"At Hand"},"$type":"Reset.Items.CheckWeaponActorVariable`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"},"_position":{"x":622.0,"y":-248.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"14"},{"_action":{"actions":[{"facingDirection":{"label":"Facing Direction","value":{"_value":{"$content":3,"$type":"Reset.Units.PlayerFacingDirection"}},"changeValue":{"_value":1}},"rotationSpeed":{"label":"Rotation Speed","changeValue":{"_value":1},"value":{"_value":0.5},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeRotationSettings"},{"moveSpeed":{"label":"Move Speed","changeValue":{"_value":1},"value":{},"_changeSmoothing":{"_value":1},"_smoothing":{"_value":10.0},"_changeEasing":{},"_easing":{}},"acceleration":{"label":"Acceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"deacceleration":{"label":"Deacceleration","changeValue":{},"value":{},"_changeSmoothing":{},"_smoothing":{},"_changeEasing":{},"_easing":{}},"$type":"Reset.Units.ChangeMoveSpeedSettings"},{"waitTime":{"_value":0.5},"$type":"NodeCanvas.Tasks.Actions.Wait"},{"weaponEvent":{"_value":"Return - To Hand"},"$type":"Reset.Items.SendWeaponActorEvent"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":651.0,"y":-136.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"15"},{"_condition":{"eventName":{"_value":"Weapon + To Hand"},"$type":"Reset.Items.SendWeaponActorEvent"},{"valueA":{"_name":"_target"},"valueB":{"_name":""},"$type":"NodeCanvas.Tasks.Actions.SetVariable`1[[UnityEngine.GameObject, + UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":651.0,"y":-137.0},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"15"},{"_condition":{"eventName":{"_value":"Weapon Catch"},"$type":"NodeCanvas.Tasks.Conditions.CheckEvent"},"_position":{"x":947.0,"y":-223.0},"$type":"NodeCanvas.BehaviourTrees.WaitUntil","$id":"16"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"z":1.0}},"layerMask":{"_value":{"value":128}},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":929.9234,"y":-102.9978},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"17"},{"_action":{"actions":[{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"},{"unitsToDrag":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"dragTime":{"_name":"dragTime","_targetVariableID":"3955e75d-5905-4d99-ae5b-4feb671ac8bb"},"$type":"Reset.Units.DragUnits"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":935.8549,"y":10.98535},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"18"},{"_position":{"x":-1697.86,"y":1169.414},"$type":"NodeCanvas.BehaviourTrees.Sequencer","$id":"19"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"z":1.0}},"layerMask":{"_value":{"value":128}},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":-1774.285,"y":1622.241},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"20"},{"_action":{"actions":[{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"},{"unitsToDrag":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"dragTime":{"_name":"dragTime","_targetVariableID":"3955e75d-5905-4d99-ae5b-4feb671ac8bb"},"$type":"Reset.Units.DragUnits"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-1768.353,"y":1735.225},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"21"},{"_action":{"actions":[{"parameter":{"_value":"Melee"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"9de2ef67-d7a9-49dc-936e-63ede27a131b"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"waitTime":{"_value":0.3},"$type":"NodeCanvas.Tasks.Actions.Wait"},{"targetList":{"_name":"draggedEnemies","_targetVariableID":"efe1a2b3-c11f-47b5-a1de-99e42e65be5f"},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ClearList"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-1553.285,"y":1576.241},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"22"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"z":1.0}},"layerMask":{"_value":{"value":128}},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":-1326.285,"y":1618.241},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"23"},{"_action":{"actions":[{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"},{"unitsToDrag":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"dragTime":{"_name":"dragTime","_targetVariableID":"3955e75d-5905-4d99-ae5b-4feb671ac8bb"},"$type":"Reset.Units.DragUnits"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-1320.353,"y":1731.225},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"24"},{"_action":{"actions":[{"parameter":{"_value":"Melee"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"9de2ef67-d7a9-49dc-936e-63ede27a131b"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"waitTime":{"_value":0.3},"$type":"NodeCanvas.Tasks.Actions.Wait"},{"targetList":{"_name":"draggedEnemies","_targetVariableID":"efe1a2b3-c11f-47b5-a1de-99e42e65be5f"},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ClearList"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-1104.285,"y":1567.241},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"25"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"z":1.0}},"layerMask":{"_value":{"value":128}},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":-881.2848,"y":1609.241},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"26"},{"_action":{"actions":[{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"},{"unitsToDrag":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"dragTime":{"_name":"dragTime","_targetVariableID":"3955e75d-5905-4d99-ae5b-4feb671ac8bb"},"$type":"Reset.Units.DragUnits"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-875.3533,"y":1723.225},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"27"},{"_action":{"actions":[{"parameter":{"_value":"Melee"},"parameterHashID":{},"overrideAgent":{"_type":"UnityEngine.Animator","_name":"modelAnimator","_targetVariableID":"9de2ef67-d7a9-49dc-936e-63ede27a131b"},"$type":"NodeCanvas.Tasks.Actions.MecanimSetTrigger"},{"waitTime":{"_value":0.2},"$type":"NodeCanvas.Tasks.Actions.Wait"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ClearList"},{"targetList":{"_name":"draggedEnemies","_targetVariableID":"efe1a2b3-c11f-47b5-a1de-99e42e65be5f"},"_isDisabled":true,"$type":"NodeCanvas.Tasks.Actions.ClearList"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-667.2848,"y":1567.241},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"28"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"z":1.0}},"layerMask":{},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":-916.1649,"y":2047.202},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"29"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"current":{"_type":"UnityEngine.Collider","_name":"_hitCurrentElement"},"storeIndex":{"_name":"_index"},"maxIteration":{"_value":-1},"_position":{"x":-880.1649,"y":2167.202},"$type":"NodeCanvas.BehaviourTrees.Iterator","$id":"30"},{"_action":{"actions":[{"targetList":{"_name":"draggedEnemies","_targetVariableID":"efe1a2b3-c11f-47b5-a1de-99e42e65be5f"},"targetElement":{"_name":"_hitCurrentElement"},"$type":"NodeCanvas.Tasks.Actions.AddElementToList`1[[UnityEngine.Collider, UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-1018.165,"y":2293.202},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"31"},{"conditionFailReturn":1,"_condition":{"castType":{"_value":1},"length":{"_value":1.0},"direction":{"_value":{"z":1.0}},"offset":{"_value":{"z":1.0}},"layerMask":{},"width":{},"size":{"_value":{"x":2.5,"y":2.5,"z":2.5}},"rotation":{},"drawGizmos":true,"drawGizmosOnlyWhenActive":true,"outputHit":{"_name":"_hit"},"outputHitArray":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"$type":"Reset.CheckGenericObserver"},"_position":{"x":-1382.271,"y":2063.197},"$type":"NodeCanvas.BehaviourTrees.ConditionalEvaluator","$id":"32"},{"targetList":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"current":{"_type":"UnityEngine.Collider","_name":"_hitCurrentElement"},"storeIndex":{"_name":"_index"},"maxIteration":{"_value":-1},"_position":{"x":-1346.271,"y":2183.197},"$type":"NodeCanvas.BehaviourTrees.Iterator","$id":"33"},{"_action":{"actions":[{"targetList":{"_name":"draggedEnemies","_targetVariableID":"efe1a2b3-c11f-47b5-a1de-99e42e65be5f"},"targetElement":{"_name":"_hitCurrentElement"},"$type":"NodeCanvas.Tasks.Actions.AddElementToList`1[[UnityEngine.Collider, UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]"},{"targets":{"_name":"hitTargets","_targetVariableID":"0e35b4ec-628d-4911-9e92-0c05d0b928ec"},"damageSource":{"_name":"attackDamageSource","_targetVariableID":"93af52d4-3d5f-41a9-aadb-fbeb60d44b08"},"$type":"Reset.Core.DealDamage"}],"$type":"NodeCanvas.Framework.ActionList"},"_position":{"x":-1484.271,"y":2308.194},"$type":"NodeCanvas.BehaviourTrees.ActionNode","$id":"34"}],"connections":[{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"1"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"2"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"4"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"13"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"14"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"0"},"_targetNode":{"$ref":"16"},"_isDisabled":true,"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"2"},"_targetNode":{"$ref":"3"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"4"},"_targetNode":{"$ref":"5"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"6"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"5"},"_targetNode":{"$ref":"7"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"7"},"_targetNode":{"$ref":"8"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"9"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"10"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"8"},"_targetNode":{"$ref":"12"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"10"},"_targetNode":{"$ref":"11"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"14"},"_targetNode":{"$ref":"15"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"16"},"_targetNode":{"$ref":"17"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"17"},"_targetNode":{"$ref":"18"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"20"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"22"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"23"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"25"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"26"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"19"},"_targetNode":{"$ref":"28"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"20"},"_targetNode":{"$ref":"21"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"23"},"_targetNode":{"$ref":"24"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"26"},"_targetNode":{"$ref":"27"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"29"},"_targetNode":{"$ref":"30"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"30"},"_targetNode":{"$ref":"31"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"32"},"_targetNode":{"$ref":"33"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"},{"_sourceNode":{"$ref":"33"},"_targetNode":{"$ref":"34"},"$type":"NodeCanvas.BehaviourTrees.BTConnection"}],"canvasGroups":[],"localBlackboard":{"_variables":{"draggedEnemies":{"_propertyPath":"UnitCombat.draggedUnits","_name":"draggedEnemies","_id":"efe1a2b3-c11f-47b5-a1de-99e42e65be5f","$type":"NodeCanvas.Framework.Variable`1[[System.Collections.Generic.List`1[[UnityEngine.Collider, @@ -44,7 +46,7 @@ MonoBehaviour: _version: 3.31 _category: _comments: - _translation: {x: 612, y: 383} + _translation: {x: 653, y: 814} _zoomFactor: 1 _haltSerialization: 0 _externalSerializationFile: {fileID: 0} diff --git a/Assets/Scripts/Items/Weapons/ShurikenActor.cs b/Assets/Scripts/Items/Weapons/ShurikenActor.cs index 686bc6a..ac5f30f 100644 --- a/Assets/Scripts/Items/Weapons/ShurikenActor.cs +++ b/Assets/Scripts/Items/Weapons/ShurikenActor.cs @@ -4,7 +4,9 @@ using System.Numerics; using Unity.Collections.LowLevel.Unsafe; using Unity.Services.Relay.Models; using UnityEngine; +using UnityEngine.Assertions.Must; using Quaternion = UnityEngine.Quaternion; +using Random = UnityEngine.Random; using Vector3 = UnityEngine.Vector3; namespace Reset.Items{ @@ -23,7 +25,8 @@ namespace Reset.Items{ private float rotateSpeed; private float rotateSpeedTarget; private float rotationAcceleration; - + private Quaternion targetRotation; + void Awake(){ // Register Weapon Events weaponEvents.Add("Set Target", SetTarget); @@ -33,14 +36,22 @@ namespace Reset.Items{ } void SetTarget(){ + target = null; + Debug.Log($"{weaponVariables["target"]}, {weaponVariables["target"] as GameObject}"); - target = (Transform)weaponVariables["target"]; + + if (weaponVariables["target"] != null) { + target = (weaponVariables["target"] as Transform); + } } void FlyToTarget(){ rotateSpeedTarget = 1200f; rotationAcceleration = 200f; RegisterWeaponVariable("state", "Flying To Target"); + + float randomRot = Random.Range(-90f, 180f); + targetRotation = transform.rotation * originalRotation * Quaternion.AngleAxis(randomRot, Vector3.up); originalParent = relatedObject.transform.parent; originalPosition = relatedObject.transform.localPosition; @@ -67,6 +78,8 @@ namespace Reset.Items{ relatedObject.transform.SetParent(originalParent); relatedObject.transform.localPosition = originalPosition; relatedObject.transform.localRotation = originalRotation; + + target = null; } void Start(){ @@ -75,13 +88,15 @@ namespace Reset.Items{ } void Update(){ + + if (target) { targetPosition = target.transform.position; } else { - targetPosition = Vector3.forward * 5f; + targetPosition = transform.position + transform.forward * 10f + Vector3.up; } - RegisterWeaponVariable("position", transform.position); + rotateSpeed = Mathf.Lerp(rotateSpeed, rotateSpeedTarget, rotationAcceleration * Time.deltaTime); bladeRing.transform.Rotate(Vector3.up * (rotateSpeed * Time.deltaTime)); @@ -90,7 +105,22 @@ namespace Reset.Items{ // Fly to the target if ((string)ReadWeaponVariable("state") == "Flying To Target") { - relatedObject.transform.position = Vector3.Lerp(relatedObject.transform.position, targetPosition, 5f * Time.deltaTime); + float offset = 9f; + + Vector3 startPos = relatedObject.transform.position; + Vector3 endPos = targetPosition; + + Vector3 center = (startPos + endPos) / 2f; + center -= new Vector3(0f, offset, 0f); + Vector3 relativeCenter = startPos - center; + Vector3 relativeEnd = endPos - center; + + relatedObject.transform.position = Vector3.Slerp(relativeCenter, relativeEnd, 5f * Time.deltaTime) + center; + relatedObject.transform.rotation = Quaternion.Lerp(relatedObject.transform.rotation, targetRotation, 5f * Time.deltaTime); + + + + // relatedObject.transform.position = Vector3.Slerp(relatedObject.transform.position, targetPosition, 5f * Time.deltaTime); // When there, set next stage if (Vector3.Distance(relatedObject.transform.position, targetPosition) < .5f) { @@ -102,13 +132,17 @@ namespace Reset.Items{ // Fly to the hand if ((string)ReadWeaponVariable("state") as string == "Flying To Hand") { - relatedObject.transform.position = Vector3.Lerp(relatedObject.transform.position, originalParent.transform.position, 5f * Time.deltaTime); + relatedObject.transform.position = Vector3.Slerp(relatedObject.transform.position, originalParent.transform.position, 5f * Time.deltaTime); + relatedObject.transform.rotation = Quaternion.Lerp(relatedObject.transform.rotation, originalParent.transform.rotation * originalRotation , 5f * Time.deltaTime); // When there, set as finished - if (Vector3.Distance(relatedObject.transform.position, originalParent.transform.position) < .5f) { + if (Vector3.Distance(relatedObject.transform.position, originalParent.transform.position) < .1f) { RegisterWeaponVariable("state", new string("At Hand")); } } + + RegisterWeaponVariable("relativePosition", relatedObject.transform.position - transform.position); + RegisterWeaponVariable("relativeOffset", new Vector3(0f, relatedObject.transform.position.y, Vector3.Distance(relatedObject.transform.position, transform.position))); } } } \ No newline at end of file