using System; using System.Collections.Generic; using SepCore.Battle; using SepCore.Definition; using UnityEngine; namespace SepCore.Components { public class StatComponent : MonoBehaviour { private readonly AttributePipeline _pipeline = new(); /// /// 纯逻辑属性修饰器管线。 /// public AttributePipeline Pipeline => _pipeline; public void OnInit() { } public void OnReset() { _pipeline.Clear(); } public void AddModifier(StatType statType, StatModifier modifier) { _pipeline.AddModifier(statType, modifier); } public bool RemoveModifier(StatType statType, StatModifier modifier) { return _pipeline.RemoveModifier(statType, modifier); } public void AddModifier(StatModifierConfig statModifierConfig, object source = null) { _pipeline.AddModifier(statModifierConfig, source); } public void RemoveModifier(StatModifierConfig statModifierConfig, object source = null) { _pipeline.RemoveModifier(statModifierConfig, source); } public int RemoveAllModifiersFromSource(object source) { return _pipeline.RemoveAllModifiersFromSource(source); } public float GetStatValue(StatType statType) { return _pipeline.GetValue(statType); } public CharacterStat GetCharacterStat(StatType statType) { return _pipeline.Get(statType); } } }