28 lines
895 B
C#
28 lines
895 B
C#
using System;
|
||
using BaseGames.Skills;
|
||
|
||
namespace BaseGames.Equipment
|
||
{
|
||
/// <summary>
|
||
/// 技能数值修改护符效果(架构 09_ProgressionModule §5)。
|
||
/// 通过 SkillModifierRegistry 对指定技能的数值加成。
|
||
/// </summary>
|
||
[Serializable]
|
||
public class SkillNumericModifierEffect : ICharmEffect
|
||
{
|
||
public string TargetSkillId;
|
||
public SkillStat Stat;
|
||
public float Delta;
|
||
public bool IsPercent;
|
||
|
||
public void OnEquip(EquipmentContext ctx)
|
||
=> ctx.SkillMods?.Register(TargetSkillId, Stat, Delta, IsPercent);
|
||
|
||
public void OnUnequip(EquipmentContext ctx)
|
||
=> ctx.SkillMods?.Unregister(TargetSkillId, Stat, Delta, IsPercent);
|
||
|
||
public string GetEffectDescription()
|
||
=> $"{TargetSkillId}.{Stat} {(Delta >= 0 ? "+" : "")}{Delta}{(IsPercent ? "%" : "")}";
|
||
}
|
||
}
|