training-academy/docs/training-game-redesign/PHASE-4.md

21 KiB

Phase 4: Levels 21-25 Path Specialization

Priority: MEDIUM - Path differentiation and specialization
Estimated Effort: 20-26 hours
Status: Not Started
Dependencies: Phase 3 (Levels 11-20)


🎯 Phase Goals

Implement levels 21-25, covering the Path Specialization Arc. At Level 21, players choose one of 6 specialized paths based on their preferences and goals. Levels 22-25 provide path-specific scenarios and challenges.


📋 What This Phase Delivers

Arc Implemented:

Path Specialization Arc (L21-25): Path selection + 4 path-specific levels

The 6 Paths:

  1. Endurance Path: Stamina building, marathon sessions, long-duration challenges
  2. Denial Path: Extended denial, edging without release, frustration training
  3. Humiliation Path: Degradation scenarios, humiliation tasks, ego dissolution
  4. Obedience Path: Command following, submission training, control surrender
  5. Sensitivity Path: Heightened arousal, minimal touch, extreme sensitivity
  6. Multi-Sensory Path: All features maxed, overwhelming stimulation, sensory mastery

Level-by-Level:

  • L21: Path Selection (165min) - Questionnaire + path choice
  • L22: Path Level 1 (180min) - Introduction to chosen path
  • L23: Path Level 2 (195min) - Intermediate path training
  • L24: Path Level 3 (210min) - Advanced path challenges
  • L25: Path Mastery Checkpoint (225min) - Path graduation + preference update

End Result: Personalized experience based on user's path choice, preparing for Ultimate Mastery arc.


🏗️ Implementation Tasks

Task 1: Path Selection System (5-6 hours)

File to Create: src/features/academy/pathSelector.js

Responsibilities:

  • Display path selection questionnaire
  • Calculate recommended path based on answers
  • Allow manual path override
  • Save selected path
  • Generate path-specific content

Questionnaire Questions:

const pathQuestions = [
  {
    id: 1,
    question: "What aspect of gooning excites you most?",
    answers: [
      { text: "Going for hours without stopping", path: "Endurance", weight: 3 },
      { text: "Being denied release", path: "Denial", weight: 3 },
      { text: "Being degraded and humiliated", path: "Humiliation", weight: 3 },
      { text: "Following commands obediently", path: "Obedience", weight: 3 },
      { text: "Increasing my sensitivity", path: "Sensitivity", weight: 3 },
      { text: "Overwhelming my senses", path: "Multi-Sensory", weight: 3 }
    ]
  },
  {
    id: 2,
    question: "How do you prefer to edge?",
    answers: [
      { text: "Slow and steady for maximum duration", path: "Endurance", weight: 2 },
      { text: "Right to the edge without going over", path: "Denial", weight: 2 },
      { text: "While being verbally degraded", path: "Humiliation", weight: 2 },
      { text: "Only when commanded", path: "Obedience", weight: 2 },
      { text: "With minimal touch", path: "Sensitivity", weight: 2 },
      { text: "With all features active", path: "Multi-Sensory", weight: 2 }
    ]
  },
  {
    id: 3,
    question: "What is your ultimate gooning goal?",
    answers: [
      { text: "Goon for 5+ hours straight", path: "Endurance", weight: 3 },
      { text: "Edge for days without cumming", path: "Denial", weight: 3 },
      { text: "Embrace total humiliation", path: "Humiliation", weight: 3 },
      { text: "Become perfectly obedient", path: "Obedience", weight: 3 },
      { text: "Cum from minimal stimulation", path: "Sensitivity", weight: 3 },
      { text: "Master sensory overload", path: "Multi-Sensory", weight: 3 }
    ]
  },
  {
    id: 4,
    question: "Which feature do you enjoy most?",
    answers: [
      { text: "Long video marathons", path: "Endurance", weight: 1 },
      { text: "Denial and stop-stroking commands", path: "Denial", weight: 1 },
      { text: "Humiliating captions and tasks", path: "Humiliation", weight: 1 },
      { text: "TTS commands and instructions", path: "Obedience", weight: 1 },
      { text: "Hypno spirals and edge control", path: "Sensitivity", weight: 1 },
      { text: "Everything at once", path: "Multi-Sensory", weight: 1 }
    ]
  },
  {
    id: 5,
    question: "How intense should your training be?",
    answers: [
      { text: "Moderate but long-lasting", path: "Endurance", weight: 2 },
      { text: "Intensely frustrating", path: "Denial", weight: 2 },
      { text: "Psychologically challenging", path: "Humiliation", weight: 2 },
      { text: "Strictly controlled", path: "Obedience", weight: 2 },
      { text: "Physically overwhelming", path: "Sensitivity", weight: 2 },
      { text: "Maximum intensity across all dimensions", path: "Multi-Sensory", weight: 2 }
    ]
  }
];

Path Calculation:

class PathSelector {
  calculateRecommendedPath(answers) {
    // Sum weights for each path
    // Return path with highest score
  }
  
  showPathSelection(recommendedPath) {
    // Display questionnaire results
    // Show recommended path with description
    // Allow user to override choice
    // Return selected path
  }
  
  savePath(path) {
    // Save to academyProgress.selectedPath
  }
  
  getPathDescription(path) {
    // Return detailed description of path
  }
}

Path Descriptions:

const pathDescriptions = {
  Endurance: {
    name: "Endurance Path",
    tagline: "Master of marathons",
    description: "Build stamina for ultra-long sessions. Train to goon for hours without breaks.",
    focus: "Duration, stamina, marathon sessions",
    graduation: "5-hour session with minimal breaks"
  },
  Denial: {
    name: "Denial Path",
    tagline: "Master of frustration",
    description: "Learn to edge endlessly without release. Embrace permanent denial.",
    focus: "Denial periods, edging without cumming, frustration tolerance",
    graduation: "4-hour denial session with 100+ edges"
  },
  Humiliation: {
    name: "Humiliation Path",
    tagline: "Master of degradation",
    description: "Embrace humiliation and ego dissolution. Become the perfect degraded gooner.",
    focus: "Humiliating tasks, degrading captions, ego death",
    graduation: "Humiliation gauntlet with extreme tasks"
  },
  Obedience: {
    name: "Obedience Path",
    tagline: "Master of submission",
    description: "Perfect command following. Learn total obedience and control surrender.",
    focus: "TTS commands, instant obedience, submission",
    graduation: "Perfect obedience test with complex commands"
  },
  Sensitivity: {
    name: "Sensitivity Path",
    tagline: "Master of sensation",
    description: "Heighten your sensitivity to extreme levels. Minimal touch, maximum pleasure.",
    focus: "Sensitivity training, minimal stimulation, edge control",
    graduation: "Hands-free or minimal-touch edge marathon"
  },
  MultiSensory: {
    name: "Multi-Sensory Path",
    tagline: "Master of everything",
    description: "All features, maximum intensity. Become a master of sensory overload.",
    focus: "All features combined, maximum complexity, total immersion",
    graduation: "Ultimate sensory overload challenge"
  }
};

Testing Checklist:

  • Questionnaire displays
  • Answers calculate recommended path
  • Path descriptions display
  • Can override recommendation
  • Selected path saves

Task 2: Path-Specific Action Handlers (6-8 hours)

File to Update: src/features/tasks/interactiveTaskManager.js

Add handlers for path-specific actions:

Endurance Path Actions:

{
  type: 'marathon-warmup',
  params: {
    duration: 600, // 10-minute warmup
    instruction: 'Prepare your body and mind for the long haul'
  }
}

{
  type: 'stamina-building',
  params: {
    edgeCycles: 5,
    cycleLength: 300, // 5-minute cycles
    intensity: 'moderate'
  }
}

{
  type: 'endurance-test',
  params: {
    duration: 3600, // 1-hour test
    minEdges: 30,
    breaks: 'none'
  }
}

Denial Path Actions:

{
  type: 'extended-denial',
  params: {
    denialDuration: 1800, // 30-minute denial
    allowedTouching: 'none',
    showTimer: true
  }
}

{
  type: 'frustration-building',
  params: {
    edgesToBrink: 20,
    forcedStops: 5
  }
}

{
  type: 'denial-oath',
  params: {
    oath: 'I will not cum. I am a denied gooner.',
    repetitions: 10
  }
}

Humiliation Path Actions:

{
  type: 'humiliation-task',
  params: {
    task: 'Write "I am a pathetic gooner" 10 times',
    verification: 'photo' // optional
  }
}

{
  type: 'degrading-mantra',
  params: {
    mantra: 'I am addicted. I am weak. I am a gooner.',
    duration: 300,
    tts: true
  }
}

{
  type: 'ego-dissolution',
  params: {
    captions: 'degrading',
    hypno: true,
    duration: 600
  }
}

Obedience Path Actions:

{
  type: 'command-drill',
  params: {
    commands: [
      { command: 'Edge now', delay: 10 },
      { command: 'Stop', delay: 5 },
      { command: 'Edge again', delay: 10 }
    ]
  }
}

{
  type: 'instant-obedience',
  params: {
    randomCommands: true,
    commandFrequency: 30, // every 30 seconds
    duration: 600
  }
}

{
  type: 'obedience-oath',
  params: {
    oath: 'I obey. I submit. I am controlled.',
    repetitions: 10
  }
}

Sensitivity Path Actions:

{
  type: 'sensitivity-training',
  params: {
    touchIntensity: 'minimal',
    edges: 20,
    instruction: 'Use only your fingertips'
  }
}

{
  type: 'slow-edge',
  params: {
    duration: 600, // 10-minute slow edge
    maxStrokes: 100
  }
}

{
  type: 'hands-free-attempt',
  params: {
    duration: 300,
    allowedStimulation: 'visual-only'
  }
}

Multi-Sensory Path Actions:

{
  type: 'total-overload',
  params: {
    features: ['quad-video', 'hypno', 'tts', 'captions', 'interruptions', 'popups', 'webcam'],
    duration: 900,
    intensity: 'maximum'
  }
}

{
  type: 'feature-cascade',
  params: {
    startWith: ['video'],
    addEvery: 60, // add feature every 60 seconds
    features: ['tts', 'hypno', 'captions', 'quad-video', 'popups', 'interruptions']
  }
}

{
  type: 'sensory-mastery',
  params: {
    allFeatures: true,
    complexTasks: true,
    duration: 1200
  }
}

Handler Implementation:

class InteractiveTaskManager {
  // ... existing handlers ...
  
  // Endurance handlers
  async handleMarathonWarmup(action) { /* Warmup routine */ }
  async handleStaminaBuilding(action) { /* Edge cycles */ }
  async handleEnduranceTest(action) { /* Long duration test */ }
  
  // Denial handlers
  async handleExtendedDenial(action) { /* Long denial period */ }
  async handleFrustrationBuilding(action) { /* Edge to brink repeatedly */ }
  async handleDenialOath(action) { /* Repeat oath */ }
  
  // Humiliation handlers
  async handleHumiliationTask(action) { /* Display and verify task */ }
  async handleDegradingMantra(action) { /* TTS mantra loop */ }
  async handleEgoDissolution(action) { /* Hypno + degrading captions */ }
  
  // Obedience handlers
  async handleCommandDrill(action) { /* Sequence of commands */ }
  async handleInstantObedience(action) { /* Random rapid commands */ }
  async handleObedienceOath(action) { /* Repeat oath */ }
  
  // Sensitivity handlers
  async handleSensitivityTraining(action) { /* Minimal touch edges */ }
  async handleSlowEdge(action) { /* Slow, controlled edge */ }
  async handleHandsFreeAttempt(action) { /* No touch challenge */ }
  
  // Multi-Sensory handlers
  async handleTotalOverload(action) { /* Activate all features */ }
  async handleFeatureCascade(action) { /* Add features progressively */ }
  async handleSensoryMastery(action) { /* Ultimate challenge */ }
}

Testing Checklist:

  • All 6 paths have unique actions
  • Path-specific handlers work correctly
  • Actions respect path focus
  • No conflicts between path actions

Task 3: Path-Specific Level Data (4-5 hours)

File to Update: src/data/modes/academyLevelData.js

Add levels 21-25 with path variations:

const academyLevels = {
  // ... L1-20 ...
  
  21: {
    name: "Path Selection",
    arc: "Path Specialization",
    duration: 9900, // 165 minutes
    requirements: {
      minLevel: 21,
      completedLevels: [20]
    },
    unlocks: {
      level: 22
    },
    sessionStructure: {
      warmup: [
        { type: 'show-path-questionnaire' }
      ],
      main: [
        { type: 'quad-video' },
        { type: 'edge', params: { count: 165 } }
      ],
      cooldown: [
        { type: 'show-path-results' },
        { type: 'save-path-selection' }
      ]
    }
  },
  
  22: {
    name: "Path Level 1",
    arc: "Path Specialization",
    duration: 10800, // 180 minutes
    requirements: {
      minLevel: 22,
      completedLevels: [21],
      pathSelected: true
    },
    unlocks: {
      level: 23
    },
    sessionStructure: {
      // Different structure per path
      Endurance: {
        main: [
          { type: 'marathon-warmup', params: { duration: 600 } },
          { type: 'stamina-building', params: { edgeCycles: 5, cycleLength: 300 } },
          { type: 'edge', params: { count: 100 } }
        ]
      },
      Denial: {
        main: [
          { type: 'extended-denial', params: { denialDuration: 1800 } },
          { type: 'frustration-building', params: { edgesToBrink: 30 } },
          { type: 'denial-oath', params: { repetitions: 10 } }
        ]
      },
      Humiliation: {
        main: [
          { type: 'humiliation-task', params: { task: 'Write degrading affirmations' } },
          { type: 'degrading-mantra', params: { duration: 600, tts: true } },
          { type: 'edge', params: { count: 80 } }
        ]
      },
      Obedience: {
        main: [
          { type: 'command-drill', params: { commands: [...] } },
          { type: 'instant-obedience', params: { duration: 900 } },
          { type: 'obedience-oath', params: { repetitions: 10 } }
        ]
      },
      Sensitivity: {
        main: [
          { type: 'sensitivity-training', params: { edges: 50 } },
          { type: 'slow-edge', params: { duration: 1200 } },
          { type: 'hands-free-attempt', params: { duration: 300 } }
        ]
      },
      MultiSensory: {
        main: [
          { type: 'feature-cascade', params: { startWith: ['video'], addEvery: 120 } },
          { type: 'total-overload', params: { duration: 1800 } }
        ]
      }
    }
  },
  
  23: {
    name: "Path Level 2",
    arc: "Path Specialization",
    duration: 11700, // 195 minutes
    requirements: {
      minLevel: 23,
      completedLevels: [22]
    },
    unlocks: {
      level: 24
    },
    sessionStructure: {
      // Intermediate path training (more intense)
      // Similar structure to L22 but harder
    }
  },
  
  24: {
    name: "Path Level 3",
    arc: "Path Specialization",
    duration: 12600, // 210 minutes
    requirements: {
      minLevel: 24,
      completedLevels: [23]
    },
    unlocks: {
      level: 25
    },
    sessionStructure: {
      // Advanced path challenges
      // Similar structure to L23 but hardest
    }
  },
  
  25: {
    name: "Path Mastery",
    arc: "Path Specialization",
    duration: 13500, // 225 minutes
    isCheckpoint: true,
    requirements: {
      minLevel: 25,
      completedLevels: [24]
    },
    unlocks: {
      level: 26,
      arcsCompleted: ['Path Specialization'],
      durationTiers: ['Marathon'] // Unlock Marathon tier (15x)
    },
    sessionStructure: {
      warmup: [
        { type: 'show-preferences', reason: 'checkpoint' }
      ],
      main: {
        // Path graduation challenge
        // Hardest test for each path
        Endurance: [
          { type: 'endurance-test', params: { duration: 7200, minEdges: 100 } }
        ],
        Denial: [
          { type: 'extended-denial', params: { denialDuration: 3600 } },
          { type: 'frustration-building', params: { edgesToBrink: 100 } }
        ],
        Humiliation: [
          { type: 'ego-dissolution', params: { duration: 3600 } },
          { type: 'humiliation-task', params: { task: 'Ultimate humiliation gauntlet' } }
        ],
        Obedience: [
          { type: 'instant-obedience', params: { duration: 3600, commandFrequency: 15 } }
        ],
        Sensitivity: [
          { type: 'hands-free-attempt', params: { duration: 1800 } },
          { type: 'slow-edge', params: { duration: 1800, maxStrokes: 50 } }
        ],
        MultiSensory: [
          { type: 'sensory-mastery', params: { duration: 3600, allFeatures: true } }
        ]
      },
      cooldown: [
        { type: 'show-arc-complete', arc: 'Path Specialization' },
        { type: 'show-path-graduation', path: 'selected' }
      ]
    }
  }
};

Testing Checklist:

  • L21 questionnaire works
  • Path selection saves
  • L22-24 load correct path structure
  • L25 graduation challenge matches path
  • Marathon tier unlocks at L25

Task 4: Path Data Management (2-3 hours)

File to Create: src/data/academy/pathData.js

Path Definitions:

export const paths = {
  Endurance: {
    // ... full path definition ...
  },
  // ... other 5 paths ...
};

export const pathQuestionnaire = [ /* questions */ ];

File to Update: src/core/gameDataManager.js

Add selectedPath to academyProgress:

academyProgress: {
  // ... existing fields ...
  selectedPath: null, // 'Endurance', 'Denial', etc.
  pathQuestionnaireAnswers: [],
  pathProgress: {
    level22Complete: false,
    level23Complete: false,
    level24Complete: false,
    level25Complete: false
  }
}

Testing Checklist:

  • Path data loads correctly
  • Selected path persists
  • Path progress tracks

Task 5: UI for Path Selection (3-4 hours)

File to Update: training-academy.html

Add path selection UI:

<!-- Path Questionnaire Modal -->
<div id="path-questionnaire-modal" class="modal hidden">
  <h2>Choose Your Path</h2>
  <p>Answer these questions to find your ideal training path.</p>
  
  <div id="questionnaire-container">
    <!-- Questions rendered here -->
  </div>
  
  <button id="calculate-path">Calculate Recommended Path</button>
</div>

<!-- Path Results Modal -->
<div id="path-results-modal" class="modal hidden">
  <h2>Your Recommended Path</h2>
  
  <div id="recommended-path">
    <h3 id="path-name"></h3>
    <p id="path-tagline"></p>
    <p id="path-description"></p>
    <p><strong>Focus:</strong> <span id="path-focus"></span></p>
    <p><strong>Graduation:</strong> <span id="path-graduation"></span></p>
  </div>
  
  <div id="all-paths">
    <h3>Or choose a different path:</h3>
    <!-- 6 path cards -->
  </div>
  
  <button id="confirm-path">Confirm Path</button>
</div>

<!-- Path Graduation Modal -->
<div id="path-graduation-modal" class="modal hidden">
  <h2>🎓 Path Mastery Complete!</h2>
  <p>You have mastered the <span id="graduated-path"></span>.</p>
  <p>Marathon tier (15x) now unlocked!</p>
  <button id="continue-graduation">Continue to Ultimate Mastery</button>
</div>

Testing Checklist:

  • Questionnaire renders
  • Results display correctly
  • All 6 paths selectable
  • Graduation modal displays

📏 Measurable Test Criteria

After Phase 4, ALL of these must pass:

Level 21 (Path Selection):

  • Questionnaire displays with all 5 questions
  • Can answer all questions
  • Recommended path calculates correctly
  • Path descriptions display
  • Can override recommendation
  • Selected path saves
  • Completing L21 unlocks L22

Level 22 (Path Level 1):

  • Correct path structure loads
  • Endurance path: Marathon warmup + stamina building work
  • Denial path: Extended denial + frustration work
  • Humiliation path: Tasks + degrading mantras work
  • Obedience path: Commands + instant obedience work
  • Sensitivity path: Sensitivity training + slow edges work
  • Multi-Sensory path: Feature cascade + total overload work
  • Completing L22 unlocks L23

Level 23 (Path Level 2):

  • Intermediate difficulty loads
  • Path-specific content works
  • Completing L23 unlocks L24

Level 24 (Path Level 3):

  • Advanced difficulty loads
  • Path-specific content works
  • Completing L24 unlocks L25

Level 25 (Path Mastery):

  • Preference form appears
  • Path graduation challenge loads
  • Endurance: 2-hour test works
  • Denial: 1-hour denial + 100 edges work
  • Humiliation: Ego dissolution + gauntlet work
  • Obedience: 1-hour instant obedience works
  • Sensitivity: Hands-free + slow edge work
  • Multi-Sensory: Ultimate overload works
  • Path graduation modal displays
  • Marathon tier unlocks
  • Path Specialization Arc completes
  • Completing L25 unlocks L26

Overall:

  • All 6 paths functional
  • Path selection persists
  • No console errors
  • Can complete L21 → L25 for any path
  • Marathon tier confirmed unlocked

🎯 Success Criteria

Phase 4 Complete When:

  1. Levels 21-25 fully functional
  2. All 6 paths implemented
  3. Path selection system works
  4. All path-specific actions functional
  5. All measurable tests pass
  6. Path graduation displays correctly
  7. Marathon tier unlocks at L25

📂 Files Created/Modified

New Files:

  • src/features/academy/pathSelector.js
  • src/data/academy/pathData.js

Modified Files:

  • src/features/tasks/interactiveTaskManager.js
  • src/data/modes/academyLevelData.js
  • src/core/gameDataManager.js
  • training-academy.html

🚀 Next Phase

After Phase 4: Phase 5: Levels 26-30 + Graduation (Ultimate Mastery arc)