From eb1622d4ed9aa66701831be5b12606f13d8a5d9e Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 22 Oct 2025 11:24:51 -0400 Subject: [PATCH] added: revive ui bar --- .../Scripts/Core/Graph Tasks/DrawReviveBar.cs | 49 +++++++++++++++++++ .../Core/Graph Tasks/DrawReviveBar.cs.meta | 2 + Assets/Scripts/Units/Player.cs | 23 +++++++++ 3 files changed, 74 insertions(+) create mode 100644 Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs create mode 100644 Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs.meta diff --git a/Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs b/Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs new file mode 100644 index 0000000..db488bf --- /dev/null +++ b/Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs @@ -0,0 +1,49 @@ +using Drawing; +using NodeCanvas.Framework; +using ParadoxNotion.Design; +using Reset.Units; +using Unity.Mathematics; +using Unity.Netcode; +using UnityEngine; + + +namespace NodeCanvas.Tasks.Actions { + [Category("Reset/Temporary")] + public class DrawReviveBar : ActionTask { + + //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() { + return null; + } + + //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(){ + // using (Draw.WithColor(Color.forestGreen)){ + + + // EndAction(true); + // } + } + + //Called once per frame while the action is active. + protected override void OnUpdate(){ + agent.GetComponent().persistDrawingRevive = .5f; + agent.GetComponent().DrawReviveBarRpc(elapsedTime); + } + + + + //Called when the task is disabled. + protected override void OnStop() { + + } + + //Called when the task is paused. + protected override void OnPause() { + + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs.meta b/Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs.meta new file mode 100644 index 0000000..d4c94d8 --- /dev/null +++ b/Assets/Scripts/Core/Graph Tasks/DrawReviveBar.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3344c25cfd59ce44dbd4e72bddf0fd68 \ No newline at end of file diff --git a/Assets/Scripts/Units/Player.cs b/Assets/Scripts/Units/Player.cs index 6ebd375..9879789 100644 --- a/Assets/Scripts/Units/Player.cs +++ b/Assets/Scripts/Units/Player.cs @@ -149,6 +149,29 @@ namespace Reset.Units{ Color.orchid); } } + + [Rpc(SendTo.Everyone)] + public void DrawReviveBarRpc(float elapsedTime){ + Debug.Log("test is drawn"); + using (Draw.ingame.WithLineWidth(5f)) { + using (Draw.InLocalSpace(transform)){ + float width = .9f; + float widthDone = width * elapsedTime / 5f; + + widthDone = Mathf.Clamp(widthDone, 0, width); + + Vector3 pos = Vector3.up * 1.8f + Vector3.left * width + Vector3.forward * .01f; + Draw.ingame.Line(Camera.main.transform.rotation * pos, Camera.main.transform.rotation * + (pos + Vector3.right * width * 2f), Color.rebeccaPurple); + + Vector3 donePos = Vector3.up * 1.8f + Vector3.left * widthDone; + Draw.ingame.Line(Camera.main.transform.rotation * donePos, Camera.main.transform.rotation * + (donePos + Vector3.right * widthDone * 2f), Color.red); + } + } + + lastKnownReviveTime = elapsedTime; + } void LateUpdate(){ // Clear the pickupTarget every frame