Files
zeling_v2/Assets/_Game/Scripts/UI/BestiaryDatabaseSO.cs
2026-06-08 11:26:17 +08:00

42 lines
1.8 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;
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("敌人名本地化 KeyUI 表,如 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;
}
}