38 lines
1.4 KiB
C#
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"}";
|
|
} |