From 2426cbf0306bdfc4813988b6e56040184caf389b Mon Sep 17 00:00:00 2001 From: erwan-joly Date: Sat, 23 May 2020 17:06:55 +1200 Subject: [PATCH] add speed service and bump --- ...ationTest.DignityDocumentation.approved.md | 5 --- ...onTest.ReputationDocumentation.approved.md | 31 ------------------- ...ntationTest.SpeedDocumentation.approved.md | 6 ++++ .../NosCore.Algorithm.csproj | 2 +- .../IReputationService.cs | 0 .../ReputationService.cs | 0 .../SpeedService/ISpeedService.cs | 15 +++++++++ .../SpeedService/SpeedService.cs | 30 ++++++++++++++++++ .../DocumentationTest.cs | 19 ++++++++++-- 9 files changed, 69 insertions(+), 39 deletions(-) create mode 100644 documentation/DocumentationTest.SpeedDocumentation.approved.md rename src/NosCore.Algorithm/{ReputationService - Copy => ReputationService}/IReputationService.cs (100%) rename src/NosCore.Algorithm/{ReputationService - Copy => ReputationService}/ReputationService.cs (100%) create mode 100644 src/NosCore.Algorithm/SpeedService/ISpeedService.cs create mode 100644 src/NosCore.Algorithm/SpeedService/SpeedService.cs diff --git a/documentation/DocumentationTest.DignityDocumentation.approved.md b/documentation/DocumentationTest.DignityDocumentation.approved.md index a6ff38f..707dc84 100644 --- a/documentation/DocumentationTest.DignityDocumentation.approved.md +++ b/documentation/DocumentationTest.DignityDocumentation.approved.md @@ -1,12 +1,7 @@ # Dignity Table - 1 Default - Max: 200 Min: -99 - - 2 Dubious - Max: -100 Min: -200 - - 3 Dreadful - Max: -201 Min: -400 - - 4 Unqualified - Max: -401 Min: -600 - - 5 Useless - Max: -601 Min: -800 - - 6 Failed - Max: -801 Min: -1000 diff --git a/documentation/DocumentationTest.ReputationDocumentation.approved.md b/documentation/DocumentationTest.ReputationDocumentation.approved.md index 973fa66..3a407b0 100644 --- a/documentation/DocumentationTest.ReputationDocumentation.approved.md +++ b/documentation/DocumentationTest.ReputationDocumentation.approved.md @@ -1,64 +1,33 @@ # Reputation Table - 1 GreenBeginner - Min: 0 Max: 50 - - 2 BlueBeginner - Min: 51 Max: 150 - - 3 RedBeginner - Min: 151 Max: 250 - - 4 GreenTrainee - Min: 251 Max: 500 - - 5 BlueTrainee - Min: 501 Max: 750 - - 6 RedTrainee - Min: 751 Max: 1000 - - 7 GreenExperienced - Min: 1001 Max: 2250 - - 8 BlueExperienced - Min: 2251 Max: 3500 - - 9 RedExperienced - Min: 3501 Max: 5000 - - 10 GreenSoldier - Min: 5001 Max: 9500 - - 11 BlueSoldier - Min: 9501 Max: 19000 - - 12 RedSoldier - Min: 19001 Max: 25000 - - 13 GreenExpert - Min: 25001 Max: 40000 - - 14 BlueExpert - Min: 40001 Max: 60000 - - 15 RedExpert - Min: 60001 Max: 85000 - - 16 GreenLeader - Min: 85001 Max: 115000 - - 17 BlueLeader - Min: 115001 Max: 150000 - - 18 RedLeader - Min: 150001 Max: 190000 - - 19 GreenMaster - Min: 190001 Max: 235000 - - 20 BlueMaster - Min: 235001 Max: 285000 - - 21 RedMaster - Min: 285001 Max: 350000 - - 22 GreenNos - Min: 350001 Max: 500000 - - 23 BlueNos - Min: 500001 Max: 1500000 - - 24 RedNos - Min: 1500001 Max: 2500000 - - 25 GreenElite - Min: 2500001 Max: 3750000 - - 26 BlueElite - Min: 3750001 Max: 5000000 - - 27 RedElite - Min: 5000001 Max: 9223372036854775807 - - 28 GreenLegend - Min: 5000001 Max: 9223372036854775807 - - 29 BlueLegend - Min: 5000001 Max: 9223372036854775807 - - 30 AncientHero - Min: 5000001 Max: 9223372036854775807 - - 31 MysteriousHero - Min: 5000001 Max: 9223372036854775807 - - 32 LegendaryHero - Min: 5000001 Max: 9223372036854775807 diff --git a/documentation/DocumentationTest.SpeedDocumentation.approved.md b/documentation/DocumentationTest.SpeedDocumentation.approved.md new file mode 100644 index 0000000..f3e4822 --- /dev/null +++ b/documentation/DocumentationTest.SpeedDocumentation.approved.md @@ -0,0 +1,6 @@ +# Speed Table +- Adventurer : 11 +- Swordman : 11 +- Archer : 12 +- Magician : 10 +- MartialArtist : 11 diff --git a/src/NosCore.Algorithm/NosCore.Algorithm.csproj b/src/NosCore.Algorithm/NosCore.Algorithm.csproj index 6aa4244..3fe49f1 100644 --- a/src/NosCore.Algorithm/NosCore.Algorithm.csproj +++ b/src/NosCore.Algorithm/NosCore.Algorithm.csproj @@ -12,7 +12,7 @@ https://github.com/NosCoreIO/NosCore.Algorithm.git nostale, noscore, nostale private server source, nostale emulator - 0.3.0 + 0.4.0 false NosCore's Algorithm GPL-3.0-only diff --git a/src/NosCore.Algorithm/ReputationService - Copy/IReputationService.cs b/src/NosCore.Algorithm/ReputationService/IReputationService.cs similarity index 100% rename from src/NosCore.Algorithm/ReputationService - Copy/IReputationService.cs rename to src/NosCore.Algorithm/ReputationService/IReputationService.cs diff --git a/src/NosCore.Algorithm/ReputationService - Copy/ReputationService.cs b/src/NosCore.Algorithm/ReputationService/ReputationService.cs similarity index 100% rename from src/NosCore.Algorithm/ReputationService - Copy/ReputationService.cs rename to src/NosCore.Algorithm/ReputationService/ReputationService.cs diff --git a/src/NosCore.Algorithm/SpeedService/ISpeedService.cs b/src/NosCore.Algorithm/SpeedService/ISpeedService.cs new file mode 100644 index 0000000..325c876 --- /dev/null +++ b/src/NosCore.Algorithm/SpeedService/ISpeedService.cs @@ -0,0 +1,15 @@ +// __ _ __ __ ___ __ ___ ___ +// | \| |/__\ /' _/ / _//__\| _ \ __| +// | | ' | \/ |`._`.| \_| \/ | v / _| +// |_|\__|\__/ |___/ \__/\__/|_|_\___| +// ----------------------------------- + +using NosCore.Shared.Enumerations; + +namespace NosCore.Algorithm.SpeedService +{ + public interface ISpeedService + { + byte GetSpeed(CharacterClassType entityClass); + } +} \ No newline at end of file diff --git a/src/NosCore.Algorithm/SpeedService/SpeedService.cs b/src/NosCore.Algorithm/SpeedService/SpeedService.cs new file mode 100644 index 0000000..cdb207d --- /dev/null +++ b/src/NosCore.Algorithm/SpeedService/SpeedService.cs @@ -0,0 +1,30 @@ +// __ _ __ __ ___ __ ___ ___ +// | \| |/__\ /' _/ / _//__\| _ \ __| +// | | ' | \/ |`._`.| \_| \/ | v / _| +// |_|\__|\__/ |___/ \__/\__/|_|_\___| +// ----------------------------------- + +using System.Collections.Generic; +using NosCore.Shared.Enumerations; + +namespace NosCore.Algorithm.SpeedService +{ + public class SpeedService : ISpeedService + { + private readonly Dictionary _data = new Dictionary(); + + public SpeedService() + { + _data[CharacterClassType.Adventurer] = 11; + _data[CharacterClassType.Swordman] = 11; + _data[CharacterClassType.Archer] = 12; + _data[CharacterClassType.Magician] = 10; + _data[CharacterClassType.MartialArtist] = 11; + } + + public byte GetSpeed(CharacterClassType entityClass) + { + return _data[entityClass]; + } + } +} diff --git a/test/NosCore.Algorithm.Tests/DocumentationTest.cs b/test/NosCore.Algorithm.Tests/DocumentationTest.cs index e8bb3e0..454fb4c 100644 --- a/test/NosCore.Algorithm.Tests/DocumentationTest.cs +++ b/test/NosCore.Algorithm.Tests/DocumentationTest.cs @@ -158,9 +158,9 @@ public void ReputationDocumentation() var reputationService = new ReputationService.ReputationService(); var resultBuilder = new StringBuilder("# Reputation Table"); + resultBuilder.AppendLine(); foreach (var reput in Enum.GetValues(typeof(ReputationType)).Cast()) { - resultBuilder.AppendLine(); var result = reputationService.GetReputation(reput); resultBuilder.AppendLine($"- {(byte)reput,2} {reput.ToString().PadRight(16)} - Min: {result.Item1} Max: {result.Item2}"); if (reput < ReputationType.GreenLegend) @@ -179,9 +179,9 @@ public void DignityDocumentation() var dignityService = new DignityService.DignityService(); var resultBuilder = new StringBuilder("# Dignity Table"); + resultBuilder.AppendLine(); foreach (var dignity in Enum.GetValues(typeof(DignityType)).Cast()) { - resultBuilder.AppendLine(); var result = dignityService.GetDignity(dignity); resultBuilder.AppendLine($"- {(byte)dignity,2} {dignity.ToString().PadRight(11)} - Max: {result.Item1} Min: {result.Item2}"); Assert.AreEqual(dignity, dignityService.GetLevelFromDignity(result.Item1)); @@ -211,6 +211,21 @@ public void SecondaryDamageDocumentation() Approvals.Verify(WriterFactory.CreateTextWriter(resultBuilder.ToString(), "md")); } + [TestMethod] + public void SpeedDocumentation() + { + var speedService = new SpeedService.SpeedService(); + + var resultBuilder = new StringBuilder("# Speed Table"); + resultBuilder.AppendLine(); + foreach (var @class in Enum.GetValues(typeof(CharacterClassType)).Cast()) + { + resultBuilder.AppendLine($"- {@class} : {speedService.GetSpeed(@class)}"); + } + + Approvals.Verify(WriterFactory.CreateTextWriter(resultBuilder.ToString(), "md")); + } + [TestMethod] public void HitRateDocumentation() {