Quick SetCurrentEXP update

This commit is contained in:
baz 2025-07-15 19:30:34 +01:00
parent 5fac9c7f73
commit 937e61db7f

View File

@ -61,11 +61,26 @@ void UEXPComponent::SetCurrentEXP(int value)
int oldEXP = CurrentEXP; int oldEXP = CurrentEXP;
int oldLevel = CurrentLevel; int oldLevel = CurrentLevel;
// TODO: I should be updating the level here
CurrentEXP = value; CurrentEXP = value;
OnEXPGained.Broadcast(CurrentEXP, GetCurrentLevelPercent());
CurrentLevel = FMath::Floor(CurrentEXP / 100.0f); NextLevelRow = FExpTableRow();
while (CurrentEXP < NextLevelRow.CumulativeExpForPreviousLevel && CurrentEXP < NextLevelRow.CumulativeExpForNextLevel)
{
if (FExpTableRow* newRow = LevelsTable->FindRow<FExpTableRow>(FName(*FString::FromInt(NextLevelRow.Level + 1)),"", true))
{
NextLevelRow = *newRow;
}
else
{
NextLevelRow.Level++;
NextLevelRow.CumulativeExpForPreviousLevel = NextLevelRow.CumulativeExpForNextLevel;
NextLevelRow.ExpRequiredForNextLevel += 16;
NextLevelRow.CumulativeExpForNextLevel += NextLevelRow.ExpRequiredForNextLevel;
}
}
OnEXPGained.Broadcast(CurrentEXP, GetCurrentLevelPercent());
if (CurrentLevel != oldLevel) if (CurrentLevel != oldLevel)
{ {