using UnityEngine;
namespace Colosseum.Combat.Simulation
{
///
/// 허수아비 계산 시뮬레이터의 고정 가정입니다.
///
[System.Serializable]
public class SimulationRuleSet
{
[Header("Label")]
[SerializeField] private string ruleName = "Dummy10s";
[Header("Timeline")]
[Min(0.1f)] [SerializeField] private float durationSeconds = 10f;
[Min(1)] [SerializeField] private int targetCount = 1;
[Min(0f)] [SerializeField] private float movementLossSecondsPerCast = 0f;
[Min(0f)] [SerializeField] private float manaRegenPerSecond = 0f;
public string RuleName => string.IsNullOrWhiteSpace(ruleName) ? "Rule" : ruleName.Trim();
public float DurationSeconds => durationSeconds;
public int TargetCount => Mathf.Max(1, targetCount);
public float MovementLossSecondsPerCast => Mathf.Max(0f, movementLossSecondsPerCast);
public float ManaRegenPerSecond => Mathf.Max(0f, manaRegenPerSecond);
///
/// 룰셋 값을 한 번에 설정합니다.
///
public void Configure(string ruleName, float durationSeconds, int targetCount, float movementLossSecondsPerCast, float manaRegenPerSecond)
{
this.ruleName = ruleName ?? string.Empty;
this.durationSeconds = Mathf.Max(0.1f, durationSeconds);
this.targetCount = Mathf.Max(1, targetCount);
this.movementLossSecondsPerCast = Mathf.Max(0f, movementLossSecondsPerCast);
this.manaRegenPerSecond = Mathf.Max(0f, manaRegenPerSecond);
}
}
}