Files
FaraonCardGame/Faraon.Core/Models/Card.cs
T
2026-08-28 13:59:36 +02:00

130 lines
3.2 KiB
C#

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;
}