inial impl
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user