ground slam damage depends on height
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 26s
Create tag and build when new code gets to main / Export (push) Successful in 7m2s

This commit is contained in:
2026-04-21 18:47:58 +02:00
parent 2a98137653
commit 6888499b78
4 changed files with 13 additions and 5 deletions

View File

@@ -1933,6 +1933,8 @@ public partial class PlayerController : CharacterBody3D,
///////////////////////////
// Slam Management ///////
///////////////////////////
private Vector3 _slamStartPosition = Vector3.Zero;
public void OnInputSlamPressed()
{
_playerState.SendEvent("slam");
@@ -1940,6 +1942,7 @@ public partial class PlayerController : CharacterBody3D,
public void SlamStarted()
{
_slamStartPosition = GlobalPosition;
SetHorizontalVelocity(Vector2.Zero);
SetVerticalVelocity(-SlamSpeed);
_audioStream.SwitchToClipByName("dash");
@@ -1950,11 +1953,16 @@ public partial class PlayerController : CharacterBody3D,
}
public void SlamEnded()
{
var distanceTraveled = GlobalPosition.DistanceTo(_slamStartPosition);
HeadSystem.OnGetHit();
_audioStream.SwitchToClipByName("slam");
if (Explosion.Instantiate() is not Explosion explosion) return;
explosion.Radius = 10f;
// Basic distance traveled explosion manipulation
explosion.Radius = distanceTraveled;
explosion.RDamage.DamageDealt = distanceTraveled;
GetTree().GetRoot().AddChild(explosion);
explosion.GlobalPosition = GlobalPosition;
}