Files
YachtDice/Assets/Scripts/Dice/DiсeDefinition.cs
T

48 lines
1.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEngine;
using YachtDice.Shop;
namespace YachtDice.Dice
{
/// <summary>
/// Абстрактное определение типа дайса.
/// Наследники описывают конкретные виды (стандартный d6, специальные и т.д.).
/// </summary>
public abstract class DiсeDefinition : ScriptableObject, IShopItem
{
[Header("Identity")]
[SerializeField] private string id;
[SerializeField] private string displayName;
[SerializeField, TextArea] private string description;
[SerializeField] private Sprite icon;
[Header("Economy")]
[SerializeField] private int shopPrice;
public string Id => id;
public string DisplayName => displayName;
public string Description => description;
public Sprite Icon => icon;
public int ShopPrice => shopPrice;
public bool IsRepurchasable => false;
/// <summary>Количество граней.</summary>
public abstract int FaceCount { get; }
/// <summary>Возвращает массив всех возможных значений граней.</summary>
public abstract int[] GetFaceValues();
#if UNITY_EDITOR
public static T CreateForTest<T>(string id, string displayName = null,
int shopPrice = 0, string description = null) where T : DiсeDefinition
{
var so = CreateInstance<T>();
so.id = id;
so.displayName = displayName ?? id;
so.description = description ?? id;
so.shopPrice = shopPrice;
return so;
}
#endif
}
}