49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
// © 2025 Naked People Team. All Rights Reserved.
|
|
|
|
|
|
#include "BareRegionObjective.h"
|
|
|
|
#include "NakedDesire/Clothing/BodyPart.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "Commissions.Objectives.BareRegion"
|
|
|
|
bool UBareRegionObjective::IsConditionMet() const
|
|
{
|
|
switch (Region)
|
|
{
|
|
case EBareRegion::Top:
|
|
// Chest bare, both lower regions still covered.
|
|
return IsPartRevealing(EBodyPart::Boobs)
|
|
&& !IsPartRevealing(EBodyPart::Genitals)
|
|
&& !IsPartRevealing(EBodyPart::Ass);
|
|
|
|
case EBareRegion::Bottom:
|
|
// Lower half bare, chest still covered.
|
|
return IsPartRevealing(EBodyPart::Genitals)
|
|
&& IsPartRevealing(EBodyPart::Ass)
|
|
&& !IsPartRevealing(EBodyPart::Boobs);
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
FText UBareRegionObjective::GetDescription() const
|
|
{
|
|
const bool bTimed = RequiredHoldSeconds > 0.0f;
|
|
|
|
if (Region == EBareRegion::Top)
|
|
{
|
|
return bTimed
|
|
? FText::Format(LOCTEXT("TopTimed", "Stay topless — chest bare, below covered — for {0} seconds"),
|
|
FText::AsNumber(FMath::RoundToInt(RequiredHoldSeconds)))
|
|
: LOCTEXT("TopInstant", "Go topless — bare your chest while staying covered below");
|
|
}
|
|
|
|
return bTimed
|
|
? FText::Format(LOCTEXT("BottomTimed", "Stay bottomless — bare below, chest covered — for {0} seconds"),
|
|
FText::AsNumber(FMath::RoundToInt(RequiredHoldSeconds)))
|
|
: LOCTEXT("BottomInstant", "Go bottomless — bare below while keeping your chest covered");
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE |