42 lines
1.8 KiB
C#
42 lines
1.8 KiB
C#
using UnityEngine;
|
||
|
||
namespace BaseGames.UI
|
||
{
|
||
/// <summary>
|
||
/// 图鉴数据表(策划单表编辑,仿 <see cref="AbilityMetaSO"/>)。每条目对应一个敌人,
|
||
/// 以 <c>enemyId</c> 与 <c>EnemyBase._enemyId</c> 关联。自包含显示数据(名/图标/描述),
|
||
/// 不引用敌人程序集(BaseGames.UI 不依赖 BaseGames.Enemies,故显示数据放此处)。
|
||
/// 改本表即增删 / 重排敌人条目、改名/图标,零代码。
|
||
/// </summary>
|
||
[CreateAssetMenu(menuName = "BaseGames/UI/Bestiary Database", fileName = "UI_BestiaryDatabase")]
|
||
public class BestiaryDatabaseSO : ScriptableObject
|
||
{
|
||
public enum Tier { Normal, Elite, Boss }
|
||
|
||
[System.Serializable]
|
||
public struct Entry
|
||
{
|
||
[Tooltip("敌人唯一 ID,须与 EnemyBase._enemyId 一致(如 Enemy_SpiderGuard)。解锁靠此 id 匹配。")]
|
||
public string enemyId;
|
||
[Tooltip("敌人名本地化 Key(UI 表,如 ENM_E001_NAME)。")]
|
||
public string displayNameKey;
|
||
[Tooltip("敌人描述 / 背景本地化 Key(可空)。")]
|
||
public string descKey;
|
||
[Tooltip("敌人肖像(可空)。")]
|
||
public Sprite icon;
|
||
[Tooltip("分级(普通 / 精英 / Boss),用于分类与排序。")]
|
||
public Tier tier;
|
||
[Tooltip("所属区域 ID(可空,用于筛选)。")]
|
||
public string region;
|
||
[Tooltip("解锁完整词条所需累计击杀数(<=1 即首杀全解锁)。")]
|
||
public int fullLoreKillCount;
|
||
[Tooltip("展示用最大生命(策划手填;0 = 不显示)。")]
|
||
public int displayMaxHP;
|
||
}
|
||
|
||
[SerializeField] private Entry[] _entries;
|
||
|
||
public Entry[] Entries => _entries;
|
||
}
|
||
}
|