using System.Collections.Generic;
using UnityEngine;
namespace Colosseum.Combat.Simulation
{
///
/// 배치 시뮬레이션의 단일 결과 엔트리입니다.
///
[System.Serializable]
public sealed class SimulationBatchEntry
{
[SerializeField] private string buildLabel;
[SerializeField] private SimulationResult result;
public string BuildLabel => buildLabel;
public SimulationResult Result => result;
public SimulationBatchEntry(string buildLabel, SimulationResult result)
{
this.buildLabel = buildLabel ?? string.Empty;
this.result = result;
}
}
///
/// 배치 시뮬레이션의 전체 결과입니다.
///
[System.Serializable]
public sealed class SimulationBatchResult
{
[SerializeField] private string batchName = string.Empty;
[SerializeField] private int generatedBuildCount;
[SerializeField] private bool truncated;
[SerializeField] private List entries = new List();
[SerializeField] private List warnings = new List();
public string BatchName => batchName;
public int GeneratedBuildCount => generatedBuildCount;
public bool Truncated => truncated;
public IReadOnlyList Entries => entries;
public IReadOnlyList Warnings => warnings;
public void Initialize(string batchName, int generatedBuildCount, bool truncated, List entries, List warnings)
{
this.batchName = batchName ?? string.Empty;
this.generatedBuildCount = Mathf.Max(0, generatedBuildCount);
this.truncated = truncated;
this.entries = entries ?? new List();
this.warnings = warnings ?? new List();
}
}
}