Bug fixes

This commit is contained in:
2021-04-24 23:31:43 +02:00
parent a7765e5355
commit 1265db9095
113 changed files with 346 additions and 120 deletions
+1
View File
@@ -63,6 +63,7 @@ namespace EvilSatellites.Objects
return;
}
player.TakeDamage(25);
Screen.Manager.Computer.Play("DamageDebris");
Destroy();
GameStats.SatelliteCollisions++;
}
+31 -6
View File
@@ -28,6 +28,8 @@ namespace EvilSatellites.Objects
public float Health;
private Random rnd = new Random();
private bool IsDamaged;
private double SpinTimer;
private double IdleTimer;
public Player(IScreen screen): base(screen)
{
ShouldDestroy = false;
@@ -57,11 +59,14 @@ namespace EvilSatellites.Objects
sfxWhine.Loop = true;
sfxEngine.ConnectToEffect(Screen.Manager.EnvironmentEffect);
sfxWhine.ConnectToEffect(Screen.Manager.EnvironmentEffect);
sfxEngine.Play();
sfxWhine.Play();
sfxDamage = Screen.Manager.Sound.Load(@"sfx/ui/alarmDamage.wav", false);
sfxDamage.Loop = true;
sfxTaps = new AudioAsset(Screen.Manager.Sound, @"sfx/ship/taps", 1, 20);
sfxEngine.Play();
sfxWhine.Play();
SpinTimer = 0;
IdleTimer = 0;
return;
}
@@ -79,6 +84,27 @@ namespace EvilSatellites.Objects
}
override public void Update(GameTime gameTime)
{
if (Turning != 0 || Elevating != 0)
{
SpinTimer += gameTime.ElapsedGameTime.TotalMilliseconds;
if (SpinTimer > 4000)
{
Screen.Manager.Computer.Play("Spinning");
SpinTimer = 0;
}
}
if (Movement.Length() < 0.01 && Elevating == 0 && Turning == 0 && CurrentWeapon.State == WeaponState.Stopped)
{
IdleTimer += gameTime.ElapsedGameTime.TotalMilliseconds;
if (IdleTimer > 30000)
{
Screen.Manager.Computer.Play("Still");
IdleTimer = 0;
}
} else
{
IdleTimer = 0;
}
CurrentWeapon.Update(gameTime);
Move(Movement);
if (Turning == -1)
@@ -154,6 +180,7 @@ namespace EvilSatellites.Objects
{
Turning = 0;
sfxTurn.Stop();
if (Elevating == 0) SpinTimer = 0;
}
public void StartElevating(int dir, GameTime time)
@@ -167,6 +194,7 @@ namespace EvilSatellites.Objects
{
Elevating = 0;
sfxElevator.Stop();
if (Turning == 0) SpinTimer = 0;
}
public void StartVacuuming(GameTime time)
@@ -232,10 +260,7 @@ 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;
+5
View File
@@ -53,6 +53,11 @@ namespace EvilSatellites.Objects
Move(Direction);
if (Vector3.Distance(StartPos, Position) > Range)
{
var scr = (GameScreen)Screen;
if (Owner == scr.GetPlayer())
{
Screen.Manager.Computer.Play("Void");
}
Destroy();
}
Sound.Position = new System.Numerics.Vector3(Position.X + Dimensions.X / 2, Position.Y + Dimensions.Y / 2, Position.Z + Dimensions.Z / 2);
+9 -1
View File
@@ -50,9 +50,17 @@ namespace EvilSatellites.Objects
{
Move(new Vector3(0, 0, -0.05f));
Sound.Position = new System.Numerics.Vector3(Position.X+Dimensions.X/2, Position.Y+Dimensions.Y/2, Position.Z+Dimensions.Z/2);
var scr = (GameScreen)Screen;
if (Vector3.Distance(scr.GetPlayer().Position, Position) > 1000)
{
var player = scr.GetPlayer();
var x = player.Position.X - 250f + (float)rnd.NextDouble() * 500;
var y = player.Position.Y - 250f + (float)rnd.NextDouble() * 500;
var z = player.Position.Z - 250f + (float)rnd.NextDouble() * 500;
Position = new Vector3(x, y, z);
}
if (rnd.Next(1024) == 512)
{
var scr = (GameScreen)Screen;
var player = scr.GetPlayer();
var orient = Matrix.Invert(Matrix.CreateTranslation(Position) * Matrix.CreateLookAt(Position, scr.GetPlayer().Position, Rotation.Up));
var dir = Position - player.Position;