using UnityEngine; namespace YachtDice.Dice { /// /// Абстрактное определение типа дайса. /// Наследники описывают конкретные виды (стандартный d6, специальные и т.д.). /// public abstract class DieDefinitionSO : ScriptableObject { [field: Header("Identity")] [field: SerializeField] public string Id { get; private set; } [field: SerializeField] public string DisplayName { get; private set; } [field: SerializeField] public Sprite Icon { get; private set; } /// Количество граней. public abstract int FaceCount { get; } /// Возвращает массив всех возможных значений граней. public abstract int[] GetFaceValues(); #if UNITY_EDITOR public static T CreateForTest(string id, string displayName = null) where T : DieDefinitionSO { var so = CreateInstance(); so.Id = id; so.DisplayName = displayName ?? id; return so; } #endif } }