using System.Collections.Generic; using KernelPanic.Core; using UnityEngine; namespace KernelPanic.Data { /// /// Defines immutable card data used to create runtime card instances. /// public sealed class CardDefinition : ScriptableObject { [SerializeField] private string id; [SerializeField] private string displayName; [SerializeField] private string description; [SerializeField] private Language language; [SerializeField] private Rarity rarity; [SerializeField] private int cycleCost; [SerializeField] private ResolutionTrack resolutionTrack; [SerializeField] private bool distroExclusive; [SerializeField] private bool isToken; [SerializeField, TextArea] private string designNotes; [SerializeField] private CardDefinition upgradeTarget; [SerializeField] private List effects = new(); public string Id => id; public string DisplayName => displayName; public string Description => description; public Language Language => language; public Rarity Rarity => rarity; public int CycleCost => cycleCost; public ResolutionTrack ResolutionTrack => resolutionTrack; public bool DistroExclusive => distroExclusive; public bool IsToken => isToken; public string DesignNotes => designNotes; public CardDefinition UpgradeTarget => upgradeTarget; public IReadOnlyList Effects => effects; } }