implement fast bullets

This commit is contained in:
Vinzenz Schroeter 2024-04-29 16:59:37 +02:00
parent 9ccb7c8df8
commit 9164d90443
7 changed files with 30 additions and 24 deletions

View file

@ -15,4 +15,6 @@ internal sealed class Bullet : IMapEntity
public PixelBounds Bounds => new(Position.ToPixelPosition(), Position.ToPixelPosition());
internal required DateTime OwnerCollisionAfter { get; init; }
public required double Speed { get; init; }
}

View file

@ -5,11 +5,11 @@ namespace TanksServer.Models;
[Flags]
internal enum MagazineType
{
Basic = 1 << 0,
Fast = 1 << 1,
Explosive = 1 << 2,
Smart = 1 << 3,
Mine = 1 << 4,
Basic = 0,
Fast = 1 << 0,
Explosive = 1 << 1,
Smart = 1 << 2,
Mine = 1 << 3,
}
internal readonly record struct Magazine(MagazineType Type, byte UsedBullets, byte MaxBullets)

View file

@ -3,11 +3,11 @@ using TanksServer.GameLogic;
namespace TanksServer.Models;
internal sealed class Tank(Player player, FloatPosition spawnPosition) : IMapEntity
internal sealed class Tank : IMapEntity
{
private double _rotation;
public Player Owner { get; } = player;
public required Player Owner { get; init; }
public double Rotation
{
@ -24,11 +24,11 @@ internal sealed class Tank(Player player, FloatPosition spawnPosition) : IMapEnt
public bool Moving { get; set; }
public FloatPosition Position { get; set; } = spawnPosition;
public required FloatPosition Position { get; set; }
public PixelBounds Bounds => Position.GetBoundsForCenter(MapService.TileSize);
public int Orientation => (int)Math.Round(Rotation * 16) % 16;
public Magazine Magazine { get; set; } = new(MagazineType.Basic, 0, 5);
public required Magazine Magazine { get; set; }
}