feat: Add influence tag system with visual feedback for all NPC conversations

Influence Tags System:
- Add #rapport_gained/lost:X tags for Dr. Chen throughout all conversations
- Add #respect_gained/lost:X tags for Director Netherton
- Add #friendship_gained/lost:X tags for Haxolottle
- Tags automatically added after every relationship variable change
- Small changes (±2-5) for minor interactions
- Medium changes (±5-10) for meaningful moments
- Large changes (±10-15) for major trust/betrayal moments

Conversation Handler Updates:
- PersonChatConversation: Add handleInfluenceGained/Lost methods
- PhoneChatConversation: Add tag processing support
- Dispatch 'npc-influence-change' events for UI layer
- Context-appropriate messages based on NPC type and amount

Documentation:
- Create INK_BEST_PRACTICES.md with comprehensive patterns
  - Hub architecture and mission_hub pattern
  - Influence tags system with examples
  - External functions reference
  - Variable persistence patterns
  - Common ink patterns and anti-patterns
  - Complete checklists for new NPC content
- Update NPC_HUB_ARCHITECTURE.md
  - Document mission_hub pattern implementation
  - Document influence tags system
  - Add navigation support requirements
  - Cross-reference best practices

Files Modified:
- All ongoing_conversations.ink files (chen, netherton, haxolottle)
- All hub.ink files (chen, netherton, haxolottle)
- PersonChatConversation.js - influence tag handlers
- PhoneChatConversation.js - influence tag handlers (stub)
- Compiled JSON files regenerated

This provides players with immediate visual feedback for relationship
changes and gives writers a clear pattern to follow for all NPC content.
This commit is contained in:
Z. Cliffe Schreuders
2025-11-19 13:44:30 +00:00
parent 737dc5e032
commit 1f5c9e29e8
13 changed files with 1147 additions and 4 deletions

View File

@@ -406,6 +406,20 @@ export default class PersonChatConversation {
this.handleInfluence(params[0]);
break;
case 'influence_gained':
case 'rapport_gained':
case 'respect_gained':
case 'friendship_gained':
this.handleInfluenceGained(params[0], action);
break;
case 'influence_lost':
case 'rapport_lost':
case 'respect_lost':
case 'friendship_lost':
this.handleInfluenceLost(params[0], action);
break;
case 'patrol_mode':
this.handlePatrolMode(params[0]);
break;
@@ -532,6 +546,94 @@ export default class PersonChatConversation {
console.log(`💯 Set NPC ${this.npcId} influence: ${influence}`);
}
/**
* Handle influence gained tag - show visual feedback for positive influence change
* Tags: #influence_gained:5, #rapport_gained:3, #respect_gained:10, #friendship_gained:8
* @param {string} value - Amount of influence gained
* @param {string} type - Type of influence (influence_gained, rapport_gained, etc.)
*/
handleInfluenceGained(value, type) {
const amount = parseInt(value, 10);
if (isNaN(amount) || amount <= 0) {
console.warn(`⚠️ Invalid influence gained value: ${value}`);
return;
}
// Dispatch event for UI to show visual feedback
const event = new CustomEvent('npc-influence-change', {
detail: {
npcId: this.npc.id,
type: type.replace('_gained', ''),
change: amount,
direction: 'gained',
message: this.getInfluenceMessage(type, amount, 'gained')
}
});
window.dispatchEvent(event);
console.log(`📈 ${this.npc.id} ${type}: +${amount}`);
}
/**
* Handle influence lost tag - show visual feedback for negative influence change
* Tags: #influence_lost:5, #rapport_lost:3, #respect_lost:10, #friendship_lost:8
* @param {string} value - Amount of influence lost
* @param {string} type - Type of influence (influence_lost, rapport_lost, etc.)
*/
handleInfluenceLost(value, type) {
const amount = parseInt(value, 10);
if (isNaN(amount) || amount <= 0) {
console.warn(`⚠️ Invalid influence lost value: ${value}`);
return;
}
// Dispatch event for UI to show visual feedback
const event = new CustomEvent('npc-influence-change', {
detail: {
npcId: this.npc.id,
type: type.replace('_lost', ''),
change: -amount,
direction: 'lost',
message: this.getInfluenceMessage(type, amount, 'lost')
}
});
window.dispatchEvent(event);
console.log(`📉 ${this.npc.id} ${type}: -${amount}`);
}
/**
* Get appropriate message for influence change
* @param {string} type - Type of influence change
* @param {number} amount - Amount changed
* @param {string} direction - 'gained' or 'lost'
* @returns {string} Message to display
*/
getInfluenceMessage(type, amount, direction) {
const baseType = type.replace('_gained', '').replace('_lost', '');
const messages = {
influence: {
gained: amount >= 10 ? 'Influence significantly increased' : 'Influence increased',
lost: amount >= 10 ? 'Influence significantly decreased' : 'Influence decreased'
},
rapport: {
gained: amount >= 10 ? 'Dr. Chen likes that' : 'Dr. Chen appreciates that',
lost: amount >= 10 ? 'Dr. Chen is disappointed' : 'Dr. Chen is uncertain'
},
respect: {
gained: amount >= 10 ? 'Director Netherton is impressed' : 'Director Netherton approves',
lost: amount >= 10 ? 'Director Netherton is displeased' : 'Director Netherton notes this'
},
friendship: {
gained: amount >= 10 ? 'Haxolottle really appreciates that' : 'Haxolottle likes that',
lost: amount >= 10 ? 'Haxolottle is hurt' : 'Haxolottle seems disappointed'
}
};
return messages[baseType]?.[direction] || `${baseType} ${direction}`;
}
/**
* Handle patrol_mode tag - toggle NPC patrol behavior
* Tags: #patrol_mode:on, #patrol_mode:off

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,481 @@
# Ink Best Practices for Break Escape
This document outlines the patterns and best practices we use for Ink scripting in Break Escape.
## Table of Contents
1. [Hub Architecture](#hub-architecture)
2. [Influence Tags System](#influence-tags-system)
3. [External Functions](#external-functions)
4. [Variable Persistence](#variable-persistence)
5. [Common Patterns](#common-patterns)
---
## Hub Architecture
### Mission Hub Pattern
Every NPC hub file uses a standardized `mission_hub` knot that serves as the central routing point. This is **internal architecture** (not visible to players) that enables seamless conversation flow.
```ink
=== npc_conversation_entry ===
// Initial greeting based on location
{
- npc_location() == "lab":
Dr. Chen: Hey! What brings you by?
- else:
Dr. Chen: Hello!
}
-> mission_hub
=== mission_hub ===
// Central routing point - routes to personal or mission topics
+ [Personal chat] -> jump_to_personal_conversations
+ [Mission briefing] -> mission_briefing
+ [Equipment check] -> equipment_discussion
```
**Key Benefits:**
- Personal conversations can `#exit_conversation` and return to `mission_hub`
- Mission topics return to `mission_hub` after completion
- Player sees continuous conversation, game manages routing
### How #exit_conversation Works
When personal conversations end, they use `#exit_conversation` tag to trigger navigation:
```ink
=== conversation_end ===
Dr. Chen: Great talking with you!
#exit_conversation
-> END
```
The game code detects this tag and automatically calls:
```javascript
inkEngine.goToKnot('mission_hub');
```
This returns the player to the NPC's hub menu where they can choose to:
- Continue with another personal topic
- Discuss mission-related matters
- End the conversation
---
## Influence Tags System
### Visual Feedback for Relationship Changes
Every time an NPC's influence/rapport/respect/friendship changes, add a tag for visual feedback to the player.
### Tag Format
```ink
// Variable change
~ npc_chen_rapport += 5
// Visual feedback tag (on next line)
#rapport_gained:5
```
### Available Tags
**Positive Changes:**
- `#rapport_gained:X` - Dr. Chen likes this (+X rapport)
- `#respect_gained:X` - Director Netherton approves (+X respect)
- `#friendship_gained:X` - Haxolottle appreciates this (+X friendship)
- `#influence_gained:X` - Generic influence increase
**Negative Changes:**
- `#rapport_lost:X` - Dr. Chen is disappointed (-X rapport)
- `#respect_lost:X` - Director Netherton disapproves (-X respect)
- `#friendship_lost:X` - Haxolottle is hurt (-X friendship)
- `#influence_lost:X` - Generic influence decrease
### Complete Example
```ink
=== helpful_conversation ===
You: I want to understand the tech better.
Dr. Chen: That's great! Let me explain...
// Small rapport gain for showing interest
~ npc_chen_rapport += 3
#rapport_gained:3
+ [Ask follow-up questions]
You: Can you tell me more?
Dr. Chen: Of course! *enthusiastically explains*
// Larger rapport gain for deeper engagement
~ npc_chen_rapport += 8
#rapport_gained:8
+ [Dismiss the explanation]
You: Never mind, not important.
Dr. Chen: Oh... okay. *slightly hurt*
// Lose rapport for being dismissive
~ npc_chen_rapport -= 5
#rapport_lost:5
```
### Visual Feedback Messages
The game displays context-appropriate messages based on the tag:
| Tag | Small Change (<10) | Large Change (≥10) |
|-----|-------------------|-------------------|
| `#rapport_gained` | "Dr. Chen appreciates that" | "Dr. Chen likes that" |
| `#rapport_lost` | "Dr. Chen is uncertain" | "Dr. Chen is disappointed" |
| `#respect_gained` | "Director Netherton approves" | "Director Netherton is impressed" |
| `#respect_lost` | "Director Netherton notes this" | "Director Netherton is displeased" |
| `#friendship_gained` | "Haxolottle likes that" | "Haxolottle really appreciates that" |
| `#friendship_lost` | "Haxolottle seems disappointed" | "Haxolottle is hurt" |
### When to Use Influence Tags
**Add influence changes (and tags) for:**
- Player choices that show emotional intelligence
- Showing interest in NPC's personal life
- Professional competence or incompetence
- Trust-building moments
- Humor and shared experiences
- Vulnerability and openness
- Dismissive or insensitive responses (negative)
**Frequency:**
- Small changes (±2-5): Frequent, for minor positive/negative interactions
- Medium changes (±5-10): For meaningful choices and conversations
- Large changes (±10-15): For major trust moments or significant breaches
**Example Flow:**
```ink
=== deep_conversation ===
Haxolottle: I lost an agent six months ago. Still think about them.
+ [Express sympathy]
You: I'm so sorry. That must be really hard.
Haxolottle: Thanks. It helps to talk about it.
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
-> conversation_continues
+ [Ask tactical questions only]
You: What was the mission profile?
Haxolottle: *pause* ...Let's focus on your current operation.
~ npc_haxolottle_friendship_level -= 3
#friendship_lost:3
-> conversation_continues
+ [Share your own loss]
You: I understand. I've lost people too.
Haxolottle: *eyes soften* Yeah. You get it.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_shared_loss = true
-> deeper_connection
```
---
## External Functions
### Required External Functions for NPC Hubs
All NPC hub files require these EXTERNAL function declarations:
```ink
EXTERNAL player_name() // Returns player's agent name
EXTERNAL current_mission_id() // Returns active mission ID
EXTERNAL npc_location() // Where conversation happens
EXTERNAL mission_phase() // Planning/active/debriefing/downtime
```
### NPC-Specific External Functions
**For Dr. Chen (tech specialist):**
```ink
EXTERNAL equipment_status() // nominal/damaged/needs_upgrade
```
**For Haxolottle (handler):**
```ink
EXTERNAL operational_stress_level() // low/moderate/high/crisis
```
### Usage in Conditionals
```ink
// Correct - call with parentheses
{player_name() == "Shadow":
Dr. Chen: Welcome back, Shadow!
}
// Correct - in dialogue
Dr. Chen: Hey there, {player_name()}!
// Correct - conditional branching
{
- mission_phase() == "active":
Dr. Chen: Not now, I'm tracking your mission!
- mission_phase() == "downtime":
Dr. Chen: Got time to chat?
}
```
---
## Variable Persistence
### Three-Tier Variable System
**1. PERSISTENT Variables** - Saved across all game sessions
```ink
VAR PERSISTENT npc_chen_rapport = 0
VAR PERSISTENT total_missions_completed = 0
VAR PERSISTENT npc_haxolottle_talked_axolotls = false
```
**2. GLOBAL Variables** - Persist within current session only
```ink
VAR npc_current_conversation_topic = ""
VAR temporary_mission_flag = false
```
**3. EXTERNAL Variables** - Provided by game engine
```ink
EXTERNAL player_name()
EXTERNAL mission_phase()
```
### Naming Conventions
```ink
// Persistent relationship variables
VAR PERSISTENT npc_chen_rapport = 0 // Dr. Chen's relationship
VAR PERSISTENT npc_netherton_respect = 0 // Netherton's respect
VAR PERSISTENT npc_haxolottle_friendship_level = 0 // Haxolottle's friendship
// Conversation flags (has this topic been discussed?)
VAR PERSISTENT npc_chen_talked_childhood = false
VAR PERSISTENT npc_netherton_discussed_handbook = false
// Shared experiences
VAR PERSISTENT npc_haxolottle_humor_shared = 0 // Count of jokes shared
VAR PERSISTENT npc_chen_projects_collaborated = 0 // Projects worked on together
```
---
## Common Patterns
### Has Available Topics Pattern
Use functions to check if there are topics available:
```ink
=== function has_available_personal_topics() ===
// Check if any personal topics are available
{
- total_missions_completed <= 5:
// Phase 1 topics
{
- not npc_chen_talked_childhood: ~ return true
- not npc_chen_talked_motivation: ~ return true
- else: ~ return false
}
- total_missions_completed <= 10:
// Phase 2 topics
{
- not npc_chen_shared_doubt and npc_chen_rapport >= 40: ~ return true
- not npc_chen_talked_research and npc_chen_rapport >= 30: ~ return true
- else: ~ return false
}
- else:
~ return false
}
// Usage in hub
+ {has_available_personal_topics()} [Chat personally with Dr. Chen]
-> jump_to_personal_conversations
```
### Jump to Phase Pattern
Route to appropriate phase based on mission progress:
```ink
=== jump_to_personal_conversations ===
{
- total_missions_completed <= 5:
-> phase_1_hub
- total_missions_completed <= 10:
-> phase_2_hub
- total_missions_completed <= 15:
-> phase_3_hub
- total_missions_completed > 15:
-> phase_4_hub
}
```
### Conversation End Pattern
Always end personal conversations with the exit tag:
```ink
=== conversation_end ===
{
- npc_chen_rapport >= 70:
Dr. Chen: Always a pleasure, {player_name()}!
- npc_chen_rapport >= 50:
Dr. Chen: Thanks for the chat.
- else:
Dr. Chen: Talk later.
}
#exit_conversation
-> END
```
### Conditional Relationship Responses
Vary NPC responses based on relationship level:
```ink
=== greeting ===
{
- npc_haxolottle_friendship_level >= 70:
Haxolottle: {player_name()}! *genuine smile* Always good to see you.
- npc_haxolottle_friendship_level >= 40:
Haxolottle: Hey {player_name()}. What's up?
- npc_haxolottle_friendship_level >= 20:
Haxolottle: Agent {player_name()}. Need something?
- else:
Haxolottle: Agent. What do you need?
}
```
### Gated Content Pattern
Lock topics behind relationship thresholds:
```ink
+ {npc_netherton_respect >= 60 and not npc_netherton_shared_past}
[Ask about Netherton's field days]
-> netherton_field_stories
+ {npc_chen_rapport >= 80 and not npc_chen_shared_doubts}
[Notice Dr. Chen seems troubled]
-> chen_vulnerability_moment
```
### Multi-Choice Influence Pattern
Give players meaningful choices with different influence outcomes:
```ink
=== difficult_question ===
Netherton: Do you think the ends justify the means?
+ [Agree completely]
You: Always. Results matter more than methods.
Netherton: *approving nod* Practical thinking.
~ npc_netherton_respect += 10
#respect_gained:10
+ [Disagree completely]
You: No. How we achieve our goals defines who we are.
Netherton: *slight frown* Idealistic. But noted.
~ npc_netherton_respect -= 5
#respect_lost:5
+ [It's complicated]
You: It depends on the situation and the stakes.
Netherton: *considering* Nuanced. Good.
~ npc_netherton_respect += 5
#respect_gained:5
```
---
## Quick Reference
### Checklist for New NPC Conversations
- [ ] Declare all EXTERNAL functions at top of hub file
- [ ] Use `mission_hub` knot as central routing point
- [ ] End personal conversations with `#exit_conversation`
- [ ] Add influence tags after every relationship variable change
- [ ] Use `has_available_personal_topics()` function
- [ ] Implement phase-based content routing
- [ ] Gate advanced topics behind relationship thresholds
- [ ] Include context-aware greetings based on location
- [ ] Vary dialogue tone based on relationship level
- [ ] Test compilation with inklecate
### Common Mistakes to Avoid
**Wrong:**
```ink
{player_name} // Missing parentheses
~ npc_chen_rapport += 5 // No visual feedback tag
-> chen_hub // Non-standard hub name
```
**Correct:**
```ink
{player_name()} // External function with parentheses
~ npc_chen_rapport += 5 // Variable change
#rapport_gained:5 // Visual feedback tag
-> mission_hub // Standard hub knot name
```
---
## Examples by NPC Type
### Dr. Chen (Technical Specialist)
- **Rapport** variable for relationship
- **Equipment-focused** mission content
- **Enthusiasm** in dialogue for high rapport
- **Collaborative** personal conversations
### Director Netherton (Authority Figure)
- **Respect** variable for relationship
- **Strategic** mission content
- **Professional distance** that slowly softens
- **Rare vulnerability** at high respect levels
### Haxolottle (Handler/Support)
- **Friendship** variable for relationship
- **Real-time support** during missions
- **Humor and references** (axolotls, regeneration metaphors)
- **Trust built through** shared operational stress
---
## File Checklist
When creating a new NPC:
1. **Hub File** (`npc_hub.ink`)
- [ ] EXTERNAL function declarations
- [ ] `npc_conversation_entry` knot
- [ ] `mission_hub` knot
- [ ] INCLUDE statements for personal and mission files
- [ ] Context-aware option routing
2. **Personal Conversations File** (`npc_ongoing_conversations.ink`)
- [ ] PERSISTENT relationship variables
- [ ] Phase hubs (phase_1_hub through phase_4_hub)
- [ ] `has_available_personal_topics()` function
- [ ] `jump_to_personal_conversations` knot
- [ ] `conversation_end` knot with `#exit_conversation`
- [ ] Influence tags on all relationship changes
3. **Mission-Specific Files** (optional, `npc_mission_*.ink`)
- [ ] Mission-specific support content
- [ ] Return to `mission_hub` after completion
- [ ] Contextual dialogue based on mission phase

View File

@@ -404,6 +404,119 @@ Show options in priority order:
- Hub entry: `=== npcname_conversation_entry ===`
- Main hub: `=== npcname_main_hub ===`
## Mission Hub Pattern (Implemented)
### Overview
All NPC hub files now use a standardized `mission_hub` knot that serves as the central routing point. This is **internal architecture** - not visible to players - that enables seamless conversation flow.
### Structure
```ink
=== npc_conversation_entry ===
// Initial greeting based on context
{
- npc_location() == "office":
Netherton: Agent. What do you need?
- else:
Netherton: Agent {player_name()}. Report.
}
-> mission_hub
=== mission_hub ===
// Central routing point
+ [Personal conversation] -> jump_to_personal_conversations
+ [Mission briefing] -> mission_briefing
+ [Status update] -> status_report
+ [End conversation] -> END
```
### How It Works
1. **Entry**: Game calls `npc_conversation_entry`
2. **Greeting**: Context-aware greeting based on location/phase
3. **Hub**: Automatically diverts to `mission_hub`
4. **Routing**: Player chooses personal or mission topics
5. **Return**: Personal conversations end with `#exit_conversation` tag
6. **Navigation**: Game code detects tag and calls `inkEngine.goToKnot('mission_hub')`
7. **Loop**: Player can discuss more topics or end conversation
### Benefits
- **Seamless Flow**: Player experiences continuous conversation
- **Clear Separation**: Personal vs mission content isolated in separate files
- **Easy Return**: `#exit_conversation` tag provides consistent return mechanism
- **Standard Pattern**: All NPCs use same `mission_hub` knot name
### Implementation Notes
- All hub files renamed from `npcname_main_hub` to `mission_hub`
- Personal conversation files always return via `#exit_conversation` tag
- Game code handles automatic navigation back to hub
- Mission-specific content can also return to `mission_hub`
For detailed implementation examples, see **INK_BEST_PRACTICES.md**.
---
## Influence Tags System (Implemented)
### Visual Feedback for Relationship Changes
Every relationship variable change now includes a corresponding tag for visual player feedback:
```ink
~ npc_chen_rapport += 5
#rapport_gained:5
~ npc_netherton_respect -= 3
#respect_lost:3
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
```
### Tag Types
**Positive Changes:**
- `#rapport_gained:X` - Dr. Chen (technical specialist)
- `#respect_gained:X` - Director Netherton (authority figure)
- `#friendship_gained:X` - Haxolottle (handler/support)
**Negative Changes:**
- `#rapport_lost:X`
- `#respect_lost:X`
- `#friendship_lost:X`
### Game Handler Integration
The conversation classes process these tags and dispatch events:
```javascript
handleInfluenceGained(value, type) {
const event = new CustomEvent('npc-influence-change', {
detail: {
npcId: this.npc.id,
type: type.replace('_gained', ''),
change: amount,
direction: 'gained',
message: 'Dr. Chen appreciates that'
}
});
window.dispatchEvent(event);
}
```
UI layers can listen for these events and display:
- Toast notifications
- Relationship meters
- Character reactions
- Status updates
For complete tag documentation, see **INK_BEST_PRACTICES.md**.
---
## Integration with Game Engine
### Required Engine Support
@@ -417,8 +530,14 @@ Show options in priority order:
- Call appropriate hub entry point: `npcname_conversation_entry`
- Set context variables before calling
- Handle `#exit_conversation` tag
- Listen for `npc-influence-change` events
3. **Context Tracking**
3. **Navigation Support**
- Detect `#exit_conversation` tag in conversation flow
- Call `inkEngine.goToKnot('mission_hub')` to return
- Continue conversation from hub menu
4. **Context Tracking**
- Track current mission ID
- Track mission phase (planning → active → debriefing → downtime)
- Track NPC location

View File

@@ -77,6 +77,7 @@ Netherton: Please, sit.
* [Ask why you've been summoned]
~ netherton_respect -= 5
#respect_lost:5
~ player_attitude = "eager"
You: Director, may I ask why I've been called in?
-> premature_question

View File

@@ -213,6 +213,7 @@ Dr. Chen: This is fixable, but it'll take some time. What happened out there?
Dr. Chen: *nods* Okay, that's actually really useful feedback. I can improve the durability in the next version.
Dr. Chen: Give me about two hours. I'll have this repaired and reinforced.
~ npc_chen_rapport += 5
#rapport_gained:5
#equipment_repair_started
-> mission_hub
@@ -220,12 +221,14 @@ Dr. Chen: This is fixable, but it'll take some time. What happened out there?
Dr. Chen: Hey, no—don't beat yourself up. Field conditions are unpredictable. That's why we build redundancy.
Dr. Chen: Let me fix this and add some additional protection. You're not the first agent to damage gear in the field.
~ npc_chen_rapport += 8
#rapport_gained:8
-> mission_hub
+ [Blame the equipment design]
Dr. Chen: *slight frown* Okay... I mean, there's always room for improvement. But the equipment is rated for standard field conditions.
Dr. Chen: I'll repair it. And I'll review the design specs. But be more careful with the gear, alright?
~ npc_chen_rapport -= 3
#rapport_lost:3
-> mission_hub
=== equipment_upgrade_menu ===
@@ -283,6 +286,7 @@ Dr. Chen: *focused* Okay, I'm pulling up your equipment telemetry. What's the te
Dr. Chen: Yeah, they upgraded their security. Um... *rapid thinking* ...okay, try the quantum bypass. It's experimental but it should work.
Dr. Chen: Quantum menu, enable fast-mode. Warning: it generates a lot of heat. Don't run it for more than five minutes.
~ npc_chen_rapport += 5
#rapport_gained:5
-> field_support_followup
+ [Equipment is malfunctioning]
@@ -297,12 +301,14 @@ Dr. Chen: Did that help? Are you good to continue?
+ [Yes, that fixed it. Thanks!]
Dr. Chen: *relieved* Oh good! Okay, I'll keep monitoring. Call if anything else goes wrong.
~ npc_chen_rapport += 8
#rapport_gained:8
-> mission_hub
+ [Still having issues]
Dr. Chen: *more concerned* Okay, this might be a hardware problem. Can you safely abort and extract?
Dr. Chen: I don't want you stuck in there with malfunctioning equipment. Your safety is more important than the mission.
~ npc_chen_rapport += 10
#rapport_gained:10
-> mission_hub
=== mission_ghost_equipment_briefing ===
@@ -324,11 +330,13 @@ Dr. Chen: Third—and this is experimental—quantum-encrypted comms. Even if th
Dr. Chen: *appreciates the question* Good thinking. The quantum comms are 95% reliable in testing. If they fail, you default to standard encrypted comms.
Dr. Chen: I've built in fallbacks. Worst case, you lose some capability but not all capability.
~ npc_chen_rapport += 5
#rapport_gained:5
-> ghost_equipment_details
+ [Express confidence in the tech]
Dr. Chen: *grins* I'm glad you trust my work! I've tested this extensively. You'll be well-equipped.
~ npc_chen_rapport += 8
#rapport_gained:8
-> ghost_equipment_details
=== ghost_equipment_details ===
@@ -344,6 +352,7 @@ Dr. Chen: Any other questions about the gear? Or are you ready for me to configu
{npc_chen_rapport >= 60:
Dr. Chen: Come back safe. The tech works better when the operator survives.
~ npc_chen_rapport += 5
#rapport_gained:5
}
#equipment_configured
-> mission_hub
@@ -355,6 +364,7 @@ Dr. Chen: *eager for feedback* Okay, tell me everything! How did the equipment p
Dr. Chen: *extremely pleased* Yes! That's what I want to hear! The camouflage held up? No detection issues?
Dr. Chen: This is great data. I can certify this tech for wider deployment now.
~ npc_chen_rapport += 10
#rapport_gained:10
~ npc_chen_tech_collaboration += 1
-> mission_hub
@@ -364,6 +374,7 @@ Dr. Chen: *eager for feedback* Okay, tell me everything! How did the equipment p
Dr. Chen: Perfect. This is exactly the field data I need. I can iterate on the design and fix that problem.
Dr. Chen: Thank you for the thorough report. Seriously. This makes my job so much easier.
~ npc_chen_rapport += 15
#rapport_gained:15
~ npc_chen_tech_collaboration += 2
-> mission_hub
@@ -373,6 +384,7 @@ Dr. Chen: *eager for feedback* Okay, tell me everything! How did the equipment p
Dr. Chen: *voice cracks slightly* That's... that's why I do this. Building tech that keeps agents safe.
Dr. Chen: I'm really glad you're okay. And thank you for the feedback. I'll keep improving it.
~ npc_chen_rapport += 20
#rapport_gained:20
~ npc_chen_tech_collaboration += 2
-> mission_hub
@@ -399,6 +411,7 @@ Dr. Chen: If ENTROPY tries to breach this, they'll need nation-state level capab
Dr. Chen: *sighs* Yeah, me too. They're getting better. Faster. More sophisticated.
Dr. Chen: That's why I work late. Every improvement I make might be the difference between holding the line and catastrophic breach.
~ npc_chen_rapport += 5
#rapport_gained:5
-> mission_hub
=== experimental_tech_discussion ===
@@ -424,6 +437,7 @@ Which interests you?
+ [All of it sounds amazing]
Dr. Chen: *huge grin* Right?! This is why I love this job. Every project is pushing boundaries!
~ npc_chen_rapport += 10
#rapport_gained:10
-> mission_hub
=== experimental_mirage_details ===
@@ -471,6 +485,7 @@ Dr. Chen: I promise to build in safety margins. Fallback systems. Kill switches.
Dr. Chen: I'll prepare test equipment for your next mission. Thorough briefing beforehand. Real-time monitoring during deployment.
Dr. Chen: We're partners in this. Thank you.
~ npc_chen_rapport += 20
#rapport_gained:20
~ npc_chen_tech_collaboration += 3
-> mission_hub
@@ -505,6 +520,7 @@ Dr. Chen: What interests you? Network security? Hardware hacking? Cryptography?
Dr. Chen: *very excited* My specialty! I can teach you encryption theory, code-breaking techniques, quantum cryptography basics...
~ professional_reputation += 2
~ npc_chen_rapport += 5
#rapport_gained:5
#training_scheduled_crypto
-> mission_hub

File diff suppressed because it is too large Load Diff

View File

@@ -245,6 +245,7 @@ Which approach do you want to take?
Haxolottle: Smart. Live to fight another day. Coordinates extraction...
Haxolottle: You made the right call. Equipment and missions are replaceable. You're not.
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
#crisis_extraction
-> mission_hub
@@ -306,6 +307,7 @@ Haxolottle: *professional focus* What kind of support do you need?
+ [Just checking in]
Haxolottle: *reassuring* All good. You're doing great. Operational tempo is solid. Keep it up.
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
-> mission_hub
=== intel_update_active ===
@@ -339,6 +341,7 @@ Haxolottle: Talk me through the specific complication. What changed?
Haxolottle: *processes* Alright. That's not ideal, but it's manageable. Here's how we adjust...
Haxolottle: Remember the axolotl principle. Original approach failed. Time to regenerate a new one.
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
-> adaptation_planning
+ [Multiple things going wrong]
@@ -376,6 +379,7 @@ Haxolottle: But help me understand—is this "mission parameters changed beyond
Haxolottle: *nods* Operational assessment. Respected. I'll coordinate extraction.
Haxolottle: Netherton might push back, but I'll support your call. You're the one taking the risk.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
#mission_aborted
-> mission_hub
@@ -383,6 +387,7 @@ Haxolottle: But help me understand—is this "mission parameters changed beyond
Haxolottle: *trusts your instinct* That's valid. Field intuition saves lives. Abort authorized.
Haxolottle: We can analyze what felt wrong afterwards. Right now, get clear.
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
#mission_aborted_intuition
-> mission_hub
@@ -402,6 +407,7 @@ Haxolottle: Recommend trusting your eyes over my monitors. Proceed with extreme
{npc_haxolottle_friendship_level >= 50:
Haxolottle: *concerned* And {player_name()}? Be careful. If my intel is wrong, you're more exposed than we thought.
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
}
-> mission_hub
@@ -435,6 +441,7 @@ Haxolottle: If compromised: Emergency extraction protocols ready. Three waypoint
Haxolottle: *slight smile* Good. Because I've run hundreds of handler ops, and this is one of my better plans.
Haxolottle: We've got this. Partnership.
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
-> mission_hub
=== mission_sanctuary_handler_plan ===
@@ -450,6 +457,7 @@ Haxolottle: This requires trusting my tactical picture. I'll be seeing things yo
Haxolottle: *appreciates that* Thank you. Command is easier when agents trust the handler.
Haxolottle: I won't let you down.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> mission_hub
+ [What if I see something you don't?]
@@ -474,6 +482,7 @@ Haxolottle: The axolotl principle—*smiles*—regeneration over rigidity. Plans
+ [Walk me through the contingencies for this mission]
Haxolottle: *details specific contingencies based on current mission*
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
-> mission_hub
+ [This seems paranoid]
@@ -485,6 +494,7 @@ Haxolottle: The axolotl principle—*smiles*—regeneration over rigidity. Plans
Haxolottle: *genuine* That means a lot. Handlers live and die by preparation.
Haxolottle: Knowing you value that preparation makes the late nights worth it.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> mission_hub
// ===========================================
@@ -500,6 +510,7 @@ Haxolottle: *opens debrief form* Standard post-operation debrief. Walk me throug
{npc_haxolottle_friendship_level >= 40:
Haxolottle: And more importantly—are you okay? Physically? Mentally?
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
}
-> debrief_completion
@@ -521,6 +532,7 @@ Haxolottle: Before we do the formal debrief—are you actually okay? Not the pro
Haxolottle: *empathetic* Thank you for being honest. That mission pushed limits. You handled it, but pushing limits has costs.
Haxolottle: Take additional recovery time. I'll handle Netherton if they push back. Your wellbeing matters.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_trust_moments += 1
-> debrief_completion
@@ -534,6 +546,7 @@ Haxolottle: Before we do the formal debrief—are you actually okay? Not the pro
{npc_haxolottle_friendship_level >= 50:
Haxolottle: You're not just an asset to manage. You're... *hesitates* ...a colleague I value. A friend, within the constraints of Protocol 47-Alpha.
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
}
-> debrief_completion
@@ -573,6 +586,7 @@ Haxolottle: We're adapting. Dr. Chen is developing new countermeasures. Netherto
Haxolottle: *serious* Yeah, me too. The escalation pattern is concerning.
Haxolottle: But that's why we're here. SAFETYNET exists to counter this. And we're getting better at it.
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
-> mission_hub
+ [Thank them for the update]
@@ -600,6 +614,7 @@ Haxolottle: Handler perspective on operations. What do you want to know?
{npc_haxolottle_friendship_level >= 50:
Haxolottle: You're one of the best agents I've handled. And I've handled a lot.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
}
-> mission_hub
@@ -616,6 +631,7 @@ Haxolottle: And honestly? A lot of it is managing stress. Yours and ours. Keepin
Haxolottle: It is. But it's also what I'm good at. Turns out eight years of field experience translates well to handler work.
Haxolottle: I know what you're experiencing because I've experienced it. That empathy makes me better at support.
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
-> mission_hub
+ [How do you manage your own stress?]
@@ -623,6 +639,7 @@ Haxolottle: And honestly? A lot of it is managing stress. Yours and ours. Keepin
{npc_haxolottle_friendship_level >= 40:
Haxolottle: Conversations like this help too. Knowing the agents I support see me as more than a voice on comms.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
}
-> mission_hub
@@ -631,6 +648,7 @@ Haxolottle: And honestly? A lot of it is managing stress. Yours and ours. Keepin
Haxolottle: I can set up some handler shadowing. You observe while I run someone else's operation. Educational for both roles.
~ professional_reputation += 2
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
#handler_training_offered
-> mission_hub

View File

@@ -117,6 +117,7 @@ EXTERNAL current_mission_id() // LOCAL - Current mission identifier
=== hobbies_general ===
~ npc_haxolottle_talked_hobbies_general = true
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_conversations_had += 1
Haxolottle: What do I do for fun? Good question. Let's see...
@@ -131,22 +132,26 @@ Haxolottle: And I tinker with old electronics. Pull apart vintage computers, rep
* [Share that you also read]
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_player_shared_personal += 1
You: I'm a reader too. What kind of sci-fi?
-> hobbies_scifi_followup
* [Mention you've never been good at swimming]
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
You: I've never been much of a swimmer. More of a land-based person.
-> hobbies_swimming_followup
* [Ask about the electronics tinkering]
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
You: Electronics tinkering? That's an interesting hobby for someone in our line of work.
-> hobbies_electronics_followup
=== hobbies_scifi_followup ===
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
Haxolottle: Oh, you read sci-fi? Nice! I'm partial to the stuff that explores emergence and complexity—you know, how simple rules create complex systems.
@@ -160,18 +165,21 @@ Haxolottle: What about you? What kind of stories do you gravitate toward?
You: Cyberpunk, mostly. The whole corporate dystopia thing feels... relevant.
Haxolottle: *laughs* Yeah, we're kind of living it. Except the corporations aren't our enemy—ENTROPY is. Different dystopia, same aesthetic.
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
-> phase_1_hub
* [Say you prefer non-fiction]
You: Actually, I'm more of a non-fiction person. Technical books, security research.
Haxolottle: Ah, the pragmatist. Fair enough. Though I'd argue our job is weird enough to count as science fiction.
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
-> phase_1_hub
* [Keep it vague to protect identity]
You: Different things, depending on mood.
Haxolottle: Keeping it mysterious. I respect that. Protocol 47-Alpha and all.
~ npc_haxolottle_friendship_level += 2
#friendship_gained:2
-> phase_1_hub
=== hobbies_swimming_followup ===
@@ -185,6 +193,7 @@ Haxolottle: I didn't learn until I was an adult, actually. Taught myself after j
Haxolottle: Plus, it's one of the few activities where I can guarantee I'm not carrying surveillance devices. Hard to bug a swimsuit.
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
-> phase_1_hub
=== hobbies_electronics_followup ===
@@ -200,6 +209,7 @@ Haxolottle: At home? I'm fixing things. Bringing dead hardware back to life. It'
Haxolottle: Plus, there's satisfaction in making a thirty-year-old computer boot up again. Persistence over entropy. Both kinds of entropy.
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
-> phase_1_hub
// ----------------
@@ -209,6 +219,7 @@ Haxolottle: Plus, there's satisfaction in making a thirty-year-old computer boot
=== axolotl_deep_dive ===
~ npc_haxolottle_talked_axolotl_obsession = true
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
~ npc_haxolottle_conversations_had += 1
Haxolottle: Ah, you want the full story behind the axolotl obsession?
@@ -225,17 +236,20 @@ Haxolottle: Found this section on axolotls—*Ambystoma mexicanum*. These amazin
* [Ask about the biology]
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
You: That's incredible. How do they do that?
-> axolotl_biology_detail
* [Make a joke]
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_humor_shared += 1
You: So you're saying you identified with a salamander?
-> axolotl_joke_response
=== axolotl_operation_connection ===
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
Haxolottle: It gave me a framework. See, I'd lost my original cover story—that identity was "severed" when the real person appeared. Dead. Gone.
@@ -248,10 +262,12 @@ Haxolottle: In that moment, I stopped being the person I was impersonating and b
Haxolottle: The metaphor stuck. Now every operation that goes sideways, I think: What would an axolotl do? And the answer is always: regenerate, adapt, survive.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> phase_1_hub
=== axolotl_biology_detail ===
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
Haxolottle: *lights up with enthusiasm*
@@ -268,10 +284,12 @@ Haxolottle: It's like... they have options. Paths. They're not locked into one f
Haxolottle: Sorry, I can talk about this for hours. The point is: regeneration, adaptation, flexibility. That's what got me through that operation and a lot of others.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> phase_1_hub
=== axolotl_joke_response ===
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
~ npc_haxolottle_humor_shared += 1
Haxolottle: *laughs*
@@ -289,6 +307,7 @@ Haxolottle: Plus, they smile. Permanently. Look up pictures—axolotls have thes
Haxolottle: You're laughing, but I'm serious. The metaphor has kept me sane for years. Sometimes you need something absurd to hold onto in this work.
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
~ npc_haxolottle_trust_moments += 1
-> phase_1_hub
@@ -299,6 +318,7 @@ Haxolottle: You're laughing, but I'm serious. The metaphor has kept me sane for
=== music_discussion ===
~ npc_haxolottle_talked_music_taste = true
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_conversations_had += 1
Haxolottle: Music? Oh, I have eclectic taste. Probably too eclectic.
@@ -311,23 +331,27 @@ Haxolottle: And then sometimes... *looks slightly embarrassed* ...sometimes I li
* [Say you also like ambient music]
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_player_shared_personal += 1
You: Ambient music is great for concentration. What's your favorite?
-> music_ambient_detail
* [Admit you prefer silence while working]
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
You: I actually prefer silence when I'm concentrating.
-> music_silence_response
* [Tease them about nature sounds]
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_humor_shared += 1
You: Nature sounds? That's adorably wholesome for a spy.
-> music_nature_tease
=== music_ambient_detail ===
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
Haxolottle: Oh, good taste! For concentration, I keep coming back to Eno's *Music for Airports*. It's designed to be ignorable but interesting—perfect for background.
@@ -341,12 +365,14 @@ Haxolottle: What about you? Any favorites?
You: I'm into [vague genre description]. Keeps me focused.
Haxolottle: Nice. I might check that out during my next long monitoring session.
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
-> phase_1_hub
* [Keep it vague]
You: Different things depending on the task.
Haxolottle: Adaptive playlist for adaptive operations. I like it.
~ npc_haxolottle_friendship_level += 2
#friendship_gained:2
-> phase_1_hub
=== music_silence_response ===
@@ -358,10 +384,12 @@ Haxolottle: I can't do it, personally. Total silence makes me too aware of my ow
Haxolottle: But everyone's different. That's why we have noise-cancelling headphones in the equipment list—Section 8, Article 4.
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
-> phase_1_hub
=== music_nature_tease ===
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
~ npc_haxolottle_humor_shared += 1
Haxolottle: *laughs* Okay, yes, I know how it sounds. "Elite SAFETYNET handler unwinds with gentle rain sounds."
@@ -377,6 +405,7 @@ Haxolottle: Plus, there's something soothing about storms specifically. All that
Haxolottle: You can judge me, but I won't stop. I have a whole collection. "Thunderstorm in Forest," "Ocean Waves at Night," "Heavy Rain on Tent." It's a whole genre.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> phase_1_hub
// ----------------
@@ -386,6 +415,7 @@ Haxolottle: You can judge me, but I won't stop. I have a whole collection. "Thun
=== coffee_chat ===
~ npc_haxolottle_talked_coffee_preferences = true
~ npc_haxolottle_friendship_level += 4
#friendship_gained:4
~ npc_haxolottle_conversations_had += 1
Haxolottle: Coffee preferences? Oh, we're getting into the important questions now.
@@ -398,22 +428,26 @@ Haxolottle: Dr. Chen thinks I'm weird for it. They survive on energy drinks and
* [Say you're also a tea drinker]
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_player_shared_personal += 1
You: Tea for me too. Coffee's too harsh.
-> coffee_tea_solidarity
* [Defend coffee]
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
You: Coffee is essential. I don't trust tea to keep me functional.
-> coffee_defense
* [Ask about the axolotl mug]
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
You: Is that axolotl mug I keep seeing in video calls yours?
-> coffee_mug_discussion
=== coffee_tea_solidarity ===
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
Haxolottle: A fellow tea person! Excellent. We're a minority in SAFETYNET.
@@ -424,6 +458,7 @@ Haxolottle: If you ever need to decompress after a mission, find that break room
Haxolottle: Consider it insider knowledge. Handler privilege.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> phase_1_hub
=== coffee_defense ===
@@ -435,10 +470,12 @@ Haxolottle: Different metabolisms, different needs. That's the thing about SAFET
Haxolottle: As long as you're alert and functional, I don't care if you're powered by coffee, tea, energy drinks, or pure spite.
~ npc_haxolottle_friendship_level += 3
#friendship_gained:3
-> phase_1_hub
=== coffee_mug_discussion ===
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
~ npc_haxolottle_humor_shared += 1
Haxolottle: *laughs* You noticed! Yes, that's mine. Got it custom-made.
@@ -452,6 +489,7 @@ Haxolottle: I have three of them, actually. One for the office, one for home, on
Haxolottle: Director Netherton pretends not to notice it in briefings, but I've caught him almost smiling at it once. Progress.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> phase_1_hub
// ----------------
@@ -461,6 +499,7 @@ Haxolottle: Director Netherton pretends not to notice it in briefings, but I've
=== stress_management ===
~ npc_haxolottle_talked_stress_management = true
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
~ npc_haxolottle_conversations_had += 1
~ npc_haxolottle_vulnerable_moments += 1
@@ -474,12 +513,14 @@ Haxolottle: I've had agents get hurt. I've had operations go wrong despite every
* [Thank them for being honest]
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
~ npc_haxolottle_player_shared_personal += 1
You: Thank you for trusting me with that. It helps to know you feel it too.
-> stress_honest_response
* [Share your own stress management]
~ npc_haxolottle_friendship_level += 12
#friendship_gained:12
~ npc_haxolottle_player_shared_personal += 2
~ npc_haxolottle_trust_moments += 1
You: I feel that pressure too. From a different angle, but still there.
@@ -487,11 +528,13 @@ Haxolottle: I've had agents get hurt. I've had operations go wrong despite every
* [Ask how they cope with the weight]
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
You: How do you keep going when it feels like too much?
-> stress_coping_methods
=== stress_honest_response ===
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
Haxolottle: Of course. We're in this together, Agent. I'm not just a voice on comms—I'm a person who cares about whether you come back safe.
@@ -500,11 +543,13 @@ Haxolottle: The handbook talks about professional distance, but Regulation 299 s
Haxolottle: You're not just an asset to me. You're a colleague. Maybe even a friend. And I want you to succeed and be okay.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_trust_moments += 1
-> phase_1_hub
=== stress_mutual_understanding ===
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_trust_moments += 2
Haxolottle: Yeah. Different angles, same weight. You're worried about getting caught, about the mission failing, about making the wrong call in the moment.
@@ -520,11 +565,13 @@ Haxolottle: That's why the axolotl thing matters, I think. Regeneration isn't ju
Haxolottle: And we do it together. That makes it bearable.
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
~ npc_haxolottle_vulnerable_moments += 1
-> phase_1_hub
=== stress_coping_methods ===
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
Haxolottle: Honestly? I remind myself why we do this. ENTROPY is real. The threats are real. The people we protect—even though they don't know we exist—they're real.
@@ -535,6 +582,7 @@ Haxolottle: The weight is heavy because the work matters. If it was easy, if it
Haxolottle: And... *slight smile* ...I have my ridiculous axolotl metaphors. When things get dark, I think about something absurd and resilient, and it helps.
~ npc_haxolottle_friendship_level += 12
#friendship_gained:12
-> phase_1_hub
// ===========================================
@@ -573,6 +621,7 @@ Haxolottle: And... *slight smile* ...I have my ridiculous axolotl metaphors. Whe
=== philosophy_evolution ===
~ npc_haxolottle_talked_philosophy_change = true
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
~ npc_haxolottle_conversations_had += 1
Haxolottle: How has my philosophy changed? *laughs softly* That's a heavier question than you might think.
@@ -589,12 +638,14 @@ Haxolottle: The philosophy that's stuck is: Do the work as ethically as you can
* [Express agreement]
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
~ npc_haxolottle_player_shared_personal += 1
You: I've been thinking about that too. The gray areas are... uncomfortable.
-> philosophy_gray_areas
* [Ask what call haunts them most]
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_vulnerable_moments += 1
You: Is there one decision that still bothers you?
-> philosophy_haunting_decision
@@ -605,6 +656,7 @@ Haxolottle: The philosophy that's stuck is: Do the work as ethically as you can
=== philosophy_gray_areas ===
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_trust_moments += 1
Haxolottle: Yeah. Uncomfortable is the word. We're essentially breaking laws under authorization that's classified, targeting people who might be criminals or might be victims.
@@ -616,10 +668,12 @@ Haxolottle: But you know what? The fact that you're thinking about it, questioni
Haxolottle: The day we stop feeling uncomfortable with the gray areas is the day we've gone too far.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
-> phase_2_hub
=== philosophy_haunting_decision ===
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
~ npc_haxolottle_vulnerable_moments += 2
~ npc_haxolottle_shared_doubt = true
@@ -641,12 +695,14 @@ Haxolottle: And I don't know if I would. If I could do it again, with the same i
* [Offer comfort]
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
~ npc_haxolottle_trust_moments += 2
You: You made the best call you could with what you knew. That agent knew the risks.
-> philosophy_comfort_response
* [Share something personal]
~ npc_haxolottle_friendship_level += 25
#friendship_gained:25
~ npc_haxolottle_player_shared_personal += 3
~ npc_haxolottle_trust_moments += 2
You: I carry similar weight. We all do. It doesn't make it easier, but you're not alone in it.
@@ -654,6 +710,7 @@ Haxolottle: And I don't know if I would. If I could do it again, with the same i
=== philosophy_comfort_response ===
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
Haxolottle: *slight smile* Thank you. I know that, intellectually. Regulation 911—mission objectives sometimes outweigh agent safety when lives are at stake.
@@ -662,10 +719,12 @@ Haxolottle: Doesn't make it easier. But it helps to hear it from someone who und
Haxolottle: You're a good person, Agent {player_name()}. I'm glad we're working together.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
-> phase_2_hub
=== philosophy_shared_burden ===
~ npc_haxolottle_friendship_level += 25
#friendship_gained:25
~ npc_haxolottle_trust_moments += 3
Haxolottle: *looks genuinely touched*
@@ -679,10 +738,12 @@ Haxolottle: I wish we could grab coffee like normal colleagues. Talk about this
Haxolottle: And what we have is this. Honest conversations within the boundaries we're given. That's real friendship, I think. Even with the constraints.
~ npc_haxolottle_friendship_level += 30
#friendship_gained:30
-> phase_2_hub
=== philosophy_immediate_good ===
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
Haxolottle: That's a healthy approach. Zoom in on what you can control, the immediate impact. Today's mission. This operation. This prevented attack.
@@ -691,6 +752,7 @@ Haxolottle: The big picture can overwhelm you if you let it. Better to focus on
Haxolottle: That's sustainable. I should probably do more of that myself.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
-> phase_2_hub
// ----------------
@@ -700,6 +762,7 @@ Haxolottle: That's sustainable. I should probably do more of that myself.
=== handler_reality ===
~ npc_haxolottle_talked_handler_life = true
~ npc_haxolottle_friendship_level += 12
#friendship_gained:12
~ npc_haxolottle_conversations_had += 1
Haxolottle: Handler life? It's weird. I sit in a comfortable office with good tea and multiple monitors, while you're crawling through server rooms and dodging security.
@@ -712,22 +775,26 @@ Haxolottle: And when things go wrong, I can only watch. I can't run in and help.
* [Say you appreciate having them there]
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_player_shared_personal += 1
You: Your voice on comms makes a huge difference. I'm never alone out there.
-> handler_appreciation
* [Ask if they'd go back to field work]
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
You: Would you ever go back to field operations?
-> handler_field_return_question
* [Acknowledge the invisible stress]
~ npc_haxolottle_friendship_level += 12
#friendship_gained:12
You: That sounds exhausting in a completely different way than field work.
-> handler_stress_acknowledgment
=== handler_appreciation ===
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
~ npc_haxolottle_trust_moments += 1
Haxolottle: *clearly moved*
@@ -739,10 +806,12 @@ Haxolottle: Knowing it makes a difference—that you feel less alone—that's wh
Haxolottle: We're a team. You're my eyes and hands in the field. I'm your strategic perspective and support system. Neither of us succeeds without the other.
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
-> phase_2_hub
=== handler_field_return_question ===
~ npc_haxolottle_friendship_level += 12
#friendship_gained:12
Haxolottle: *considers carefully*
@@ -755,10 +824,12 @@ Haxolottle: Transitioning to handler was regeneration. Different work, same miss
Haxolottle: Plus, I'm better at this. Supporting multiple agents, seeing the strategic picture, staying calm under pressure. My field skills were good. My handler skills are better.
~ npc_haxolottle_friendship_level += 12
#friendship_gained:12
-> phase_2_hub
=== handler_stress_acknowledgment ===
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
Haxolottle: It really is. Different kind of exhaustion.
@@ -771,6 +842,7 @@ Haxolottle: I end the day mentally drained in a way field work never did. But al
Haxolottle: Trade-offs. Everything in SAFETYNET is trade-offs.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
-> phase_2_hub
// ----------------
@@ -780,6 +852,7 @@ Haxolottle: Trade-offs. Everything in SAFETYNET is trade-offs.
=== field_nostalgia ===
~ npc_haxolottle_talked_field_nostalgia = true
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_conversations_had += 1
Haxolottle: Do I miss field work? Sometimes. Mostly small moments, not the overall experience.
@@ -792,22 +865,26 @@ Haxolottle: And honestly? I miss the simplicity. One mission, one objective, han
* [Ask what they don't miss]
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
You: What don't you miss about it?
-> field_nostalgia_negative
* [Share what you love about field work]
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_player_shared_personal += 1
You: I feel that rush too. That moment when everything clicks.
-> field_nostalgia_shared_joy
* [Ask about their most memorable infiltration]
~ npc_haxolottle_friendship_level += 12
#friendship_gained:12
You: What's your most memorable field operation?
-> field_nostalgia_memorable_op
=== field_nostalgia_negative ===
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
Haxolottle: *laughs* Oh, plenty. The fear, for one. That sustained low-level anxiety of maintaining cover, wondering if today's the day someone sees through it.
@@ -818,10 +895,12 @@ Haxolottle: And the physical toll. I'm not young anymore. Eight years of irregul
Haxolottle: Plus, I hated the paperwork. At least as a handler, I'm the one receiving the reports instead of writing them.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
-> phase_2_hub
=== field_nostalgia_shared_joy ===
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
~ npc_haxolottle_trust_moments += 1
Haxolottle: Yes! Exactly! That rush when everything aligns—the timing, the technique, the execution. It's beautiful when it works.
@@ -833,10 +912,12 @@ Haxolottle: Different from doing it myself, but still genuine. Like watching a m
Haxolottle: That's part of why I love this partnership. You're really good at what you do. Makes my job easier and more satisfying.
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
-> phase_2_hub
=== field_nostalgia_memorable_op ===
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
Haxolottle: Most memorable? Hard to pick one... but there was this operation in Prague. Corporate espionage case, ENTROPY front company.
@@ -851,6 +932,7 @@ Haxolottle: Completed the mission with zero suspicion. They thought I was just a
Haxolottle: That was the operation that convinced me I'd found the right line of work. Chaos, adaptation, success. Everything I'm good at.
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
-> phase_2_hub
// ----------------
@@ -860,6 +942,7 @@ Haxolottle: That was the operation that convinced me I'd found the right line of
=== weird_habits_discussion ===
~ npc_haxolottle_talked_weird_habits = true
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
~ npc_haxolottle_conversations_had += 1
~ npc_haxolottle_humor_shared += 1
@@ -875,6 +958,7 @@ Haxolottle: SAFETYNET gets in your head. You start treating normal life like an
* [Admit you do the same]
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_player_shared_personal += 1
~ npc_haxolottle_humor_shared += 1
You: I map exits too! And I check reflections for surveillance.
@@ -882,6 +966,7 @@ Haxolottle: SAFETYNET gets in your head. You start treating normal life like an
* [Share a different weird habit]
~ npc_haxolottle_friendship_level += 15
#friendship_gained:15
~ npc_haxolottle_player_shared_personal += 2
~ npc_haxolottle_trust_moments += 1
You: I've developed some similar habits...
@@ -889,11 +974,13 @@ Haxolottle: SAFETYNET gets in your head. You start treating normal life like an
* [Ask if they think it's unhealthy]
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
You: Is that unhealthy? Should we be concerned?
-> weird_habits_healthy_question
=== weird_habits_shared ===
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
~ npc_haxolottle_humor_shared += 1
Haxolottle: *laughs* Right? It's impossible to turn off! I went to a casual dinner with—well, with someone in my life—and spent the first ten minutes analyzing sight lines and potential surveillance.
@@ -905,10 +992,12 @@ Haxolottle: We're professionally paranoid. It's both a survival skill and a mino
Haxolottle: But hey, if there ever IS an emergency at a grocery store, we'll be the most prepared people there. Silver lining.
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
-> phase_2_hub
=== weird_habits_player_share ===
~ npc_haxolottle_friendship_level += 20
#friendship_gained:20
~ npc_haxolottle_trust_moments += 2
Haxolottle: Oh, tell me yours. I love hearing what habits other agents develop. It's like a support group for occupational paranoia.
@@ -922,10 +1011,12 @@ Haxolottle: We should start a handbook addendum: "Common Psychological Adaptatio
Haxolottle: Honestly, it helps to know we're all doing this. Makes it feel less like slowly losing our minds and more like... adaptive behavior in a weird profession.
~ npc_haxolottle_friendship_level += 25
#friendship_gained:25
-> phase_2_hub
=== weird_habits_healthy_question ===
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
Haxolottle: *considers* Probably somewhere in between healthy professional awareness and mild paranoia.
@@ -936,6 +1027,7 @@ Haxolottle: I think as long as the habits aren't interfering with normal life, t
Haxolottle: But it's worth checking in with yourself. "Is this useful vigilance or is it anxiety?" That line can blur.
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
-> phase_2_hub
// Continue with Phase 3 and 4 hubs (later missions)...
@@ -984,6 +1076,7 @@ Haxolottle: *checking in* How's it going, {player_name()}?
Haxolottle: Favorite operations? That's tough. Every successful op is satisfying in its own way.
Haxolottle: But yeah, there are some that stand out. The ones where everything clicks between handler and agent.
~ npc_haxolottle_friendship_level += 5
#friendship_gained:5
~ npc_haxolottle_talked_favorite_operations = true
-> phase_2_hub
@@ -994,10 +1087,12 @@ Haxolottle: Sorry. Shouldn't burden you with that.
+ [I'm sorry for your loss]
Haxolottle: *appreciates it* Thanks. It's part of the job, but it never gets easier.
~ npc_haxolottle_friendship_level += 10
#friendship_gained:10
~ npc_haxolottle_shared_loss = true
+ [You can talk about it if you need to]
Haxolottle: Maybe another time. Right now I just need to keep working. Helping you helps.
~ npc_haxolottle_friendship_level += 8
#friendship_gained:8
~ npc_haxolottle_shared_loss = true
-> phase_2_hub

View File

@@ -233,6 +233,7 @@ Netherton: *monitoring your position* I'm tracking your progress. What do you ne
// This would branch based on player's explanation
Netherton: ... Acceptable. Use your judgment. I trust your field assessment.
~ npc_netherton_respect += 5
#respect_gained:5
-> mission_hub
+ [Request emergency extraction]
@@ -252,9 +253,11 @@ Netherton: Your mission report indicates success. The backdoor has been neutrali
{npc_netherton_respect >= 70:
Netherton: Excellent work, Agent. Your execution was textbook. This is exactly the kind of operational performance SAFETYNET requires.
~ npc_netherton_respect += 10
#respect_gained:10
- else:
Netherton: Adequate performance. Mission objectives achieved. Some aspects could be refined.
~ npc_netherton_respect += 5
#respect_gained:5
}
Netherton: Dr. Chen is analyzing the technical data you extracted. It may provide intelligence on other ENTROPY operations.
@@ -292,6 +295,7 @@ Netherton: You want operational advice. *considers* On what specific matter?
Netherton: When faced with ambiguous situation: Assess risk. Identify options. Select least-worst approach. Execute decisively.
Netherton: Hesitation kills. Make the call and commit.
~ npc_netherton_respect += 5
#respect_gained:5
-> mission_hub
+ [How to improve mission planning]
@@ -299,6 +303,7 @@ Netherton: You want operational advice. *considers* On what specific matter?
Netherton: Anticipate failure modes. For each plan, ask: What could go wrong? How would I adapt?
Netherton: The axolotl principle—Haxolottle's term. Plan for regeneration when the original approach fails.
~ npc_netherton_respect += 5
#respect_gained:5
-> mission_hub
+ [How to advance in SAFETYNET]
@@ -306,6 +311,7 @@ Netherton: You want operational advice. *considers* On what specific matter?
Netherton: Demonstrate competence. Show sound judgment. Develop specialized capabilities. Volunteer for challenging assignments.
Netherton: Most importantly: Maintain integrity. Technical skills can be trained. Character cannot.
~ npc_netherton_respect += 8
#respect_gained:8
~ professional_reputation += 1
-> mission_hub
@@ -345,6 +351,7 @@ Netherton: Training opportunities. What areas interest you?
Netherton: There's a leadership program for senior agents. Application process is competitive. I can recommend you if your performance continues.
~ professional_reputation += 3
~ npc_netherton_respect += 10
#respect_gained:10
-> mission_hub
+ [Technical specialization]

View File

@@ -109,6 +109,7 @@ EXTERNAL current_mission_id() // LOCAL - Current mission identifier
=== handbook_discussion ===
~ npc_netherton_discussed_handbook = true
~ npc_netherton_respect += 5
#respect_gained:5
~ npc_netherton_serious_conversations += 1
Netherton: The Field Operations Handbook. *adjusts glasses slightly*
@@ -119,22 +120,26 @@ Netherton: Agents often mock the handbook. The contradictions, the excessive det
* [Express genuine interest]
~ npc_netherton_respect += 10
#respect_gained:10
~ professional_reputation += 1
You: I've been studying it seriously. There's real wisdom in there.
-> handbook_appreciation
* [Ask about the contradictions]
~ npc_netherton_respect += 5
#respect_gained:5
You: Why are there so many contradictions in it?
-> handbook_contradictions
* [Admit you find it confusing]
~ npc_netherton_respect += 3
#respect_gained:3
You: I'll be honest, Director—it's overwhelming.
-> handbook_honest_confusion
=== handbook_appreciation ===
~ npc_netherton_respect += 15
#respect_gained:15
Netherton: *brief pause, something that might be surprise*
@@ -145,10 +150,12 @@ Netherton: The fact that you're already engaging with it thoughtfully... that sp
Netherton: Section 14.7 is particularly relevant to your current assignment level. I recommend thorough review.
~ npc_netherton_respect += 10
#respect_gained:10
-> phase_1_hub
=== handbook_contradictions ===
~ npc_netherton_respect += 8
#respect_gained:8
Netherton: An astute observation. The contradictions are not accidents.
@@ -159,10 +166,12 @@ Netherton: The handbook provides guidance for contradictory circumstances. Agent
Netherton: It's not a rulebook. It's a framework for decision-making under impossible conditions.
~ npc_netherton_respect += 8
#respect_gained:8
-> phase_1_hub
=== handbook_honest_confusion ===
~ npc_netherton_respect += 5
#respect_gained:5
Netherton: Understandable. The handbook is not designed for easy consumption.
@@ -175,6 +184,7 @@ Netherton: Your handler will guide you on relevant sections for specific situati
Netherton: Though I've come close. Not by choice.
~ npc_netherton_respect += 5
#respect_gained:5
-> phase_1_hub
// ----------------
@@ -184,6 +194,7 @@ Netherton: Though I've come close. Not by choice.
=== leadership_discussion ===
~ npc_netherton_discussed_leadership = true
~ npc_netherton_respect += 8
#respect_gained:8
~ npc_netherton_serious_conversations += 1
Netherton: Leadership principles. *straightens papers on desk*
@@ -194,12 +205,14 @@ Netherton: The core principle remains constant: leadership is responsibility. Yo
* [Ask how he handles that weight]
~ npc_netherton_respect += 12
#respect_gained:12
~ professional_reputation += 1
You: How do you handle that weight? That responsibility?
-> leadership_weight
* [Ask about his leadership style]
~ npc_netherton_respect += 5
#respect_gained:5
You: How would you describe your leadership style?
-> leadership_style
@@ -209,6 +222,7 @@ Netherton: The core principle remains constant: leadership is responsibility. Yo
=== leadership_weight ===
~ npc_netherton_respect += 15
#respect_gained:15
Netherton: *considers the question carefully*
@@ -223,11 +237,13 @@ Netherton: The weight never lessens. You simply become stronger at carrying it.
Netherton: That you're asking this question suggests you may be suited for leadership yourself. Eventually.
~ npc_netherton_respect += 20
#respect_gained:20
~ professional_reputation += 2
-> phase_1_hub
=== leadership_style ===
~ npc_netherton_respect += 8
#respect_gained:8
Netherton: Structured. Disciplined. By the handbook—because the handbook represents accumulated wisdom from thousands of operations.
@@ -240,6 +256,7 @@ Netherton: I demand excellence because the work demands it. Lives depend on our
Netherton: But I do not demand perfection. I demand learning. Mistakes are acceptable if they result in growth. Repeated mistakes indicate insufficient attention.
~ npc_netherton_respect += 8
#respect_gained:8
-> phase_1_hub
// ----------------
@@ -249,6 +266,7 @@ Netherton: But I do not demand perfection. I demand learning. Mistakes are accep
=== safetynet_history ===
~ npc_netherton_discussed_safetynet_history = true
~ npc_netherton_respect += 5
#respect_gained:5
~ npc_netherton_serious_conversations += 1
Netherton: SAFETYNET's history. This is not widely documented for security reasons.
@@ -261,11 +279,13 @@ Netherton: We've evolved from a small group of specialists to a global operation
* [Ask about the early days]
~ npc_netherton_respect += 10
#respect_gained:10
You: What were the early days like?
-> history_early_days
* [Ask about ENTROPY's emergence]
~ npc_netherton_respect += 8
#respect_gained:8
You: When did ENTROPY become a major threat?
-> history_entropy_emergence
@@ -275,6 +295,7 @@ Netherton: We've evolved from a small group of specialists to a global operation
=== history_early_days ===
~ npc_netherton_respect += 12
#respect_gained:12
Netherton: Chaotic. Improvised. We were writing the procedures as we executed operations.
@@ -289,10 +310,12 @@ Netherton: But we were building something important. Creating capabilities that
Netherton: We still carry that founding mission. Even though the organization has grown, even though operations are more structured—the core purpose remains.
~ npc_netherton_respect += 15
#respect_gained:15
-> phase_1_hub
=== history_entropy_emergence ===
~ npc_netherton_respect += 10
#respect_gained:10
Netherton: ENTROPY as an organized network appeared approximately five years ago. Though precursor activities date back further.
@@ -305,6 +328,7 @@ Netherton: They adapt quickly. They learn from our countermeasures. They recruit
Netherton: Which is why we require agents of your caliber.
~ npc_netherton_respect += 12
#respect_gained:12
-> phase_1_hub
// ----------------
@@ -314,6 +338,7 @@ Netherton: Which is why we require agents of your caliber.
=== expectations_discussion ===
~ npc_netherton_discussed_expectations = true
~ npc_netherton_respect += 10
#respect_gained:10
~ npc_netherton_serious_conversations += 1
Netherton: What I expect from agents. *interlaces fingers, formal posture*
@@ -328,22 +353,26 @@ Netherton: Fourth: Growth. Learn from every operation. Improve continuously. Sta
* [Promise to meet those standards]
~ npc_netherton_respect += 15
#respect_gained:15
~ professional_reputation += 2
You: I will meet those standards, Director. You have my commitment.
-> expectations_commitment
* [Ask if you're currently meeting expectations]
~ npc_netherton_respect += 8
#respect_gained:8
You: Am I currently meeting your expectations?
-> expectations_current_assessment
* [Acknowledge the high bar]
~ npc_netherton_respect += 5
#respect_gained:5
You: Those are high standards. I'll work toward them.
-> phase_1_hub
=== expectations_commitment ===
~ npc_netherton_respect += 20
#respect_gained:20
Netherton: *direct eye contact*
@@ -356,11 +385,13 @@ Netherton: Based on your record thus far, I believe you have the capacity to mee
Netherton: I expect to see continued progress. Maintain this trajectory.
~ npc_netherton_respect += 15
#respect_gained:15
~ professional_reputation += 2
-> phase_1_hub
=== expectations_current_assessment ===
~ npc_netherton_respect += 12
#respect_gained:12
{
- npc_netherton_respect >= 70:
@@ -374,6 +405,7 @@ Netherton: I expect to see continued progress. Maintain this trajectory.
Netherton: Specific areas for development will be addressed in formal performance reviews. But overall... *brief pause* ...you show promise.
~ npc_netherton_respect += 12
#respect_gained:12
-> phase_1_hub
// ===========================================
@@ -410,6 +442,7 @@ Netherton: Specific areas for development will be addressed in formal performanc
=== difficult_decisions ===
~ npc_netherton_discussed_difficult_decisions = true
~ npc_netherton_respect += 15
#respect_gained:15
~ npc_netherton_serious_conversations += 1
Netherton: Difficult command decisions. *removes glasses, cleans them methodically*
@@ -426,23 +459,27 @@ Netherton: But I brought our agent home alive. The mission failed. The agent liv
* [Say you would have done the same]
~ npc_netherton_respect += 20
#respect_gained:20
~ professional_reputation += 2
You: I would have made the same choice, Director.
-> difficult_agree
* [Ask how he lives with such decisions]
~ npc_netherton_respect += 18
#respect_gained:18
~ npc_netherton_personal_moments += 1
You: How do you live with decisions like that?
-> difficult_living_with
* [Thank him for the honesty]
~ npc_netherton_respect += 10
#respect_gained:10
You: Thank you for sharing that. It helps to know the weight you carry.
-> phase_2_hub
=== difficult_agree ===
~ npc_netherton_respect += 25
#respect_gained:25
~ professional_reputation += 3
Netherton: *looks at you with something approaching approval*
@@ -456,10 +493,12 @@ Netherton: That you understand the value of that choice... that suggests you hav
Netherton: Remember that conviction when you face similar decisions. Because you will. Leadership guarantees it.
~ npc_netherton_respect += 20
#respect_gained:20
-> phase_2_hub
=== difficult_living_with ===
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 1
Netherton: You don't. Not comfortably.
@@ -477,6 +516,7 @@ Netherton: I keep that letter in my desk. Read it when I doubt whether the choic
Netherton: That's how you live with difficult decisions. You remember why you made them.
~ npc_netherton_respect += 30
#respect_gained:30
~ npc_netherton_shared_vulnerability = true
-> phase_2_hub
@@ -487,6 +527,7 @@ Netherton: That's how you live with difficult decisions. You remember why you ma
=== agent_development ===
~ npc_netherton_discussed_agent_development = true
~ npc_netherton_respect += 12
#respect_gained:12
~ npc_netherton_serious_conversations += 1
Netherton: Agent development is central to SAFETYNET's effectiveness. You are all high-capability individuals. My role is to refine that capability into excellence.
@@ -497,22 +538,26 @@ Netherton: Your development has been... *consults memory* ...notably consistent.
* [Ask for specific feedback]
~ npc_netherton_respect += 18
#respect_gained:18
~ professional_reputation += 2
You: What specific areas should I focus on improving?
-> development_specific_feedback
* [Ask about his training philosophy]
~ npc_netherton_respect += 10
#respect_gained:10
You: What's your philosophy on training agents?
-> development_philosophy
* [Express appreciation]
~ npc_netherton_respect += 5
#respect_gained:5
You: I appreciate you investing in our development.
-> phase_2_hub
=== development_specific_feedback ===
~ npc_netherton_respect += 22
#respect_gained:22
{
- npc_netherton_respect >= 75:
@@ -527,6 +572,7 @@ Netherton: Your development has been... *consults memory* ...notably consistent.
Netherton: You're on track to become one of SAFETYNET's premier agents. Maintain this trajectory.
~ npc_netherton_respect += 25
#respect_gained:25
~ professional_reputation += 3
- npc_netherton_respect >= 60:
Netherton: Technical competence is solid. Decision-making is sound. Operational performance meets standards.
@@ -536,6 +582,7 @@ Netherton: Your development has been... *consults memory* ...notably consistent.
Netherton: Increase your initiative. Don't wait for instructions when the correct action is clear. Trust your judgment more.
~ npc_netherton_respect += 15
#respect_gained:15
~ professional_reputation += 1
- else:
Netherton: You meet minimum standards. That is insufficient for advancement.
@@ -545,12 +592,14 @@ Netherton: Your development has been... *consults memory* ...notably consistent.
Netherton: Review handbook sections 8 through 12. Study after-action reports from successful operations. Learn from excellence.
~ npc_netherton_respect += 8
#respect_gained:8
}
-> phase_2_hub
=== development_philosophy ===
~ npc_netherton_respect += 15
#respect_gained:15
Netherton: Train for the worst case. When operations go smoothly, any agent can succeed. Excellence is demonstrated when everything goes wrong.
@@ -565,6 +614,7 @@ Netherton: Some agents resent my methods. Call me harsh. But those agents are al
Netherton: Your survival is worth more than your comfort.
~ npc_netherton_respect += 18
#respect_gained:18
-> phase_2_hub
// ----------------
@@ -574,6 +624,7 @@ Netherton: Your survival is worth more than your comfort.
=== bureau_politics ===
~ npc_netherton_discussed_bureau_politics = true
~ npc_netherton_respect += 12
#respect_gained:12
~ npc_netherton_serious_conversations += 1
Netherton: *visible distaste*
@@ -586,23 +637,27 @@ Netherton: The CYBER-PHYSICAL division competes with INTELLIGENCE, ANALYSIS, and
* [Ask about inter-division conflicts]
~ npc_netherton_respect += 15
#respect_gained:15
You: Are there serious conflicts between divisions?
-> politics_conflicts
* [Ask how to navigate politics as an agent]
~ npc_netherton_respect += 18
#respect_gained:18
~ professional_reputation += 2
You: How should agents like me navigate organizational politics?
-> politics_agent_navigation
* [Express sympathy for the burden]
~ npc_netherton_respect += 10
#respect_gained:10
~ npc_netherton_personal_moments += 1
You: That must be exhausting on top of operational responsibilities.
-> politics_burden
=== politics_conflicts ===
~ npc_netherton_respect += 18
#respect_gained:18
Netherton: Conflicts are constant. INTELLIGENCE believes their analysis should drive operations. SPECIAL OPS believes their combat capabilities are underutilized. ANALYSIS believes everyone ignores their risk assessments.
@@ -613,10 +668,12 @@ Netherton: Two months ago, SPECIAL OPS attempted to take over a cyber infiltrati
Netherton: I shut it down. Made enemies. The operation succeeded. Results matter more than relationships.
~ npc_netherton_respect += 15
#respect_gained:15
-> phase_2_hub
=== politics_agent_navigation ===
~ npc_netherton_respect += 25
#respect_gained:25
~ professional_reputation += 3
Netherton: *approving look*
@@ -636,11 +693,13 @@ Netherton: Fourth: Understand that I handle divisional politics. Your role is ex
Netherton: You show leadership potential. As you advance, politics becomes unavoidable. Learn the skills now. But never let politics compromise operational integrity.
~ npc_netherton_respect += 30
#respect_gained:30
~ professional_reputation += 3
-> phase_2_hub
=== politics_burden ===
~ npc_netherton_respect += 18
#respect_gained:18
~ npc_netherton_personal_moments += 1
Netherton: *brief surprise at the empathy*
@@ -662,6 +721,7 @@ Netherton: So I attend the meetings. I play the political games. I do what's nec
Netherton: Thank you for recognizing the burden. Few do.
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 1
-> phase_2_hub
@@ -672,6 +732,7 @@ Netherton: Thank you for recognizing the burden. Few do.
=== field_vs_command ===
~ npc_netherton_discussed_field_vs_command = true
~ npc_netherton_respect += 15
#respect_gained:15
~ npc_netherton_serious_conversations += 1
Netherton: *long pause, considering the question*
@@ -684,23 +745,27 @@ Netherton: Do I miss field work? *removes glasses, sets them aside*
* [Wait for him to continue]
~ npc_netherton_respect += 20
#respect_gained:20
~ npc_netherton_personal_moments += 1
You: *remain silent, giving him space*
-> field_nostalgia
* [Say you'd miss it in his position]
~ npc_netherton_respect += 15
#respect_gained:15
You: I imagine I would miss it. The directness of field work.
-> field_understanding
* [Ask what he misses most]
~ npc_netherton_respect += 18
#respect_gained:18
~ npc_netherton_personal_moments += 1
You: What do you miss most about field operations?
-> field_what_he_misses
=== field_nostalgia ===
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 1
Netherton: *appreciates the silence*
@@ -718,11 +783,13 @@ Netherton: But I'm better suited to command. I can build systems that enable doz
Netherton: So I carry the weight. Because it's where I can do the most good.
~ npc_netherton_respect += 30
#respect_gained:30
~ npc_netherton_shared_vulnerability = true
-> phase_2_hub
=== field_understanding ===
~ npc_netherton_respect += 22
#respect_gained:22
Netherton: Precisely. The directness. The unambiguous nature of field success or failure.
@@ -733,10 +800,12 @@ Netherton: Command success is measured over years. Did I develop the right agent
Netherton: The uncertainty is... challenging.
~ npc_netherton_respect += 20
#respect_gained:20
-> phase_2_hub
=== field_what_he_misses ===
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 1
Netherton: *considers carefully*
@@ -758,6 +827,7 @@ Netherton: I have subordinates. Colleagues. Not... friends. Not anymore.
Netherton: But that's the price of command. Acceptable trade for the impact I can have at this level.
~ npc_netherton_respect += 35
#respect_gained:35
~ npc_netherton_shared_vulnerability = true
~ npc_netherton_personal_moments += 2
-> phase_2_hub
@@ -796,6 +866,7 @@ Netherton: But that's the price of command. Acceptable trade for the impact I ca
=== weight_of_command ===
~ npc_netherton_discussed_weight_of_command = true
~ npc_netherton_respect += 20
#respect_gained:20
~ npc_netherton_serious_conversations += 1
Netherton: The weight of command. *sets down whatever he was working on*
@@ -808,23 +879,27 @@ Netherton: I review casualty statistics. I write letters to families—classifie
* [Ask how he carries that weight]
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 1
You: How do you carry that weight without breaking?
-> weight_carrying_it
* [Say you're starting to understand]
~ npc_netherton_respect += 20
#respect_gained:20
~ professional_reputation += 2
You: I'm starting to understand what command would mean. The responsibility.
-> weight_understanding
* [Express respect for his strength]
~ npc_netherton_respect += 18
#respect_gained:18
You: The fact that you carry it shows remarkable strength.
-> weight_respect
=== weight_carrying_it ===
~ npc_netherton_respect += 30
#respect_gained:30
~ npc_netherton_personal_moments += 1
~ npc_netherton_shared_vulnerability = true
@@ -847,11 +922,13 @@ Netherton: You carry it by remembering it's not about you. It's about the missio
Netherton: And some days that's enough. Other days you just carry it anyway.
~ npc_netherton_respect += 40
#respect_gained:40
~ npc_netherton_personal_moments += 2
-> phase_3_hub
=== weight_understanding ===
~ npc_netherton_respect += 28
#respect_gained:28
~ professional_reputation += 3
Netherton: *approving look*
@@ -869,11 +946,13 @@ Netherton: When the time comes, if you choose command, I'll support your advance
Netherton: But don't rush it. Develop your capabilities fully. Command will still be there when you're ready.
~ npc_netherton_respect += 35
#respect_gained:35
~ professional_reputation += 4
-> phase_3_hub
=== weight_respect ===
~ npc_netherton_respect += 25
#respect_gained:25
Netherton: *slight discomfort at the compliment*
@@ -882,6 +961,7 @@ Netherton: It's not strength. It's duty. The role requires it. So I do it.
Netherton: But... thank you. Leadership can be isolating. Acknowledgment is... appreciated.
~ npc_netherton_respect += 20
#respect_gained:20
~ npc_netherton_personal_moments += 1
-> phase_3_hub
@@ -892,6 +972,7 @@ Netherton: But... thank you. Leadership can be isolating. Acknowledgment is... a
=== agent_losses ===
~ npc_netherton_discussed_agent_losses = true
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_serious_conversations += 1
~ npc_netherton_personal_moments += 1
@@ -913,23 +994,27 @@ Netherton: I remember all eleven names. All their final missions. All the choice
* [Say they knew the risks]
~ npc_netherton_respect += 15
#respect_gained:15
You: They knew the risks when they took the assignment. They chose this.
-> losses_they_chose
* [Ask if he blames himself]
~ npc_netherton_respect += 30
#respect_gained:30
~ npc_netherton_personal_moments += 2
You: Do you blame yourself?
-> losses_blame
* [Remain silent, let him continue]
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 1
You: *silent respect*
-> losses_silence
=== losses_they_chose ===
~ npc_netherton_respect += 20
#respect_gained:20
Netherton: They did. You're correct. Every agent volunteers. Every agent understands the stakes.
@@ -942,10 +1027,12 @@ Netherton: Their choice to serve doesn't absolve my duty to bring them home. Whe
Netherton: Yes. They chose this. But I chose to send them. Both things are true.
~ npc_netherton_respect += 18
#respect_gained:18
-> phase_3_hub
=== losses_blame ===
~ npc_netherton_respect += 40
#respect_gained:40
~ npc_netherton_personal_moments += 2
~ npc_netherton_shared_vulnerability = true
@@ -972,12 +1059,14 @@ Netherton: So yes. I blame myself. Whether or not the blame is rational. It's mi
Netherton: Thank you for asking directly. Few people do.
~ npc_netherton_respect += 50
#respect_gained:50
~ npc_netherton_personal_moments += 3
~ npc_netherton_earned_personal_trust = true
-> phase_3_hub
=== losses_silence ===
~ npc_netherton_respect += 35
#respect_gained:35
~ npc_netherton_personal_moments += 2
Netherton: *appreciates the silence*
@@ -995,6 +1084,7 @@ Netherton: I believe remembering is the minimum duty we owe them. They gave ever
Netherton: And we try to ensure their sacrifice wasn't wasted. That SAFETYNET remains worth dying for.
~ npc_netherton_respect += 40
#respect_gained:40
~ npc_netherton_personal_moments += 2
-> phase_3_hub
@@ -1005,6 +1095,7 @@ Netherton: And we try to ensure their sacrifice wasn't wasted. That SAFETYNET re
=== ethical_boundaries ===
~ npc_netherton_discussed_ethical_boundaries = true
~ npc_netherton_respect += 22
#respect_gained:22
~ npc_netherton_serious_conversations += 1
Netherton: Ethical boundaries in our work. *steeples fingers*
@@ -1017,22 +1108,26 @@ Netherton: I've made choices I regret. Authorized operations that were legally j
* [Ask where he draws the line]
~ npc_netherton_respect += 25
#respect_gained:25
You: Where do you draw the line? What's absolutely off limits?
-> ethics_the_line
* [Ask about moral compromise]
~ npc_netherton_respect += 22
#respect_gained:22
~ professional_reputation += 2
You: How do you handle moral compromises the work requires?
-> ethics_compromise
* [Say some things are worth the cost]
~ npc_netherton_respect += 15
#respect_gained:15
You: Some things are worth the moral cost. Protecting infrastructure saves lives.
-> ethics_worth_it
=== ethics_the_line ===
~ npc_netherton_respect += 30
#respect_gained:30
Netherton: *considers very carefully*
@@ -1049,10 +1144,12 @@ Netherton: Personal gain. We serve the mission. Not ourselves. The moment we use
Netherton: Those are my lines. I enforce them absolutely. Agents who cross those boundaries are removed. No exceptions. No second chances.
~ npc_netherton_respect += 35
#respect_gained:35
-> phase_3_hub
=== ethics_compromise ===
~ npc_netherton_respect += 30
#respect_gained:30
~ npc_netherton_personal_moments += 1
Netherton: *long pause*
@@ -1076,12 +1173,14 @@ Netherton: Some days that feels like enough. Other days it feels like self-servi
Netherton: The uncertainty is... probably healthy. The moment I become comfortable with moral compromise is the moment I should resign.
~ npc_netherton_respect += 40
#respect_gained:40
~ npc_netherton_personal_moments += 2
~ npc_netherton_shared_vulnerability = true
-> phase_3_hub
=== ethics_worth_it ===
~ npc_netherton_respect += 20
#respect_gained:20
Netherton: *slight frown*
@@ -1096,6 +1195,7 @@ Netherton: Stay vigilant about your ethical boundaries. Question your choices. A
Netherton: The work is worth doing. That doesn't mean anything we do in service of it is justified.
~ npc_netherton_respect += 12
#respect_gained:12
-> phase_3_hub
// ----------------
@@ -1105,6 +1205,7 @@ Netherton: The work is worth doing. That doesn't mean anything we do in service
=== personal_cost ===
~ npc_netherton_discussed_personal_cost = true
~ npc_netherton_respect += 28
#respect_gained:28
~ npc_netherton_serious_conversations += 1
~ npc_netherton_personal_moments += 1
@@ -1118,23 +1219,27 @@ Netherton: Few friends outside the agency. Civilian friendships are... difficult
* [Express sympathy]
~ npc_netherton_respect += 18
#respect_gained:18
~ npc_netherton_personal_moments += 1
You: That's a heavy price to pay.
-> cost_sympathy
* [Ask if he regrets it]
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 2
You: Do you regret it? The sacrifices?
-> cost_regrets
* [Ask if it was worth it]
~ npc_netherton_respect += 20
#respect_gained:20
You: Was it worth the cost?
-> cost_worth_it
=== cost_sympathy ===
~ npc_netherton_respect += 25
#respect_gained:25
~ npc_netherton_personal_moments += 1
Netherton: *slight acknowledgment*
@@ -1148,10 +1253,12 @@ Netherton: Some agents manage better balance. Families. Hobbies. Lives outside t
Netherton: I never achieved that balance. Perhaps never tried hard enough. The work always came first.
~ npc_netherton_respect += 22
#respect_gained:22
-> phase_3_hub
=== cost_regrets ===
~ npc_netherton_respect += 35
#respect_gained:35
~ npc_netherton_personal_moments += 2
~ npc_netherton_shared_vulnerability = true
@@ -1176,12 +1283,14 @@ Netherton: So... regrets? Yes. But I'd likely make the same choices again. The w
Netherton: Feels like enough. Most days.
~ npc_netherton_respect += 50
#respect_gained:50
~ npc_netherton_personal_moments += 3
~ npc_netherton_earned_personal_trust = true
-> phase_3_hub
=== cost_worth_it ===
~ npc_netherton_respect += 28
#respect_gained:28
Netherton: *considers carefully*
@@ -1200,6 +1309,7 @@ Netherton: My personal happiness has... less clear value. The math suggests the
Netherton: Though I sometimes suspect I only believe that because accepting the alternative would be unbearable.
~ npc_netherton_respect += 32
#respect_gained:32
~ npc_netherton_personal_moments += 1
-> phase_3_hub
@@ -1237,6 +1347,7 @@ Netherton: Though I sometimes suspect I only believe that because accepting the
=== legacy_discussion ===
~ npc_netherton_discussed_legacy = true
~ npc_netherton_respect += 30
#respect_gained:30
~ npc_netherton_serious_conversations += 1
~ npc_netherton_personal_moments += 1
@@ -1250,23 +1361,27 @@ Netherton: The agents I've developed—that's legacy. People like you. Capable o
* [Say he's had profound impact]
~ npc_netherton_respect += 35
#respect_gained:35
~ professional_reputation += 3
You: You've had profound impact on everyone who's worked under your command. That's meaningful legacy.
-> legacy_impact
* [Ask what he wants his legacy to be]
~ npc_netherton_respect += 30
#respect_gained:30
~ npc_netherton_personal_moments += 2
You: What do you want your legacy to be?
-> legacy_wanted
* [Ask if legacy matters to him]
~ npc_netherton_respect += 25
#respect_gained:25
You: Does legacy matter to you?
-> legacy_matters
=== legacy_impact ===
~ npc_netherton_respect += 45
#respect_gained:45
~ npc_netherton_personal_moments += 2
Netherton: *rare visible emotion*
@@ -1282,12 +1397,14 @@ Netherton: But agents I've developed have gone on to lead divisions. Run success
Netherton: If that's my legacy, I can accept it. The work continues beyond me. Better because of the foundation we built.
~ npc_netherton_respect += 50
#respect_gained:50
~ npc_netherton_personal_moments += 2
~ npc_netherton_earned_personal_trust = true
-> phase_4_hub
=== legacy_wanted ===
~ npc_netherton_respect += 40
#respect_gained:40
~ npc_netherton_personal_moments += 2
Netherton: *long pause, genuinely considering*
@@ -1303,12 +1420,14 @@ Netherton: And... *rare vulnerability* ...I want to have mattered. To have made
Netherton: Probably too much to hope for. But that's what I want.
~ npc_netherton_respect += 45
#respect_gained:45
~ npc_netherton_personal_moments += 3
~ npc_netherton_shared_vulnerability = true
-> phase_4_hub
=== legacy_matters ===
~ npc_netherton_respect += 35
#respect_gained:35
Netherton: *considers*
@@ -1319,6 +1438,7 @@ Netherton: But yes. It matters. I'm human enough to want my life's work to have
Netherton: Perhaps that's vanity. But it's honest vanity.
~ npc_netherton_respect += 30
#respect_gained:30
-> phase_4_hub
// ----------------
@@ -1328,6 +1448,7 @@ Netherton: Perhaps that's vanity. But it's honest vanity.
=== trust_discussion ===
~ npc_netherton_discussed_trust = true
~ npc_netherton_respect += 35
#respect_gained:35
~ npc_netherton_serious_conversations += 1
~ npc_netherton_personal_moments += 2
@@ -1345,23 +1466,27 @@ Netherton: And... *rare admission* ...I trust you with information I don't share
* [Ask what earned that trust]
~ npc_netherton_respect += 40
#respect_gained:40
~ professional_reputation += 4
You: What earned that trust?
-> trust_what_earned
* [Say you trust him too]
~ npc_netherton_respect += 45
#respect_gained:45
~ npc_netherton_personal_moments += 3
You: I trust you too, Director. Completely.
-> trust_mutual
* [Thank him for the trust]
~ npc_netherton_respect += 30
#respect_gained:30
You: That means a great deal. Thank you.
-> phase_4_hub
=== trust_what_earned ===
~ npc_netherton_respect += 50
#respect_gained:50
~ professional_reputation += 4
Netherton: Consistent excellent performance. But more than that—consistent excellent judgment.
@@ -1379,12 +1504,14 @@ Netherton: And you've engaged with me as a person, not just as authority. Asked
Netherton: That combination—competence, ethics, thoughtfulness, humanity—that earns trust.
~ npc_netherton_respect += 60
#respect_gained:60
~ professional_reputation += 5
~ npc_netherton_earned_personal_trust = true
-> phase_4_hub
=== trust_mutual ===
~ npc_netherton_respect += 55
#respect_gained:55
~ npc_netherton_personal_moments += 4
~ npc_netherton_earned_personal_trust = true
@@ -1407,6 +1534,7 @@ Netherton: I will continue to earn that trust. To make decisions worthy of it. T
Netherton: You're becoming the kind of agent I hoped to develop. The kind SAFETYNET needs. I'm... proud. Of your development.
~ npc_netherton_respect += 70
#respect_gained:70
~ npc_netherton_personal_moments += 5
~ npc_netherton_received_commendation = true
-> phase_4_hub
@@ -1418,6 +1546,7 @@ Netherton: You're becoming the kind of agent I hoped to develop. The kind SAFETY
=== rare_praise ===
~ npc_netherton_discussed_rare_praise = true
~ npc_netherton_respect += 40
#respect_gained:40
~ npc_netherton_serious_conversations += 1
Netherton: My honest assessment. *sets aside work, gives full attention*
@@ -1437,6 +1566,7 @@ Netherton: My honest assessment. *sets aside work, gives full attention*
Netherton: I'm honored to have commanded you. Genuinely.
~ npc_netherton_respect += 60
#respect_gained:60
~ professional_reputation += 5
~ npc_netherton_received_commendation = true
- npc_netherton_respect >= 85:
@@ -1451,6 +1581,7 @@ Netherton: My honest assessment. *sets aside work, gives full attention*
Netherton: Continue this trajectory and you'll have a distinguished career. I'm confident in that assessment.
~ npc_netherton_respect += 45
#respect_gained:45
~ professional_reputation += 4
~ npc_netherton_received_commendation = true
- else:
@@ -1461,6 +1592,7 @@ Netherton: My honest assessment. *sets aside work, gives full attention*
Netherton: I'm satisfied with your performance and optimistic about your continued development.
~ npc_netherton_respect += 30
#respect_gained:30
~ professional_reputation += 2
}
@@ -1469,11 +1601,13 @@ Netherton: My honest assessment. *sets aside work, gives full attention*
* [Express gratitude]
You: Thank you, Director. That means everything coming from you.
~ npc_netherton_respect += 20
#respect_gained:20
-> phase_4_hub
* [Promise to continue earning his confidence]
You: I'll continue working to earn that assessment. You have my commitment.
~ npc_netherton_respect += 25
#respect_gained:25
~ professional_reputation += 2
-> phase_4_hub
@@ -1484,6 +1618,7 @@ Netherton: My honest assessment. *sets aside work, gives full attention*
=== beyond_protocol ===
~ npc_netherton_discussed_beyond_protocol = true
~ npc_netherton_respect += 45
#respect_gained:45
~ npc_netherton_serious_conversations += 1
~ npc_netherton_personal_moments += 3
@@ -1497,23 +1632,27 @@ Netherton: How to maintain humanity while executing inhumane operations. How to
* [Ask what he does beyond the handbook]
~ npc_netherton_respect += 50
#respect_gained:50
~ npc_netherton_personal_moments += 4
You: What guides you when the handbook doesn't have answers?
-> beyond_what_guides
* [Ask if he has life outside SAFETYNET]
~ npc_netherton_respect += 40
#respect_gained:40
~ npc_netherton_personal_moments += 3
You: Do you have life outside SAFETYNET? Beyond the work?
-> beyond_outside_life
* [Say some things can't be protocolized]
~ npc_netherton_respect += 35
#respect_gained:35
You: Some things can't be reduced to protocols. The human judgment is what matters.
-> beyond_human_judgment
=== beyond_what_guides ===
~ npc_netherton_respect += 60
#respect_gained:60
~ npc_netherton_personal_moments += 4
~ npc_netherton_shared_vulnerability = true
@@ -1536,12 +1675,14 @@ Netherton: And sometimes... *rare admission* ...I ask myself what agents like yo
Netherton: That's not in the handbook. But it's what guides me when protocols aren't enough.
~ npc_netherton_respect += 70
#respect_gained:70
~ npc_netherton_personal_moments += 5
~ npc_netherton_earned_personal_trust = true
-> phase_4_hub
=== beyond_outside_life ===
~ npc_netherton_respect += 50
#respect_gained:50
~ npc_netherton_personal_moments += 4
Netherton: *slight bitter smile*
@@ -1565,11 +1706,13 @@ Netherton: Maintain balance better than I did. Have life outside the agency. Don
Netherton: You're talented enough that the work will demand everything if you allow it. Don't. Preserve some part of yourself the agency doesn't own.
~ npc_netherton_respect += 55
#respect_gained:55
~ npc_netherton_personal_moments += 4
-> phase_4_hub
=== beyond_human_judgment ===
~ npc_netherton_respect += 45
#respect_gained:45
Netherton: Precisely. *approving*
@@ -1582,6 +1725,7 @@ Netherton: That's why agent selection is critical. Why I invest so heavily in de
Netherton: The fact that you understand that—that protocols are tools, not replacements for thinking—that's part of why you're effective.
~ npc_netherton_respect += 50
#respect_gained:50
-> phase_4_hub
// ===========================================