规则、卡包与测试放在同一套核心里,避免表现层自行结算。 Co-authored-by: Cursor <cursoragent@cursor.com>
31 lines
1.4 KiB
C#
31 lines
1.4 KiB
C#
using CardGame.Core;
|
|
|
|
namespace Game.Core.Tests;
|
|
|
|
internal static class Cards
|
|
{
|
|
private static readonly Dictionary<string, CardDefinition> ById = CardJson
|
|
.LoadCatalog(Path.Combine(AppContext.BaseDirectory, "content", "cards"));
|
|
|
|
public static IReadOnlyDictionary<string, CardDefinition> Catalog => ById;
|
|
|
|
public static CardDefinition Get(string id) => ById[id];
|
|
|
|
public static CardDefinition Spark => ById["card.example.spark"];
|
|
public static CardDefinition Wisp => ById["card.example.wisp"];
|
|
public static CardDefinition Salve => ById["card.example.salve"];
|
|
public static CardDefinition Ward => ById["card.example.ward"];
|
|
public static CardDefinition Lantern => ById["card.example.lantern"];
|
|
public static CardDefinition Fuse => ById["card.example.fuse"];
|
|
public static CardDefinition BaseField => ById["card.system.base_field"];
|
|
public static CardDefinition Patrol => ById["card.guard.patrol"];
|
|
public static CardDefinition Captain => ById["card.guard.captain"];
|
|
public static CardDefinition Believer => ById["card.cult.believer"];
|
|
public static CardDefinition Camp => ById["card.cult.camp"];
|
|
public static CardDefinition Crossbow => ById["card.guard.crossbow"];
|
|
public static CardDefinition Conscript => ById["card.guard.conscript"];
|
|
|
|
public static List<CardDefinition> Repeat(CardDefinition card, int count) =>
|
|
Enumerable.Repeat(card, count).ToList();
|
|
}
|