Completed phase 1

This commit is contained in:
2026-05-25 14:14:52 +03:00
parent 799fc8a4ae
commit 43ddad9217
22 changed files with 255 additions and 55 deletions
+49 -1
View File
@@ -580,7 +580,7 @@ Sleeping at home fast-forwards 8 hours.
- **Café** — pre-made food.
- **Clothing shops** — various types, each with a different inventory mix.
- **Gym** — increase max energy. Costs energy in the process. Costs money.
- **Beauty salon** — boobs size, ass size, makeup, hairstyle, hair color.
- **Beauty salon** — boobs size, ass size, makeup, hairstyle, hair color. See §10.4.3 for makeup details.
- **Adult shop** — Buy sex toys for the `Nipples`, `Anal`, and `Vagina` toy slots (§6.5).
- **Electronics shop** — Buy upgraded phone models. Sells the Mid and Pro tiers (§9.9). In-person only; no online variant.
- **Streets / parks / alleys** — commission space.
@@ -629,6 +629,28 @@ The mixed pacing is deliberate: slots are the "fast burn," tables are the "time
- Casino is both an income source and a money sink. Net EV per session is negative on average; spikes are possible.
- Casino income is logged in the Bank app's income breakdown (§9.4) as a distinct line item; net losses appear in the corresponding spending breakdown.
#### 10.4.3 Beauty salon — makeup
Makeup is a persistent appearance state on the player. It has no gameplay effect — no stat changes, no recognition modifiers, no path requirements — it is purely visual.
**Presets:** Five fixed options, selected from a menu at the salon counter:
| Preset | Description |
|-----------|--------------------------|
| `None` | No makeup (bare face). |
| `Natural` | Subtle, everyday look. |
| `Glam` | Full glam / bold lips. |
| `Gothic` | Dark tones, heavy liner. |
| `Flashy` | Vivid color, expressive. |
**Cost:** A single universal "change makeup" fee (flat Yen amount, TBD §21), charged whenever the player switches to any preset including `None`. Leaving with the same preset is a no-op and costs nothing.
**Persistence:** The active preset is stored as a single value in the save game and restored on load. It stays until changed at the salon — there is no time limit or degradation.
**Visual implementation:** Each preset maps to a material parameter on the player mesh. C++ stores and broadcasts the value; Blueprint applies the material change. No mesh/material logic lives in C++.
**Scope:** Beauty salon only. No apartment mirror, no phone app, no mid-session change. Keep it simple.
---
## 11. PC (at home)
@@ -685,6 +707,8 @@ The forum is accessed via phone or PC. It is both diegetic and the primary missi
> **Forum scope:** The forum surface is intentionally minimal — the **commission board** (§13.1 / §13.2) and the **player's own profile**. There are no other users to browse, no threads, no popular-posts feed. The forum exists to drive the gameplay loop, not to simulate a social network.
> **Forum lore — commission posters:** Each commission listing on the board displays a username of the forum member who posted it. This is purely a lore / atmosphere detail — it has no gameplay effect, cannot be interacted with, and does not affect rewards or progression. The forum has a fixed, limited pool of fictional usernames; each generated commission is attributed to one of them at generation time. The same username may appear on multiple commissions. The pool exists only to make the board feel like a living community rather than an anonymous feed.
### 13.4 Commission generation
Commissions should be procedural with template-driven content. Recommended template structure:
```
@@ -749,6 +773,7 @@ Radial or hotbar accessible mid-session. Actions:
- Drop bag / pick up bag.
- Masturbate (Slut-path unlock, §5.1 — entry hidden until unlocked).
- Crouch / stand.
- Open emote wheel (§14.5).
### 14.2 HUD (in-session)
- Attribute bars (energy, stamina, embarrassment, lust) — minimal/peripheral when low, more prominent when nearing thresholds.
@@ -760,6 +785,29 @@ Radial or hotbar accessible mid-session. Actions:
### 14.3 Out-of-session UI
Forum, bank, gallery, shops are all in-fiction screens (phone/PC). Avoid out-of-fiction menus where possible.
### 14.5 Emote wheel
A dedicated radial wheel for selecting a facial expression / pose. Available at any time during a session, not limited to photo mode.
**Emotes (fixed set):**
| Emote | Description |
|------------|------------------------------------|
| `Neutral` | Default resting expression. |
| `Smile` | Warm, natural smile. |
| `Sultry` | Half-lidded, confident look. |
| `Shy` | Eyes down, flustered expression. |
| `Playful` | Grin, light mischief energy. |
**Lifecycle:**
- Opening the wheel **pauses movement** for the moment of selection; closing without selecting does nothing.
- On selection the emote plays and a timer starts (duration TBD §21). When the timer expires the player returns to their default expression automatically.
- Any **movement input** (walk, run, crouch) cancels the emote immediately.
- Taking a **photo or being live on stream** does not cancel the emote — whatever expression is active at shutter time is captured. This is the primary motivation for the system.
- Only one emote can be active at a time; opening the wheel and selecting a new one replaces the current one and resets the timer.
**Implementation notes:** C++ stores the active `EPlayerEmote` enum value and owns the timer. On change it fires a delegate; the Animation Blueprint listens and blends to the matching facial animation / morph target. No gameplay stats are affected.
### 14.4 Accessibility & comfort
- Subtitle support for any voiced dialogue.
- Camera "place" via voice command must have a non-voice fallback (hotkey).