63 lines
1.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|