44 lines
1.1 KiB
C#
Raw Normal View History

namespace pacMan.GameStuff.Items;
2023-05-22 22:57:45 +02:00
2023-07-13 14:00:42 +02:00
public interface IPlayer
{
string UserName { get; init; }
2023-07-13 14:00:42 +02:00
Character PacMan { get; init; }
string Colour { get; init; }
Box? Box { get; init; }
2023-07-13 14:00:42 +02:00
State State { get; set; }
}
public enum State
{
WaitingForPlayers,
Ready,
InGame,
Disconnected
2023-07-13 14:00:42 +02:00
}
2023-07-12 14:07:32 +02:00
public class Player : IPlayer, IEquatable<Player>
2023-05-22 22:57:45 +02:00
{
2023-07-12 14:07:32 +02:00
public bool Equals(Player? other)
{
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
return UserName == other.UserName;
2023-07-12 14:07:32 +02:00
}
public required string UserName { get; init; }
public required Character PacMan { get; init; }
public required string Colour { get; init; }
public Box? Box { get; init; }
2023-07-01 18:54:59 +02:00
public State State { get; set; } = State.WaitingForPlayers;
2023-07-12 14:07:32 +02:00
public override bool Equals(object? obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
return obj.GetType() == GetType() && Equals((Player)obj);
}
public override int GetHashCode() => UserName.GetHashCode();
2023-07-12 14:07:32 +02:00
}