// © 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