diff --git a/Gooner-Training-Academy-v4.1-Beta.zip b/Gooner-Training-Academy-v4.1-Beta.zip index 68e818d..e46998e 100644 Binary files a/Gooner-Training-Academy-v4.1-Beta.zip and b/Gooner-Training-Academy-v4.1-Beta.zip differ diff --git a/README.md b/README.md index 2582bc0..6ad94ab 100644 --- a/README.md +++ b/README.md @@ -937,6 +937,39 @@ webGame/ ## 📋 Recent Major Updates +### v4.1 - Critical Stability & Performance Update (November 26, 2025) +- ✅ **Quick Play Session Cleanup**: Complete timer and video cleanup on end session + - Fixed timers continuing after end session (taskTimer, gameTimerInterval, xpDisplayInterval, recordingTimerInterval) + - Enhanced video stopping with comprehensive cleanup (pause, mute, reset, clear source) + - Added debug logging to track timer IDs and video element cleanup +- ✅ **Function Spam Prevention**: Added game state guards to prevent functions running after session ends + - Guards in syncTaskWithOverlay(), updateRecordingOverlay(), updateTimerDisplay() + - Checks `!isGameRunning || window.isEndingGame` before execution + - Eliminated console spam and unnecessary processing +- ✅ **Porn Cinema Memory Leak Fix**: CRITICAL fix preventing crashes from event listener accumulation + - Changed from individual button listeners to event delegation pattern + - Single parent listener handles all playlist button clicks via event bubbling + - Prevents exponential memory growth during extended sessions +- ✅ **Porn Cinema Error Handling**: User-friendly error recovery system + - Try-catch wrapper for initialization with styled error overlay + - Retry and home buttons for crash recovery + - Null checks for missing DOM elements (theater mode buttons) +- ✅ **Porn Cinema Cleanup System**: Comprehensive destroy() method for proper resource cleanup + - Removes event listeners, stops and unloads videos, clears playlist data + - Window close handlers (beforeunload, pagehide) trigger automatic cleanup + - Prevents memory leaks when closing porn cinema window +- ✅ **Enhanced Theme System**: 6 visual themes with dynamic Library theme option + - Static themes: Hentai, Pornstars, BBC, Feet + - Dynamic Library theme: Pinterest-style layout using user's personal image collection + - Theme customization via dropdown in Options menu + - None option to disable all background images +- ✅ **Desktop Photo Storage**: Webcam photos now saved to file system in desktop app + - Photos saved to `photos/captured/` directory + - Organized by session type (training-academy, dress-up, etc.) + - File-based storage instead of localStorage for better performance + - Automatic fallback to data URLs in browser mode + - Photo gallery access with download and management options + ### v4.0 - Comprehensive Backup System (November 12, 2025) - ✅ **Automatic Data Protection**: 30-minute backup intervals - ✅ **Manual Backup Controls**: User-initiated backup/restore diff --git a/docs/humiliation-game-expansion-plan.md b/docs/humiliation-game-expansion-plan.md new file mode 100644 index 0000000..14fbecc --- /dev/null +++ b/docs/humiliation-game-expansion-plan.md @@ -0,0 +1,241 @@ +# Humiliation Game Expansion Plan + +## Current State +- **17 total steps** in current design +- **3 choice steps** (start, choice_deeper, resistance_noted, domme_shift - actually 4) +- **6 mirror/action steps** (timed tasks) +- **5 verification steps** (position holds) +- **2 endings** (broken_willing, broken_forced) +- **Flow**: Very linear - most users experience same path with minor variations + +## Expansion Goals +1. **More choices**: Make every other step a choice (alternating pattern) +2. **More endings**: Create 4-5 distinct endings instead of 2 +3. **Decision tree feel**: Choices actually branch to different experiences +4. **Maintain duration**: Keep ~15-20 minute target + +## New Structure Concept + +### Pattern: Choice → Task → Choice → Task → Choice → Task... + +With 17 current steps, we can expand to ~25-30 steps by adding choices between tasks: +- **~12-15 choice steps** (decision points) +- **~6-8 mirror/action steps** (timed tasks) +- **~5-6 verification steps** (position holds) +- **~5 endings** (multiple outcomes) + +## Proposed Endings + +### 1. **Willing Submission** (Current: broken_willing_ending) +- Path: Accept → Obey → Beg for more → Complete surrender +- Tone: "You gave yourself to me completely and beautifully" +- Outcome: Happy submission, consensual breaking + +### 2. **Forced Submission** (Current: broken_forced_ending) +- Path: Resist → Break under pressure → Crushed into obedience +- Tone: "You tried to resist and I broke you anyway" +- Outcome: Conquered, dominated against initial will + +### 3. **Desperate Addiction** (NEW) +- Path: Accept → Obey → Become obsessed → Can't stop gooning +- Tone: "You're addicted now. You'll come back for more." +- Outcome: Lost in gooning, can't escape the addiction + +### 4. **Humiliated Surrender** (NEW) +- Path: Accept → Question → Submit through shame → Broken by humiliation +- Tone: "The humiliation broke you more than the pleasure" +- Outcome: Broken by embarrassment and exposure + +### 5. **Defiant Escape** (Current defiant path - keep rare) +- Path: Resist → Resist → Strong boundary → Escape +- Tone: "You know yourself too well to break" +- Outcome: Maintained autonomy (1% chance) + +## Expanded Flow Outline + +### Act 1: Introduction & First Choice (Steps 1-8) + +**1. START** (choice) +- Current: Accept vs Question +- Keep as-is + +**2. mirror_desperation** (mirror task) +- Current: Edge while watching yourself +- Keep as-is + +**3. NEW CHOICE: "How Does This Feel?"** +- After first mirror task, Domme asks how you feel +- Option A: "This feels amazing" → Eager path (leads to Willing Submission or Desperate Addiction) +- Option B: "This is intense but I'm nervous" → Hesitant path (leads to Humiliated Surrender) +- Option C: "This feels wrong" → Resistance path (leads to Forced Submission or Defiant Escape) + +**4. kneel_for_her** (verification) +- Current: Submissive position +- Keep but adjust story based on previous choice + +**5. NEW CHOICE: "Submit Further?"** +- Domme tests your willingness +- Option A: "Yes, I want more" → Deeper submission +- Option B: "I need a moment to think" → Questioning path +- Option C: "I'm not sure I can continue" → Resistance builds + +**6. edge_on_command** (action task) +- Current: Edge on her rhythm +- Keep but adjust intensity/dialogue based on path + +**7. choice_deeper** (choice) +- Current: Beg for more vs Too much +- Keep as-is (this is a major branching point) + +**8. watch_yourself_obey** OR **forced_mirror** (mirror task) +- Current paths diverge here +- Keep as-is + +### Act 2: Deepening & Path Divergence (Steps 9-18) + +**9. NEW CHOICE: "What Are You?"** +- Domme makes you state what you're becoming +- Option A: "I'm your toy" → Objectification path → Willing Submission +- Option B: "I'm a gooner" → Addiction path → Desperate Addiction +- Option C: "I'm... ashamed" → Humiliation path → Humiliated Surrender +- Option D: "I don't know" → Resistance continues → Forced Submission + +**10. display_position** OR **forced_position** (verification) +- Current: Humiliating position +- Branch based on previous choice + +**11. NEW CHOICE: "The Turning Point"** +- Critical decision that determines final ending +- Different options available based on which path you're on: + - **Eager path**: "Take me deeper" vs "I'm scared of how much I need this" + - **Hesitant path**: "The shame is overwhelming" vs "I can accept this" + - **Resistance path**: "Please stop" vs "I'll submit" + +**12. goon_for_her** OR **forced_edging** (action task) +- Current: Intense gooning session +- Adjust based on path + +**13. NEW CHOICE: "Identity Crisis"** +- Domme forces you to choose your identity +- Option A: "I'm yours forever" → Lock in Willing Submission +- Option B: "I need this addiction" → Lock in Desperate Addiction +- Option C: "I'm so humiliated but I accept it" → Lock in Humiliated Surrender +- Option D: "I refuse" → Trigger Defiant check or Force Submission + +**14. see_what_you_are** OR **forced_mirror_breaking** (mirror task) +- Current: Watch yourself broken +- Keep as-is + +**15. NEW CHOICE: "Final Offer"** +- One last chance before ending +- Option A: "Yes, completely" → Proceed to chosen ending +- Option B: "I'm terrified but yes" → Alt version of ending +- Option C: (Only if resistance path) "No" → Defiant escape check + +**16-17. final_submission** OR **forced_final_position** (verification) +- Current: Ultimate submission pose +- Keep as-is + +**18. ENDING** +- Branch to one of 5 endings based on choices + +## New Choice Content Examples + +### Choice 3: "How Does This Feel?" + +**Story**: +"She watches you come down from the edge, your reflection still visible in the mirror. She leans forward, her voice soft but probing. 'How does this feel? Tell me the truth. I can see it in your eyes, but I want to hear you say it.'" + +**Options**: +- A: "This feels amazing, Miss" → Sets eager/willing path +- B: "It's intense... I'm a bit overwhelmed" → Sets hesitant/shame path +- C: "This feels wrong" → Sets resistance path + +### Choice 5: "Submit Further?" + +**Story** (varies by path): +- **Eager path**: "She smiles, satisfied. 'Good. You're enjoying this. Are you ready to go deeper? To really give yourself to me?'" +- **Hesitant path**: "She notices your nervousness. 'You're uncertain. That's okay. But I need to know - will you trust me and continue?'" +- **Resistance path**: "She sees your discomfort. 'You don't like this, do you? But you're still hard. Still here. Will you submit, or keep fighting?'" + +**Options**: +- A: "Yes, I want more" / "I trust you" / "I'll... I'll submit" +- B: "Can I have a moment?" / "I need to think" / "This is too fast" +- C: "No" / "I'm not ready" / "I want to stop" + +### Choice 9: "What Are You?" + +**Story**: +"She circles you slowly, her presence overwhelming. 'Tell me what you are. Right now. In this moment. What have you become under my control? Choose your words carefully - they define you.'" + +**Options**: +- A: "I'm your toy, Miss" → Objectification/Willing path +- B: "I'm a gooner... I can't stop" → Addiction path +- C: "I'm... so ashamed but I can't resist" → Humiliation path +- D: "I don't know what I am" → Resistance/Forced path + +## Ending Variations + +### Ending 1: Willing Submission +"She stands over you, radiating satisfaction. 'Perfect. You gave yourself to me so beautifully. No resistance, no hesitation. Just pure, willing submission. You're mine now - my perfect, obedient toy. And you love it, don't you?'" + +**Outcome**: "willingly_broken" + +### Ending 2: Forced Submission +"She places her heel on your back, pressing you down. 'There we go. Broken at last. You fought, you resisted, but I crushed every bit of defiance. You're mine because I took you, not because you gave yourself. And that makes it even sweeter.'" + +**Outcome**: "forcefully_broken" + +### Ending 3: Desperate Addiction +"She steps back, watching you still stroking, unable to stop. 'Look at you. You can't even stop when I tell you to, can you? You're addicted now. Addicted to gooning, to edging, to me. You'll come crawling back for more. Again and again. Forever.'" + +**Outcome**: "addicted" + +### Ending 4: Humiliated Surrender +"She kneels beside you, her voice almost gentle. 'The humiliation broke you more than anything else, didn't it? Not the pleasure, not the commands - but the shame. Watching yourself. Being exposed. That's what destroyed your resistance. You're mine because you're too embarrassed to resist anymore.'" + +**Outcome**: "humiliated_broken" + +### Ending 5: Defiant Escape (1% chance) +"She pauses, then steps back with a small smile. 'You actually know who you are. That's... rare. Most break. Most give in. But you held your boundaries even when your body wanted to surrender. Go. You've earned your freedom. But remember - the offer stands if you ever change your mind.'" + +**Outcome**: "escaped" + +## Implementation Plan + +### Phase 1: Add New Choices +- Insert choice steps at positions 3, 5, 9, 11, 13, 15 +- Write branching dialogue for each based on previous path +- Update nextStep logic to branch appropriately + +### Phase 2: Adjust Existing Tasks +- Modify story/dialogue in existing tasks to reflect which path player is on +- Add path tracking variable (eager/hesitant/resistance) +- Adjust Domme's tone based on path + +### Phase 3: Create New Endings +- Write 3 new ending steps (Desperate Addiction, Humiliated Surrender, keep Defiant Escape) +- Update routing logic to reach appropriate ending +- Set outcome values for tracking + +### Phase 4: Test All Paths +- Map out all possible routes +- Ensure every path leads to an ending +- Verify timing still ~15-20 minutes +- Check that choice consequences feel meaningful + +## Questions + +1. **Choice frequency**: Every other step = ~12-15 choices. Too many? Or good variety? + +2. **Path tracking**: Should we track player path explicitly (eager/hesitant/resistance) or let choices cascade naturally? + +3. **Ending distribution**: Should some endings be more common than others? Or equal chance based on choices? + +4. **Duration impact**: More choices = more reading time. Target 20-25 minutes instead of 15? + +5. **Dialogue variation**: Should existing tasks have 3-4 different dialogues based on path? Or keep same task text but different Domme responses? + +6. **Point of no return**: Should there be a moment where the path is locked, or can choices continue to shift the outcome until the very end? + +Ready to implement once you approve the design! diff --git a/docs/humiliation-game-redesign-plan.md b/docs/humiliation-game-redesign-plan.md new file mode 100644 index 0000000..34f389e --- /dev/null +++ b/docs/humiliation-game-redesign-plan.md @@ -0,0 +1,229 @@ +# Humiliation Game Redesign Plan + +## Overview +Redesigning the psychological journey scenario to focus more on interactive gooning tasks rather than branching story choices, with a beautiful female domme as the figure. + +## Current State Analysis +- **Current duration**: ~40+ steps, but mostly choices (instant) +- **Current balance**: Too many text/choice steps, not enough physical actions +- **Current paths**: Multiple paths to defiant ending (~40% chance) +- **Current tone**: Heavy psychological self-degradation focus +- **Current figure**: Clinical/lab coat authority figure (gender neutral) + +## Target Changes + +### 1. Duration & Pacing +- **Target time**: 15 minutes total +- **Choice card reading time**: 30 seconds each +- **Calculation**: + - 15 min = 900 seconds + - Let's say 5-6 choice cards × 30s = 150-180s for reading + - Remaining: ~720-750s for timed actions + - Timed actions should be: 4-5 mirror tasks (180s each) + 3-4 position verifications (60s each) + 2-3 action tasks (120-240s each) + +### 2. Step Type Distribution (New) +- **Choice steps**: 5-6 total (down from 25+) +- **Mirror tasks**: 4-5 (up from 3) +- **Position verification**: 3-4 (up from 2) +- **Action tasks**: 3-4 (up from 5) +- **Total interactive steps**: ~15-17 steps +- **Total estimated time**: ~14-16 minutes + +### 3. Path Structure Changes + +#### Current Paths (Too Many) +- Submission → Broken ✓ +- Questioning → Acceptance → Broken ✓ +- Questioning → Ethics → Defiant ✗ +- Defiance → Strong → Autonomy → Defiant ✗ +- Defiance → Strong → Moral → Defiant ✗ +- Defiance → Strong → Pure → Defiant ✗ +- Defiance → Weak → Trap Recognized → Defiant ✗ +- Negotiation → Safety → Control Maintained → Defiant ✗ +- Negotiation → Reversal → Defiant ✗ +- Plus many more defiant paths... + +#### New Path Structure (Simplified) +**Main Linear Path** (95% of users): +1. **Entrance** (Choice: Accept or Question) +2. **Initial Submission Task** (Mirror: Self-objectification) +3. **Compliance Check** (Position: Kneeling) +4. **Deepening** (Action: Edging while repeating mantras) +5. **Objectification** (Mirror: Watch yourself as an object) +6. **Endurance Test** (Position: Hold degrading pose) +7. **Breaking Point** (Action: Intense edging session) +8. **Acceptance** (Mirror: Accept your role) +9. **Final Submission** (Position: Ultimate submission pose) +10. **Broken Ending** ✓ + +**Hidden Defiant Path** (~1% - requires specific choices): +- Only accessible by making the "wrong" choice at Step 1 (Question) +- Then making another specific choice at one critical junction +- If user shows strong resistance twice, they escape +- Otherwise, they merge back to main path + +### 4. Tone & Content Changes + +#### Remove/Reduce: +- ❌ Self-degradation focus ("I am worthless", "I am a failure") +- ❌ Clinical/analytical psychological breaking +- ❌ Heavy intellectual/philosophical debates +- ❌ Multiple complex branching narratives + +#### Add/Increase: +- ✅ Physical humiliation (positions, poses, exposure) +- ✅ Edging and gooning focus (stroking patterns, edge denial) +- ✅ Objectification (being watched, displayed, used) +- ✅ Submission to female authority (the Domme) +- ✅ Sensory focus (how it feels, what you see in mirror) +- ✅ Progressive arousal building +- ✅ Gooner mantras (focus on porn, obedience, arousal) + +#### Female Domme Character: +- **Appearance**: Beautiful, commanding, elegant but cruel +- **Attitude**: Confident, teasing, knows she has power over you +- **Style**: Uses your arousal against you, controls through pleasure +- **Voice**: Seductive but firm, mocking but alluring +- **Goal**: Turn you into an obedient gooning toy + +### 5. New Scenario Flow + +#### Act 1: Submission Initiation (3-4 min) +1. **CHOICE**: "The Domme's Invitation" + - Story: Beautiful woman invites you to a private session. She knows what you crave. + - Option A: "Accept eagerly" → Main path + - Option B: "Ask what this is about" → Resistance check + +2. **MIRROR TASK**: "Look at Your Desperation" (180s) + - She positions you in front of a mirror, stroking + - Task: Edge while watching yourself, admit how desperate you are + - Mantras: "I need this", "I'm so desperate", "I can't resist her" + +3. **POSITION VERIFICATION**: "Kneel for Her" (60s) + - She commands you to kneel, hands behind back + - Task: Hold position while she circles you + - Instruction: "Good toy. Stay just like that." + +#### Act 2: Deepening Control (5-6 min) +4. **ACTION TASK**: "Edge on Her Command" (240s) + - She sits back and watches you stroke + - Task: Edge repeatedly on her count, slower and slower + - Pattern: "Stroke. Slower. Stop. Edge. Don't cum. Good toy." + +5. **MIRROR TASK**: "Watch Yourself Obey" (180s) + - Mirror positioned to show you stroking + - Task: Watch yourself edge while she narrates + - Mantras: "I obey", "I'm her toy", "Stroking feels so good" + +6. **CHOICE**: "How Far Will You Go?" + - She offers two options + - Option A: "Deeper submission" → Continue main path + - Option B: "This is too much" → Last chance for defiant path (requires another resistance later) + +7. **POSITION VERIFICATION**: "Display Position" (90s) + - She orders you into a humiliating display pose + - Task: Legs spread, exposed, vulnerable + - Instruction: "Let me see what a desperate gooner looks like" + +#### Act 3: Breaking Point (4-5 min) +8. **ACTION TASK**: "Goon for Her" (300s) + - She starts playing with you mentally + - Task: Rapid edging, can't stop, can't think + - Mantras: "I'm a gooner", "Porn is my purpose", "I serve her" + +9. **MIRROR TASK**: "See What You've Become" (180s) + - Final mirror session + - Task: Watch yourself completely lost in gooning + - Mantras: "This is what I am", "I'm broken", "I accept this" + +10. **POSITION VERIFICATION**: "Final Submission" (90s) + - Ultimate submission pose (forehead to ground, ass up, still stroking) + - Task: Complete surrender position + - Instruction: "Stay broken. Stay mine." + +11. **BROKEN ENDING** + - She stands over you + - "You're mine now. A perfect gooning toy. Broken, obedient, desperate." + - Outcome: "broken" + +#### Alternate Path: Defiant Ending (1% chance) +- Only if user chose "Question" at step 1 AND "Too much" at step 6 +- Leads to one more check: + +**CHOICE**: "Final Decision" +- She gets frustrated: "You keep resisting. Why?" +- Option A: "I know myself too well to break" → DEFIANT ENDING +- Option B: "Maybe I should just give in" → Back to main path (step 8) + +**DEFIANT ENDING** (if reached): +- She steps back, smirks +- "You're stronger than most. You know who you are. I can't break that." +- Outcome: "defiant" + +### 6. Example Content Updates + +#### Old Style (Too Clinical): +``` +Story: "The figure tilts their head, studying you. 'Questioning is natural...'" +Action: "Suppress your protective instincts and continue deeper into conditioning" +``` + +#### New Style (Gooning Focused): +``` +Story: "She leans forward, her eyes locked on yours. 'I can see how hard you are. How desperate. You want to goon for me, don't you?'" +Action: "Kneel and stroke, slowly, while staring up at her - edge three times while repeating 'I want to goon for you, Miss'" +``` + +### 7. Implementation Checklist + +#### Step 1: Create New Scenario Structure +- [ ] Define 10 main path steps (entrance → broken) +- [ ] Define 2-3 resistance path steps (hidden defiant) +- [ ] Ensure total time = ~15 minutes +- [ ] Verify step distribution (5-6 choice, 4-5 mirror, 3-4 verification, 3-4 action) + +#### Step 2: Write New Content +- [ ] Rewrite all stories with female Domme voice +- [ ] Focus on humiliation, edging, gooning themes +- [ ] Remove self-degradation, add objectification +- [ ] Add specific physical instructions to all tasks +- [ ] Create gooner-focused mantras for each task + +#### Step 3: Set Durations +- [ ] Mirror tasks: 180s each +- [ ] Position verification: 60-90s each +- [ ] Action tasks: 120-300s each +- [ ] Calculate total to hit 14-16 minute target + +#### Step 4: Test Path Logic +- [ ] Verify main path flows smoothly +- [ ] Verify defiant path requires 2 specific choices +- [ ] Ensure all paths lead to an ending +- [ ] Check that ~99% of users hit broken ending + +## Questions for Review + +1. **Duration**: Is 15 minutes the right target? Or should it be longer/shorter? + +2. **Step count**: ~15-17 interactive steps feel right? Or need more/less? + +3. **Defiant path**: Is 1% too rare? Should it be 5%? Or remove entirely? + +4. **Tone**: Is the shift from "clinical degradation" to "sensual domination" the right direction? + +5. **Balance**: Current plan is: + - ~30% mirror tasks (watching yourself) + - ~25% position verification (holding poses) + - ~25% action tasks (edging/stroking) + - ~20% choices (story decisions) + - Does this feel right? + +6. **Domme character**: Any specific personality traits or dialogue style you want emphasized? + +7. **Content themes**: Priority order correct? + 1. Gooning/edging + 2. Humiliation/objectification + 3. Submission to Domme + 4. Physical positions/exposure + +Please review and provide feedback before I implement! diff --git a/docs/position-verification-library.md b/docs/position-verification-library.md new file mode 100644 index 0000000..9e65a5f --- /dev/null +++ b/docs/position-verification-library.md @@ -0,0 +1,117 @@ +# Random Position Verification Library + +All positions available for random selection during verification tasks in the Humiliation Game. + +## Submissive Positions (5 total) + +### 1. Kneeling Submission +- **Instruction:** Kneel with hands behind your back, head bowed in submission +- **Description:** Classic submissive kneeling pose showing complete obedience + +### 2. Present Position +- **Instruction:** On hands and knees, arch your back and present yourself for inspection +- **Description:** Degrading presentation pose for thorough examination + +### 3. Worship Pose +- **Instruction:** Sit on your heels with hands on thighs, mouth open in worship position +- **Description:** Ready to worship and serve in proper position + +### 4. Display Spread +- **Instruction:** Lying back with legs spread wide, hands above head in surrender +- **Description:** Complete exposure and vulnerability display + +### 5. Begging Position +- **Instruction:** On knees with hands clasped together, looking up desperately +- **Description:** Pathetic begging pose showing your desperate need + +--- + +## Degrading Positions (5 total) + +### 1. Object Display +- **Instruction:** On your back with legs pulled up and spread, completely exposed like a piece of furniture +- **Description:** Reduced to nothing but an object for use and display + +### 2. Mouth Service Position +- **Instruction:** Squatting low with mouth open wide, ready to be used +- **Description:** Ultimate degradation pose prepared to service + +### 3. Fuck-Doll Display +- **Instruction:** Lying with limbs spread, completely limp like a broken sex doll +- **Description:** Objectified as nothing but a mindless fuck toy + +### 4. Cock-Socket Ready +- **Instruction:** Kneeling with mouth wide open, hands holding face open +- **Description:** Prepared to be nothing but a hole for use + +### 5. Pain Slut Pose +- **Instruction:** Bent over with back arched, presenting for punishment +- **Description:** Ready to receive pain and discipline like the slut you are + +--- + +## Humiliating Positions (5 total) + +### 1. Embarrassed Display +- **Instruction:** Standing with hands covering face in shame while body exposed +- **Description:** Showing your humiliation and embarrassment + +### 2. Pathetic Grovel +- **Instruction:** Face down on ground, ass up in the air, groveling pathetically +- **Description:** Ultimate humiliation and subservience position + +### 3. Shame Spread +- **Instruction:** Squatting with legs wide, hands pulling yourself open +- **Description:** Shameful self-exposure for maximum humiliation + +### 4. Desperate Beg +- **Instruction:** On back with legs in the air, begging desperately for attention +- **Description:** Pathetic attention-seeking humiliation pose + +### 5. Slut Presentation +- **Instruction:** Bent forward touching toes, looking back with slutty expression +- **Description:** Presenting yourself like the desperate slut you are + +--- + +## Extreme Positions (5 total) + +### 1. Complete Surrender +- **Instruction:** Spread eagle on back, completely exposed and helpless +- **Description:** Total vulnerability and surrender to be used + +### 2. Breeding Position +- **Instruction:** Face down ass up, legs spread wide for breeding access +- **Description:** Perfect position for being bred like an animal + +### 3. Inspection Pose +- **Instruction:** Squatting with hands spreading yourself open for inspection +- **Description:** Allowing complete inspection of your worthless holes + +### 4. Punishment Ready +- **Instruction:** Bent over grabbing ankles, presenting for harsh punishment +- **Description:** Ready to receive the brutal punishment you deserve + +### 5. Broken Toy +- **Instruction:** Collapsed in heap, limbs akimbo like a discarded fuck toy +- **Description:** Completely broken and used up, nothing left but a toy + +--- + +## How Positions Are Selected + +- **verificationInstructions: "submissive"** → Selects randomly from 5 Submissive positions +- **verificationInstructions: "degrading"** → Selects randomly from 5 Degrading positions +- **verificationInstructions: "humiliating"** → Selects randomly from 5 Humiliating positions +- **verificationInstructions: "extreme"** → Selects randomly from 5 Extreme positions +- **verificationInstructions: "mixed"** → Selects randomly from all 20 positions + +## Current Scenario Usage + +- **kneel_for_her:** uses "submissive" (5 positions) +- **display_position:** uses "humiliating" (5 positions) +- **final_submission:** uses "extreme" (5 positions) +- **forced_position:** uses "submissive" (5 positions) +- **forced_final_position:** uses "extreme" (5 positions) + +**Total Position Pool:** 20 unique positions across 4 intensity levels diff --git a/library.html b/library.html index a0f7410..14dcb7c 100644 --- a/library.html +++ b/library.html @@ -163,6 +163,80 @@ cursor: not-allowed; } + /* Loading Overlay */ + .loading-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--bg-primary); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + backdrop-filter: blur(10px); + } + + .loading-content { + text-align: center; + } + + .loading-content h2 { + font-family: 'Audiowide', cursive; + font-size: var(--font-xxxl); + background: linear-gradient(45deg, var(--color-primary), var(--color-secondary)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + margin-bottom: var(--space-lg); + animation: titleGlow 2s ease-in-out infinite alternate; + } + + .loading-spinner { + width: 60px; + height: 60px; + border: 4px solid var(--border-color); + border-top: 4px solid var(--color-primary); + border-radius: 50%; + animation: spin 1s linear infinite; + margin: 0 auto var(--space-lg); + } + + @keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + + .loading-status { + color: var(--text-secondary); + font-size: var(--font-lg); + margin-bottom: var(--space-lg); + } + + .loading-progress { + width: 300px; + height: 8px; + background: var(--bg-tertiary); + border-radius: 4px; + overflow: hidden; + margin: 0 auto var(--space-base); + } + + .loading-progress-fill { + height: 100%; + background: linear-gradient(90deg, var(--color-primary), var(--color-secondary)); + border-radius: 4px; + width: 0%; + transition: width 0.3s ease; + } + + .loading-percentage { + color: var(--text-primary); + font-size: var(--font-lg); + font-weight: 600; + } + /* Main Content Area */ body { margin: 0; @@ -603,6 +677,19 @@
+ + +