# 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**:
```javascript
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**:
```javascript
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**:
```javascript
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:
```javascript
{
  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:
```javascript
{
  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:
```javascript
{
  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:
```javascript
{
  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:
```javascript
{
  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:
```javascript
{
  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**:
```javascript
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:

```javascript
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**:
```javascript
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`:
```javascript
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:

```html
<!-- 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)
