2024-07-26 20:49:10 +05:00

40 lines
1010 B
C#

using System.Text;
using SoulstormReplayReader.Core.Domain.Action;
using SoulstormReplayReader.Core.Domain.BugCheckers;
namespace SoulstormReplayReader.Core.Domain.Player;
public class PlayerBugChecker
{
private readonly List<BugCheckerBase> _bugCheckers = new();
public PlayerBugChecker Add(BugCheckerBase checker)
{
_bugCheckers.Add(checker);
return this;
}
public void Check(IGameAction action)
{
_bugCheckers.ForEach(bugChecker => bugChecker.Check(action));
}
public bool HasAccusations() => _bugCheckers.Any(checker => checker.HasAccusation);
public string GetAccusationsList()
{
var sb = new StringBuilder();
foreach (var checker in _bugCheckers.Where(checker => checker.HasAccusation))
{
sb.AppendLine(checker.Accusation);
}
var accusationsList = sb.ToString();
if (string.IsNullOrEmpty(accusationsList))
return null;
return accusationsList;
}
}