2024-04-10 22:03:36 +02:00
|
|
|
using System.Text.Json.Serialization;
|
|
|
|
|
2024-04-07 13:02:49 +02:00
|
|
|
namespace TanksServer.Models;
|
|
|
|
|
2024-04-28 12:53:18 +02:00
|
|
|
internal sealed class Player : IEquatable<Player>
|
2024-04-07 13:02:49 +02:00
|
|
|
{
|
2024-04-28 12:53:18 +02:00
|
|
|
public required string Name { get; init; }
|
2024-04-07 13:02:49 +02:00
|
|
|
|
2024-04-13 14:08:51 +02:00
|
|
|
[JsonIgnore] public PlayerControls Controls { get; } = new();
|
2024-04-07 21:09:36 +02:00
|
|
|
|
2024-04-13 18:35:36 +02:00
|
|
|
public Scores Scores { get; } = new();
|
2024-04-12 14:28:57 +02:00
|
|
|
|
|
|
|
public DateTime LastInput { get; set; } = DateTime.Now;
|
2024-04-28 12:53:18 +02:00
|
|
|
|
|
|
|
public override bool Equals(object? obj) => obj is Player p && Equals(p);
|
|
|
|
|
|
|
|
public bool Equals(Player? other) => other?.Name == Name;
|
|
|
|
|
|
|
|
public override int GetHashCode() => Name.GetHashCode();
|
|
|
|
|
|
|
|
public static bool operator ==(Player? left, Player? right) => Equals(left, right);
|
|
|
|
|
|
|
|
public static bool operator !=(Player? left, Player? right) => !Equals(left, right);
|
2024-04-13 14:08:51 +02:00
|
|
|
}
|