Skip to content

Commit e8ba5ec

Browse files
committed
Add EXP to next level
1 parent 62539a8 commit e8ba5ec

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

Pkmds.Web/Components/EditForms/Tabs/MainTab.razor

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,17 +92,30 @@
9292
</MudStack>
9393
}
9494

95+
<MudNumericField Label="Level"
96+
Variant="@Variant.Outlined"
97+
@bind-Value="@Pokemon.CurrentLevel"
98+
@bind-Value:after="@(() => AppService.LoadPokemonStats(Pokemon))"
99+
For="@(() => Pokemon.CurrentLevel)"/>
100+
95101
<MudNumericField Label="EXP"
96102
Variant="@Variant.Outlined"
97103
@bind-Value="@Pokemon.EXP"
98104
@bind-Value:after="@(() => AppService.LoadPokemonStats(Pokemon))"
99105
For="@(() => Pokemon.EXP)"/>
100106

101-
<MudNumericField Label="Level"
102-
Variant="@Variant.Outlined"
103-
@bind-Value="@Pokemon.CurrentLevel"
104-
@bind-Value:after="@(() => AppService.LoadPokemonStats(Pokemon))"
105-
For="@(() => Pokemon.CurrentLevel)"/>
107+
<MudNumericField Label="EXP to next level"
108+
Value="@GetEXPToLevelUp()"/>
109+
110+
@{
111+
var levelProgress = Experience.GetEXPToLevelUpPercentage(Pokemon.CurrentLevel, Pokemon.EXP, Pokemon.PersonalInfo.EXPGrowth);
112+
<MudProgressLinear
113+
Value="@(levelProgress * 100)"
114+
Color="@Color.Primary"
115+
Size="@Size.Medium"
116+
Rounded
117+
title="@(levelProgress.ToString("P"))"/>
118+
}
106119

107120
@if (saveGeneration >= 3)
108121
{

Pkmds.Web/Components/EditForms/Tabs/MainTab.razor.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,17 @@ private void SetPokemonPid(string newPidHex)
124124
}
125125

126126
private readonly PatternMask hexMask = new("########") { MaskChars = [new('#', "[0-9a-fA-F]")] };
127+
128+
// ReSharper disable once InconsistentNaming
129+
private double GetEXPToLevelUp()
130+
{
131+
if (Pokemon is not { CurrentLevel: var level and < 100, EXP: var exp, PersonalInfo.EXPGrowth: var growth })
132+
{
133+
return 0;
134+
}
135+
136+
var table = Experience.GetTable(growth);
137+
var next = Experience.GetEXP(++level, table);
138+
return next - exp;
139+
}
127140
}

0 commit comments

Comments
 (0)