Initial commit. Load list of cards via config (packs or single cards).

This commit is contained in:
ftc
2025-11-11 23:39:33 +03:00
commit 8a38d907e0
10 changed files with 254 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
using ArkhamPnP.Data;
using System.Text.Json;
namespace ArkhamPnP
{
internal class ConfigLoader
{
private string path;
public ConfigLoader(string path)
{
this.path = path;
}
public async Task<List<Card>> LoadCards()
{
var result = new List<Card>();
var api = new ArkhamDBApi();
var doc = LoadConfig(path);
foreach (var item in doc.RootElement.EnumerateArray())
{
var type = item.GetProperty("type").GetString();
if (type == "card")
{
result.Add(await api.GetCard(item.GetProperty("id").GetString()));
}
else if (type == "pack")
{
var pack = await api.GetPack(item.GetProperty("code").GetString());
foreach (var c in pack)
{
if (c.IsPlayerCard) result.Add(c);
}
}
else
{
throw new Exception("Unknown config item type: " + type);
}
}
return result;
}
JsonDocument LoadConfig(string path)
{
string configStr = File.ReadAllText(path);
return JsonDocument.Parse(configStr);
}
}
}