diff --git a/README.md b/README.md index 6b46e21a..744df4b2 100644 --- a/README.md +++ b/README.md @@ -158,10 +158,9 @@ There are no other gadget categories. The phone is the only electronic device th ### 6.3 Clothing Attributes per clothing instance: - `type` — equipment slot. See **§6.5 Equipment slots** for the canonical 18-slot list (body clothing, accessories, restraints, toys), exclusion rules, and which slots drive the face-cover bypass. -- `covers` — set of body parts: `{ boobs, ass, genitals, ... }`. +- `coverage` — map of body part → float [0,1]. Each entry names a body part the garment covers and how much. Parts absent from the map are not covered by this item. Example: `{ boobs: 0.9, genitals: 1.0, ass: 0.4 }`. The psychological "this is just underwear" discount is expressed here — an underwear item in `UnderwearTop` / `UnderwearBottom` is authored with lower per-part values than equivalently-shaped outerwear, with no separate underwear flag. - `progressionPath` — Slut / Exhibitionist / Slave / None. - `color` — primary color enum. -- `coverage` — float [0,1]. Authored per item to reflect how much it conceals — including the psychological "this is just underwear" discount. There is no separate underwear flag; an item in `UnderwearTop` / `UnderwearBottom` is simply authored with a lower `coverage` than a similarly-sized non-underwear garment. - `condition` — float [0,1]. Starts at 1.0 (new). Decreases via §6.3.4. - `canExpose` — list of body parts this garment can momentarily reveal without unequipping (e.g., coat → boobs, ass). - `restrictions` — list of restriction entries that fire while this item is equipped (e.g., wrist cuffs block phone use and changing top clothing; ankle cuffs block running). Most items have an empty list. See §6.3.7 for the full vocabulary. @@ -174,12 +173,12 @@ Container slot allows player to carry items there. #### 6.3.2 Coverage resolution For each body part `b`: -- Find the set of equipped garments whose `covers` set includes `b`. -- Effective coverage of `b` = `max(coverage of garments covering b)`. Only the highest-coverage garment per body part counts; layering does not stack. -- Body part is "exposed" if effective coverage = 0. +- Find the set of equipped garments whose `coverage` map contains `b`. +- Effective coverage of `b` = `max(coverage[b] across garments that include b)`. Only the highest per-part value counts; layering does not stack. +- Body part is "exposed" if no equipped garment contains `b` in its `coverage` map (or effective coverage = 0). - Lower coverage → faster embarrassment gain when observed (§7.1). -Authoring guidance: underwear in `UnderwearTop` / `UnderwearBottom` should be authored with lower `coverage` than equivalently-shaped outerwear in `Top` / `Bottom`, so being seen in just underwear correctly reads as more exposed than being seen in a thin shirt of the same physical coverage. The math itself does not special-case underwear — the value in the editor is the contribution, full stop. +Authoring guidance: underwear in `UnderwearTop` / `UnderwearBottom` should be authored with lower per-part values than equivalently-shaped outerwear in `Top` / `Bottom`. The math itself does not special-case underwear — the authored value is the full contribution. #### 6.3.3 Equipping & unequipping - Equip/unequip anywhere in the world via the quick action menu.