From 8391a47e4ec042bbcbd704b70fddb4ade8ded753 Mon Sep 17 00:00:00 2001 From: Zenny Date: Tue, 28 Feb 2023 19:40:12 -0800 Subject: [PATCH] Fix typing --- RPGLibrary.Implementation/AttackCommand.cs | 10 +++++----- RPGLibrary.Implementation/Character.cs | 2 +- RPGLibrary.Test/CommandExecuterTest.cs | 12 ++++++------ RPGLibrary/Command/CommandExecuter.cs | 5 ++--- RPGLibrary/Command/ICommand.cs | 8 +++----- 5 files changed, 17 insertions(+), 20 deletions(-) diff --git a/RPGLibrary.Implementation/AttackCommand.cs b/RPGLibrary.Implementation/AttackCommand.cs index 1fb799e..8f00632 100644 --- a/RPGLibrary.Implementation/AttackCommand.cs +++ b/RPGLibrary.Implementation/AttackCommand.cs @@ -1,10 +1,9 @@ -using RPGLibrary.Abstraction.Character; -using RPGLibrary.Abstraction.Services; +using RPGLibrary.Abstraction.Services; using RPGLibrary.Command; namespace RPGLibrary.Implementation.Command { - public class AttackCommand : ICommand + public class AttackCommand : ICommand { private readonly Character[] _target; private readonly StrengthAttackData _attackData; @@ -18,11 +17,12 @@ namespace RPGLibrary.Implementation.Command } - public async IAsyncEnumerable Execute() + public async IAsyncEnumerable Execute() + { foreach (var character in _target) { - var damage = _damageCalculator.Calculate(character, (dynamic)_attackData); + var damage = _damageCalculator.Calculate(character, _attackData); var newCurrentHP = new HP(character.HP.Value - damage, character.HP.Maximum); yield return character.With(newCurrentHP); } diff --git a/RPGLibrary.Implementation/Character.cs b/RPGLibrary.Implementation/Character.cs index 45300d8..236b958 100644 --- a/RPGLibrary.Implementation/Character.cs +++ b/RPGLibrary.Implementation/Character.cs @@ -25,7 +25,7 @@ namespace RPGLibrary.Implementation return $"{HP}, {Strength}, {Defense}"; } - public ICharacter With(HP hp) => new Character(Name, hp, Strength, Defense); + public Character With(HP hp) => new Character(Name, hp, Strength, Defense); } } \ No newline at end of file diff --git a/RPGLibrary.Test/CommandExecuterTest.cs b/RPGLibrary.Test/CommandExecuterTest.cs index 8b8a94d..accc661 100644 --- a/RPGLibrary.Test/CommandExecuterTest.cs +++ b/RPGLibrary.Test/CommandExecuterTest.cs @@ -16,13 +16,13 @@ namespace RPGLibrary.Test var attackData = new StrengthAttackData(source, source.Strength); var command = new AttackCommand(new[] { target }, attackData, damageCalculator); var commands = new[] { command }; - var results = CommandExecuter.Singleton.Execute(commands, new CancellationToken()); + var results = CommandExecuter.Singleton.Execute(commands, new CancellationToken()); var actual = new List(); await foreach (var resultOfCommand in results) { await foreach (var resultOfAttack in resultOfCommand) - actual.Add((Character)resultOfAttack); + actual.Add(resultOfAttack); } @@ -45,13 +45,13 @@ namespace RPGLibrary.Test var command = new AttackCommand(target, attackData, damageCalculator); var commands = new[] { command }; - var results = CommandExecuter.Singleton.Execute(commands, new CancellationToken()); + var results = CommandExecuter.Singleton.Execute(commands, new CancellationToken()); var actual = new List(); await foreach (var resultOfCommand in results) { await foreach (var resultOfAttack in resultOfCommand) - actual.Add((Character)resultOfAttack); + actual.Add(resultOfAttack); } @@ -78,14 +78,14 @@ namespace RPGLibrary.Test var commandC = new AttackCommand(target, attackData, damageCalculator); var commands = new[] { commandA, commandB, commandC }; - var results = CommandExecuter.Singleton.Execute(commands, new CancellationToken()); + var results = CommandExecuter.Singleton.Execute(commands, new CancellationToken()); await foreach (var resultOfCommand in results) { var characterList = new List(); await foreach (var r in resultOfCommand) { - characterList.Add((Character)r); + characterList.Add(r); } Assert.That(characterList[0].HP.Value, Is.EqualTo(32)); diff --git a/RPGLibrary/Command/CommandExecuter.cs b/RPGLibrary/Command/CommandExecuter.cs index 6338140..834c3e9 100644 --- a/RPGLibrary/Command/CommandExecuter.cs +++ b/RPGLibrary/Command/CommandExecuter.cs @@ -1,5 +1,4 @@ using System.Runtime.CompilerServices; -using RPGLibrary.Abstraction.Character; namespace RPGLibrary.Command { @@ -12,8 +11,8 @@ namespace RPGLibrary.Command private CommandExecuter() { } - public async IAsyncEnumerable> Execute( - IEnumerable commands, + public async IAsyncEnumerable> Execute( + IEnumerable> commands, [EnumeratorCancellation] CancellationToken ct) { foreach (var command in commands) diff --git a/RPGLibrary/Command/ICommand.cs b/RPGLibrary/Command/ICommand.cs index 9929db3..2e69bce 100644 --- a/RPGLibrary/Command/ICommand.cs +++ b/RPGLibrary/Command/ICommand.cs @@ -1,10 +1,8 @@ -using RPGLibrary.Abstraction.Character; - -namespace RPGLibrary.Command +namespace RPGLibrary.Command { - public interface ICommand + public interface ICommand { - public IAsyncEnumerable Execute(); + public IAsyncEnumerable Execute(); } } \ No newline at end of file