supervisor-simulator/scripts/Models/Modifiers.cs
2026-01-11 23:57:24 +08:00

81 lines
1.9 KiB
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.Collections.Generic;
namespace Models;
/// <summary>
/// 统一的数值修饰结构(用于学科 Buff、羁绊、装备、特质
/// 设计说明:
/// 1) 只表达“加成/倍率/规则”,不直接改变模型数值。
/// 2) 计算由系统层统一处理,便于叠加与回滚。
/// 注意事项:
/// - 这里的 Multiplier 默认 1.0f,不是百分比。
/// 未来扩展:
/// - 可加入“条件触发”与“持续时间”字段。
/// </summary>
public sealed class AttributeModifier
{
/// <summary>
/// 属性类型
/// </summary>
public AttributeType Type { get; set; }
/// <summary>
/// 加值
/// </summary>
public float Add { get; set; }
/// <summary>
/// 乘数
/// </summary>
public float Multiplier { get; set; } = 1.0f;
}
public sealed class StatusModifier
{
/// <summary>
/// 状态类型
/// </summary>
public StatusType Type { get; set; }
/// <summary>
/// 加值
/// </summary>
public float Add { get; set; }
/// <summary>
/// 乘数
/// </summary>
public float Multiplier { get; set; } = 1.0f;
}
public sealed class ResourceModifier
{
/// <summary>
/// 资源类型
/// </summary>
public ResourceType Type { get; set; }
/// <summary>
/// 加值
/// </summary>
public int Add { get; set; }
/// <summary>
/// 乘数
/// </summary>
public float Multiplier { get; set; } = 1.0f;
}
public sealed class ModifierBundle
{
/// <summary>
/// 属性修正列表
/// </summary>
public List<AttributeModifier> AttributeModifiers { get; } = new();
/// <summary>
/// 状态修正列表
/// </summary>
public List<StatusModifier> StatusModifiers { get; } = new();
/// <summary>
/// 资源修正列表
/// </summary>
public List<ResourceModifier> ResourceModifiers { get; } = new();
/// <summary>
/// 规则ID列表
/// </summary>
public List<string> RuleIds { get; } = new();
}