ld: basic greyboxing

This commit is contained in:
2025-05-21 17:15:40 +02:00
parent c91e91f5c3
commit b3a28436bc
3 changed files with 68 additions and 10 deletions

View File

@ -21,6 +21,8 @@ public partial class HealthSystem : Node3D
public float CurrentHealth { get; set; } = 100.0f;
[Export(PropertyHint.Range, "0,100,0.1,or_greater")]
public float MinimalDamageUnit { get; set; } = 25.0f;
[Export(PropertyHint.Range, "-100,0,0.1,or_smaller")]
public float ThresholdVelYForDamage { get; set; } = -15.0f;
[ExportSubgroup("Regeneration")]
[Export(PropertyHint.Range, "0,10,0.01,suffix:s,or_greater")]
public float SecondsBeforeRegeneration { get; set; } = 5.5f;
@ -104,8 +106,6 @@ public partial class HealthSystem : Node3D
// Required to hide Vignette effect
private float _currentHealthInPrevFrame;
private float _thresholdVelYForDamage = -15.0f;
private float _currentVelocityYInAir;
private Gravity _gravity;
@ -441,10 +441,10 @@ public partial class HealthSystem : Node3D
}
else
{
if (_currentVelocityYInAir < _thresholdVelYForDamage)
if (_currentVelocityYInAir < ThresholdVelYForDamage && ThresholdVelYForDamage > 0)
{
float hit = Mathf.Remap(_currentVelocityYInAir,
_thresholdVelYForDamage, _thresholdVelYForDamage - 9.0f,
ThresholdVelYForDamage, ThresholdVelYForDamage - 9.0f,
MinimalDamageUnit, MaxHealth);
GD.Print("Hit damage: ", hit);

View File

@ -21,13 +21,71 @@ glow_enabled = true
environment = SubResource("Environment_1bvp3")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0)
transform = Transform3D(-0.866024, -0.433016, 0.250001, -0.320371, 0.864432, 0.387452, -0.383882, 0.255449, -0.887345, 0, 0, 0)
shadow_enabled = true
[node name="CSGBox3D" type="CSGBox3D" parent="."]
[node name="Player" parent="." instance=ExtResource("1_ig7tw")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.25692, 0.0273442, 30.8297)
[node name="Greybox" type="Node" parent="."]
[node name="CSGBox3D" type="CSGBox3D" parent="Greybox"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.09619, -0.472656, -0.958893)
use_collision = true
size = Vector3(100, 1, 100)
[node name="Player" parent="." instance=ExtResource("1_ig7tw")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.03971, 0.0273442, -0.249186)
[node name="CSGBox3D2" type="CSGBox3D" parent="Greybox"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.4157, 5, 14.9013)
use_collision = true
size = Vector3(10, 10, 50)
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Greybox"]
use_collision = true
[node name="CSGBox3D5" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.0294, 0.5, 32.891)
size = Vector3(3, 1, 3)
[node name="CSGBox3D6" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 1, 29.905)
size = Vector3(3, 2, 3)
[node name="CSGBox3D7" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 1.5, 26.9138)
size = Vector3(3, 3, 3)
[node name="CSGBox3D8" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 2, 23.9462)
size = Vector3(3, 4, 3)
[node name="CSGBox3D9" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 2.5, 20.975)
size = Vector3(3, 5, 3)
[node name="CSGBox3D10" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 3, 17.9825)
size = Vector3(3, 6, 3)
[node name="CSGBox3D11" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 3.5, 15)
size = Vector3(3, 7, 3)
[node name="CSGBox3D12" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 4, 12.018)
size = Vector3(3, 8, 3)
[node name="CSGBox3D13" type="CSGBox3D" parent="Greybox/CSGCombiner3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.029, 4.5, 9.04904)
size = Vector3(3, 9, 3)
[node name="CSGBox3D3" type="CSGBox3D" parent="Greybox"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.01999, 4.9845, 6.27246)
use_collision = true
size = Vector3(43.9793, 10, 2.62695)
[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Greybox/CSGBox3D3"]
transform = Transform3D(4.2, 0, 0, 0, -6.11959e-08, -7, 0, 1.4, -3.0598e-07, 8, -5, -0.293446)
operation = 2
radius = 1.0
height = 5.0
sides = 40

View File

@ -4,5 +4,5 @@
[node name="Player" instance=ExtResource("1_3vyb7")]
[node name="Stamina" parent="." index="4"]
MaxRunTime = 0.0
[node name="HealthSystem" parent="." index="3"]
ThresholdVelYForDamage = 0.0