KoogleApp/src/Koogle.Application/Games/Shit/ShitGameSetup.cs

41 lines
1.1 KiB
C#

using Koogle.Domain.Enums;
namespace Koogle.Application.Games.Shit;
/// <summary>
/// Setup model for Scheiss-Spiel (Shit Game).
/// </summary>
public record ShitGameSetup : GameSetupModelBase
{
/// <inheritdoc />
public override string GameType => "Shit";
/// <summary>
/// The "Scheiss-Zahl" (1-9, default 5).
/// When a player knocks down exactly this many pins, they must take the collected points.
/// </summary>
public int ShitNumber { get; init; } = 5;
/// <summary>
/// Starting points for each player (10-1000, default 50).
/// </summary>
public int StartNumber { get; init; } = 50;
/// <summary>
/// Creates a default ShitGameSetup with specified base parameters.
/// </summary>
public static ShitGameSetup Create(
ThrowMode throwMode,
int throwsPerRound,
ParticipantsMode participantsMode,
int shitNumber = 5,
int startNumber = 50) => new()
{
ThrowMode = throwMode,
ThrowsPerRound = throwsPerRound,
ParticipantsMode = participantsMode,
ShitNumber = shitNumber,
StartNumber = startNumber
};
}