Skip to content

Commit 9a72382

Browse files
authored
Merge pull request #3 from NosCoreIO/FixStats
fix stats
2 parents 5624cbc + cdf2cec commit 9a72382

File tree

8 files changed

+303
-11
lines changed

8 files changed

+303
-11
lines changed

documentation/DocumentationTest.ExperienceDocumentation.approved.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,6 @@ Level 93 - XP: 1340194000
9595
Level 94 - XP: 1457519000
9696
Level 95 - XP: 1577327000
9797
Level 96 - XP: 1699644000
98-
Level 97 - XP: 1824496000
99-
Level 98 - XP: 1951909000
100-
Level 99 - XP: 2081909000
98+
Level 97 - XP: 1843704000
99+
Level 98 - XP: 1990719000
100+
Level 99 - XP: 2140719000

documentation/DocumentationTest.HpDocumentation.approved.txt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
============ HP Table =============
2-
Class Adventurer
2+
-------------- Class Adventurer --------------
33
Level 1 - HP: 205
44
Level 2 - HP: 221
55
Level 3 - HP: 238
@@ -99,7 +99,8 @@ Level 96 - HP: 6190
9999
Level 97 - HP: 6301
100100
Level 98 - HP: 6413
101101
Level 99 - HP: 6526
102-
Class Swordman
102+
103+
-------------- Class Swordman --------------
103104
Level 1 - HP: 946
104105
Level 2 - HP: 946
105106
Level 3 - HP: 946
@@ -199,7 +200,8 @@ Level 96 - HP: 17290
199200
Level 97 - HP: 17663
200201
Level 98 - HP: 17851
201202
Level 99 - HP: 18230
202-
Class Archer
203+
204+
-------------- Class Archer --------------
203205
Level 1 - HP: 680
204206
Level 2 - HP: 680
205207
Level 3 - HP: 680
@@ -299,7 +301,8 @@ Level 96 - HP: 9676
299301
Level 97 - HP: 9815
300302
Level 98 - HP: 9955
301303
Level 99 - HP: 10238
302-
Class Magician
304+
305+
-------------- Class Magician --------------
303306
Level 1 - HP: 325
304307
Level 2 - HP: 357
305308
Level 3 - HP: 391
@@ -399,7 +402,8 @@ Level 96 - HP: 12295
399402
Level 97 - HP: 12517
400403
Level 98 - HP: 12741
401404
Level 99 - HP: 12967
402-
Class MartialArtist
405+
406+
-------------- Class MartialArtist --------------
403407
Level 1 - HP: 946
404408
Level 2 - HP: 946
405409
Level 3 - HP: 946
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
============ SP Experience Table =============
2+
-------------- Primary SP --------------
3+
Level 1 - XP: 15000
4+
Level 2 - XP: 25000
5+
Level 3 - XP: 35000
6+
Level 4 - XP: 45000
7+
Level 5 - XP: 55000
8+
Level 6 - XP: 65000
9+
Level 7 - XP: 75000
10+
Level 8 - XP: 85000
11+
Level 9 - XP: 95000
12+
Level 10 - XP: 105000
13+
Level 11 - XP: 115000
14+
Level 12 - XP: 125000
15+
Level 13 - XP: 135000
16+
Level 14 - XP: 145000
17+
Level 15 - XP: 155000
18+
Level 16 - XP: 165000
19+
Level 17 - XP: 175000
20+
Level 18 - XP: 185000
21+
Level 19 - XP: 195000
22+
Level 20 - XP: 218000
23+
Level 21 - XP: 225566
24+
Level 22 - XP: 233888
25+
Level 23 - XP: 243002
26+
Level 24 - XP: 252944
27+
Level 25 - XP: 263750
28+
Level 26 - XP: 275456
29+
Level 27 - XP: 288098
30+
Level 28 - XP: 301712
31+
Level 29 - XP: 316334
32+
Level 30 - XP: 332000
33+
Level 31 - XP: 348746
34+
Level 32 - XP: 366608
35+
Level 33 - XP: 385622
36+
Level 34 - XP: 405824
37+
Level 35 - XP: 427250
38+
Level 36 - XP: 449936
39+
Level 37 - XP: 473918
40+
Level 38 - XP: 499232
41+
Level 39 - XP: 525914
42+
Level 40 - XP: 554000
43+
Level 41 - XP: 583526
44+
Level 42 - XP: 614528
45+
Level 43 - XP: 647042
46+
Level 44 - XP: 681104
47+
Level 45 - XP: 716750
48+
Level 46 - XP: 754016
49+
Level 47 - XP: 792938
50+
Level 48 - XP: 833552
51+
Level 49 - XP: 875894
52+
Level 50 - XP: 920000
53+
Level 51 - XP: 965906
54+
Level 52 - XP: 1013648
55+
Level 53 - XP: 1063262
56+
Level 54 - XP: 1114784
57+
Level 55 - XP: 1168250
58+
Level 56 - XP: 1223696
59+
Level 57 - XP: 1281158
60+
Level 58 - XP: 1340672
61+
Level 59 - XP: 1402274
62+
Level 60 - XP: 1466000
63+
Level 61 - XP: 1531886
64+
Level 62 - XP: 1599968
65+
Level 63 - XP: 1670282
66+
Level 64 - XP: 1742864
67+
Level 65 - XP: 1817750
68+
Level 66 - XP: 1894976
69+
Level 67 - XP: 1974578
70+
Level 68 - XP: 2056592
71+
Level 69 - XP: 2141054
72+
Level 70 - XP: 2228000
73+
Level 71 - XP: 2317466
74+
Level 72 - XP: 2409488
75+
Level 73 - XP: 2504102
76+
Level 74 - XP: 2601344
77+
Level 75 - XP: 2701250
78+
Level 76 - XP: 2803856
79+
Level 77 - XP: 2909198
80+
Level 78 - XP: 3017312
81+
Level 79 - XP: 3128234
82+
Level 80 - XP: 3242000
83+
Level 81 - XP: 3358646
84+
Level 82 - XP: 3478208
85+
Level 83 - XP: 3600722
86+
Level 84 - XP: 3726224
87+
Level 85 - XP: 3854750
88+
Level 86 - XP: 3986336
89+
Level 87 - XP: 4121018
90+
Level 88 - XP: 4258832
91+
Level 89 - XP: 4399814
92+
Level 90 - XP: 4544000
93+
Level 91 - XP: 4691426
94+
Level 92 - XP: 4842128
95+
Level 93 - XP: 4996142
96+
Level 94 - XP: 5153504
97+
Level 95 - XP: 5314250
98+
Level 96 - XP: 5478416
99+
Level 97 - XP: 5646038
100+
Level 98 - XP: 5817152
101+
Level 99 - XP: 5991794
102+
103+
-------------- Secondary SP --------------
104+
Level 1 - XP: 10000
105+
Level 2 - XP: 10000
106+
Level 3 - XP: 10000
107+
Level 4 - XP: 10000
108+
Level 5 - XP: 10000
109+
Level 6 - XP: 10000
110+
Level 7 - XP: 10000
111+
Level 8 - XP: 10000
112+
Level 9 - XP: 10000
113+
Level 10 - XP: 10000
114+
Level 11 - XP: 10000
115+
Level 12 - XP: 10000
116+
Level 13 - XP: 10000
117+
Level 14 - XP: 10000
118+
Level 15 - XP: 10000
119+
Level 16 - XP: 10000
120+
Level 17 - XP: 10000
121+
Level 18 - XP: 10000
122+
Level 19 - XP: 10000
123+
Level 20 - XP: 100000
124+
Level 21 - XP: 105000
125+
Level 22 - XP: 110000
126+
Level 23 - XP: 115000
127+
Level 24 - XP: 120000
128+
Level 25 - XP: 125000
129+
Level 26 - XP: 130000
130+
Level 27 - XP: 135000
131+
Level 28 - XP: 140000
132+
Level 29 - XP: 145000
133+
Level 30 - XP: 150000
134+
Level 31 - XP: 155000
135+
Level 32 - XP: 160000
136+
Level 33 - XP: 165000
137+
Level 34 - XP: 170000
138+
Level 35 - XP: 175000
139+
Level 36 - XP: 180000
140+
Level 37 - XP: 185000
141+
Level 38 - XP: 1
142+
Level 39 - XP: 1
143+
Level 40 - XP: 1
144+
Level 41 - XP: 1
145+
Level 42 - XP: 1
146+
Level 43 - XP: 1
147+
Level 44 - XP: 1
148+
Level 45 - XP: 1
149+
Level 46 - XP: 1
150+
Level 47 - XP: 1
151+
Level 48 - XP: 1
152+
Level 49 - XP: 1
153+
Level 50 - XP: 1
154+
Level 51 - XP: 1
155+
Level 52 - XP: 1
156+
Level 53 - XP: 1
157+
Level 54 - XP: 1
158+
Level 55 - XP: 1
159+
Level 56 - XP: 1
160+
Level 57 - XP: 1
161+
Level 58 - XP: 1
162+
Level 59 - XP: 1
163+
Level 60 - XP: 1
164+
Level 61 - XP: 1
165+
Level 62 - XP: 1
166+
Level 63 - XP: 1
167+
Level 64 - XP: 1
168+
Level 65 - XP: 1
169+
Level 66 - XP: 1
170+
Level 67 - XP: 1
171+
Level 68 - XP: 1
172+
Level 69 - XP: 1
173+
Level 70 - XP: 1
174+
Level 71 - XP: 1
175+
Level 72 - XP: 1
176+
Level 73 - XP: 1
177+
Level 74 - XP: 1
178+
Level 75 - XP: 1
179+
Level 76 - XP: 1
180+
Level 77 - XP: 1
181+
Level 78 - XP: 1
182+
Level 79 - XP: 1
183+
Level 80 - XP: 1
184+
Level 81 - XP: 1
185+
Level 82 - XP: 1
186+
Level 83 - XP: 1
187+
Level 84 - XP: 1
188+
Level 85 - XP: 1
189+
Level 86 - XP: 1
190+
Level 87 - XP: 1
191+
Level 88 - XP: 1
192+
Level 89 - XP: 1
193+
Level 90 - XP: 1
194+
Level 91 - XP: 1
195+
Level 92 - XP: 1
196+
Level 93 - XP: 1
197+
Level 94 - XP: 1
198+
Level 95 - XP: 1
199+
Level 96 - XP: 1
200+
Level 97 - XP: 1
201+
Level 98 - XP: 1
202+
Level 99 - XP: 1

src/NosCore.Algorithm/ExperienceService/ExperienceService.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace NosCore.Algorithm.ExperienceService
44
{
55
public class ExperienceService : IExperienceService
66
{
7-
private readonly double[]_xpData = new double[Constants.MaxLevel];
7+
private readonly double[] _xpData = new double[Constants.MaxLevel];
88

99
public ExperienceService()
1010
{
@@ -51,6 +51,10 @@ public ExperienceService()
5151
{
5252
var = 13000;
5353
}
54+
else if (i == 96)
55+
{
56+
var = 15000;
57+
}
5458

5559
_xpData[i] = Convert.ToInt64(_xpData[i - 1] + var * (i + 2) * (i + 2));
5660
}

src/NosCore.Algorithm/HpService/HpService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace NosCore.Algorithm.HpService
44
{
5+
//TODO finish/fix this service
56
public class HpService : IHpService
67
{
78
private readonly double[,] _hpData = new double[Constants.ClassCount, Constants.MaxLevel];
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// __ _ __ __ ___ __ ___ ___
2+
// | \| |/__\ /' _/ / _//__\| _ \ __|
3+
// | | ' | \/ |`._`.| \_| \/ | v / _|
4+
// |_|\__|\__/ |___/ \__/\__/|_|_\___|
5+
// -----------------------------------
6+
7+
namespace NosCore.Algorithm.SpExperienceService
8+
{
9+
public interface ISpExperienceService
10+
{
11+
long GetSpExperience(byte level, bool isSecondarySp);
12+
}
13+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
namespace NosCore.Algorithm.SpExperienceService
2+
{
3+
public class SpExperienceService : ISpExperienceService
4+
{
5+
private readonly double[,] _spXpData = new double[2, Constants.MaxLevel];
6+
7+
public SpExperienceService()
8+
{
9+
_spXpData[0, 0] = 15000;
10+
_spXpData[0, 19] = 218000;
11+
for (int i = 1; i < 19; i++)
12+
{
13+
_spXpData[0,i] = _spXpData[0, i - 1] + 10000;
14+
}
15+
for (int i = 20; i < _spXpData.GetLength(1); i++)
16+
{
17+
_spXpData[0, i] = _spXpData[0, i - 1] + 6 * (3 * i * (i + 1) + 1);
18+
}
19+
20+
for (int i = 0; i < Constants.MaxLevel; i++)
21+
{
22+
if (i < 19)
23+
{
24+
_spXpData[1, i] = 10000;
25+
} else if (i == 19)
26+
{
27+
_spXpData[1, i] = 100000;
28+
}
29+
else if (i < 37)
30+
{
31+
_spXpData[1, i] = _spXpData[1, i-1] + 5000;
32+
}
33+
else
34+
{
35+
_spXpData[1, i] = 1;
36+
}
37+
38+
}
39+
40+
}
41+
public long GetSpExperience(byte level, bool isSecondarySp)
42+
{
43+
return (long)_spXpData![isSecondarySp ? 1 : 0, level - 1];
44+
}
45+
}
46+
}

test/NosCore.Algorithm.Tests/DocumentationTest.cs

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,39 @@ public void ExperienceDocumentation()
2727
Approvals.Verify(resultBuilder);
2828
}
2929

30+
[TestMethod]
31+
public void SpExperienceDocumentation()
32+
{
33+
var experienceService = new SpExperienceService.SpExperienceService();
34+
35+
StringBuilder resultBuilder = new StringBuilder("============ SP Experience Table =============");
36+
37+
38+
for (int i = 0; i < 2; i++)
39+
{
40+
resultBuilder.AppendLine();
41+
resultBuilder.AppendLine($"-------------- {(i == 0 ? "Primary" : "Secondary")} SP --------------");
42+
for (byte level = 1; level < 100; level++)
43+
{
44+
resultBuilder.AppendLine(
45+
$"Level {level.ToString().PadRight(2)} - XP: {experienceService.GetSpExperience(level, i == 1)}");
46+
}
47+
}
48+
Approvals.Verify(resultBuilder);
49+
}
50+
51+
3052
[TestMethod]
3153
public void HpDocumentation()
3254
{
3355
var experienceService = new HpService.HpService();
3456

3557
StringBuilder resultBuilder = new StringBuilder("============ HP Table =============");
36-
resultBuilder.AppendLine();
3758

3859
foreach (var @class in Enum.GetValues(typeof(CharacterClassType)).Cast<CharacterClassType>())
3960
{
40-
resultBuilder.AppendLine($"Class {@class}");
61+
resultBuilder.AppendLine();
62+
resultBuilder.AppendLine($"-------------- Class {@class} --------------");
4163
for (byte level = 1; level < 100; level++)
4264
{
4365
resultBuilder.AppendLine(

0 commit comments

Comments
 (0)