Files
zeling_v2/Assets/Scripts/Equipment/Effects/StatModifierEffect.cs
2026-05-12 21:50:49 +08:00

30 lines
928 B
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 System;
using BaseGames.Player;
namespace BaseGames.Equipment
{
/// <summary>
/// 属性加成护符效果(架构 09_ProgressionModule §5
/// 装备时通过 PlayerStats.AddModifier 叠加固定/百分比属性加成。
/// </summary>
[Serializable]
public class StatModifierEffect : ICharmEffect
{
public StatType statType;
public float flatBonus; // 固定加成(如 +1 HP
public float percentBonus; // 百分比加成(如 +0.2 = +20%
public void OnEquip(EquipmentContext ctx)
{
ctx.Stats?.AddModifier(statType, flatBonus, percentBonus);
}
public void OnUnequip(EquipmentContext ctx)
{
ctx.Stats?.RemoveModifier(statType, flatBonus, percentBonus);
}
public string GetEffectDescription() => $"{statType}: +{flatBonus} +{percentBonus * 100:0}%";
}
}