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) {