From 42fbffc4e56cfb084dc7428b1c93a1dc9c5e8df9 Mon Sep 17 00:00:00 2001 From: Chris Date: Sat, 4 Oct 2025 00:37:07 -0400 Subject: [PATCH] improv: better math for draggedUnits movement inheritance --- Assets/Scripts/Core/ValueGroupEditors.cs | 5 +++-- Assets/Scripts/Player/Combat/UnitCombat.cs | 10 +++++++++- Assets/Scripts/Player/Player.cs | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Core/ValueGroupEditors.cs b/Assets/Scripts/Core/ValueGroupEditors.cs index d293b2a..e20ea5b 100644 --- a/Assets/Scripts/Core/ValueGroupEditors.cs +++ b/Assets/Scripts/Core/ValueGroupEditors.cs @@ -1,10 +1,11 @@ -using NodeCanvas.Editor; +#if UNITY_EDITOR +using NodeCanvas.Editor; using ParadoxNotion.Design; using Reset.Core; using UnityEditor; using UnityEngine; -#if UNITY_EDITOR + public class BoolValueGroupDrawer : ObjectDrawer { public override BoolValueGroup OnGUI(GUIContent _content, BoolValueGroup _instance){ // Remove label for floats diff --git a/Assets/Scripts/Player/Combat/UnitCombat.cs b/Assets/Scripts/Player/Combat/UnitCombat.cs index a282d98..6cc022b 100644 --- a/Assets/Scripts/Player/Combat/UnitCombat.cs +++ b/Assets/Scripts/Player/Combat/UnitCombat.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Reset.Core.Tools; using Reset.Units; using UnityEngine; +using Random = UnityEngine.Random; public class UnitCombat : MonoBehaviour{ public List draggedUnits = new List(); @@ -14,6 +15,8 @@ public class UnitCombat : MonoBehaviour{ private float lastSpeed; private float speedDelta; + private float sinAmplitude; + private float sinOffset; void Awake(){ movement = GetComponent(); @@ -21,12 +24,17 @@ public class UnitCombat : MonoBehaviour{ void Start(){ lastPosition = transform.position; + sinOffset = Random.value; + sinAmplitude = 1 + Random.value / 4f; } // Update is called once per frame void Update(){ - positionDelta = lastPosition.DirectionTo(transform.position); + positionDelta = Vector3.Lerp(positionDelta, lastPosition.DirectionTo(transform.position), 5f * Time.deltaTime); speedDelta = Vector3.Distance(lastPosition, transform.position) / Time.deltaTime; + + float sinVal = Mathf.Sin(2f + sinOffset) * sinAmplitude; + speedDelta += sinVal; // Test speedDelta *= 1.0f; diff --git a/Assets/Scripts/Player/Player.cs b/Assets/Scripts/Player/Player.cs index 3754f02..995d434 100644 --- a/Assets/Scripts/Player/Player.cs +++ b/Assets/Scripts/Player/Player.cs @@ -12,7 +12,7 @@ using Unity.Netcode; public class Player : NetworkBehaviour, IKillable{ [HideInInspector] public PlayerControls controls; - [HideInInspector] public new PlayerCamera camera; + [HideInInspector] public PlayerCamera camera; float IKillable.maxHealth{ get; set; } float IKillable.currentHealth{ get; set; }