131 lines
3.3 KiB
C#
131 lines
3.3 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;
|
|
public bool IsGreenUnderKnave => Rank == Rank.UnderKnave && Suit == Suit.Leaves;
|
|
}
|