This repository has been archived on 2026-07-13. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
servicepoint-tanks/tanks-backend/TanksServer/Models/Magazine.cs
Vinzenz Schroeter 061c893456 remove mine
2024-05-06 00:33:49 +02:00

38 lines
884 B
C#

using System.Text;
namespace TanksServer.Models;
[Flags]
internal enum MagazineType
{
Basic = 0,
Fast = 1 << 0,
Explosive = 1 << 1,
Smart = 1 << 2,
}
internal readonly record struct Magazine(MagazineType Type, byte UsedBullets, byte MaxBullets)
{
public bool Empty => UsedBullets >= MaxBullets;
public string ToDisplayString()
{
var sb = new StringBuilder();
if (Type.HasFlag(MagazineType.Fast))
sb.Append("» ");
if (Type.HasFlag(MagazineType.Explosive))
sb.Append("* ");
if (Type.HasFlag(MagazineType.Smart))
sb.Append("@ ");
sb.Append("[ ");
for (var i = 0; i < UsedBullets; i++)
sb.Append("\u25cb ");
for (var i = UsedBullets; i < MaxBullets; i++)
sb.Append("• ");
sb.Append(']');
return sb.ToString();
}
}