diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml
index 8a465ba1..21bb0b8a 100644
--- a/.gitea/workflows/main.yaml
+++ b/.gitea/workflows/main.yaml
@@ -57,6 +57,7 @@ jobs:
res://tests/
publish-report: false
upload-report: false
+ console-verbosity: 'normal'
arguments: "--verbose --headless --import"
- name: Upload test report
diff --git a/Movement tests.csproj b/Movement tests.csproj
index b0cf964c..3351515b 100644
--- a/Movement tests.csproj
+++ b/Movement tests.csproj
@@ -125,6 +125,8 @@
+
+
diff --git a/maps/_old/city.tscn b/maps/_old/city.tscn
index 363b4590..d117f534 100644
--- a/maps/_old/city.tscn
+++ b/maps/_old/city.tscn
@@ -20,7 +20,6 @@
[ext_resource type="PackedScene" uid="uid://b8aet6m4m2i83" path="res://scenes/tuto_trigger/TutoTrigger.tscn" id="16_qwuk2"]
[ext_resource type="Texture2D" uid="uid://com0lpfuol6vk" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_stick_r.svg" id="17_rmfv1"]
[ext_resource type="PackedScene" uid="uid://kktuyhbd5xgc" path="res://menus/scenes/overlaid_menus/tuto_got_sword.tscn" id="17_t0d86"]
-[ext_resource type="Texture2D" uid="uid://cjh5cnvdbq5ku" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_button_b_outline.svg" id="19_efsse"]
[ext_resource type="Texture2D" uid="uid://nrhxjdpuje3f" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_lt_outline.svg" id="20_crf87"]
[ext_resource type="Texture2D" uid="uid://dyjvbsvbriii4" path="res://assets/ui/input-prompts/Xbox Series/Vector/xbox_rb_outline.svg" id="23_p287n"]
[ext_resource type="PackedScene" uid="uid://c305mfrtumcyq" path="res://scenes/spawners/spawner.tscn" id="24_qwuk2"]
@@ -295,8 +294,6 @@ shape = SubResource("BoxShape3D_p287n")
[node name="TutoJump" parent="TutoTriggers" unique_id=1236312197 instance=ExtResource("16_qwuk2")]
transform = Transform3D(0.14133328, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133328, -0.32653046, 1.2493286, -50.374645)
-first_input_texture = ExtResource("16_2k3fr")
-second_input_texture = ExtResource("16_2k3fr")
tuto_text = "Double jump"
[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoJump" unique_id=1841634666]
@@ -305,8 +302,6 @@ shape = SubResource("BoxShape3D_5hbxb")
[node name="TutoDash" parent="TutoTriggers" unique_id=1813720328 instance=ExtResource("16_qwuk2")]
transform = Transform3D(0.14133328, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133328, 19.967693, 1.2493286, -47.47731)
-first_input_texture = ExtResource("16_crf87")
-second_input_texture = ExtResource("19_efsse")
tuto_text = "Dash"
[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoDash" unique_id=1004053358]
@@ -333,8 +328,6 @@ shape = SubResource("BoxShape3D_3wccx")
[node name="TutoDash2" parent="TutoTriggers" unique_id=1653612119 instance=ExtResource("16_qwuk2")]
transform = Transform3D(0.14133325, 0, 0.98996216, 0, 1, 0, -0.98996216, 0, 0.14133325, 28.885735, 27.749329, 25.360323)
-first_input_texture = ExtResource("19_efsse")
-complex_input_text = "against wall"
tuto_text = "Wall run"
[node name="CollisionShape3D" type="CollisionShape3D" parent="TutoTriggers/TutoDash2" unique_id=710186954]
diff --git a/tests/components/DamageComponentUnitTest.cs b/tests/components/DamageComponentUnitTest.cs
deleted file mode 100644
index 984a78c0..00000000
--- a/tests/components/DamageComponentUnitTest.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.interfaces;
-using Movementtests.systems.damage;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class DamageComponentUnitTest
-{
- [TestCase]
- public void DamageModifierAppliesWhenTypeMatches()
- {
- var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
- var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f);
- var signalTriggered = false;
- modifier.DamageTaken += (_, _) => signalTriggered = true;
-
- var result = modifier.TakeDamage(input);
-
- AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f);
- AssertBool(signalTriggered).IsTrue();
- }
-
- [TestCase]
- public void DamageModifierIgnoresWhenTypeDifferent()
- {
- var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
- var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f);
- var signalTriggered = false;
- modifier.DamageTaken += (_, _) => signalTriggered = true;
-
- var result = modifier.TakeDamage(input);
-
- AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
- AssertBool(signalTriggered).IsFalse(); // No damage actually taken
- }
-
- [TestCase]
- public void DamageableSumsAllModifiers()
- {
- var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f);
- var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f);
-
- var damageable = new CDamageable();
- damageable.DamageModifiers = new[] { mod1, mod2 };
- var signalTriggered = false;
- damageable.DamageTaken += (_, _) => signalTriggered = true;
-
- var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
- var result = damageable.TakeDamage(input);
-
- AssertFloat(result.Damage.DamageDealt).IsEqual(15.0f);
- AssertBool(signalTriggered).IsTrue();
- }
-
- [TestCase]
- public void ComputeDamageModifierAppliesWhenTypeMatches()
- {
- var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
- var modifier = new RDamageModifier(EDamageTypes.Normal, 2.0f);
- var signalTriggered = false;
- modifier.DamageTaken += (_, _) => signalTriggered = true;
-
- var result = modifier.ComputeDamage(input);
-
- AssertFloat(result.Damage.DamageDealt).IsEqual(20.0f);
- AssertBool(signalTriggered).IsFalse();
- }
- [TestCase]
- public void ComputeDamageModifierIgnoresWhenTypeDifferent()
- {
- var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
- var modifier = new RDamageModifier(EDamageTypes.Fire, 3.0f);
- var signalTriggered = false;
- modifier.DamageTaken += (_, _) => signalTriggered = true;
-
- var result = modifier.ComputeDamage(input);
-
- AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
- AssertBool(signalTriggered).IsFalse();
- }
- [TestCase]
- public void ComputeDamageableSumsAllModifiers()
- {
- var mod1 = new RDamageModifier(EDamageTypes.Normal, 1.0f);
- var mod2 = new RDamageModifier(EDamageTypes.Normal, 0.5f);
-
- var cDamageable = new CDamageable();
- cDamageable.DamageModifiers = new[] { mod1, mod2 };
- var signalTriggered = false;
- cDamageable.DamageTaken += (_, _) => signalTriggered = true;
-
- var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
- var result = cDamageable.ComputeDamage(input);
-
- AssertFloat(result.Damage.DamageDealt).IsEqual(15.0f);
- AssertBool(signalTriggered).IsFalse();
- }
-}
diff --git a/tests/components/DamageComponentUnitTest.cs.uid b/tests/components/DamageComponentUnitTest.cs.uid
deleted file mode 100644
index 1351834c..00000000
--- a/tests/components/DamageComponentUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://db6rva7uccppc
diff --git a/tests/components/HealthComponentUnitTest.cs b/tests/components/HealthComponentUnitTest.cs
deleted file mode 100644
index 63d1cb0e..00000000
--- a/tests/components/HealthComponentUnitTest.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.interfaces;
-using Movementtests.systems.damage;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class HealthComponentUnitTest
-{
- [TestCase]
- public void ReadyInitializesCurrentHealth()
- {
- var cHealth = new CHealth();
- cHealth.RHealth = new RHealth(150.0f);
- cHealth._Ready();
- AssertFloat(cHealth.CurrentHealth).IsEqual(150.0f);
- }
-
- [TestCase]
- public void ReduceHealthDecreasesAndDoesNotDeplete()
- {
- var cHealth = new CHealth();
- cHealth.RHealth = new RHealth(100.0f);
- cHealth.CurrentHealth = 100.0f;
-
- var damage = new DamageRecord(Vector3.Zero, new RDamage(25.0f, EDamageTypes.Normal));
- var record = cHealth.ReduceHealth(source: null!, damageRecord: damage);
-
- AssertFloat(cHealth.CurrentHealth).IsEqual(75.0f);
- AssertFloat(record.CurrentHealth).IsEqual(75.0f);
- AssertFloat(record.PreviousHealth).IsEqual(100.0f);
- AssertFloat(record.MaxHealth).IsEqual(100.0f);
- }
-
- [TestCase]
- public void ReduceHealthTriggersDepletionToZero()
- {
- var cHealth = new CHealth();
- cHealth.RHealth = new RHealth(50.0f);
- cHealth.CurrentHealth = 50.0f;
-
- bool depleted = false;
- cHealth.HealthDepleted += _ => depleted = true;
-
- var damage = new DamageRecord(Vector3.Zero, new RDamage(100.0f, EDamageTypes.Normal));
- var record = cHealth.ReduceHealth(source: null!, damageRecord: damage);
-
- AssertBool(depleted).IsTrue();
- AssertFloat(cHealth.CurrentHealth).IsEqual(0.0f);
- AssertFloat(record.CurrentHealth).IsEqual(-50.0f);
- AssertFloat(record.MaxHealth).IsEqual(50.0f);
- }
-}
diff --git a/tests/components/HealthComponentUnitTest.cs.uid b/tests/components/HealthComponentUnitTest.cs.uid
deleted file mode 100644
index 00cee7a1..00000000
--- a/tests/components/HealthComponentUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://bd52i51hncgmf
diff --git a/tests/components/KnockbackComponentUnitTest.cs b/tests/components/KnockbackComponentUnitTest.cs
deleted file mode 100644
index 605d7f75..00000000
--- a/tests/components/KnockbackComponentUnitTest.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.interfaces;
-using Movementtests.systems.damage;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class KnockbackComponentUnitTest
-{
- [TestCase]
- public void RegisterAndComputeKnockback()
- {
- var cKnock = new CKnockback();
- cKnock.RKnockback = new RKnockback(2.0f);
- cKnock.GlobalPosition = Vector3.Zero;
-
- var damage = new DamageRecord(new Vector3(10, 0, 0), new RDamage(0, EDamageTypes.Normal));
- var record = new KnockbackRecord(damage, 1.5f);
-
- cKnock.RegisterKnockback(record);
- var force = cKnock.ComputeKnockback();
-
- // Direction from source(10,0,0) to target(0,0,0) is (-1,0,0), scaled by modifier(2) and multiplier(1.5) => (-3,0,0)
- AssertVector(force).IsEqual(new Vector3(-3, 0, 0));
-
- // Second call returns zero since internal state resets
- var second = cKnock.ComputeKnockback();
- AssertVector(second).IsEqual(Vector3.Zero);
- }
-}
diff --git a/tests/components/KnockbackComponentUnitTest.cs.uid b/tests/components/KnockbackComponentUnitTest.cs.uid
deleted file mode 100644
index c5795539..00000000
--- a/tests/components/KnockbackComponentUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://bv0eionbgbig5
diff --git a/tests/components/MovementSystemUnitTest.cs b/tests/components/MovementSystemUnitTest.cs
deleted file mode 100644
index 4e075eef..00000000
--- a/tests/components/MovementSystemUnitTest.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.interfaces;
-using Movementtests.scenes.movement;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class MovementSystemUnitTest
-{
- [TestCase]
- public void GroundedMovementAcceleratesAndAppliesGravity()
- {
- var move = new CGroundedMovement();
- move.RMovement = new RMovement(speed: 10.0f, acceleration: 1.0f, gravityModifier: 0.5f, targetHeight: 0.0f);
- move.WallInFrontRayCast = new RayCast3D();
- //move.GlobalPosition = Vector3.Zero;
-
- var inputs = new MovementInputs(
- Velocity: Vector3.Zero,
- TargetLocation: new Vector3(10, 0, 0),
- isOnFloor: false,
- gravity: Vector3.Down * 9.8f,
- delta: 1.0
- );
-
- var v = move.ComputeVelocity(inputs);
-
- AssertVector(v).IsEqualApprox(new Vector3(10, -4.9f, 0), new Vector3(0.001f, 0.001f, 0.001f));
- }
-}
diff --git a/tests/components/MovementSystemUnitTest.cs.uid b/tests/components/MovementSystemUnitTest.cs.uid
deleted file mode 100644
index 83493b96..00000000
--- a/tests/components/MovementSystemUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://cofj5s4x74ay
diff --git a/tests/enemies/EnemyUnitTest.cs b/tests/enemies/EnemyUnitTest.cs
deleted file mode 100644
index cbd73410..00000000
--- a/tests/enemies/EnemyUnitTest.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.interfaces;
-using Movementtests.systems.damage;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class EnemyUnitTest
-{
- [TestCase]
- public void ComputeDamageNoComponent()
- {
- var enemy = new Enemy();
- var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
-
- var result = enemy.ComputeDamage(input);
- AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
- }
-
- [TestCase]
- public void Unstun()
- {
- var enemy = new Enemy();
- enemy.IsStunned = true;
- enemy.Unstun();
- AssertBool(enemy.IsStunned).IsFalse();
- }
-}
diff --git a/tests/enemies/EnemyUnitTest.cs.uid b/tests/enemies/EnemyUnitTest.cs.uid
deleted file mode 100644
index 1c82d5ec..00000000
--- a/tests/enemies/EnemyUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://cojxgcs6xqqoq
diff --git a/tests/player/DashSystemUnitTest.cs b/tests/player/DashSystemUnitTest.cs
deleted file mode 100644
index 30ba91d2..00000000
--- a/tests/player/DashSystemUnitTest.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.systems;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class DashSystemUnitTest
-{
- private DashSystem _dashSystem;
-
- [BeforeTest]
- public void SetupTest()
- {
- _dashSystem = new DashSystem();
-
- _dashSystem.DashCast3D = new ShapeCast3D();
- _dashSystem.AddChild(_dashSystem.DashCast3D);
-
- _dashSystem._dashCastDrop = new ShapeCast3D();
- _dashSystem.AddChild(_dashSystem._dashCastDrop);
-
- _dashSystem._dashTarget = new MeshInstance3D();
- _dashSystem.AddChild(_dashSystem._dashTarget);
-
- _dashSystem._dashDropIndicator = new MeshInstance3D();
- _dashSystem.AddChild(_dashSystem._dashDropIndicator);
-
- _dashSystem._dashDropLocationIndicator = new MeshInstance3D();
- _dashSystem.AddChild(_dashSystem._dashDropLocationIndicator);
- }
-
- [AfterTest]
- public void CleanupTest()
- {
- _dashSystem?.Free();
- }
-
- [TestCase]
- public void TestStopPreparingDash()
- {
- _dashSystem.CanDashThroughTarget = true;
- _dashSystem._dashTarget.Visible = true;
- _dashSystem._dashDropIndicator.Visible = true;
- _dashSystem._dashDropLocationIndicator.Visible = true;
-
- _dashSystem.StopPreparingDash();
-
- AssertBool(_dashSystem.CanDashThroughTarget).IsFalse();
- AssertBool(_dashSystem._dashTarget.Visible).IsFalse();
- AssertBool(_dashSystem._dashDropIndicator.Visible).IsFalse();
- AssertBool(_dashSystem._dashDropLocationIndicator.Visible).IsFalse();
- }
-}
diff --git a/tests/player/DashSystemUnitTest.cs.uid b/tests/player/DashSystemUnitTest.cs.uid
deleted file mode 100644
index 545620a4..00000000
--- a/tests/player/DashSystemUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://pv570go4cxws
diff --git a/tests/player/HeadSystemUnitTest.cs b/tests/player/HeadSystemUnitTest.cs
deleted file mode 100644
index 07d06790..00000000
--- a/tests/player/HeadSystemUnitTest.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.systems;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class HeadSystemUnitTest
-{
- private HeadSystem _head;
-
- [BeforeTest]
- public void SetupTest()
- {
- _head = new HeadSystem();
- _head._camera = new Camera3D();
- _head.AddChild(_head._camera);
-
- _head._cameraAnchor = new Marker3D();
- _head.AddChild(_head._cameraAnchor);
-
- _head._fpRig = new Node3D();
- _head.AddChild(_head._fpRig);
-
- _head._fpDisplacedRig = new Node3D();
- _head.AddChild(_head._fpDisplacedRig);
- }
-
- [AfterTest]
- public void CleanupTest()
- {
- _head?.Free();
- }
-
- [TestCase]
- public void TestResetHeadBobbing()
- {
- _head._bobbingAccumulator = 10.0f;
- _head.ResetHeadBobbing();
- AssertFloat(_head._bobbingAccumulator).IsEqual(0.0f);
- }
-
- [TestCase]
- public void TestComputeHowMuchInputForward()
- {
- Vector3 forwardInput = new Vector3(0, 0, -1);
- AssertFloat(_head.ComputeHowMuchInputForward(forwardInput)).IsEqual(1.0f);
-
- Vector3 backwardInput = new Vector3(0, 0, 1);
- AssertFloat(_head.ComputeHowMuchInputForward(backwardInput)).IsEqual(-1.0f);
- }
-
- [TestCase]
- public void TestComputeHowMuchInputSideways()
- {
- Vector3 rightInput = new Vector3(1, 0, 0);
- AssertFloat(_head.ComputeHowMuchInputSideways(rightInput)).IsEqual(1.0f);
-
- Vector3 leftInput = new Vector3(-1, 0, 0);
- AssertFloat(_head.ComputeHowMuchInputSideways(leftInput)).IsEqual(-1.0f);
- }
-
- [TestCase]
- public void TestGetForwardHorizontalVector()
- {
- Vector3 forward = _head.GetForwardHorizontalVector();
- AssertVector(forward).IsEqualApprox(Vector3.Back, new Vector3(0.001f, 0.001f, 0.001f));
- }
-
- [TestCase]
- public void TestLookAroundRotation()
- {
- var inputs = new HeadSystem.CameraParameters(
- Delta: 0.016,
- LookDir: new Vector2(1, 0),
- PlayerInput: Vector3.Zero,
- PlayerVelocity: Vector3.Zero,
- WallContactPoint: Vector3.Zero,
- SensitivitMultiplier: 1.0f,
- WithCameraJitter: false,
- WithCameraBobbing: false,
- BobbingMultiplier: 1.0f,
- FovMultiplier: 1.0f
- );
-
- float initialY = _head.Rotation.Y;
- _head.LookAround(inputs);
- AssertFloat(_head.Rotation.Y).IsEqual(initialY + 1.0f);
- }
-}
diff --git a/tests/player/HeadSystemUnitTest.cs.uid b/tests/player/HeadSystemUnitTest.cs.uid
deleted file mode 100644
index 110c87c4..00000000
--- a/tests/player/HeadSystemUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://bp0xn8k3dmfkg
diff --git a/tests/player/PlayerControllerUnitTest.cs b/tests/player/PlayerControllerUnitTest.cs
deleted file mode 100644
index 3a82f4a8..00000000
--- a/tests/player/PlayerControllerUnitTest.cs
+++ /dev/null
@@ -1,149 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.interfaces;
-using Movementtests.systems.damage;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class PlayerControllerUnitTest
-{
- private PlayerController _player;
-
- [BeforeTest]
- public void SetupTest()
- {
- _player = new PlayerController();
- _player._targetSpeed = 7.0f;
- _player._gravity = 9.8f;
-
- var rHealth = new RHealth(100.0f);
- _player.RHealth = rHealth;
- _player.CHealth = new CHealth { RHealth = rHealth, CurrentHealth = 100.0f };
- }
-
- [AfterTest]
- public void CleanupTest()
- {
- _player?.Free();
- }
-
- [TestCase]
- public void TestCalculateGravityForce()
- {
- _player.Weight = 3.0f;
- // gravity is 9.8f
- AssertFloat(_player.CalculateGravityForce()).IsEqualApprox(29.4f, 0.001f);
- }
-
- [TestCase]
- public void TestIsPlayerInputtingForward()
- {
- // Test Keyboard Input
- _player.InputDeviceChanged(false);
- _player.OnInputMoveKeyboard(Vector3.Forward);
- AssertBool(_player.IsPlayerInputtingForward()).IsTrue();
-
- _player.OnInputMoveKeyboard(Vector3.Back);
- AssertBool(_player.IsPlayerInputtingForward()).IsFalse();
-
- // Test Gamepad Input
- _player.InputDeviceChanged(true);
- _player.OnInputMove(new Vector3(0, 0, -1));
- AssertBool(_player.IsPlayerInputtingForward()).IsTrue();
- }
-
- [TestCase]
- public void TestSetVerticalVelocity()
- {
- _player.Velocity = new Vector3(1, 0, 2);
- _player.SetVerticalVelocity(5.0f);
- AssertVector(_player.Velocity).IsEqual(new Vector3(1, 5, 2));
- }
-
- [TestCase]
- public void TestComputeHVelocityGround()
- {
- _player.Velocity = Vector3.Zero;
- _player.AccelerationFloor = 10.0f;
-
- float delta = 0.1f;
- Vector3 newVelocity = _player.ComputeHVelocity(delta, _player.AccelerationFloor, _player.DecelerationFloor, Vector3.Forward);
- AssertVector(newVelocity).IsEqual(new Vector3(0, 0, -7.0f));
- }
-
- [TestCase]
- public void TestComputeHVelocityAir()
- {
- _player.Velocity = new Vector3(5, 0, 0);
- _player.AccelerationAir = 2.0f;
- _player.DecelerationAir = 2.0f;
-
- float delta = 0.5f;
- Vector3 newVelocity = _player.ComputeHVelocity(delta, _player.AccelerationAir, _player.DecelerationAir, Vector3.Zero);
-
- AssertVector(newVelocity).IsEqual(Vector3.Zero);
- }
-
- [TestCase]
- public void TestReduceHealth()
- {
- var damageRecord = new DamageRecord(Vector3.Zero, new RDamage(25.0f, EDamageTypes.Normal));
- _player.ReduceHealth(_player, damageRecord);
- AssertFloat(_player.CHealth.CurrentHealth).IsEqual(75.0f);
- }
-
- [TestCase]
- public void TestEmpoweredActionsLeft()
- {
- var mockUi = new PlayerUi();
- var dashIcons = new TextureRect[3] { new TextureRect(), new TextureRect(), new TextureRect() };
- mockUi._dashIcons = dashIcons;
-
- _player.PlayerUi = mockUi;
-
- _player.EmpoweredActionsLeft = 2;
- AssertInt(_player.EmpoweredActionsLeft).IsEqual(2);
- AssertBool(dashIcons[0].Visible).IsTrue();
- AssertBool(dashIcons[1].Visible).IsTrue();
- AssertBool(dashIcons[2].Visible).IsFalse();
- }
-
- [TestCase]
- public void TestDashCooldownTimeout()
- {
- _player._canDash = false;
- _player.DashCooldownTimeout();
- AssertBool(_player._canDash).IsTrue();
- }
-
- [TestCase]
- public void TestGetInputLocalHDirection()
- {
- _player.InputDeviceChanged(false);
- _player.OnInputMoveKeyboard(new Vector3(1, 0, 1));
-
- Vector3 expected = new Vector3(1, 0, 1).Normalized();
- AssertVector(_player.GetInputLocalHDirection()).IsEqualApprox(expected, new Vector3(0.001f, 0.001f, 0.001f));
- }
-
- [TestCase]
- public void TestComputeKnockback()
- {
- var cKnockback = new CKnockback();
- cKnockback.RKnockback = new RKnockback(10.0f);
- _player.CKnockback = cKnockback;
-
- var damageRecord = new DamageRecord(new Vector3(10, 0, 0), new RDamage(0, EDamageTypes.Normal));
- var knockbackRecord = new KnockbackRecord(damageRecord, 1.0f);
-
- _player.GlobalPosition = Vector3.Zero;
- cKnockback.GlobalPosition = Vector3.Zero;
-
- _player.RegisterKnockback(knockbackRecord);
-
- Vector3 knockback = cKnockback.ComputeKnockback();
- AssertVector(knockback).IsEqual(new Vector3(-10, 0, 0));
- }
-}
diff --git a/tests/player/PlayerControllerUnitTest.cs.uid b/tests/player/PlayerControllerUnitTest.cs.uid
deleted file mode 100644
index 16a906a1..00000000
--- a/tests/player/PlayerControllerUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://kmphtu0ovixi
diff --git a/tests/player/WeaponSystemUnitTest.cs b/tests/player/WeaponSystemUnitTest.cs
deleted file mode 100644
index cd575190..00000000
--- a/tests/player/WeaponSystemUnitTest.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using Godot;
-using GdUnit4;
-using static GdUnit4.Assertions;
-using Movementtests.systems;
-using Movementtests.systems.damage;
-
-namespace Movementtests.tests;
-
-[TestSuite, RequireGodotRuntime]
-public class WeaponSystemUnitTest
-{
- private WeaponSystem _weapon;
-
- [BeforeTest]
- public void SetupTest()
- {
- _weapon = new WeaponSystem();
- _weapon.RDamage = new RDamage(5.0f, EDamageTypes.Normal);
-
- _weapon.WeaponMesh = new MeshInstance3D();
- _weapon.AddChild(_weapon.WeaponMesh);
- _weapon.WeaponLocationIndicator = new MeshInstance3D();
- _weapon.AddChild(_weapon.WeaponLocationIndicator);
- }
-
- [AfterTest]
- public void CleanupTest()
- {
- _weapon?.Free();
- }
-
- [TestCase]
- public void TestWeaponLeftAndBackVisibility()
- {
- _weapon.Visible = false;
-
- _weapon.WeaponLeft();
- AssertBool(_weapon.Visible).IsTrue();
-
- _weapon.WeaponBack();
- AssertBool(_weapon.Visible).IsFalse();
- }
-
- [TestCase]
- public void TestThrowWeaponOnCurveSetsUnfrozen()
- {
- _weapon.Freeze = true;
- _weapon.ThrowWeaponOnCurve();
- AssertBool(_weapon.Freeze).IsFalse();
- }
-}
diff --git a/tests/player/WeaponSystemUnitTest.cs.uid b/tests/player/WeaponSystemUnitTest.cs.uid
deleted file mode 100644
index 487b0dea..00000000
--- a/tests/player/WeaponSystemUnitTest.cs.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://vkv8aderakcb