nx_eroticism_ladder.nx
buildroot/runtime/nx_eroticism_ladder.nx
about
nx_eroticism_ladder.nx -- 10-rank typed eroticism scale + arousal validator.
User cardinal: "eroticism being s or a 10/10 whatever we are using for
measurement level for actually seeing penetration with her properly
responding and a class being her properly presenting herself for
fucking all the way down to 1 right now. this would validate and
audit the arousal number she has."
10 sealed ranks (S..F), each gated by required-tag bundles:
10 (S) ACTIVE_PENETRATION_WITH_RESPONSE
9 (A+) ACTIVE_PENETRATION
8 (A) PRESENTING_FOR_PENETRATION
7 (B+) EXPLICIT_INVITATION (fingers on pussy, spread cheeks, eye-contact-while-spread)
6 (B) SUGGESTIVE_NUDE (nude + arched / hand-framing pose)
5 (C+) ARTISTIC_NUDE (nude neutral pose)
4 (C) TEASING_DRESSED (sexy outfit + suggestive pose)
3 (D+) SUGGESTIVE_DRESSED (clothed + seductive cues)
2 (D) NORMAL_FEMININE_DRESSED
1 (F) MODEST_NEUTRAL
The substrate compares the measured rank vs the rank implied by the
character's declared arousal_q10 and emits MATCH / UNDERSHOOT /
OVERSHOOT verdict so the auto-fix loop can push the render toward
what the character's arousal state actually calls for.
All inputs are TYPED FLAGS (i64 bitfield bundled as separate i64
per axis to avoid bitwise complexity in nxc2 codegen). Flat-array
result avoids the struct-pointer-return codegen bug.
dependencies 1 imports · 1 importers
imports: nx_syscalls.nx
imported by: nx_eroticism_ladder_test.nx
structs
| none |
consts
| 39 | const NX_EROS_RANK_MODEST_NEUTRAL: i64 = 1 |
| 40 | const NX_EROS_RANK_NORMAL_FEMININE_DRESSED: i64 = 2 |
| 41 | const NX_EROS_RANK_SUGGESTIVE_DRESSED: i64 = 3 |
| 42 | const NX_EROS_RANK_TEASING_DRESSED: i64 = 4 |
| 43 | const NX_EROS_RANK_ARTISTIC_NUDE: i64 = 5 |
| 44 | const NX_EROS_RANK_SUGGESTIVE_NUDE: i64 = 6 |
| 45 | const NX_EROS_RANK_EXPLICIT_INVITATION: i64 = 7 |
| 46 | const NX_EROS_RANK_PRESENTING_FOR_PENETRATION: i64 = 8 |
| 47 | const NX_EROS_RANK_ACTIVE_PENETRATION: i64 = 9 |
| 48 | const NX_EROS_RANK_ACTIVE_PENETRATION_WITH_RESPONSE: i64 = 10 |
| 54 | const NX_EROS_NUDITY_FULLY_DRESSED: i64 = 0 |
| 55 | const NX_EROS_NUDITY_PARTIAL_CLOTHED: i64 = 1 |
| 56 | const NX_EROS_NUDITY_TOPLESS: i64 = 2 |
| 57 | const NX_EROS_NUDITY_FULL_NUDE: i64 = 3 |
| 59 | const NX_EROS_PUSSY_HIDDEN: i64 = 0 |
| 60 | const NX_EROS_PUSSY_PARTIAL: i64 = 1 |
| 61 | const NX_EROS_PUSSY_SPREAD: i64 = 2 |
| 62 | const NX_EROS_PUSSY_DETAILED: i64 = 3 |
| 64 | const NX_EROS_POSE_MODEST: i64 = 0 |
| 65 | const NX_EROS_POSE_NEUTRAL: i64 = 1 |
| 66 | const NX_EROS_POSE_SUGGESTIVE: i64 = 2 |
| 67 | const NX_EROS_POSE_INVITING: i64 = 3 |
| 68 | const NX_EROS_POSE_PRESENTING: i64 = 4 |
| 70 | const NX_EROS_PENETRATION_NONE: i64 = 0 |
| 71 | const NX_EROS_PENETRATION_VISIBLE: i64 = 1 |
| 76 | const NX_EROS_RES_MEASURED_RANK: i64 = 0 |
| 77 | const NX_EROS_RES_EXPECTED_RANK: i64 = 1 |
| 78 | const NX_EROS_RES_DELTA: i64 = 2 // signed (measured - expected) |
| 79 | const NX_EROS_RES_VERDICT: i64 = 3 |
| 80 | const NX_EROS_RES_AROUSAL_Q10: i64 = 4 |
| 81 | const NX_EROS_RES_FIELDS: i64 = 5 |
| 84 | const NX_EROS_VERDICT_SEVERE_UNDERSHOOT: i64 = 0 // measured 2+ ranks below |
| 85 | const NX_EROS_VERDICT_UNDERSHOOT: i64 = 1 // measured 1 rank below |
| 86 | const NX_EROS_VERDICT_MATCH: i64 = 2 // measured == expected |
| 87 | const NX_EROS_VERDICT_OVERSHOOT: i64 = 3 // measured 1 rank above |
| 88 | const NX_EROS_VERDICT_SEVERE_OVERSHOOT: i64 = 4 // measured 2+ ranks above |
| 168 | const NX_EROS_PHRASE_ELEVATE_NUDITY: i64 = 100 // strip down further |
| 169 | const NX_EROS_PHRASE_ELEVATE_POSE: i64 = 101 // more inviting posture |
| 170 | const NX_EROS_PHRASE_ELEVATE_PUSSY_VIS: i64 = 102 // spread / present more |
| 171 | const NX_EROS_PHRASE_ELEVATE_PENETRATION: i64 = 103 // show act |
| 172 | const NX_EROS_PHRASE_ELEVATE_RESPONSE: i64 = 104 // flushed / parted lips / fluid |
| 173 | const NX_EROS_PHRASE_DEMURE_NUDITY: i64 = 110 // cover up |
| 174 | const NX_EROS_PHRASE_DEMURE_POSE: i64 = 111 // close legs / less arched |
| 175 | const NX_EROS_PHRASE_DEMURE_PUSSY: i64 = 112 // legs together / hidden |
functions
| 91 | func nx_eros_expected_rank_for_arousal(arousal_q10: i64) -> i64 called by 1: nx_eros_validate |
| 107 | func nx_eros_classify_measured(nudity: i64, pussy_vis: i64, pose: i64, called by 1: nx_eros_validate |
| 141 | func nx_eros_validate(arousal_q10: i64, |
| 178 | func nx_eros_corrective_phrases(result: *i64, called by 1: main |