Added commissions system
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
// © 2025 Naked People Team. All Rights Reserved.
|
||||
|
||||
|
||||
#include "ReachEmbarrassmentObjective.h"
|
||||
|
||||
#include "NakedDesire/Player/NakedDesireCharacter.h"
|
||||
#include "NakedDesire/Stats/StatsManager.h"
|
||||
|
||||
#define LOCTEXT_NAMESPACE "Commissions.Objectives.ReachEmbarrassment"
|
||||
|
||||
void UReachEmbarrassmentObjective::OnActivate()
|
||||
{
|
||||
if (Player && Player->StatsManager)
|
||||
Player->StatsManager->EmbarrassmentUpdate.AddDynamic(this, &UReachEmbarrassmentObjective::HandleEmbarrassmentUpdate);
|
||||
}
|
||||
|
||||
void UReachEmbarrassmentObjective::OnDeactivate()
|
||||
{
|
||||
if (Player && Player->StatsManager)
|
||||
Player->StatsManager->EmbarrassmentUpdate.RemoveDynamic(this, &UReachEmbarrassmentObjective::HandleEmbarrassmentUpdate);
|
||||
}
|
||||
|
||||
bool UReachEmbarrassmentObjective::IsConditionMet() const
|
||||
{
|
||||
return CachedMax > 0.0f && CachedCurrent >= ThresholdFraction * CachedMax;
|
||||
}
|
||||
|
||||
void UReachEmbarrassmentObjective::HandleEmbarrassmentUpdate(float CurrentValue, float MaxValue)
|
||||
{
|
||||
CachedCurrent = CurrentValue;
|
||||
CachedMax = MaxValue;
|
||||
NotifyConditionChanged();
|
||||
}
|
||||
|
||||
FText UReachEmbarrassmentObjective::GetDescription() const
|
||||
{
|
||||
const FText Percent = FText::AsNumber(FMath::RoundToInt(ThresholdFraction * 100.0f));
|
||||
|
||||
if (RequiredHoldSeconds > 0.0f)
|
||||
{
|
||||
return FText::Format(LOCTEXT("Timed", "Keep embarrassment above {0}% for {1} seconds"),
|
||||
Percent, FText::AsNumber(FMath::RoundToInt(RequiredHoldSeconds)));
|
||||
}
|
||||
|
||||
return FText::Format(LOCTEXT("Instant", "Push your embarrassment past {0}%"), Percent);
|
||||
}
|
||||
|
||||
#undef LOCTEXT_NAMESPACE
|
||||
Reference in New Issue
Block a user