diff --git a/documentation/DocumentationTest.HpDocumentation.approved.md b/documentation/DocumentationTest.HpDocumentation.approved.md index 7a849d2..a1ccbce 100644 --- a/documentation/DocumentationTest.HpDocumentation.approved.md +++ b/documentation/DocumentationTest.HpDocumentation.approved.md @@ -411,7 +411,7 @@ - Level 5 - HP: 338 - Level 6 - HP: 361 - Level 7 - HP: 410 -- Level 8 - HP: 463 +- Level 8 - HP: 436 - Level 9 - HP: 491 - Level 10 - HP: 520 - Level 11 - HP: 581 @@ -421,7 +421,7 @@ - Level 15 - HP: 788 - Level 16 - HP: 826 - Level 17 - HP: 905 -- Level 18 - HP: 988 +- Level 18 - HP: 946 - Level 19 - HP: 1031 - Level 20 - HP: 1075 - Level 21 - HP: 1166 @@ -431,7 +431,7 @@ - Level 25 - HP: 1463 - Level 26 - HP: 1516 - Level 27 - HP: 1625 -- Level 28 - HP: 1738 +- Level 28 - HP: 1681 - Level 29 - HP: 1796 - Level 30 - HP: 1855 - Level 31 - HP: 1976 @@ -441,7 +441,7 @@ - Level 35 - HP: 2363 - Level 36 - HP: 2431 - Level 37 - HP: 2570 -- Level 38 - HP: 2713 +- Level 38 - HP: 2641 - Level 39 - HP: 2786 - Level 40 - HP: 2860 - Level 41 - HP: 3011 @@ -451,7 +451,7 @@ - Level 45 - HP: 3488 - Level 46 - HP: 3571 - Level 47 - HP: 3740 -- Level 48 - HP: 3913 +- Level 48 - HP: 3826 - Level 49 - HP: 4001 - Level 50 - HP: 4090 - Level 51 - HP: 4271 @@ -461,7 +461,7 @@ - Level 55 - HP: 4838 - Level 56 - HP: 4936 - Level 57 - HP: 5135 -- Level 58 - HP: 5338 +- Level 58 - HP: 5236 - Level 59 - HP: 5441 - Level 60 - HP: 5545 - Level 61 - HP: 5756 @@ -471,7 +471,7 @@ - Level 65 - HP: 6413 - Level 66 - HP: 6526 - Level 67 - HP: 6755 -- Level 68 - HP: 6988 +- Level 68 - HP: 6871 - Level 69 - HP: 7106 - Level 70 - HP: 7225 - Level 71 - HP: 7466 @@ -481,7 +481,7 @@ - Level 75 - HP: 8213 - Level 76 - HP: 8341 - Level 77 - HP: 8600 -- Level 78 - HP: 8863 +- Level 78 - HP: 8731 - Level 79 - HP: 8996 - Level 80 - HP: 9130 - Level 81 - HP: 9401 @@ -491,7 +491,7 @@ - Level 85 - HP: 10238 - Level 86 - HP: 10381 - Level 87 - HP: 10670 -- Level 88 - HP: 10963 +- Level 88 - HP: 10816 - Level 89 - HP: 11111 - Level 90 - HP: 11260 - Level 91 - HP: 11561 @@ -501,5 +501,5 @@ - Level 95 - HP: 12488 - Level 96 - HP: 12646 - Level 97 - HP: 12965 -- Level 98 - HP: 13288 +- Level 98 - HP: 13126 - Level 99 - HP: 13451 diff --git a/src/NosCore.Algorithm/CloseDefenceService/CloseDefenceService.cs b/src/NosCore.Algorithm/CloseDefenceService/CloseDefenceService.cs index aa18e9f..1a0c6b3 100644 --- a/src/NosCore.Algorithm/CloseDefenceService/CloseDefenceService.cs +++ b/src/NosCore.Algorithm/CloseDefenceService/CloseDefenceService.cs @@ -1,7 +1,4 @@ using NosCore.Shared.Enumerations; -using System; -using System.Collections.Generic; -using System.Text; namespace NosCore.Algorithm.CloseDefenceService { diff --git a/src/NosCore.Algorithm/Constants.cs b/src/NosCore.Algorithm/Constants.cs index 1fe89bd..c5a60ed 100644 --- a/src/NosCore.Algorithm/Constants.cs +++ b/src/NosCore.Algorithm/Constants.cs @@ -1,5 +1,5 @@ -using System; -using NosCore.Shared.Enumerations; +using NosCore.Shared.Enumerations; +using System; namespace NosCore.Algorithm { diff --git a/src/NosCore.Algorithm/DamageService/DamageService.cs b/src/NosCore.Algorithm/DamageService/DamageService.cs index fa5bb18..840750c 100644 --- a/src/NosCore.Algorithm/DamageService/DamageService.cs +++ b/src/NosCore.Algorithm/DamageService/DamageService.cs @@ -4,10 +4,6 @@ // |_|\__|\__/ |___/ \__/\__/|_|_\___| // ----------------------------------- -using NosCore.Algorithm.HpService; -using System; -using System.Collections.Generic; -using System.Text; using NosCore.Shared.Enumerations; namespace NosCore.Algorithm.DamageService @@ -19,8 +15,8 @@ public class DamageService : IDamageService public DamageService() { _minDamage[(byte)CharacterClassType.Adventurer, 0] = 10; - _minDamage[(byte)CharacterClassType.Swordsman, 0] = 10; _minDamage[(byte)CharacterClassType.Archer, 0] = 60; + _minDamage[(byte)CharacterClassType.Swordsman, 0] = 10; _minDamage[(byte)CharacterClassType.Mage, 0] = 10; _minDamage[(byte)CharacterClassType.MartialArtist, 0] = 10; diff --git a/src/NosCore.Algorithm/DignityService/DignityService.cs b/src/NosCore.Algorithm/DignityService/DignityService.cs index 2c7a04b..812599a 100644 --- a/src/NosCore.Algorithm/DignityService/DignityService.cs +++ b/src/NosCore.Algorithm/DignityService/DignityService.cs @@ -7,7 +7,6 @@ using System; using System.Collections.Generic; using System.Linq; -using NosCore.Algorithm.DignityService; using NosCore.Shared.Enumerations; namespace NosCore.Algorithm.DignityService diff --git a/src/NosCore.Algorithm/DistanceDefenceService/DistanceDefenceService.cs b/src/NosCore.Algorithm/DistanceDefenceService/DistanceDefenceService.cs index 5ee12a1..59946dd 100644 --- a/src/NosCore.Algorithm/DistanceDefenceService/DistanceDefenceService.cs +++ b/src/NosCore.Algorithm/DistanceDefenceService/DistanceDefenceService.cs @@ -1,7 +1,4 @@ using NosCore.Shared.Enumerations; -using System; -using System.Collections.Generic; -using System.Text; namespace NosCore.Algorithm.DistanceDefenceService { diff --git a/src/NosCore.Algorithm/DistanceDodgeService/DistanceDodgeService.cs b/src/NosCore.Algorithm/DistanceDodgeService/DistanceDodgeService.cs index 0f97444..8269265 100644 --- a/src/NosCore.Algorithm/DistanceDodgeService/DistanceDodgeService.cs +++ b/src/NosCore.Algorithm/DistanceDodgeService/DistanceDodgeService.cs @@ -1,7 +1,4 @@ using NosCore.Shared.Enumerations; -using System; -using System.Collections.Generic; -using System.Text; namespace NosCore.Algorithm.DistanceDodgeService { diff --git a/src/NosCore.Algorithm/DodgeService/HitDodgeService.cs b/src/NosCore.Algorithm/DodgeService/HitDodgeService.cs index 0e29155..ae6db8f 100644 --- a/src/NosCore.Algorithm/DodgeService/HitDodgeService.cs +++ b/src/NosCore.Algorithm/DodgeService/HitDodgeService.cs @@ -1,7 +1,4 @@ using NosCore.Shared.Enumerations; -using System; -using System.Collections.Generic; -using System.Text; namespace NosCore.Algorithm.HitDodgeService { diff --git a/src/NosCore.Algorithm/HeroExperienceService/HeroExperienceService.cs b/src/NosCore.Algorithm/HeroExperienceService/HeroExperienceService.cs index 0d1df80..00d5ba3 100644 --- a/src/NosCore.Algorithm/HeroExperienceService/HeroExperienceService.cs +++ b/src/NosCore.Algorithm/HeroExperienceService/HeroExperienceService.cs @@ -5,7 +5,6 @@ // ----------------------------------- using System; -using NosCore.Algorithm.ExperienceService; namespace NosCore.Algorithm.HeroExperienceService { diff --git a/src/NosCore.Algorithm/HitRateService/HitRateService.cs b/src/NosCore.Algorithm/HitRateService/HitRateService.cs index 24c4992..665b46b 100644 --- a/src/NosCore.Algorithm/HitRateService/HitRateService.cs +++ b/src/NosCore.Algorithm/HitRateService/HitRateService.cs @@ -4,9 +4,6 @@ // |_|\__|\__/ |___/ \__/\__/|_|_\___| // ----------------------------------- -using System; -using System.Collections.Generic; -using System.Text; using NosCore.Shared.Enumerations; namespace NosCore.Algorithm.HitRateService diff --git a/src/NosCore.Algorithm/HpService/HpService.cs b/src/NosCore.Algorithm/HpService/HpService.cs index 61c892a..b09dd3e 100644 --- a/src/NosCore.Algorithm/HpService/HpService.cs +++ b/src/NosCore.Algorithm/HpService/HpService.cs @@ -12,92 +12,18 @@ namespace NosCore.Algorithm.HpService public class HpService : IHpService { private readonly long[,] _hpData = new long[Constants.ClassCount, Constants.MaxLevel]; + public readonly int[][] ClassConstants = new int[][] { new int[] { 0, 0, 0 }, new int[] { 8, 2, 0 }, new int[] { 3, 6, 1 }, new int[] { 0, 2, 8 }, new int[] { 5, 3, 2 } }; public HpService() - { - // Adventurer HP - var basicHp = 205; - var basicInc = 15; - for (var i = 0; i < Constants.MaxLevel; i++) - { - basicInc++; - basicHp += basicInc; - - _hpData[(byte)CharacterClassType.Adventurer, i] = basicHp; - } - - var swordHp = 190; - var swordInc = 14; - for (var i = 0; i < Constants.MaxLevel; i++) - { - var increase2 = (i - 2) % 10 == 0; - var increase3 = (i - 3) % 10 == 0; - var increase4 = (i - 4) % 10 == 0; - var increase5 = (i - 5) % 10 == 0; - var increase7 = (i - 7) % 10 == 0; - var increase8 = (i - 8) % 10 == 0; - var increase9 = (i - 9) % 10 == 0; - - swordInc++; - swordHp += swordInc; - - if (increase2 || increase3 || increase4 || increase5 || increase7 || increase8 || increase9 || i % 10 == 0) - { - swordInc++; - swordHp += swordInc; - } - - _hpData[(byte)CharacterClassType.Swordsman, i] = swordHp; - } - - var magecHp = 205; - var mageInc = 15; - for (var i = 0; i < Constants.MaxLevel; i++) - { - mageInc++; - magecHp += mageInc; - - _hpData[(byte)CharacterClassType.Mage, i] = magecHp; - } - - var archerHp = 190; - var archerInc = 14; - for (var i = 0; i < Constants.MaxLevel; i++) - { - var increase4 = (i - 4) % 10 == 0; - var increase7 = (i - 7) % 10 == 0; - - archerInc++; - archerHp += archerInc; - - if (increase4 || increase7 || i % 10 == 0) - { - archerInc++; - archerHp += archerInc; - } - - _hpData[(byte)CharacterClassType.Archer, i] = archerHp; - } - - var fighterHp = 190; - var fighterInc = 14; - for (var i = 0; i < Constants.MaxLevel; i++) + { + foreach (CharacterClassType classType in Enum.GetValues(typeof(CharacterClassType))) { - var increase2 = (i - 2) % 10 == 0; - var increase4 = (i - 4) % 10 == 0; - var increase6 = (i - 6) % 10 == 0; - var increase7 = (i - 7) % 10 == 0; - - fighterInc++; - fighterHp += fighterInc; - - if (increase2 || increase4 || increase6 || increase7 || i % 10 == 0) + for (var i = 0; i < Constants.MaxLevel; i++) { - fighterInc++; - fighterHp += fighterInc; + var hpx = i + 1 + Math.Floor(i * (double)(ClassConstants[(int)classType][0]) / 10); + var hp = (0.5 * Math.Pow(hpx, 2)) + (15.5 * hpx) + 205; + _hpData[(int)classType, i] = (long)hp; } - - _hpData[(byte)CharacterClassType.MartialArtist, i] = fighterHp; } } public long GetHp(CharacterClassType @class, byte level) diff --git a/src/NosCore.Algorithm/JobExperienceService/JobExperienceService.cs b/src/NosCore.Algorithm/JobExperienceService/JobExperienceService.cs index 880cc8d..9076489 100644 --- a/src/NosCore.Algorithm/JobExperienceService/JobExperienceService.cs +++ b/src/NosCore.Algorithm/JobExperienceService/JobExperienceService.cs @@ -4,8 +4,8 @@ // |_|\__|\__/ |___/ \__/\__/|_|_\___| // ----------------------------------- -using NosCore.Shared.Enumerations; - +using NosCore.Shared.Enumerations; + namespace NosCore.Algorithm.JobExperienceService { public class JobExperienceService : IJobExperienceService diff --git a/src/NosCore.Algorithm/MagicDefenceService/MagicDefenceService.cs b/src/NosCore.Algorithm/MagicDefenceService/MagicDefenceService.cs index 67e4af0..6e73091 100644 --- a/src/NosCore.Algorithm/MagicDefenceService/MagicDefenceService.cs +++ b/src/NosCore.Algorithm/MagicDefenceService/MagicDefenceService.cs @@ -1,7 +1,4 @@ using NosCore.Shared.Enumerations; -using System; -using System.Collections.Generic; -using System.Text; namespace NosCore.Algorithm.MagicDefenceService { diff --git a/src/NosCore.Algorithm/MpService/MpService.cs b/src/NosCore.Algorithm/MpService/MpService.cs index 3cece59..2ec017e 100644 --- a/src/NosCore.Algorithm/MpService/MpService.cs +++ b/src/NosCore.Algorithm/MpService/MpService.cs @@ -4,7 +4,6 @@ // |_|\__|\__/ |___/ \__/\__/|_|_\___| // ----------------------------------- -using System; using NosCore.Shared.Enumerations; namespace NosCore.Algorithm.MpService diff --git a/src/NosCore.Algorithm/NosCore.Algorithm.csproj b/src/NosCore.Algorithm/NosCore.Algorithm.csproj index f05925d..7323757 100644 --- a/src/NosCore.Algorithm/NosCore.Algorithm.csproj +++ b/src/NosCore.Algorithm/NosCore.Algorithm.csproj @@ -13,7 +13,7 @@ https://github.com/NosCoreIO/NosCore.Algorithm.git nostale, noscore, nostale private server source, nostale emulator - 0.6.2 + 0.6.3 false NosCore's Algorithm GPL-3.0-only diff --git a/src/NosCore.Algorithm/SecondaryDamageService/SecondaryDamageService.cs b/src/NosCore.Algorithm/SecondaryDamageService/SecondaryDamageService.cs index 238950d..75b25f3 100644 --- a/src/NosCore.Algorithm/SecondaryDamageService/SecondaryDamageService.cs +++ b/src/NosCore.Algorithm/SecondaryDamageService/SecondaryDamageService.cs @@ -4,10 +4,8 @@ // |_|\__|\__/ |___/ \__/\__/|_|_\___| // ----------------------------------- -using System; -using System.Collections.Generic; -using System.Text; using NosCore.Shared.Enumerations; +using System; namespace NosCore.Algorithm.SecondaryDamageService { diff --git a/src/NosCore.Algorithm/SecondaryHitRateService/SecondaryHitRateService.cs b/src/NosCore.Algorithm/SecondaryHitRateService/SecondaryHitRateService.cs index bbde947..59df0d0 100644 --- a/src/NosCore.Algorithm/SecondaryHitRateService/SecondaryHitRateService.cs +++ b/src/NosCore.Algorithm/SecondaryHitRateService/SecondaryHitRateService.cs @@ -1,7 +1,4 @@ using NosCore.Shared.Enumerations; -using System; -using System.Collections.Generic; -using System.Text; namespace NosCore.Algorithm.SecondaryHitRateService {