Files
vampire-like/Assets/GameMain/Scripts/Runtime/Components/StatComponent.cs
T
2026-09-18 21:43:22 +08:00

63 lines
1.6 KiB
C#

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();
/// <summary>
/// 纯逻辑属性修饰器管线。
/// </summary>
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);
}
}
}