using System.Collections.Generic;
using UnityEngine;
using BaseGames.Core.Events;
namespace BaseGames.Equipment
{
///
/// 护符数据 SO(架构 09_ProgressionModule §3)。
/// 资产路径: Assets/ScriptableObjects/Equipment/Charms/Charm_{Name}.asset
///
[CreateAssetMenu(menuName = "BaseGames/Equipment/Charm")]
public class CharmSO : ScriptableObject
{
[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;
}
///
/// 护符事件频道(EVT_CharmEquipped / EVT_CharmUnequipped)。
///
[CreateAssetMenu(menuName = "BaseGames/Events/CharmEvent")]
public class CharmEventChannelSO : BaseEventChannelSO { }
}