116 lines
3.8 KiB
C#
116 lines
3.8 KiB
C#
namespace Faraon.Core.Models;
|
|
|
|
public enum RedSevenMode
|
|
{
|
|
Disabled,
|
|
AnyCardOneRound,
|
|
ColorOrSevenThreeRounds
|
|
}
|
|
|
|
public enum GreenUnderKnaveMode
|
|
{
|
|
Disabled,
|
|
OnlyOnSevenOrUnderKnave, // Ruší sedmy, bežné pravidlá (Zeleň / Dolník)
|
|
UniversalWildcard // Ruší sedmy, ide na čokoľvek a súper naňho môže dať čokoľvek
|
|
}
|
|
|
|
public class RuleOptions
|
|
{
|
|
/// <summary>
|
|
/// Počet kariet rozdaných každému hráčovi na začiatku (zvyčajne 4 alebo 5).
|
|
/// </summary>
|
|
public int InitialCardCount { get; set; } = 5;
|
|
|
|
/// <summary>
|
|
/// Ak je zapnuté, sedma na sedmu pridáva ďalšie +3 karty (kumulácia trestu).
|
|
/// </summary>
|
|
public bool StackSevens { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Ak je zapnuté, eso možno prebiť vlastným esom a preniesť státie na ďalšieho hráča.
|
|
/// </summary>
|
|
public bool CounterAceWithAce { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Režim oživovania Červenou sedmou (Voľná do 1 kola, Klasická do 3 kôl, Vypnuté).
|
|
/// </summary>
|
|
public RedSevenMode RedSevenMode { get; set; } = RedSevenMode.ColorOrSevenThreeRounds;
|
|
|
|
/// <summary>
|
|
/// Či je oživovanie Červenou sedmou povolené.
|
|
/// </summary>
|
|
public bool RedSevenRevives
|
|
{
|
|
get => RedSevenMode != RedSevenMode.Disabled;
|
|
set => RedSevenMode = value ? (RedSevenMode == RedSevenMode.Disabled ? RedSevenMode.ColorOrSevenThreeRounds : RedSevenMode) : RedSevenMode.Disabled;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Režim pre Zeleného dolníka (rušenie sediem a univerzálne vykladanie).
|
|
/// </summary>
|
|
public GreenUnderKnaveMode GreenUnderKnaveMode { get; set; } = GreenUnderKnaveMode.OnlyOnSevenOrUnderKnave;
|
|
|
|
/// <summary>
|
|
/// Či Zelený dolník ruší trest zo sediem.
|
|
/// </summary>
|
|
public bool GreenUnderKnaveCancelsSevens
|
|
{
|
|
get => GreenUnderKnaveMode != GreenUnderKnaveMode.Disabled;
|
|
set => GreenUnderKnaveMode = value ? (GreenUnderKnaveMode == GreenUnderKnaveMode.Disabled ? GreenUnderKnaveMode.OnlyOnSevenOrUnderKnave : GreenUnderKnaveMode) : GreenUnderKnaveMode.Disabled;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Zahranie 4 rovnakých kariet naraz ("Spálenie"). Spáli kôpku a hráč hrá znova.
|
|
/// </summary>
|
|
public bool FourOfAKindBurns { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Režim Pass & Play so súkromnou clonou medzi ťahmi viacerých živých hráčov.
|
|
/// </summary>
|
|
public bool PassAndPlayPrivacyScreen { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// Úroveň rýchlosti hry od -5 (Extra pomalá 0.2x) cez 0 (1x Normálna) až po +5 (Blesková 4x).
|
|
/// </summary>
|
|
public int SpeedLevel { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Rýchlosť AI ťahov v milisekundách podľa zvolenej úrovne rýchlosti (-5 až +5).
|
|
/// </summary>
|
|
public int AIDelayMs
|
|
{
|
|
get => SpeedLevel switch
|
|
{
|
|
-5 => 3200,
|
|
-4 => 2600,
|
|
-3 => 2100,
|
|
-2 => 1700,
|
|
-1 => 1400,
|
|
0 => 1100,
|
|
1 => 850,
|
|
2 => 650,
|
|
3 => 450,
|
|
4 => 300,
|
|
5 => 150,
|
|
_ => 1100
|
|
};
|
|
set { }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Zvolený vizuálny štýl balíčka ("original" alebo "spongebob").
|
|
/// </summary>
|
|
public string SelectedDeck { get; set; } = "original";
|
|
|
|
/// <summary>
|
|
/// Olympijský režim: Vyraďovací turnaj. Kto prehrá kolo, má v ďalšom o 1 kartu menej.
|
|
/// Hrá sa až kým nezostane iba jeden celkový víťaz.
|
|
/// </summary>
|
|
public bool OlympicMode { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// AI Human Mode: AI hráči zobrazujú premýšľacie bubliny s taktickými a zábavnými hláškami a reagujú na herné udalosti.
|
|
/// </summary>
|
|
public bool AIHumanMode { get; set; } = false;
|
|
}
|