ground slam damage depends on height
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user