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 { /// /// Počet kariet rozdaných každému hráčovi na začiatku (zvyčajne 4 alebo 5). /// public int InitialCardCount { get; set; } = 5; /// /// Ak je zapnuté, sedma na sedmu pridáva ďalšie +3 karty (kumulácia trestu). /// public bool StackSevens { get; set; } = true; /// /// Ak je zapnuté, eso možno prebiť vlastným esom a preniesť státie na ďalšieho hráča. /// public bool CounterAceWithAce { get; set; } = true; /// /// Režim oživovania Červenou sedmou (Voľná do 1 kola, Klasická do 3 kôl, Vypnuté). /// public RedSevenMode RedSevenMode { get; set; } = RedSevenMode.ColorOrSevenThreeRounds; /// /// Či je oživovanie Červenou sedmou povolené. /// public bool RedSevenRevives { get => RedSevenMode != RedSevenMode.Disabled; set => RedSevenMode = value ? (RedSevenMode == RedSevenMode.Disabled ? RedSevenMode.ColorOrSevenThreeRounds : RedSevenMode) : RedSevenMode.Disabled; } /// /// Režim pre Zeleného dolníka (rušenie sediem a univerzálne vykladanie). /// public GreenUnderKnaveMode GreenUnderKnaveMode { get; set; } = GreenUnderKnaveMode.OnlyOnSevenOrUnderKnave; /// /// Či Zelený dolník ruší trest zo sediem. /// public bool GreenUnderKnaveCancelsSevens { get => GreenUnderKnaveMode != GreenUnderKnaveMode.Disabled; set => GreenUnderKnaveMode = value ? (GreenUnderKnaveMode == GreenUnderKnaveMode.Disabled ? GreenUnderKnaveMode.OnlyOnSevenOrUnderKnave : GreenUnderKnaveMode) : GreenUnderKnaveMode.Disabled; } /// /// Zahranie 4 rovnakých kariet naraz ("Spálenie"). Spáli kôpku a hráč hrá znova. /// public bool FourOfAKindBurns { get; set; } = true; /// /// Režim Pass & Play so súkromnou clonou medzi ťahmi viacerých živých hráčov. /// public bool PassAndPlayPrivacyScreen { get; set; } = false; /// /// Úroveň rýchlosti hry od -5 (Extra pomalá 0.2x) cez 0 (1x Normálna) až po +5 (Blesková 4x). /// public int SpeedLevel { get; set; } = 0; /// /// Rýchlosť AI ťahov v milisekundách podľa zvolenej úrovne rýchlosti (-5 až +5). /// 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 { } } /// /// Zvolený vizuálny štýl balíčka ("original" alebo "spongebob"). /// public string SelectedDeck { get; set; } = "original"; /// /// 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. /// public bool OlympicMode { get; set; } = false; /// /// AI Human Mode: AI hráči zobrazujú premýšľacie bubliny s taktickými a zábavnými hláškami a reagujú na herné udalosti. /// public bool AIHumanMode { get; set; } = false; }