namespace Faraon.Core.Models; public enum Suit { Hearts = 0, // Červeň / Srdce ❤️ Leaves = 1, // Zeleň / List 🍃 Acorns = 2, // Žaluď 🌰 Bells = 3 // Guľa 🔔 } public enum Rank { Seven = 7, Eight = 8, Nine = 9, Ten = 10, UnderKnave = 11, // Dolník / Spodok OverKnave = 12, // Horník / Filak / Menič King = 13, // Kráľ Ace = 14 // Eso } public record Card(Suit Suit, Rank Rank) { public string Id => $"{Suit}_{Rank}"; public string Name => $"{RankName} ({SuitName})"; public string ShortName => Rank switch { Rank.Seven => "VII", Rank.Eight => "VIII", Rank.Nine => "IX", Rank.Ten => "X", Rank.UnderKnave => "D", Rank.OverKnave => "H", Rank.King => "K", Rank.Ace => "E", _ => Rank.ToString() }; public string NumericShortName => Rank switch { Rank.Seven => "7", Rank.Eight => "8", Rank.Nine => "9", Rank.Ten => "10", Rank.UnderKnave => "D", Rank.OverKnave => "H", Rank.King => "K", Rank.Ace => "E", _ => Rank.ToString() }; public string RankName => Rank switch { Rank.Seven => "Sedma", Rank.Eight => "Osma", Rank.Nine => "Deviatka", Rank.Ten => "Desiatka", Rank.UnderKnave => "Dolník", Rank.OverKnave => "Horník", Rank.King => "Kráľ", Rank.Ace => "Eso", _ => Rank.ToString() }; public string SuitName => Suit switch { Suit.Hearts => "Červeň", Suit.Leaves => "Zeleň", Suit.Acorns => "Žaluď", Suit.Bells => "Guľa", _ => Suit.ToString() }; public string SuitSymbol => Suit switch { Suit.Hearts => "♥", Suit.Leaves => "🍃", Suit.Acorns => "🌰", Suit.Bells => "🔔", _ => "?" }; public string SuitColor => Suit switch { Suit.Hearts => "#d62828", // Tradičná sýta červeň Suit.Leaves => "#2d6a4f", // Tradičná lesná zeleň Suit.Acorns => "#8b5a2b", // Hnedo-zlatý žaluď Suit.Bells => "#d48b1a", // Zlatistá rolničková guľa _ => "#ffffff" }; public string SeasonName => (Rank == Rank.Ace) ? Suit switch { Suit.Hearts => "Jar", Suit.Leaves => "Leto", Suit.Acorns => "Jeseň", Suit.Bells => "Zima", _ => "" } : ""; public string CharacterName => Rank switch { Rank.OverKnave => Suit switch { Suit.Hearts => "Wilhelm Tell", Suit.Leaves => "Walter Fürst", Suit.Acorns => "Ulrich Rudenz", Suit.Bells => "Stauffacher", _ => "Horník" }, Rank.UnderKnave => Suit switch { Suit.Hearts => "Kuoni", Suit.Leaves => "Itel Reding", Suit.Acorns => "Stüssi", Suit.Bells => "Harrass", _ => "Dolník" }, _ => "" }; public bool IsSeven => Rank == Rank.Seven; public bool IsAce => Rank == Rank.Ace; public bool IsHornik => Rank == Rank.OverKnave; public bool IsRedSeven => Rank == Rank.Seven && Suit == Suit.Hearts; public bool IsGreenUnderKnave => Rank == Rank.UnderKnave && Suit == Suit.Leaves; }