Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,20 +1,31 @@
# Family Experience Table
- Level 1 - XP: 100000
- Level 2 - XP: 250000
- Level 3 - XP: 370000
- Level 4 - XP: 560000
- Level 5 - XP: 840000
- Level 6 - XP: 1260000
- Level 7 - XP: 1900000
- Level 8 - XP: 2850000
- Level 9 - XP: 3570000
- Level 10 - XP: 3830000
- Level 11 - XP: 4150000
- Level 12 - XP: 4750000
- Level 13 - XP: 5500000
- Level 14 - XP: 6500000
- Level 15 - XP: 7000000
- Level 16 - XP: 8500000
- Level 17 - XP: 9500000
- Level 18 - XP: 10000000
- Level 19 - XP: 17000000
- Level 1 - XP: 80000
- Level 2 - XP: 96000
- Level 3 - XP: 120000
- Level 4 - XP: 152000
- Level 5 - XP: 224000
- Level 6 - XP: 336000
- Level 7 - XP: 512000
- Level 8 - XP: 760000
- Level 9 - XP: 1136000
- Level 10 - XP: 1472000
- Level 11 - XP: 1800000
- Level 12 - XP: 2240000
- Level 13 - XP: 2968000
- Level 14 - XP: 3848000
- Level 15 - XP: 5000000
- Level 16 - XP: 6816000
- Level 17 - XP: 9672000
- Level 18 - XP: 14192000
- Level 19 - XP: 20000000
- Level 20 - XP: 22000000
- Level 21 - XP: 24200000
- Level 22 - XP: 26620000
- Level 23 - XP: 29282000
- Level 24 - XP: 32210200
- Level 25 - XP: 35431220
- Level 26 - XP: 38974342
- Level 27 - XP: 42871776
- Level 28 - XP: 47158953
- Level 29 - XP: 51874849
- Level 30 - XP: 57062334
1 change: 1 addition & 0 deletions src/NosCore.Algorithm/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ internal class Constants
internal const byte MaxJobLevel = 80;
internal const byte MaxHeroLevel = 60;
internal const byte MaxMateLevel = 99;
internal const byte MaxFamilyLevel = 30;
internal static readonly int ClassCount = Enum.GetNames(typeof(CharacterClassType)).Length;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,19 @@ namespace NosCore.Algorithm.FamilyExperienceService
/// Provides family experience requirement calculations for different levels
/// </summary>
/// <remarks>
/// A ginfo line puts a level 7 family's bar at 640 000 against the 1 900 000 here, so at
/// least that row is suspect. One observation is not enough to rebuild the curve, so the
/// table stands until more levels can be checked.
/// From level 20 the curve is the previous requirement plus a tenth, compounded on the
/// unrounded value and floored, which is why the last rows are not round numbers.
/// </remarks>
public class FamilyExperienceService : IFamilyExperienceService
{
private static readonly uint[] FamilyXpData =
[
100_000, 250_000, 370_000, 560_000, 840_000,
1_260_000, 1_900_000, 2_850_000, 3_570_000, 3_830_000,
4_150_000, 4_750_000, 5_500_000, 6_500_000, 7_000_000,
8_500_000, 9_500_000, 10_000_000, 17_000_000
80_000, 96_000, 120_000, 152_000, 224_000,
336_000, 512_000, 760_000, 1_136_000, 1_472_000,
1_800_000, 2_240_000, 2_968_000, 3_848_000, 5_000_000,
6_816_000, 9_672_000, 14_192_000, 20_000_000, 22_000_000,
24_200_000, 26_620_000, 29_282_000, 32_210_200, 35_431_220,
38_974_342, 42_871_776, 47_158_953, 51_874_849, 57_062_334
];

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/NosCore.Algorithm/NosCore.Algorithm.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<RepositoryUrl>https://github.com/NosCoreIO/NosCore.Algorithm.git</RepositoryUrl>
<PackageIconUrl></PackageIconUrl>
<PackageTags>nostale, noscore, nostale private server source, nostale emulator</PackageTags>
<Version>2.0.0</Version>
<Version>2.1.0</Version>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<Description>NosCore's Algorithm</Description>
<PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
Expand Down
2 changes: 1 addition & 1 deletion test/NosCore.Algorithm.Tests/DocumentationTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ public void FamilyExperienceDocumentation()
var resultBuilder = new StringBuilder("# Family Experience Table");
resultBuilder.AppendLine();

for (byte level = 1; level < 20; level++)
for (byte level = 1; level <= 30; level++)
{
resultBuilder.AppendLine(
$"- Level {level,2} - XP: {familyExperienceService.GetFamilyExperience(level)}");
Expand Down
Loading