# Enhanced Romance - Kink Content System Documentation

**Version:** 2.0.0
**Warning:** 18+ HARDCORE ADULT CONTENT

---

## Table of Contents
1. [Overview](#overview)
2. [Opt-In System](#opt-in-system)
3. [Kink Categories](#kink-categories)
4. [Intensity Levels](#intensity-levels)
5. [Unlocking Mechanism](#unlocking-mechanism)
6. [Content Statistics](#content-statistics)
7. [Player Controls](#player-controls)
8. [Implementation Files](#implementation-files)
9. [Usage Examples](#usage-examples)
10. [Future Expansion](#future-expansion)

---

## Overview

Enhanced Romance v2.0.0 includes a comprehensive **opt-in** kink content system with hardcore adult scenarios. All adult content is **DISABLED BY DEFAULT** and requires explicit player activation.

### Key Features:
- **Opt-in activation** - Players must explicitly enable the system
- **Gradual unlocking** - Content unlocks based on relationship progression
- **5 Intensity levels** - From subtle hints to extreme hardcore
- **4 Kink categories** - Cuckold, Sharing, Cheating, Voyeurism
- **Player choice branching** - Multiple response options in dialogs
- **Safe word system** - Players can stop content at any time
- **Warning system** - Explicit warnings before hardcore content

---

## Opt-In System

### Default State
- Kink system: **DISABLED**
- All categories: **LOCKED**
- Players must activate manually

### Activation
Players can activate through:
```csharp
KinkContentManager.ActivateKinkSystem()
```

Once activated:
- Master toggle: ON
- All 4 categories: Enabled by default
- Intensity: Determined by relationship progression
- Safe word: Active

---

## Kink Categories

### 1. Cuckold / Hotwife
**Description:** Partner has sexual encounters with others with player's knowledge/consent

**Intensity Progression:**
- **Level 1-2:** Subtle teasing, hints about other men's attention
- **Level 3:** Confession of attraction or past encounters
- **Level 4:** Explicit descriptions of sexual encounters
- **Level 5:** Hardcore scenarios (multiple partners, detailed descriptions)

**Example Dialog (Level 5):**
```
Partner: "*gözlerinde heyecan* Üç adamla birlikteydim... Hepsini istiyordum."

Player Options:
- "Üç mü?!" (shocked)
- "Devam et, dinliyorum..." (aroused)
- "Her detayı duymak istiyorum." (full_confession)
```

**Dialog Count:** 15+ examples (expandable to 100+)

---

### 2. Sharing / Swinging
**Description:** Consensual partner sharing, swinging scenarios, hotwife lifestyle

**Sub-categories:**
- **Fantasy Dialogs:** Discussing sharing fantasies
- **Hotwife Dialogs:** Partner requesting permission for encounters
- **Voyeur Dialogs:** Public/watched sexual scenarios

**Example Dialogs:**
```
Fantasy: "Birlikte başka çiftlerle olsak nasıl olur?"
Hotwife: "Başka erkeklerle çıkmak istiyorum... Senin iznin ile."
Voyeur: "Birilerinin bizi izlemesini isterim..."
```

**Dialog Count:** 15 templates (expandable)

---

### 3. Cheating / Affairs
**Description:** Partner cheating scenarios, affair confessions

**Sub-categories:**
- **Hint Dialogs:** Suspicious behavior, coming home late
- **Confession Dialogs:** Admitting to cheating
- **Ongoing Affair Dialogs:** Continuing relationship with someone else

**Example Dialogs:**
```
Hint: "Geç kaldım, kusura bakma... *kaçamak bakar*"
Confession: "Sana bir şey itiraf etmeliyim..."
Ongoing: "Onu seviyorum... Seni de ama farklı."
```

**Dialog Count:** 15 templates (expandable)

---

### 4. Voyeurism
**Description:** Being watched, public scenarios, exhibitionism

**Integration:** Combined with other categories

**Example Scenarios:**
- Public intimacy
- Being watched by others
- Exhibitionist behavior

---

## Intensity Levels

### Level 1: Hints Only (Relation 0-49)
- Subtle suggestions
- Innocent flirting with others
- No explicit content

### Level 2: Teasing (Relation 50-74)
- Direct teasing about others
- Mentions of attraction
- Still SFW but suggestive

### Level 3: Confession (Relation 75-84)
**Unlock Requirements:**
- Relation: 75+
- Intimate Encounters: 3+

**Content:**
- Admission of feelings/desires
- Past encounters revealed
- Mild explicit language

### Level 4: Explicit (Relation 85-94)
**Unlock Requirements:**
- Relation: 85+
- Intimate Encounters: 6+

**Content:**
- Detailed sexual descriptions
- Explicit encounters
- Graphic language
- **WARNING SHOWN** on first access

### Level 5: Hardcore (Relation 95-100)
**Unlock Requirements:**
- Relation: 95+
- Intimate Encounters: 10+

**Content:**
- Extreme scenarios (multiple partners, public, etc.)
- Very detailed explicit descriptions
- No content limits
- **EXPLICIT WARNING SHOWN** on first access

---

## Unlocking Mechanism

### Relationship Progression
```
Relation 0-49:   Level 1 (Hints)
Relation 50-74:  Level 2 (Teasing)
Relation 75-84:  Level 3 (Confession) - Requires 3+ intimate encounters
Relation 85-94:  Level 4 (Explicit)   - Requires 6+ intimate encounters
Relation 95-100: Level 5 (Hardcore)   - Requires 10+ intimate encounters
```

### Category Unlock Conditions
```csharp
Cuckold:   Relation >= 75 AND IntimateEncounters >= 3
Sharing:   Relation >= 85 AND IntimateEncounters >= 6
Cheating:  Relation < 75 OR Player explicitly enabled
Voyeurism: Relation >= 75
```

### Trigger Frequency
Players can set how often kink dialogs appear:
- **Rare:** 10% chance per conversation
- **Normal:** 25% chance per conversation
- **Frequent:** 50% chance per conversation

---

## Content Statistics

### Total Content Count
- **Cuckold Dialogs:** 15 examples (across 5 levels)
- **Sharing Dialogs:** 15 templates (3 categories)
- **Cheating Dialogs:** 15 templates (3 categories)
- **Total Kink Dialogs:** 45+

### Base Mod Content (Non-Kink)
- **Daily Conversations:** 38 dialogs
- **Dialog Variations:** 60+ variants
- **Small Talk:** 100 entries
- **Mood-Based Responses:** 50+ variants
- **Total Base Content:** 248+ dialogs

### Combined Total
**340+ dialog entries** in Enhanced Romance v2.0.0

---

## Player Controls

### PlayerPreferences.cs Settings

```csharp
// Master toggle
public bool KinkContentEnabled { get; set; } = false;

// Intensity slider (1-5)
public int IntensityLevel { get; set; } = 1;

// Frequency control
public KinkFrequency Frequency { get; set; } = KinkFrequency.Normal;

// Category toggles
public Dictionary<KinkCategory, bool> EnabledCategories { get; set; }

// Safe word
public string SafeWord { get; set; } = "STOP";
```

### Category Toggles
Each category can be individually enabled/disabled:
- Cuckold: ON/OFF
- Sharing: ON/OFF
- Cheating: ON/OFF
- Voyeurism: ON/OFF

### Warning System
- **First-time warnings** for Level 4+ content
- **Dismissible** after first view
- **Per-category** warnings

---

## Implementation Files

### Core System Files
1. **KinkContentManager.cs** (242 lines)
   - Opt-in activation system
   - Unlock logic
   - Trigger frequency control
   - Warning system

2. **PlayerPreferences.cs** (~100 lines estimated)
   - Settings storage
   - Category management
   - Preference persistence

### Content Files
3. **CuckoldDialogues.cs** (238 lines)
   - 15 example dialogs
   - 5 intensity levels
   - Player choice branching

4. **SharingDialogues.cs** (50 lines)
   - 15 template dialogs
   - 3 sub-categories

5. **CheatingDialogues.cs** (50 lines)
   - 15 template dialogs
   - 3 sub-categories

### Integration
6. **RomanceBehavior.cs** (Updated)
   - Kink system initialization
   - Accessor methods
   - Console logging

7. **SubModule.cs** (Updated)
   - 18+ warning on mod load
   - Content disclosure

**Total Kink System Code:** ~800 lines

---

## Usage Examples

### Example 1: Activating Kink System
```csharp
// Player chooses to activate kink content
RomanceBehavior.Instance.GetKinkManager().ActivateKinkSystem();

// Result:
// - Master toggle: ON
// - All categories: Enabled
// - In-game message: "Kink content aktif edildi..."
```

### Example 2: Checking Unlock Status
```csharp
Hero partner = Hero.MainHero.Spouse;
int encounters = relationshipData.GetIntimateEncounterCount(partner);

KinkContentManager manager = RomanceBehavior.Instance.GetKinkManager();

// Check if cuckold content is unlocked
bool unlocked = manager.CanUnlockCategory(partner, KinkCategory.Cuckold, encounters);

// Check current intensity level
int level = manager.GetUnlockedIntensity(partner, encounters);
// Returns: 1-5 based on relation + encounters
```

### Example 3: Getting Random Dialog
```csharp
// Get dialogs for current intensity level
CuckoldDialogues dialogs = RomanceBehavior.Instance.GetCuckoldDialogues();
int level = 4; // Player has unlocked Level 4 (Explicit)

List<CuckoldDialog> levelDialogs = dialogs.GetDialogsByLevel(level);
CuckoldDialog randomDialog = levelDialogs[random.Next(levelDialogs.Count)];

// Display dialog
DisplayPlayerLine(randomDialog.PlayerLine);
DisplayPartnerResponse(randomDialog.PartnerResponse);

// Show player options
foreach (var option in randomDialog.PlayerOptions)
{
    AddPlayerOption(option.text, option.tag);
}
```

### Example 4: Safe Word Usage
```csharp
// Player uses safe word to stop content
PlayerPreferences prefs = manager.GetPreferences();

if (playerInput == prefs.SafeWord)
{
    // Immediately exit dialog
    manager.GetPreferences().KinkContentEnabled = false;
    InformationManager.DisplayMessage("Kink content deactivated.");
}
```

---

## Future Expansion

### Planned Features
1. **More Dialog Content**
   - Target: 100+ dialogs per category (currently 15)
   - More branching paths
   - Consequence system

2. **Visual Integration**
   - AI-generated portraits for different moods
   - Scene illustrations

3. **HotButter Integration**
   - Trigger intimate scenes from dialogs
   - Custom animations for scenarios

4. **Event System**
   - NPCs can initiate encounters
   - Random events based on kink preferences
   - Consequences (jealousy, reputation, etc.)

5. **Advanced Settings**
   - Specific NPC preferences
   - Blacklist/whitelist NPCs
   - Custom scenarios

### Expandability
The current template structure makes it easy to add:
- New dialog categories
- New intensity levels
- New kink types
- Custom player-created content

**File structure supports modular expansion** - just add new dialog files and register them in KinkContentManager.

---

## Technical Notes

### Performance
- Dialog selection: O(1) dictionary lookup
- Random selection: Weighted algorithm
- No performance impact when disabled

### Save Compatibility
- All preferences save with campaign
- Disable/enable without save corruption
- Backward compatible with v1.x saves

### Safety
- Opt-in by default
- Clear warnings before explicit content
- Safe word always available
- Can disable mid-conversation

---

## Disclaimer

**THIS MOD CONTAINS HARDCORE ADULT CONTENT**

Enhanced Romance v2.0.0 includes extremely explicit sexual content including:
- Cuckold/hotwife scenarios
- Sharing/swinging scenarios
- Cheating/affair scenarios
- Voyeurism/exhibitionism

**All content is:**
- Opt-in (disabled by default)
- Fictional and consensual in game context
- For players 18+ only

**Players must:**
- Be 18 years or older
- Explicitly activate kink systems
- Acknowledge content warnings

**Creator is not responsible for:**
- Player misuse of content
- Emotional reactions to content
- Distribution to minors

---

## Credits

**Mod Author:** [Your Name]
**Engine:** Mount & Blade II: Bannerlord
**Framework:** TaleWorlds CampaignSystem API
**Version:** 2.0.0
**Release Date:** 2025-10-25

---

## Support

For issues, feedback, or content suggestions:
- Check console logs (~ key in-game)
- Review PlayerPreferences settings
- Contact mod author

**WARNING:** This mod is not affiliated with TaleWorlds Entertainment. All content is community-created.

---

**END OF DOCUMENTATION**
