using System.Collections.Generic;
using UnityEngine;
using BaseGames.Localization;
namespace BaseGames.Equipment
{
///
/// 护符数据 SO(架构 09_ProgressionModule §3)。
/// 资产路径: Assets/ScriptableObjects/Equipment/Charms/Charm_{Name}.asset
///
[CreateAssetMenu(menuName = "BaseGames/Equipment/Charm")]
public class CharmSO : ScriptableObject, ILocalizableAsset
{
[Header("Identity")]
public string charmId; // 全局唯一 ID,如 "Charm_QuickSlash"
public string displayNameKey; // 本地化 Key
[TextArea(2, 4)]
public string descriptionKey;
[Header("Visual")]
public Sprite icon;
public Color glowColor;
[Header("Slot Cost")]
[Range(1, 4)]
public int notchCost; // 占用笔记数(1~4)
[Header("Effects")]
[SerializeReference]
public List effects = new(); // 多态序列化
[Header("Lore")]
public bool isUnique;
public string unlockHint;
public IEnumerable GetLocalizationKeys()
{
if (!string.IsNullOrEmpty(displayNameKey))
yield return new LocalizationKeyRef(displayNameKey, "Items", nameof(displayNameKey));
if (!string.IsNullOrEmpty(descriptionKey))
yield return new LocalizationKeyRef(descriptionKey, "Items", nameof(descriptionKey));
}
}
}