Files
ChronoCCG/Chrono/Model/CardData.cs
T

38 lines
1.4 KiB
C#

namespace Chrono.Model;
public class CardData
{
public string Name { get; init; } = "";
public string Category { get; init; } = "";
public int? Cost { get; init; }
public int? Attack { get; init; }
public int? Health { get; init; }
public float StatEfficiency()
{
if(Cost == 0) return 0;
if (Attack != null && Cost != null && Health != null) return MathF.Round((float)((Health + Attack) / (float)Cost),2);
return 0;
}
public string? Description { get; init; }
public string? Faction { get; init; }
public string? Set { get; init; }
public string? Speed { get; init; }
public List<string> Archetypes { get; init; } = [];
public List<string>? ImmortalizeTo { get; init; }
public string? ImmortalizeFrom { get; init; }
public string? ImmortalizeWhen { get; init; }
public string? ImageFile { get; init; }
public bool IsAgent => Category == "Agent";
public bool IsSpell => Category == "Spell";
public bool IsToken => Category == "Token";
public string? CostDisplay => Cost?.ToString();
public string? AttackDisplay => Attack?.ToString();
public string? HealthDisplay => Health?.ToString();
public bool HasImmortalize => ImmortalizeTo is { Count: > 0 };
public bool IsImmortalized => ImmortalizeFrom != null;
public string ImagePath => $"cards/{ImageFile ?? "placeholder.png"}";
}