Files
Colosseum/Assets/_Game/Scripts/Combat/Simulation/SimulationBatchResult.cs
dal4segno 285da31047 feat: 허수아비 계산 시뮬레이터 추가
- 빌드 입력, 룰셋, 회전 정책, 결과/리포트 모델을 포함한 데미지 계산 시뮬레이터 기반을 추가
- 단일 실행 창과 배치 전수 조사 창, 플레이어 데미지 스윕 메뉴를 추가
- DamageEffect 계산값 접근자를 열어 기존 전투 공식을 시뮬레이터에서 재사용하도록 정리
2026-03-28 15:07:09 +09:00

54 lines
1.9 KiB
C#

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