Grazing sounds

This commit is contained in:
Marco 2025-04-01 16:13:54 +02:00
commit 6f92162d5a
5 changed files with 48 additions and 2 deletions

View file

@ -32,6 +32,15 @@ public partial class Bullet : Area2D
[Signal] public delegate void OnDestroyEventHandler();
private AudioStreamPlayer2D _grazeSound;
private GpuParticles2D _grazeParticles;
public override void _Ready()
{
_grazeSound = GetNodeOrNull<AudioStreamPlayer2D>("AudioStreamPlayer2D");
_grazeParticles = GetNodeOrNull<GpuParticles2D>("GrazeParticles");
}
public void Initialize(BulletInfo bulletInfo, GameManager gameManager)
{
_bulletInfo = bulletInfo;
@ -51,6 +60,16 @@ public partial class Bullet : Area2D
_modifiers = _bulletInfo.TimeModifiers.Select(x => x.Wrap()).ToList();
}
public void Graze()
{
_grazeSound?.Play();
if (_grazeParticles is not null)
{
_grazeParticles.Emitting = true;
}
IsGrazed = true;
}
private void ApplyTimeModifiers(double delta)
{
foreach (var modifier in _modifiers)