Add Leveling to EXPComponent

This commit is contained in:
baz 2024-08-20 23:32:24 +01:00
parent 079fba5d8b
commit 45b2120cb5
2 changed files with 28 additions and 2 deletions

View File

@ -15,17 +15,35 @@ UEXPComponent::UEXPComponent()
void UEXPComponent::IncrementEXP(int value)
{
// TODO: I should be updating the level here
int oldEXP = CurrentEXP;
int oldLevel = CurrentLevel;
CurrentEXP += value;
OnEXPGained.ExecuteIfBound(value);
CurrentLevel = FMath::Floor(CurrentEXP / 100.0f);
if (CurrentLevel != oldLevel)
{
OnEXPLevelUp.ExecuteIfBound(CurrentLevel);
}
}
void UEXPComponent::SetCurrentEXP(int value)
{
int oldEXP = CurrentEXP;
int oldLevel = CurrentLevel;
// TODO: I should be updating the level here
CurrentEXP = value;
OnEXPGained.ExecuteIfBound(value);
CurrentLevel = FMath::Floor(CurrentEXP / 100.0f);
if (CurrentLevel != oldLevel)
{
OnEXPLevelUp.ExecuteIfBound(CurrentLevel);
}
}
int UEXPComponent::GetCurrentEXP()
@ -46,6 +64,11 @@ void UEXPComponent::Reset()
OnEXPLevelUp.ExecuteIfBound(CurrentLevel);
}
float UEXPComponent::GetCurrentLevelPercent()
{
return (CurrentEXP % 100) / 100.0f;
}
// Called when the game starts
void UEXPComponent::BeginPlay()
{

View File

@ -42,6 +42,9 @@ public:
UFUNCTION(BlueprintCallable)
void Reset();
UFUNCTION(BlueprintCallable, BlueprintPure)
float GetCurrentLevelPercent();
protected:
// Called when the game starts
virtual void BeginPlay() override;