Added other bullet classes. Add plasma pickup audio.

This commit is contained in:
2026-01-03 14:54:22 -05:00
parent d9d8a08d46
commit 79fd63c3ce
32 changed files with 402 additions and 52 deletions

View File

@@ -1,4 +1,5 @@
using AlienAttack.MonoGame.Things.Items;
using AlienAttack.MonoGame.Things.Bullets;
using AlienAttack.MonoGame.Things.Items;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
@@ -18,10 +19,14 @@ public sealed class AudioManager
// Pools
private VariantSoundPool _playerGunPool = default!;
private readonly Dictionary<BulletKind, VariantSoundPool> _playerGunPool2 = [];
private VariantSoundPool _enemyGunPool = default!;
private readonly Dictionary<BulletKind, VariantSoundPool> _enemyGunPool2 = [];
private VariantSoundPool _explosionPool = default!;
private VariantSoundPool _impactPool = default!;
private Dictionary<PickupKind, VariantSoundPool> _pickupPool = [];
private readonly Dictionary<PickupKind, VariantSoundPool> _pickupPool = [];
// Rate limiters (global caps per category/event)
private RateLimiter _playerGunLimiter = new(0.06f); // max ~16 plays/sec
@@ -45,6 +50,7 @@ public sealed class AudioManager
LoadShieldPickupPool(content);
LoadAmmoPickupPool(content);
LoadRocketsPickupPool(content);
LoadPlasmaPickupPool(content);
}
private void LoadPlayerGunPool(ContentManager content)
@@ -155,6 +161,23 @@ public sealed class AudioManager
_pickupPool.Add(PickupKind.Rockets, new VariantSoundPool(variants, voicesPerVariant: 1, rng: _random));
}
//SCIMisc_Sci Fi Shotgun Reload_01_SFRMS_SCIWPNS
private void LoadPlasmaPickupPool(ContentManager content)
{
var variants = new[]
{
content.Load<SoundEffect>("Sfx/Sci Fi Shotgun/SCIMisc_Sci Fi Shotgun Reload_01_SFRMS_SCIWPNS"),
content.Load<SoundEffect>("Sfx/Sci Fi Shotgun/SCIMisc_Sci Fi Shotgun Reload_02_SFRMS_SCIWPNS"),
content.Load<SoundEffect>("Sfx/Sci Fi Shotgun/SCIMisc_Sci Fi Shotgun Reload_03_SFRMS_SCIWPNS"),
content.Load<SoundEffect>("Sfx/Sci Fi Shotgun/SCIMisc_Sci Fi Shotgun Reload_04_SFRMS_SCIWPNS"),
content.Load<SoundEffect>("Sfx/Sci Fi Shotgun/SCIMisc_Sci Fi Shotgun Reload_05_SFRMS_SCIWPNS"),
content.Load<SoundEffect>("Sfx/Sci Fi Shotgun/SCIMisc_Sci Fi Shotgun Reload_06_SFRMS_SCIWPNS"),
};
_pickupPool.Add(PickupKind.Plasma, new VariantSoundPool(variants, voicesPerVariant: 1, rng: _random));
}
//GUNMech_Rocket Launcher Reload_01_SFRMS_SCIWPNS
// Call this once per frame