From 23a826c815c9ddf15924400ac8c572043b3d6a70 Mon Sep 17 00:00:00 2001 From: Jaculabilis Date: Sun, 6 Nov 2022 21:09:22 -0800 Subject: [PATCH] Add adjudicator logger --- .../Adjudicate/Logging/ConsoleLogger.cs | 13 +++++++++++++ .../Adjudicate/Logging/IAdjudicatorLogger.cs | 6 ++++++ .../Adjudicate/MovementPhaseAdjudicator.cs | 10 +++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 MultiversalDiplomacy/Adjudicate/Logging/ConsoleLogger.cs create mode 100644 MultiversalDiplomacy/Adjudicate/Logging/IAdjudicatorLogger.cs diff --git a/MultiversalDiplomacy/Adjudicate/Logging/ConsoleLogger.cs b/MultiversalDiplomacy/Adjudicate/Logging/ConsoleLogger.cs new file mode 100644 index 0000000..d68ea2c --- /dev/null +++ b/MultiversalDiplomacy/Adjudicate/Logging/ConsoleLogger.cs @@ -0,0 +1,13 @@ +namespace MultiversalDiplomacy.Adjudicate.Logging; + +public class ConsoleLogger : IAdjudicatorLogger +{ + public static ConsoleLogger Instance { get; } = new(); + + public void Log(int contextLevel, string message, params object[] args) + { + string spacing = string.Format($"{{0,{2 * contextLevel}}}", string.Empty); + string formattedMessage = string.Format(message, args); + Console.WriteLine(spacing + formattedMessage); + } +} \ No newline at end of file diff --git a/MultiversalDiplomacy/Adjudicate/Logging/IAdjudicatorLogger.cs b/MultiversalDiplomacy/Adjudicate/Logging/IAdjudicatorLogger.cs new file mode 100644 index 0000000..3c42b30 --- /dev/null +++ b/MultiversalDiplomacy/Adjudicate/Logging/IAdjudicatorLogger.cs @@ -0,0 +1,6 @@ +namespace MultiversalDiplomacy.Adjudicate.Logging; + +public interface IAdjudicatorLogger +{ + public void Log(int contextLevel, string message, params object[] args); +} \ No newline at end of file diff --git a/MultiversalDiplomacy/Adjudicate/MovementPhaseAdjudicator.cs b/MultiversalDiplomacy/Adjudicate/MovementPhaseAdjudicator.cs index fe6905e..3e048f2 100644 --- a/MultiversalDiplomacy/Adjudicate/MovementPhaseAdjudicator.cs +++ b/MultiversalDiplomacy/Adjudicate/MovementPhaseAdjudicator.cs @@ -1,6 +1,7 @@ using System.Collections.ObjectModel; using MultiversalDiplomacy.Adjudicate.Decision; +using MultiversalDiplomacy.Adjudicate.Logging; using MultiversalDiplomacy.Model; using MultiversalDiplomacy.Orders; @@ -11,7 +12,14 @@ namespace MultiversalDiplomacy.Adjudicate; /// public class MovementPhaseAdjudicator : IPhaseAdjudicator { - public static IPhaseAdjudicator Instance { get; } = new MovementPhaseAdjudicator(); + public static IPhaseAdjudicator Instance { get; } = new MovementPhaseAdjudicator(ConsoleLogger.Instance); + + private IAdjudicatorLogger logger { get; } + + public MovementPhaseAdjudicator(IAdjudicatorLogger logger) + { + this.logger = logger; + } public List ValidateOrders(World world, List orders) {