From a7765e53551c16d9b0da9fe066a071af9991f33b Mon Sep 17 00:00:00 2001 From: Talon Date: Sat, 24 Apr 2021 18:47:51 +0200 Subject: [PATCH] Add most AI lines --- .../DesignTimeBuild/.dtbcache.v2 | Bin 63152 -> 63174 bytes .vs/EvilSatellites/v16/.suo | Bin 180736 -> 193536 bytes EvilSatellites/AI.cs | 141 ++++++++++++++++++ EvilSatellites/Objects/Debris.cs | 2 +- EvilSatellites/Objects/Player.cs | 6 + EvilSatellites/Objects/Satellite.cs | 5 + EvilSatellites/SatelliteSpawner.cs | 1 + EvilSatellites/ScreenManager.cs | 3 +- EvilSatellites/Screens/GameScreen.cs | 4 +- .../sfx/ai/{Damage1.wav => DamageBullet1.wav} | 0 .../sfx/ai/{Damage2.wav => DamageBullet2.wav} | 0 .../sfx/ai/{Damage3.wav => DamageBullet3.wav} | 0 .../sfx/ai/{Damage4.wav => DamageBullet4.wav} | 0 13 files changed, 159 insertions(+), 3 deletions(-) create mode 100644 EvilSatellites/AI.cs rename EvilSatellites/sfx/ai/{Damage1.wav => DamageBullet1.wav} (100%) rename EvilSatellites/sfx/ai/{Damage2.wav => DamageBullet2.wav} (100%) rename EvilSatellites/sfx/ai/{Damage3.wav => DamageBullet3.wav} (100%) rename EvilSatellites/sfx/ai/{Damage4.wav => DamageBullet4.wav} (100%) diff --git a/.vs/EvilSatellites/DesignTimeBuild/.dtbcache.v2 b/.vs/EvilSatellites/DesignTimeBuild/.dtbcache.v2 index 6e23536fce021a562ade59a873cb499bfe3f82c8..8bdbb191f955666eb93f05a056554fd9f230d4e0 100644 GIT binary patch delta 5567 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 delta 7799 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 Clips; + public Random rnd = new Random(); + public AI(Synthy engine) + { + Engine = engine; + Clips = new Dictionary(); + SetupClips(); + } + + public void SetupClips() + { + Clips.Add("GameStart", new AIVoiceClip + { + Name = "GameStart", + NumFiles = 3, + Probability = new int[2] { 1, 1 } + }); + + Clips.Add("CollectDebris", new AIVoiceClip + { + Name = "CollectDebris", + NumFiles = 3, + Probability = new int[2] { 5, 10 } + }); + + Clips.Add("DamageBullet", new AIVoiceClip + { + Name = "DamageBullet", + NumFiles = 4, + Probability = new int[2] { 5, 10 } + }); + + Clips.Add("DamageDebris", new AIVoiceClip + { + Name = "DamageDebris", + NumFiles = 3, + Probability = new int[2] { 2, 4 } + }); + + // TODO + Clips.Add("FarMiss", new AIVoiceClip + { + Name = "FarMiss", + NumFiles = 6, + Probability = new int[2] { 5, 50 } + }); + + Clips.Add("GameOver", new AIVoiceClip + { + Name = "GameOver", + NumFiles = 4, + Probability = new int[2] { 1, 1 } + }); + + Clips.Add("Hit", new AIVoiceClip + { + Name = "Hit", + NumFiles = 5, + Probability = new int[2] { 5, 20 } + }); + + Clips.Add("LowHealth", new AIVoiceClip + { + Name = "LowHealth", + NumFiles = 5, + Probability = new int[2] { 1, 3 } + }); + + // TODO + Clips.Add("NearMiss", new AIVoiceClip + { + Name = "NearMiss", + NumFiles = 4, + Probability = new int[2] { 50, 100 } + }); + + // TODO + Clips.Add("Spinning", new AIVoiceClip + { + Name = "Spinning", + NumFiles = 2, + Probability = new int[2] { 2, 4 } + }); + + // TODO + Clips.Add("Still", new AIVoiceClip + { + Name = "Still", + NumFiles = 5, + Probability = new int[2] { 2, 4 } + }); + + // TODO + Clips.Add("Void", new AIVoiceClip + { + Name = "Void", + NumFiles = 3, + Probability = new int[2] { 50, 200 } + }); + + Clips.Add("Wave", new AIVoiceClip + { + Name = "Wave", + NumFiles = 4, + Probability = new int[2] { 1, 2 } + }); + } + + public void Play(string name) + { + if (Clips.ContainsKey(name)) + { + var clip = Clips[name]; + var prob = rnd.Next(clip.Probability[1]); + if (prob == clip.Probability[0] || (clip.Probability[0] == 1 && clip.Probability[1] == 1)) + { + var file = rnd.Next(clip.NumFiles - 1) + 1; + Engine.PlayOneshot(@"sfx/ai/" + name + file.ToString() + ".wav"); + } + } + } + } + public struct AIVoiceClip + { + public string Name; + public int NumFiles; + public int[] Probability; + } +} diff --git a/EvilSatellites/Objects/Debris.cs b/EvilSatellites/Objects/Debris.cs index 8b30d70..17fb507 100644 --- a/EvilSatellites/Objects/Debris.cs +++ b/EvilSatellites/Objects/Debris.cs @@ -57,7 +57,7 @@ namespace EvilSatellites.Objects if (player.Vacuuming) { player.CurrentWeapon.Reload(rnd.Next(player.CurrentWeapon.MaxAmmo/4)); - + Screen.Manager.Computer.Play("CollectDebris"); Destroy(); GameStats.DebrisCollected++; return; diff --git a/EvilSatellites/Objects/Player.cs b/EvilSatellites/Objects/Player.cs index f7ac0bd..0eee4b3 100644 --- a/EvilSatellites/Objects/Player.cs +++ b/EvilSatellites/Objects/Player.cs @@ -189,6 +189,7 @@ namespace EvilSatellites.Objects { IsDamaged = true; sfxDamage.Play(); + Screen.Manager.Computer.Play("LowHealth"); } string dmgSound = @"sfx/physics/collisions/"; if (dmg > 60) @@ -231,10 +232,15 @@ namespace EvilSatellites.Objects override public void OnCollision(IGameObject obj) { + if (obj.Type == ObjectType.Debris) + { + Screen.Manager.Computer.Play("DamageDebris"); + } if (obj.Type == ObjectType.Projectile) { var proj = (Projectile)obj; if (proj.Owner == this) return; + Screen.Manager.Computer.Play("DamageBullet"); TakeDamage(rnd.Next(20)); } } diff --git a/EvilSatellites/Objects/Satellite.cs b/EvilSatellites/Objects/Satellite.cs index 0679bc3..0a6962d 100644 --- a/EvilSatellites/Objects/Satellite.cs +++ b/EvilSatellites/Objects/Satellite.cs @@ -70,6 +70,11 @@ namespace EvilSatellites.Objects { var proj = (Projectile)obj; if (proj.Owner == this) return; + var scr = (GameScreen)Screen; + if (proj.Owner == scr.GetPlayer()) + { + scr.Manager.Computer.Play("Hit"); + } } Health -= 10; if (obj.Type == ObjectType.Player) diff --git a/EvilSatellites/SatelliteSpawner.cs b/EvilSatellites/SatelliteSpawner.cs index 031986a..cba3e98 100644 --- a/EvilSatellites/SatelliteSpawner.cs +++ b/EvilSatellites/SatelliteSpawner.cs @@ -54,6 +54,7 @@ namespace EvilSatellites GameStats.Wave++; Level++; Spawn(); + Screen.Manager.Computer.Play("Wave"); } } diff --git a/EvilSatellites/ScreenManager.cs b/EvilSatellites/ScreenManager.cs index 7f1f7fc..7816c78 100644 --- a/EvilSatellites/ScreenManager.cs +++ b/EvilSatellites/ScreenManager.cs @@ -20,12 +20,14 @@ namespace EvilSatellites private bool _Running = false; public Synthy Sound; public MusicManager Music; + public AI Computer; public VibrationManager Vibrations; public FDNReverb EnvironmentEffect; public ScreenManager(Game instance): base(instance) { Sound = new Synthy(); Music = new MusicManager(Sound); + Computer = new AI(Sound); Vibrations = new VibrationManager(PlayerIndex.One); EnvironmentEffect = Sound.CreateReverb(); EnvironmentEffect.Delay = 0.03; @@ -48,7 +50,6 @@ namespace EvilSatellites { screen.Activate(); } - Vibrations.AddVibration(1, 1, 500); base.Initialize(); } diff --git a/EvilSatellites/Screens/GameScreen.cs b/EvilSatellites/Screens/GameScreen.cs index c4ba770..f7c7976 100644 --- a/EvilSatellites/Screens/GameScreen.cs +++ b/EvilSatellites/Screens/GameScreen.cs @@ -36,6 +36,7 @@ namespace EvilSatellites.Screens Spawner.Spawn(); GameStats.Reset(); Manager.Music.Play("game1"); + Manager.Computer.Play("GameStart"); return; } @@ -56,7 +57,7 @@ namespace EvilSatellites.Screens ObjectRadar.Destroy(); Spawner.Destroy(); // TODO: figure out why cleanup doesn't work - // Manager.Sound.Cleanup(); + Manager.Sound.Cleanup(); HandleGameOver(gameTime); } @@ -277,6 +278,7 @@ namespace EvilSatellites.Screens public void EndGame() { GameOver = true; + Manager.Computer.Play("GameOver"); } } } diff --git a/EvilSatellites/sfx/ai/Damage1.wav b/EvilSatellites/sfx/ai/DamageBullet1.wav similarity index 100% rename from EvilSatellites/sfx/ai/Damage1.wav rename to EvilSatellites/sfx/ai/DamageBullet1.wav diff --git a/EvilSatellites/sfx/ai/Damage2.wav b/EvilSatellites/sfx/ai/DamageBullet2.wav similarity index 100% rename from EvilSatellites/sfx/ai/Damage2.wav rename to EvilSatellites/sfx/ai/DamageBullet2.wav diff --git a/EvilSatellites/sfx/ai/Damage3.wav b/EvilSatellites/sfx/ai/DamageBullet3.wav similarity index 100% rename from EvilSatellites/sfx/ai/Damage3.wav rename to EvilSatellites/sfx/ai/DamageBullet3.wav diff --git a/EvilSatellites/sfx/ai/Damage4.wav b/EvilSatellites/sfx/ai/DamageBullet4.wav similarity index 100% rename from EvilSatellites/sfx/ai/Damage4.wav rename to EvilSatellites/sfx/ai/DamageBullet4.wav