From 9af77359dbcf07ec0a9e929c3e08d774d35fed83 Mon Sep 17 00:00:00 2001 From: koritsa Date: Mon, 15 Jun 2026 17:45:53 +0300 Subject: [PATCH] added commissions templates --- COMMISSIONS.md | 39 ++++++++++++++++++- Content/Test/Maps/L_TestCity.umap | 4 +- .../Settings/WBP_GameplaySettingsTab.uasset | 4 +- .../UI/Shared/ComboBox/WBP_ComboBox.uasset | 3 ++ Source/NakedDesire/NPC/NPCAIController.cpp | 2 + 5 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 Content/UI/Shared/ComboBox/WBP_ComboBox.uasset diff --git a/COMMISSIONS.md b/COMMISSIONS.md index 054deb94..196b8731 100644 --- a/COMMISSIONS.md +++ b/COMMISSIONS.md @@ -119,4 +119,41 @@ content space. 3. **Location system** — done: `ULocationSubsystem` + `ULocationConstraint`; the whole Location/travel group and `WhileAtLocation` are unblocked. (Build the location *objectives* with the ✅ batch.) 4. **Per-system batches** as VS‑5 (NPC types), VS‑2 (lust/pulse), toys, restraints, and Phase 8 - (photo/livestream/followers) land. \ No newline at end of file + (photo/livestream/followers) land. + +--- + +## Concrete commissions (all ✅ — pure data, no new C++) + +Authorable today in a `UCommissionBoardConfig`: each is a recipe of shipped objectives + the four +constraints (`UObservedConstraint`, `UDayPhaseConstraint`, `UWearingSlotConstraint`, `ULocationConstraint`), +`RequiredHoldSeconds`, and `bSequentialObjectives`. Numbers are starting values, not balance. + +**Authoring ceiling:** live location tags are only `Location.Apartment`, `Location.City`, `Location.City.Beach` — +more `Location.City.*` sub-areas would multiply every location-gated row below. + +### Exhibitionist (be *seen*) + +- **Morning Walk of Shame** — *Daily.* `WalkNakedDistance(300m)` + `DayPhase(Day)`. +- **Beach Body, No Suit** — *Daily.* `BeFullyNaked(60s)` + `Location(City.Beach)` + `DayPhase(Day)`. +- **Topless Stroll** — *Daily.* `ExposeWhileWalking(Boobs, 150m)` + `WearingSlot(Bottom, worn)`. +- **Draw a Crowd** — *Weekly, sequential.* `GatherCrowd(5)` → `BeObservedWhileExposed(5, 30s)`. +- **Night Flasher** — *Daily.* `ExposeBodyPart(Genitals, 5s)` + `DayPhase(Night)` + `Observed(1)`. + +### Slut (be *lewd*) + +- **Underdressed Errand** — *Daily.* `WearOnlyUnderwear(120s)` + `Location(City)`. +- **Barely Decent** — *Weekly.* `StayBelowCoverage(0.4, 180s)` + `Observed(2)`. +- **Red-Faced in Public** — *Daily.* `SustainEmbarrassment(0.8, 20s)` + `Observed(3)`. +- **Bottomless Beach Run** — *Weekly.* `ExposeWhileWalking(Genitals, 200m)` + `BareRegion(Bottom)` + `Location(City.Beach)`. + +### Slave / risk (controlled, stealth, loss) + +- **Leave It Behind** — *Daily.* `MoveDistanceFromClothing(80m)`. +- **Dead Drop Dash** — *Weekly, sequential.* `MoveDistanceFromClothing(100m)` → `ReachEmbarrassment(0.7)` → `WalkNakedDistance(150m)`. +- **Unseen and Bare** — *Weekly.* `StayUnseenWhileNaked(90s)` + `Location(City)`. +- **Run, Don't Hide** — *Daily.* `RunNakedDistance(200m)` + `DayPhase(Night)`. + +### Multi-step showcase + +- **From Closet to Crowd** — *Weekly, sequential.* `WearOnlyUnderwear` @ `Location(Apartment)` → `WalkNakedWhileObserved(150m, 1)` → `GatherCrowd(4)` @ `Location(City)`. \ No newline at end of file diff --git a/Content/Test/Maps/L_TestCity.umap b/Content/Test/Maps/L_TestCity.umap index 047212ed..0a0b6a1b 100644 --- a/Content/Test/Maps/L_TestCity.umap +++ b/Content/Test/Maps/L_TestCity.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:71decc93b71c3a5487cfee71db9e1462fae78b79b06bf40374bf71cecc544c1c -size 2593449 +oid sha256:e599abaeb9d10eacaaad283b85f51b69caa5d948fdb8e794f7dfc5984b9d29de +size 2593373 diff --git a/Content/UI/Settings/WBP_GameplaySettingsTab.uasset b/Content/UI/Settings/WBP_GameplaySettingsTab.uasset index 453854ec..93615d8d 100644 --- a/Content/UI/Settings/WBP_GameplaySettingsTab.uasset +++ b/Content/UI/Settings/WBP_GameplaySettingsTab.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:81a81d4e47fcb8d1508e8b66eccda9b543eb6df043e08a7f44a76eaa076fdc30 -size 47583 +oid sha256:5e9343bd199c3da9475b801993f4ff42fba211ba89b023230ca7c6e85693b780 +size 39332 diff --git a/Content/UI/Shared/ComboBox/WBP_ComboBox.uasset b/Content/UI/Shared/ComboBox/WBP_ComboBox.uasset new file mode 100644 index 00000000..a805f801 --- /dev/null +++ b/Content/UI/Shared/ComboBox/WBP_ComboBox.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1636baed4232bbfe68d0caaea51438aaa9d20bef48a7c9f6e677c6de4462327b +size 31983 diff --git a/Source/NakedDesire/NPC/NPCAIController.cpp b/Source/NakedDesire/NPC/NPCAIController.cpp index 8e54c7d2..ca5b1f45 100644 --- a/Source/NakedDesire/NPC/NPCAIController.cpp +++ b/Source/NakedDesire/NPC/NPCAIController.cpp @@ -19,6 +19,8 @@ ANPCAIController::ANPCAIController() SightConfig->DetectionByAffiliation.bDetectEnemies = true; SightConfig->DetectionByAffiliation.bDetectNeutrals = true; SightConfig->DetectionByAffiliation.bDetectFriendlies = true; + SightConfig->SightRadius = 2000.0f; + SightConfig->LoseSightRadius = 2500.0f; Perception->ConfigureSense(*SightConfig); Perception->SetDominantSense(SightConfig->GetSenseImplementation()); }