Complete Mission 6 implementation: Follow the Money

Implemented complete scenario for Mission 6 "Follow the Money" investigating
ENTROPY's Crypto Anarchists cell at HashChain Exchange.

Scenario changes (scenario.json.erb):
- Fixed room connections (data_center -> executive_wing -> satoshi_office)
- Added progression items: RFID cloner, executive badge, Elena's CTO badge
- Fixed server room password lock (requires "bitcoin2024")
- Complete objectives system (5 aims, 18 tasks)
- VM integration: Hackme and Crack Me lab with 4 flags
- Critical evidence documents: blockchain analysis, Architect's Fund allocation
- All rooms populated with contextual objects and NPCs

Dialogue scripts (7 Ink files, compiled to JSON):
1. m06_opening_briefing.ink - Mission briefing covering financial investigation
2. m06_phone_agent_0x99.ink - Handler support with event reactions
3. m06_closing_debrief.ink - Mission debrief reflecting player choices
4. m06_npc_elena_volkov.ink - Recruitable CTO with moral conflict arc
5. m06_npc_trader.ink - Innocent trader providing context
6. m06_npc_analyst.ink - Blockchain analyst with concerns
7. m06_satoshi_confrontation.ink - Final confrontation with critical choices

Key narrative elements:
- Elena Volkov recruitment path (cryptographer with moral conflict)
- Critical choice: Seize $12.8M assets vs. monitor transactions
- The Architect's Fund revelation (coordinated attack funding)
- Dr. Adrian Tesseract identity hint (former SAFETYNET strategist)
- Complete ENTROPY financial network mapping
- 180-340 projected casualties from coordinated operations

Validation: All schema checks passing, 7 Ink scripts compiled successfully
This commit is contained in:
Z. Cliffe Schreuders
2026-01-14 09:46:33 +00:00
parent 49ae5e5859
commit b439330767
15 changed files with 2918 additions and 7 deletions

View File

@@ -0,0 +1,462 @@
// ================================================
// Mission 6: Follow the Money - Closing Debrief
// Mission Complete - Financial Network Mapped
// Choices: Elena recruitment, asset seizure/monitoring
// ================================================
// Variables from gameplay
VAR player_name = "Agent 0x00"
VAR final_choice = ""
VAR objectives_completed = 0
VAR lore_collected = 0
VAR found_blockchain_evidence = false
VAR found_architects_fund = false
VAR elena_recruited = false
VAR elena_arrested = false
VAR assets_seized = false
VAR monitoring_enabled = false
VAR flag1_submitted = false
VAR flag2_submitted = false
VAR flag3_submitted = false
VAR flag4_submitted = false
// ================================================
// START: DEBRIEF BEGINS
// ================================================
=== start ===
#speaker:agent_0x99
Agent 0x99: {player_name}, return to HQ for debrief.
Agent 0x99: The financial investigation is complete. We need to discuss what you found.
+ [On my way]
-> debrief_location
// ================================================
// DEBRIEF LOCATION
// ================================================
=== debrief_location ===
[SAFETYNET HQ - Agent 0x99's Office]
#speaker:agent_0x99
Agent 0x99: {player_name}. What you accomplished at HashChain Exchange is going to reverberate through the entire ENTROPY network.
Agent 0x99: We've been fighting individual cells. You just mapped their entire financial infrastructure.
+ [The Architect's Fund changes everything]
-> architects_fund_discussion
+ [How significant is this intelligence?]
-> strategic_impact
// ================================================
// STRATEGIC IMPACT
// ================================================
=== strategic_impact ===
Agent 0x99: Extremely significant. We now know:
Agent 0x99: Every ENTROPY cell is financially connected through HashChain's mixing infrastructure.
Agent 0x99: The Architect coordinates funding to all cells simultaneously through a master fund.
Agent 0x99: And a major coordinated attack was planned for 72 hours from when you recovered that document.
+ [Was planned? Past tense?]
-> operation_disrupted
+ [Tell me about The Architect's Fund]
-> architects_fund_discussion
=== operation_disrupted ===
Agent 0x99: Your choices disrupted the timeline.
{assets_seized:
Agent 0x99: You seized $12.8 million in cryptocurrency. ENTROPY cells expecting funding got nothing.
Agent 0x99: Coordinated operations require coordinated funding. You broke the synchronization.
- else:
Agent 0x99: You enabled monitoring of The Architect's Fund. Intelligence is tracking every wallet receiving funds.
Agent 0x99: We know which cells are getting money, when, and how much. That's actionable intelligence.
}
-> architects_fund_discussion
// ================================================
// ARCHITECT'S FUND DISCUSSION
// ================================================
=== architects_fund_discussion ===
{found_architects_fund:
Agent 0x99: The Architect's Fund allocation document you recovered—$12.8M distributed to six cells.
Agent 0x99: Critical Mass, Social Fabric, Zero Day Syndicate, Digital Vanguard, Ghost Protocol, Supply Chain Saboteurs.
-> fund_implications
- else:
Agent 0x99: The blockchain evidence alone is valuable, but without The Architect's Fund allocation, we're missing critical context.
-> evidence_review
}
=== fund_implications ===
Agent 0x99: 180-340 projected casualties across all coordinated operations.
Agent 0x99: They calculated death tolls, {player_name}. Planned for them. Called it "The Architect's Masterpiece."
+ [How can anyone be that cold?]
-> ideology_discussion
+ [What happens to the cells now?]
-> cell_disruption
=== ideology_discussion ===
Agent 0x99: Accelerationism. They believe the current system is doomed to collapse.
Agent 0x99: The Architect thinks causing chaos speeds up the inevitable. "Teaching harsh lessons" that will save more lives in the long run.
Agent 0x99: It's not coldness. It's ideology taken to its horrifying logical extreme.
-> cell_disruption
=== cell_disruption ===
{assets_seized:
Agent 0x99: With funding cut, cells are scrambling. Some operations are already cancelled.
Agent 0x99: Short-term impact is massive. But we lose long-term intelligence.
- else:
Agent 0x99: With monitoring enabled, we're tracking fund distribution in real-time.
Agent 0x99: Every cell receiving money is mapped. We're building prosecutorial cases against multiple networks.
Agent 0x99: Long-term strategic value is enormous. But cells continue operating in the short term.
}
-> elena_discussion
// ================================================
// ELENA VOLKOV DISCUSSION
// ================================================
=== elena_discussion ===
Agent 0x99: Now let's talk about Dr. Elena Volkov.
{elena_recruited:
-> elena_recruited_path
}
{elena_arrested:
-> elena_arrested_path
}
{not elena_recruited && not elena_arrested:
-> elena_neutral_path
}
=== elena_recruited_path ===
Agent 0x99: You recruited her. That was... unexpected. And brilliant.
Agent 0x99: Elena is cooperating fully. Her knowledge of ENTROPY's cryptographic infrastructure is extraordinary.
+ [Was it the right call?]
-> recruitment_validation
+ [She was morally conflicted. I gave her an out.]
-> moral_reasoning
=== recruitment_validation ===
Agent 0x99: Absolutely. A cryptographer of her caliber is worth more as an asset than a prisoner.
Agent 0x99: She's already provided intelligence on Crypto Anarchist cells in three countries.
Agent 0x99: And {player_name}—she's teaching our analysts. Her expertise is leveling up our entire cryptography division.
-> recruitment_impact
=== moral_reasoning ===
Agent 0x99: You read her correctly. She built that infrastructure for "financial freedom."
Agent 0x99: When she saw the casualty projections, the coordinated attacks, The Architect's plans... it broke something.
Agent 0x99: She's not a terrorist. She's a brilliant person who got swept up in ideology and didn't look at the consequences.
-> recruitment_impact
=== recruitment_impact ===
Agent 0x99: The intelligence she's providing is dismantling Crypto Anarchist cells globally.
Agent 0x99: And she's documenting her work—academic papers on cryptocurrency forensics, training materials for law enforcement.
Agent 0x99: You didn't just recruit an asset. You flipped an ideology.
+ [What about Satoshi Nakamoto II?]
-> satoshi_aftermath
+ [I'm glad it worked out]
-> password_cracking_discussion
=== elena_arrested_path ===
Agent 0x99: You arrested Elena Volkov. Clean, professional, by the book.
Agent 0x99: She's facing 20-35 years for money laundering, conspiracy, and facilitating terrorist financing.
+ [She knew what she was enabling]
-> arrest_justification
+ [Was recruitment possible?]
-> missed_opportunity
=== arrest_justification ===
Agent 0x99: She did. $12.8 million funneled through her infrastructure to fund attacks with 180-340 projected casualties.
Agent 0x99: Moral conflict doesn't erase culpability. She built the systems. She knew they were being abused.
-> arrest_impact
=== missed_opportunity ===
Agent 0x99: Possibly. Our psychological profile suggested she was conflicted about ENTROPY's use of her work.
Agent 0x99: But recruitment is high-risk. If it fails, you've compromised the operation.
Agent 0x99: You made the safe call. Can't fault that.
-> arrest_impact
=== arrest_impact ===
Agent 0x99: With Elena arrested, Crypto Anarchist cells are losing technical expertise.
Agent 0x99: They'll replace her eventually, but it'll take time. That's operational disruption we can exploit.
+ [What about Satoshi Nakamoto II?]
-> satoshi_aftermath
+ [What happens next?]
-> password_cracking_discussion
=== elena_neutral_path ===
Agent 0x99: Elena wasn't arrested or recruited. Interesting.
Agent 0x99: She's under surveillance now. We're monitoring her communications, tracking her movements.
Agent 0x99: Long-term intelligence gathering. Sometimes that's the right play.
-> password_cracking_discussion
// ================================================
// SATOSHI AFTERMATH
// ================================================
=== satoshi_aftermath ===
Agent 0x99: "Satoshi Nakamoto II" was arrested trying to flee the country.
Agent 0x99: True believer to the end. Ranted about "financial freedom" during booking.
Agent 0x99: HashChain Exchange is seized. Their mixing infrastructure is shut down.
Agent 0x99: ENTROPY cells are scrambling to find alternative money laundering channels. That's a major operational disruption.
-> password_cracking_discussion
// ================================================
// PASSWORD CRACKING & VM WORK
// ================================================
=== password_cracking_discussion ===
Agent 0x99: Let's talk about the technical work. Password cracking against their backend servers.
{flag1_submitted && flag2_submitted && flag3_submitted && flag4_submitted:
-> all_flags_complete
}
{flag1_submitted:
-> partial_flags
}
{not flag1_submitted:
-> minimal_flags
}
=== all_flags_complete ===
Agent 0x99: All four flags submitted. Complete network penetration.
Agent 0x99: You cracked passwords, exploited credential reuse, accessed the financial database, and mapped the entire infrastructure.
Agent 0x99: Textbook password cracking methodology. That's the kind of technical work that gets operations promoted.
-> evidence_review
=== partial_flags ===
Agent 0x99: You submitted some flags but not all. Partial server access.
Agent 0x99: Our forensics team is recovering the rest, but you got the critical systems.
Agent 0x99: Next time, push for complete access. Every flag is intelligence.
-> evidence_review
=== minimal_flags ===
Agent 0x99: No VM flags submitted. The financial intelligence came from physical documents rather than server access.
Agent 0x99: That works, but server access would have given us more—wallet private keys, complete transaction histories, encrypted communications.
Agent 0x99: Consider prioritizing technical exploitation in future missions.
-> evidence_review
// ================================================
// EVIDENCE REVIEW
// ================================================
=== evidence_review ===
{found_blockchain_evidence && found_architects_fund:
-> evidence_complete
}
{found_blockchain_evidence && not found_architects_fund:
-> evidence_partial_blockchain
}
{not found_blockchain_evidence && found_architects_fund:
-> evidence_partial_fund
}
{not found_blockchain_evidence && not found_architects_fund:
-> evidence_minimal
}
=== evidence_complete ===
Agent 0x99: You recovered both critical documents: the ENTROPY transaction network analysis and The Architect's Fund allocation.
Agent 0x99: Complete financial mapping. Every cell, every wallet, every transaction, and the coordinated attack plan.
Agent 0x99: This is prosecutor-grade evidence. Multiple ENTROPY cells will face financial crime charges.
-> lore_discussion
=== evidence_partial_blockchain ===
Agent 0x99: You found the blockchain transaction analysis—all ENTROPY cells connected financially.
Agent 0x99: Without The Architect's Fund allocation, we're missing the coordinated attack details, but the financial network map is solid intelligence.
-> lore_discussion
=== evidence_partial_fund ===
Agent 0x99: You found The Architect's Fund allocation—the coordinated attack funding plan.
Agent 0x99: Without the blockchain transaction analysis, we're missing some cell connections, but the allocation document is smoking-gun evidence.
-> lore_discussion
=== evidence_minimal ===
Agent 0x99: Limited document recovery. Forensics is pulling data from seized servers.
Agent 0x99: The operation succeeded, but prioritize evidence collection in future missions. Physical documents are harder to dispute in court.
-> lore_discussion
// ================================================
// LORE FRAGMENTS
// ================================================
=== lore_discussion ===
{lore_collected >= 3:
-> significant_lore
}
{lore_collected >= 1:
-> some_lore
}
{lore_collected == 0:
-> minimal_lore
}
=== significant_lore ===
Agent 0x99: You collected significant LORE fragments. Crypto Anarchist ideology, their role in ENTROPY, connections to The Architect.
Agent 0x99: And that file you found in Satoshi's safe—The Architect's identity intelligence.
Agent 0x99: Dr. Adrian Tesseract. Former SAFETYNET chief strategist. Defected seven years ago.
+ [The Architect is former SAFETYNET?]
-> tesseract_revelation
+ [That's horrifying]
-> tesseract_revelation
=== tesseract_revelation ===
Agent 0x99: 87% probability according to the file. Not confirmed, but... it fits.
Agent 0x99: Tesseract was brilliant. Mentored half the agents currently in the field. Strategic genius.
Agent 0x99: Then he disappeared after a philosophical disagreement. Believed the cybersecurity arms race would accelerate societal collapse.
+ [He's trying to cause what he predicted]
-> accelerationism_discussion
+ [Do you know him?]
-> personal_connection
=== accelerationism_discussion ===
Agent 0x99: Accelerationism. If collapse is inevitable, speed it up. Make it happen on controlled terms.
Agent 0x99: Tesseract thinks ENTROPY's attacks are "teaching harsh lessons" that will ultimately save more lives.
Agent 0x99: It's monstrous. But it's not random violence. It's ideology taken to its logical, horrifying extreme.
-> mission_conclusion
=== personal_connection ===
Agent 0x99: ...I was one of his students.
Agent 0x99: Best strategic mind I've ever encountered. Taught me half of what I know about intelligence work.
Agent 0x99: If it's really him... {player_name}, this got personal.
-> mission_conclusion
=== some_lore ===
Agent 0x99: You collected some LORE fragments. Good situational awareness.
Agent 0x99: Understanding ENTROPY's ideology helps predict their behavior. Keep gathering context in future missions.
-> mission_conclusion
=== minimal_lore ===
Agent 0x99: Limited LORE collection. You focused on operational objectives.
Agent 0x99: That works, but context helps predict enemy behavior. Consider exploring more in future missions.
-> mission_conclusion
// ================================================
// MISSION CONCLUSION
// ================================================
=== mission_conclusion ===
Agent 0x99: {player_name}, you just changed the entire campaign against ENTROPY.
{assets_seized:
Agent 0x99: $12.8 million seized. Coordinated operations disrupted. Immediate strategic impact.
- else:
Agent 0x99: Fund monitoring enabled. Complete financial network mapped. Long-term strategic intelligence.
}
{elena_recruited:
Agent 0x99: Elena Volkov recruited. Cryptographic expertise added to SAFETYNET capabilities.
}
{found_blockchain_evidence && found_architects_fund:
Agent 0x99: Complete financial evidence recovered. Multiple prosecutorial cases enabled.
}
Agent 0x99: This is the kind of mission that gets studied in training programs.
-> final_assessment
// ================================================
// FINAL ASSESSMENT
// ================================================
=== final_assessment ===
Agent 0x99: We're moving into the endgame now.
Agent 0x99: We know The Architect exists. We know they're coordinating all ENTROPY cells. We have a probable identity.
Agent 0x99: And thanks to your work, we understand their financial infrastructure.
+ [What's next?]
-> next_mission_hint
+ [This is just the beginning]
-> next_mission_hint
=== next_mission_hint ===
Agent 0x99: More ENTROPY cells. More pieces of The Architect's plan.
Agent 0x99: Every mission gets us closer to the truth. And closer to stopping whatever "Masterpiece" they're planning.
Agent 0x99: Get some rest, {player_name}. You've earned it.
Agent 0x99: SAFETYNET will call when we need you again.
#exit_conversation
-> END

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,402 @@
// ===========================================
// Mission 6: NPC - Blockchain Analyst
// Technical expert, innocent employee
// ===========================================
VAR analyst_talked = false
VAR topic_forensics = false
VAR topic_patterns = false
VAR topic_concerns = false
VAR first_meeting = true
// External variables
VAR player_name = "Agent 0x00"
// ===========================================
// INITIAL MEETING
// ===========================================
=== start ===
#speaker:analyst
{first_meeting:
~ first_meeting = false
#display:analyst-focused
A focused analyst examines transaction graphs on a large monitor, nodes and edges forming complex networks.
Analyst: *doesn't look up* If you're here about the flagged transactions, talk to Elena.
Analyst: I just run the analysis. She makes the compliance decisions.
+ [I'm from FinCEN. Just observing your process.]
You: Impressive analysis setup.
Analyst: *glances up* Oh. Compliance audit. Right.
-> audit_response
+ [What transactions are you analyzing?]
-> transaction_work
+ [I'll talk to Elena then]
#exit_conversation
Analyst: *already back to screens* Okay.
-> DONE
}
{not first_meeting:
#display:analyst-neutral
Analyst: Need something?
-> hub
}
=== audit_response ===
#speaker:analyst
Analyst: Thanks. I built most of this myself. Transaction graph analysis, wallet clustering algorithms.
Analyst: We track patterns that might indicate money laundering or sanctions violations.
+ [Do you find many violations?]
-> violations_discussion
+ [Tell me about your methodology]
-> methodology_discussion
=== transaction_work ===
#speaker:analyst
Analyst: Current project: mapping large-volume mixing patterns through our exchange.
Analyst: Multiple wallets converting to Monero simultaneously, similar amounts, coordinated timing.
+ [Is that suspicious?]
-> suspicious_patterns
+ [What do the patterns show?]
-> suspicious_patterns
// ===========================================
// CONVERSATION HUB
// ===========================================
=== hub ===
+ {not topic_forensics} [Ask about blockchain forensics]
-> forensics_discussion
+ {not topic_patterns} [Ask about concerning patterns]
-> pattern_concerns
+ {not topic_concerns} [Ask if analyst has concerns about the exchange]
-> personal_concerns
+ [Thanks for your time]
#exit_conversation
#speaker:analyst
Analyst: *already back to work* Uh-huh.
-> DONE
// ===========================================
// FORENSICS DISCUSSION
// ===========================================
=== forensics_discussion ===
#speaker:analyst
~ topic_forensics = true
Analyst: Blockchain forensics is fascinating. Every transaction is public, but attribution is hard.
Analyst: You track wallet behaviors, cluster related addresses, analyze timing patterns.
Analyst: Like digital detective work. Follow the money across thousands of transactions.
+ [Can you trace privacy coins like Monero?]
-> monero_forensics
+ [What patterns indicate illegal activity?]
-> illegal_patterns
=== monero_forensics ===
#speaker:analyst
Analyst: Not really. Monero uses ring signatures and stealth addresses. Transactions are genuinely untraceable.
Analyst: That's why exchanges like ours are critical choke points. We see the conversion: Bitcoin in, Monero mix, Bitcoin out.
Analyst: Blockchain doesn't show the middle step, but our internal logs do.
+ [So you can map what the blockchain can't?]
-> internal_logs_value
+ [That makes your logs valuable]
-> internal_logs_value
=== internal_logs_value ===
#speaker:analyst
Analyst: Exactly. Our internal database is way more valuable than the public blockchain for forensics.
Analyst: Which is why Elena's so careful about access. If someone gets our logs, they can unmix transactions we've processed.
Analyst: Privacy customers would not be happy about that.
-> hub
=== illegal_patterns ===
#speaker:analyst
Analyst: High-volume mixing with no clear business purpose. Coordinated multi-wallet behaviors.
Analyst: Amounts just under reporting thresholds—structuring. Rapid conversions avoiding single-transaction limits.
Analyst: And timing patterns. If multiple unrelated wallets mix simultaneously with similar amounts? Coordinated operation.
-> hub
// ===========================================
// VIOLATIONS DISCUSSION
// ===========================================
=== violations_discussion ===
#speaker:analyst
Analyst: We file SARs—Suspicious Activity Reports—pretty regularly.
Analyst: High-value privacy coin mixing attracts... a certain clientele.
Analyst: But most of it's legal. People have a right to financial privacy.
-> methodology_discussion
=== methodology_discussion ===
#speaker:analyst
Analyst: I run transaction graph analysis—map all connected wallets, identify clusters.
Analyst: Then timing analysis—look for coordinated behaviors.
Analyst: Finally, amount analysis—large conversions, unusual patterns.
Analyst: Flag anything suspicious to Elena. She decides whether to file SARs or investigate deeper.
-> hub
// ===========================================
// SUSPICIOUS PATTERNS
// ===========================================
=== suspicious_patterns ===
#speaker:analyst
Analyst: *frowns* Yeah. Very.
Analyst: Multiple large wallets. Coordinated conversions. Consistent timing every Friday night.
Analyst: Amounts totaling... *checks screen* ...about $12-13 million over the past month.
+ [Where's the money going?]
-> destination_discussion
+ [Have you reported this?]
-> reporting_status
=== destination_discussion ===
#speaker:analyst
Analyst: That's the weird part. After mixing, it all reconverges to a single destination wallet.
Analyst: Different source wallets, different mixing paths, same destination.
Analyst: Either someone's consolidating funds from multiple sources, or...
+ [Or what?]
-> coordinated_funding
+ [Did you flag this to Elena?]
-> elena_flagging
=== coordinated_funding ===
#speaker:analyst
Analyst: Or it's coordinated funding for something. Multiple cells paying into a central operation.
Analyst: That's... that's the kind of pattern you see with organized crime or terrorism.
Analyst: I really hope Elena knows what she's doing with this investigation.
-> hub
=== elena_flagging ===
#speaker:analyst
Analyst: Yeah, like two weeks ago. She's been analyzing it personally.
Analyst: Hasn't told me her conclusions yet. Just said to keep monitoring.
+ [Does she seem concerned?]
-> elena_concern
+ [What's your read on it?]
-> analyst_opinion
=== elena_concern ===
#speaker:analyst
Analyst: Hard to tell. Elena's always intense.
Analyst: But yeah, she's been stressed. Stays late, re-runs my analyses, asks detailed questions.
Analyst: Either she's being thorough, or something's really bothering her.
-> hub
=== analyst_opinion ===
#speaker:analyst
Analyst: *uncomfortable* Honestly? It looks bad.
Analyst: Coordinated mixing, consistent timing, large amounts, single destination...
Analyst: If I saw this pattern at any other exchange, I'd assume criminal network funding.
Analyst: But Satoshi says we're a legitimate business. Elena vouches for our compliance.
Analyst: So I'm trying not to jump to conclusions.
-> hub
=== reporting_status ===
#speaker:analyst
Analyst: Flagged to Elena. She's investigating.
Analyst: She hasn't filed an external SAR yet, which means either it's legitimate activity or she's gathering more evidence.
Analyst: I trust her judgment. She's way smarter than me.
-> hub
// ===========================================
// PATTERN CONCERNS
// ===========================================
=== pattern_concerns ===
#speaker:analyst
~ topic_patterns = true
Analyst: *pulls up a graph* Look at this. Five different source wallets.
Analyst: They convert to Monero on the same schedule. Mix through our infrastructure. Reconverge to one destination.
Analyst: Pattern repeats weekly. Like clockwork.
+ [What do you think it means?]
-> pattern_interpretation
+ [Can you identify the source wallets?]
-> source_identification
=== pattern_interpretation ===
#speaker:analyst
Analyst: My guess? Coordinated fundraising. Multiple revenue streams feeding a central operation.
Analyst: Could be legit—distributed business with centralized accounting.
Analyst: Could be money laundering—criminal network consolidating funds.
Analyst: Without knowing who controls the wallets, it's hard to say.
-> hub
=== source_identification ===
#speaker:analyst
Analyst: Not from blockchain alone. Monero anonymization is really good.
Analyst: Our internal logs have more info, but Elena restricts access.
Analyst: I can see the patterns. She can see the actual wallet addresses and transaction details.
-> hub
// ===========================================
// PERSONAL CONCERNS
// ===========================================
=== personal_concerns ===
#speaker:analyst
~ topic_concerns = true
Analyst: *pauses work* You want my honest opinion?
Analyst: I love blockchain forensics. I love privacy technology. I believe in what we're supposed to be doing.
+ [But?]
-> but_response
+ [What are you worried about?]
-> worry_response
=== but_response ===
#speaker:analyst
Analyst: But some of these patterns scare me.
Analyst: I'm analyzing transactions that might be funding... I don't know. Terrorism? Organized crime?
Analyst: And I tell myself it's not my job to judge. I'm just the analyst. Elena makes the decisions.
Analyst: But that feels like an excuse.
-> moral_conflict
=== worry_response ===
#speaker:analyst
Analyst: That we're not just providing privacy. We're providing cover.
Analyst: That our ideals about financial freedom are being exploited by people who... aren't idealists.
-> moral_conflict
=== moral_conflict ===
#speaker:analyst
Analyst: *looks at you* That's why you're here, isn't it? FinCEN doesn't audit mid-size exchanges unless something's flagged.
Analyst: Someone thinks we're dirty.
+ [I can't comment on ongoing investigations]
-> professional_response
+ [Do you think the exchange is being used illegally?]
-> direct_question
=== professional_response ===
#speaker:analyst
Analyst: *laughs bitterly* Right. Professional.
Analyst: Well, when your investigation concludes, I hope you tell me whether I've been helping criminals.
Analyst: I'd like to know if my work has been... meaningful. Or just enabling.
#exit_conversation
-> DONE
=== direct_question ===
#speaker:analyst
Analyst: *long pause*
Analyst: I think some of our customers are using our privacy infrastructure for things that would horrify me if I knew the details.
Analyst: I think Elena knows more than she's telling me.
Analyst: And I think Satoshi cares more about ideology than consequences.
Analyst: So yeah. Probably.
#exit_conversation
-> DONE

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,510 @@
// ===========================================
// Mission 6: NPC - Dr. Elena Volkov
// CTO of HashChain Exchange, Recruitable Asset
// ===========================================
VAR elena_trust = 0 // -50 to 100 scale
VAR elena_suspicious = false
VAR moral_conflict_revealed = false
VAR shown_casualties = false
VAR shown_architects_fund = false
VAR recruitment_offered = false
VAR recruitment_accepted = false
VAR recruitment_refused = false
VAR password_list_given = false
VAR badge_discussion = false
VAR first_meeting = true
// External variables
VAR player_name = "Agent 0x00"
VAR found_blockchain_evidence = false
VAR found_architects_fund = false
VAR elena_recruited = false
VAR elena_arrested = false
// ===========================================
// INITIAL MEETING
// ===========================================
=== start ===
#speaker:elena_volkov
{first_meeting:
~ first_meeting = false
#display:elena-professional
A sharp-eyed woman in her mid-30s looks up from three monitors displaying blockchain transaction graphs.
Elena: You must be the FinCEN auditor. Dr. Elena Volkov, Chief Technology Officer.
Elena: Cryptocurrency compliance. Always a pleasure. *her tone suggests otherwise*
+ [Thank you for meeting with me, Dr. Volkov]
You: I understand regulatory audits can be disruptive.
~ elena_trust += 10
-> professional_response
+ [Let's make this efficient. I need system access]
You: Backend servers, transaction logs, wallet infrastructure.
~ elena_trust -= 5
~ elena_suspicious = true
-> suspicious_response
+ [Your cryptography research is impressive]
You: 37 publications, 2,847 citations. That's extraordinary.
~ elena_trust += 15
-> academic_response
}
{not first_meeting:
#display:elena-neutral
Elena: Back again. What do you need?
-> hub
}
=== professional_response ===
#speaker:elena_volkov
Elena: I appreciate the courtesy. Most auditors treat us like criminals from day one.
Elena: We run a legitimate exchange. Privacy-focused, yes. But legal.
~ elena_trust += 5
-> audit_discussion
=== suspicious_response ===
#speaker:elena_volkov
Elena: *narrows eyes* Eager, aren't you?
Elena: FinCEN auditors usually start with paperwork. KYC compliance, AML procedures.
Elena: You're going straight for the technical infrastructure. Unusual.
~ elena_suspicious = true
-> audit_discussion
=== academic_response ===
#speaker:elena_volkov
Elena: *surprised* You read my work?
Elena: Most auditors see "cryptographer" and assume "hacker." Refreshing to meet someone who understands the difference.
Elena: I built this exchange's infrastructure on sound cryptographic principles. Zero-knowledge proofs, homomorphic encryption...
~ elena_trust += 10
-> academic_discussion
=== academic_discussion ===
#speaker:elena_volkov
Elena: My research focuses on financial privacy. Governments shouldn't be able to track every transaction.
Elena: That's not a criminal position. It's a privacy rights position.
+ [Privacy has legitimate uses]
You: Financial surveillance is concerning. I understand the principle.
~ elena_trust += 10
-> hub
+ [Privacy also enables money laundering]
You: Which is why we audit exchanges.
Elena: Fair. Everything we do is documented and legal.
~ elena_trust += 5
-> hub
=== audit_discussion ===
#speaker:elena_volkov
Elena: What specifically does FinCEN want to see?
Elena: Our KYC procedures are compliant. Our transaction monitoring meets regulatory thresholds.
{elena_suspicious:
Elena: Unless you're looking for something beyond standard compliance?
}
-> hub
// ===========================================
// CONVERSATION HUB
// ===========================================
=== hub ===
+ {not password_list_given} [Ask about server access credentials]
-> request_passwords
+ {not badge_discussion} [Ask about access control systems]
-> discuss_badges
+ {elena_trust >= 20 and found_blockchain_evidence and not shown_casualties} [Show blockchain transaction analysis]
-> show_blockchain_evidence
+ {shown_casualties and not recruitment_offered} [Reveal SAFETYNET identity]
-> reveal_identity
+ {recruitment_offered and not recruitment_accepted and not recruitment_refused} [Press for recruitment decision]
-> recruitment_decision
+ {elena_trust < -10} [Arrest Elena Volkov]
-> arrest_elena
+ [That's all for now]
#exit_conversation
#speaker:elena_volkov
{elena_trust >= 30:
Elena: Let me know if you need anything else.
}
{elena_trust < 30 and elena_trust >= 0:
Elena: Alright. I'll be here.
}
{elena_trust < 0:
Elena: *coldly* Fine.
}
-> DONE
// ===========================================
// REQUEST PASSWORDS
// ===========================================
=== request_passwords ===
#speaker:elena_volkov
You: I need to test your backend server security. Password strength analysis.
{elena_trust >= 15:
Elena: That's... actually reasonable for a security audit.
Elena: Here's a password dictionary we use for testing. Crypto-themed patterns are common in this industry.
#give_item:password_list
#complete_task:obtain_access_tools
~ password_list_given = true
~ elena_trust += 5
Elena: Bitcoin2024, ethereum2025, satoshi2024... you get the idea.
-> hub
- else:
Elena: I don't know you well enough to give you server credentials.
Elena: Build trust first. Then we can discuss technical access.
-> hub
}
// ===========================================
// BADGE DISCUSSION
// ===========================================
=== discuss_badges ===
#speaker:elena_volkov
~ badge_discussion = true
You: Tell me about your RFID access control systems.
Elena: Standard corporate setup. Employee badges for trading floor, CTO badge for server room, executive badges for restricted areas.
{elena_trust >= 25:
Elena: Between you and me, our security is solid. Satoshi gets paranoid about access control.
~ elena_trust += 5
}
-> hub
// ===========================================
// SHOW BLOCKCHAIN EVIDENCE
// ===========================================
=== show_blockchain_evidence ===
#speaker:elena_volkov
~ shown_casualties = true
You: Dr. Volkov, I need to show you something.
You show her the ENTROPY transaction network analysis: Mission 2 ransomware, Mission 5 espionage, all flowing through HashChain's mixers.
Elena: *face goes pale* Where did you get this?
Elena: That's... that's our internal analysis. How did you...
+ [You analyzed these transactions yourself]
-> elena_realization
+ [You knew what this infrastructure was being used for]
-> elena_confrontation
=== elena_realization ===
#speaker:elena_volkov
Elena: I... I ran those analyses because the transaction patterns were suspicious.
Elena: Hospital ransomware? Corporate espionage? I flagged these for investigation!
{found_architects_fund:
You: And The Architect's Fund? $12.8 million for coordinated attacks with 180-340 projected casualties?
~ shown_architects_fund = true
-> architects_fund_reaction
- else:
You: The mixing services you built are enabling terrorism.
-> moral_conflict
}
=== elena_confrontation ===
#speaker:elena_volkov
Elena: *defensive* I built privacy infrastructure! What people use it for isn't my responsibility!
Elena: I design cryptographic systems. That's like blaming the inventor of the printing press for propaganda!
+ [You're not that naive]
-> moral_conflict
+ [You analyzed the transactions. You knew.]
-> moral_conflict
=== architects_fund_reaction ===
#speaker:elena_volkov
Elena: *reads the document* No. No, this can't be...
Elena: 180-340 casualties? They CALCULATED death tolls?
Elena: I built this for financial freedom. Not... not mass murder.
~ moral_conflict_revealed = true
~ elena_trust += 20
-> moral_conflict
=== moral_conflict ===
#speaker:elena_volkov
~ moral_conflict_revealed = true
Elena: *hands shaking* I knew the exchange was being used for... questionable activities.
Elena: But I told myself it was financial freedom. Privacy rights. Fighting government surveillance.
{shown_architects_fund:
Elena: Not funding coordinated terrorist attacks. Not calculating how many people would die.
}
Elena: *looks up* Who are you? You're not FinCEN.
-> reveal_identity
// ===========================================
// REVEAL SAFETYNET IDENTITY
// ===========================================
=== reveal_identity ===
#speaker:elena_volkov
~ recruitment_offered = true
You: SAFETYNET. Counter-terrorism intelligence.
You: The exchange you built is the financial hub for ENTROPY—every cell we've encountered is funded through your mixing infrastructure.
Elena: *closes eyes* My research. My work. Used to kill people.
+ [You didn't know the full scope. You can help us now.]
-> recruitment_offer_compassionate
+ [You built the systems. You're culpable. But you can make this right.]
-> recruitment_offer_pragmatic
+ [You're under arrest for facilitating terrorism]
-> arrest_elena
=== recruitment_offer_compassionate ===
#speaker:elena_volkov
You: Dr. Volkov, you're a brilliant cryptographer who got swept up in ideology.
You: You built these systems for financial freedom. ENTROPY corrupted your work.
You: But you can help us dismantle their network. Your expertise could save hundreds of lives.
~ elena_trust += 15
-> recruitment_choice
=== recruitment_offer_pragmatic ===
#speaker:elena_volkov
You: You face 20-35 years for money laundering and facilitating terrorism.
You: Or you cooperate with SAFETYNET. Provide intelligence, testify against ENTROPY cells, help us trace their funding.
You: Your choice: prison or redemption.
~ elena_trust += 5
-> recruitment_choice
// ===========================================
// RECRUITMENT CHOICE
// ===========================================
=== recruitment_choice ===
#speaker:elena_volkov
Elena: *long silence*
Elena: If I cooperate... what happens to my research? My career?
+ [Your research continues—for SAFETYNET. Help us instead of ENTROPY.]
-> recruitment_appeal_purpose
+ [Your career is over either way. But cooperation keeps you free.]
-> recruitment_appeal_freedom
+ [Time's up. Decide now.]
-> recruitment_decision
=== recruitment_appeal_purpose ===
#speaker:elena_volkov
You: SAFETYNET needs cryptographers. Your expertise in cryptocurrency forensics, privacy systems, blockchain analysis...
You: You could teach our analysts. Write papers. Actually contribute to stopping terrorism instead of funding it.
~ elena_trust += 10
Elena: *softly* Purpose over punishment.
-> recruitment_decision
=== recruitment_appeal_freedom ===
#speaker:elena_volkov
You: Cooperation means witness protection, reduced sentencing, possibly immunity if your intelligence is valuable enough.
You: Refusal means maximum sentencing for every transaction you enabled.
Elena: *bitter laugh* Freedom. The thing I thought I was building.
-> recruitment_decision
// ===========================================
// RECRUITMENT DECISION
// ===========================================
=== recruitment_decision ===
#speaker:elena_volkov
{elena_trust >= 40:
-> recruitment_accepted_path
}
{elena_trust >= 20 and elena_trust < 40:
-> recruitment_uncertain
}
{elena_trust < 20:
-> recruitment_refused_path
}
=== recruitment_accepted_path ===
#speaker:elena_volkov
~ recruitment_accepted = true
Elena: *takes deep breath* I'll cooperate.
Elena: On one condition: I want to see the intelligence I provide being used. Not disappeared into bureaucracy.
Elena: I want to know I'm making this right.
+ [Agreed. We'll keep you informed.]
-> recruitment_finalized
+ [You're not in a position to negotiate]
~ elena_trust -= 10
-> recruitment_uncertain
=== recruitment_finalized ===
#speaker:elena_volkov
#set_variable:elena_recruited=true
#complete_task:decide_elena_fate
Elena: Then yes. I'll help you dismantle ENTROPY's financial network.
Elena: Starting with Crypto Anarchist cells in three countries I haven't told Satoshi about.
Elena: And {player_name}? Thank you. For giving me a chance to fix what I broke.
#exit_conversation
-> DONE
=== recruitment_uncertain ===
#speaker:elena_volkov
Elena: I... I need more time. This is my life you're asking me to turn over.
+ [You don't have time. ENTROPY is distributing $12.8M in 72 hours.]
{shown_architects_fund:
Elena: *anguished* I know! I analyzed those transactions!
~ elena_trust += 10
-> recruitment_decision
}
{not shown_architects_fund:
Elena: What are you talking about?
-> explain_time_pressure
}
+ [Fine. But I'm not offering this again.]
-> recruitment_refused_path
=== explain_time_pressure ===
#speaker:elena_volkov
You: The Architect's Fund. $12.8 million allocated to six ENTROPY cells. Coordinated attacks.
You: If you don't help us stop the fund distribution, 180-340 people die.
~ shown_architects_fund = true
~ elena_trust += 15
-> recruitment_decision
=== recruitment_refused_path ===
#speaker:elena_volkov
~ recruitment_refused = true
Elena: I won't betray Satoshi. Or the principles this exchange was built on.
Elena: Financial privacy is a right. If some people abuse it, that's on them.
+ [Then you're complicit in terrorism]
-> arrest_elena
+ [You're making a mistake]
-> arrest_elena
// ===========================================
// ARREST ELENA
// ===========================================
=== arrest_elena ===
#speaker:elena_volkov
You: Dr. Elena Volkov, you're under arrest for money laundering, facilitating terrorism, and conspiracy.
#set_variable:elena_arrested=true
#complete_task:decide_elena_fate
{elena_trust >= 20:
Elena: *quietly* I really thought I was doing the right thing.
Elena: Financial freedom. Privacy rights. I was so sure...
- else:
Elena: *defiant* This is a violation of everything crypto stands for.
Elena: You're proving our point. Government tyranny.
}
Elena: *hands offered for cuffs* I hope arresting me was worth it.
#exit_conversation
-> DONE

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,278 @@
// ===========================================
// Mission 6: NPC - Crypto Trader
// Innocent employee, provides context
// ===========================================
VAR trader_talked = false
VAR topic_volume = false
VAR topic_monero = false
VAR topic_elena = false
VAR first_meeting = true
// External variables
VAR player_name = "Agent 0x00"
// ===========================================
// INITIAL MEETING
// ===========================================
=== start ===
#speaker:trader
{first_meeting:
~ first_meeting = false
#display:trader-casual
A young trader watches multiple crypto price charts, occasionally placing trades.
Trader: Hey, you're the compliance person, right? From FinCEN?
Trader: Don't worry, we're legit. Mostly. *grins*
+ [Mostly?]
You: That's an interesting qualifier.
Trader: *laughs* I'm kidding. Everything's above board. Elena makes sure of that.
-> hub
+ [I'm just doing a standard audit]
You: Nothing to worry about if everything's compliant.
Trader: Cool cool. Let me know if you need anything.
-> hub
+ [Tell me about the exchange's operations]
-> operations_overview
}
{not first_meeting:
#display:trader-friendly
Trader: What's up?
-> hub
}
=== operations_overview ===
#speaker:trader
Trader: We're a mid-size crypto exchange. Focus on privacy coins—Monero, Zcash, stuff like that.
Trader: High volume, fast transactions, low fees. Competitive market.
+ [Why focus on privacy coins?]
-> privacy_coin_focus
+ [What's the daily volume?]
~ topic_volume = true
-> volume_discussion
// ===========================================
// CONVERSATION HUB
// ===========================================
=== hub ===
+ {not topic_volume} [Ask about trading volume]
-> volume_discussion
+ {not topic_monero} [Ask about Monero usage]
-> monero_discussion
+ {not topic_elena} [Ask about Elena Volkov]
-> elena_discussion
+ [That's all, thanks]
#exit_conversation
#speaker:trader
Trader: No problem. Happy trading!
-> DONE
// ===========================================
// TRADING VOLUME
// ===========================================
=== volume_discussion ===
#speaker:trader
~ topic_volume = true
Trader: We're doing like $800-900 million USD equivalent per day.
Trader: Not bad for a mid-size exchange. Elena's infrastructure is solid.
Trader: Mostly Bitcoin, Ethereum, but the Monero volume has been crazy lately.
+ [Crazy how?]
-> monero_surge
+ [That's impressive volume]
Trader: Yeah, privacy coin demand is skyrocketing.
-> hub
=== monero_surge ===
#speaker:trader
Trader: Like, 3-4x normal. Big wallets converting Bitcoin to Monero, mixing through multiple addresses, converting back.
Trader: Classic mixing pattern. Totally legal, but... yeah.
+ [You report these patterns?]
-> reporting_discussion
+ [Is that suspicious?]
-> suspicious_activity
=== reporting_discussion ===
#speaker:trader
Trader: Oh yeah, we flag everything. Elena runs analysis, files SARs when needed.
Trader: We're compliant. Just... we're also privacy-focused. That's our brand.
-> hub
=== suspicious_activity ===
#speaker:trader
Trader: *shrugs* Depends on your perspective.
Trader: Some people want financial privacy. Some want to hide money. Hard to tell which is which from transaction patterns.
Trader: That's your job, I guess. *gestures at you*
-> hub
// ===========================================
// PRIVACY COIN FOCUS
// ===========================================
=== privacy_coin_focus ===
#speaker:trader
~ topic_monero = true
Trader: Satoshi's philosophy. "Financial freedom through cryptography."
Trader: People should be able to transact without government surveillance. Privacy is a right.
+ [That sounds like ideology, not business]
-> ideology_response
+ [Privacy can enable illegal activity]
-> illegal_activity_response
=== ideology_response ===
#speaker:trader
Trader: It's both! Satoshi's a true believer, but it's also profitable.
Trader: Privacy coin traders pay premium fees. We make bank.
-> hub
=== illegal_activity_response ===
#speaker:trader
Trader: Sure. And regular currency enables illegal activity too.
Trader: You gonna shut down every bank because some people launder money?
Trader: We follow the law. We file reports. What people do with their privacy is their business.
-> hub
// ===========================================
// MONERO DISCUSSION
// ===========================================
=== monero_discussion ===
#speaker:trader
~ topic_monero = true
Trader: Monero's untraceable. That's the whole point.
Trader: Bitcoin is pseudonymous—you can track wallets. Monero is truly anonymous.
Trader: Makes it perfect for privacy. Also perfect for money laundering, I guess.
+ [Do you think the exchange is being used for money laundering?]
-> laundering_opinion
+ [How does the mixing work?]
-> mixing_explanation
=== laundering_opinion ===
#speaker:trader
Trader: *uncomfortable* I mean... I don't ask questions. I just execute trades.
Trader: Elena and Satoshi handle compliance. I'm just the guy watching charts.
+ [You must have suspicions]
-> trader_suspicions
+ [Fair enough]
-> hub
=== trader_suspicions ===
#speaker:trader
Trader: *lowers voice* Between you and me? Some of the transaction patterns are... weird.
Trader: Like, coordinated. Multiple big wallets mixing at the same time, same amounts, same destination patterns.
Trader: I flagged it to Elena. She said she's investigating.
Trader: But honestly? I just want to keep my job and not think about it too hard.
-> hub
=== mixing_explanation ===
#speaker:trader
Trader: User sends Bitcoin to us. We convert to Monero. Send through 5-10 different wallets.
Trader: Then convert back to Bitcoin from a completely unlinked address.
Trader: Blockchain shows Bitcoin in, Bitcoin out. But the Monero middle step? Untraceable.
Trader: Perfectly legal mixing service. We're transparent about it.
-> hub
// ===========================================
// ELENA DISCUSSION
// ===========================================
=== elena_discussion ===
#speaker:trader
~ topic_elena = true
Trader: Elena's brilliant. Like, PhD in cryptography brilliant.
Trader: She designed all our privacy protocols. Zero-knowledge proofs, homomorphic encryption...
Trader: Way above my paygrade. I just use the systems she builds.
+ [Does she seem concerned about compliance?]
-> elena_compliance
+ [What's your impression of her?]
-> elena_impression
=== elena_compliance ===
#speaker:trader
Trader: Obsessively. She reviews every flagged transaction personally.
Trader: Actually, she's been stressed lately. I think some of the activity patterns are bothering her.
Trader: But she hasn't said anything specific.
-> hub
=== elena_impression ===
#speaker:trader
Trader: Smart, intense, kinda distant. But fair.
Trader: She believes in what we're doing—financial privacy as a right.
Trader: I think she struggles with the fact that good tech can be used for bad things.
-> hub

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,329 @@
// ================================================
// Mission 6: Follow the Money - Opening Briefing
// Agent 0x99 "Haxolottle" briefs Agent 0x00
// Financial investigation of ENTROPY's funding network
// ================================================
// Variables for tracking player questions
VAR asked_about_connections = false
VAR asked_about_exchange = false
VAR asked_about_elena = false
VAR asked_about_architect_fund = false
VAR mission_accepted = false
// External variables
VAR player_name = "Agent 0x00"
// ================================================
// START: BRIEFING BEGINS
// ================================================
=== start ===
Agent 0x99: {player_name}, great work on the previous missions. But now we need to answer the big question.
Agent 0x99: Where's the money coming from?
+ [Following the financial trail?]
-> financial_investigation
+ [What money are we talking about?]
-> money_explanation
+ [I'm ready. What's the target?]
-> financial_investigation
// ================================================
// MONEY EXPLANATION
// ================================================
=== money_explanation ===
Agent 0x99: Think about it. The hospital ransomware from Mission 2? $2.4 million paid.
Agent 0x99: The corporate espionage data from Mission 5? $847,000 in cryptocurrency.
Agent 0x99: All ENTROPY cells are funded. Someone's coordinating the finances.
-> financial_investigation
// ================================================
// FINANCIAL INVESTIGATION
// ================================================
=== financial_investigation ===
Agent 0x99: Our blockchain analysts traced the cryptocurrency payments. And they all lead to one place.
Agent 0x99: HashChain Exchange. A cryptocurrency trading platform run by ENTROPY's Crypto Anarchists cell.
+ [How does the exchange fit in?]
~ asked_about_exchange = true
-> exchange_role
+ [What are we dealing with?]
-> crypto_anarchists
+ [Where do all the payments go?]
-> architect_fund_hint
=== exchange_role ===
Agent 0x99: HashChain isn't just a trading platform. It's the financial hub for all ENTROPY operations.
Agent 0x99: They provide mixing services—converting Bitcoin to untraceable privacy coins like Monero, then back again.
Agent 0x99: Every cell funnels money through them. It's the perfect money laundering infrastructure.
-> crypto_anarchists
// ================================================
// CRYPTO ANARCHISTS
// ================================================
=== crypto_anarchists ===
Agent 0x99: The Crypto Anarchists are true believers. "Financial freedom through cryptography."
Agent 0x99: They think government control of money is tyranny. Cryptocurrency is liberation.
+ [So they're ideologically motivated?]
-> ideology_discussion
+ [Who's running HashChain?]
-> leadership_discussion
+ [What's our mission objective?]
-> mission_objectives
=== ideology_discussion ===
Agent 0x99: Absolutely. Their leader calls himself "Satoshi Nakamoto II"—obviously not the real Bitcoin creator.
Agent 0x99: But here's the thing: they're not just running an exchange. They're funding terrorism in the name of accelerating the collapse of centralized finance.
-> leadership_discussion
// ================================================
// LEADERSHIP DISCUSSION
// ================================================
=== leadership_discussion ===
Agent 0x99: Two key targets:
Agent 0x99: "Satoshi Nakamoto II"—the CEO. True believer, charismatic leader, probably unreachable for recruitment.
Agent 0x99: Dr. Elena Volkov—the CTO. Brilliant cryptographer. Former academic. And... potentially recruitable.
+ [Why would she help us?]
~ asked_about_elena = true
-> elena_background
+ [What makes you think she's recruitable?]
~ asked_about_elena = true
-> elena_background
+ [What about the money trail?]
-> architect_fund_hint
=== elena_background ===
Agent 0x99: Elena's a genius. Published 37 papers on cryptography. 2,847 citations.
Agent 0x99: She built HashChain's privacy infrastructure. But our psychological profile suggests moral conflict.
Agent 0x99: She designed these systems for "financial freedom." Now they're being used for ransomware, espionage, funding attacks.
+ [Think she'll flip?]
-> recruitment_possibility
+ [What if she refuses?]
-> arrest_option
=== recruitment_possibility ===
Agent 0x99: It's possible. If you can show her the full scope of what her work is enabling—the casualties, the attacks—she might turn.
Agent 0x99: A cryptographer of her caliber would be a massive intelligence asset.
-> mission_objectives
=== arrest_option ===
Agent 0x99: Then we arrest her and eliminate her expertise from ENTROPY's network.
Agent 0x99: But {player_name}, if there's any chance of recruitment, it's worth trying. Her knowledge could crack multiple cells.
-> mission_objectives
// ================================================
// ARCHITECT FUND HINT
// ================================================
=== architect_fund_hint ===
Agent 0x99: That's what we need you to find out.
Agent 0x99: Our blockchain analysis shows all ENTROPY payments flowing into HashChain's mixers...
Agent 0x99: But then the trail goes dark. Privacy coins make it nearly impossible to track from the outside.
+ [So I need access to their internal records?]
~ asked_about_architect_fund = true
-> internal_access
+ [What am I looking for?]
~ asked_about_architect_fund = true
-> evidence_targets
=== internal_access ===
Agent 0x99: Exactly. Their financial database, transaction logs, wallet recovery keys.
Agent 0x99: The blockchain is public, but their internal mixing records will show us where the money actually goes.
-> evidence_targets
=== evidence_targets ===
Agent 0x99: Look for destination wallets, fund allocations, anything connecting to other ENTROPY cells.
Agent 0x99: If there's a master fund coordinating everything, it'll be in their records.
-> mission_objectives
// ================================================
// MISSION OBJECTIVES
// ================================================
=== mission_objectives ===
Agent 0x99: Your mission objectives:
Agent 0x99: One—Infiltrate HashChain Exchange as a compliance auditor. Perfect cover for financial investigation.
Agent 0x99: Two—Access their backend servers and crack passwords to reach financial records.
Agent 0x99: Three—Map the complete ENTROPY financial network. Every cell, every wallet, every transaction.
+ [How do I access the servers?]
-> technical_approach
+ [What about Elena and Satoshi?]
-> npc_strategy
+ [What resources do I have?]
-> resources
// ================================================
// TECHNICAL APPROACH
// ================================================
=== technical_approach ===
Agent 0x99: Their server room is password-protected. Typical crypto-themed passwords—we'll provide hints.
Agent 0x99: Once you crack the first server, look for credential reuse. System admins get lazy.
Agent 0x99: Your VM access terminal will let you practice password cracking against their infrastructure.
+ [What am I looking for in the financial data?]
-> financial_targets
+ [Tell me about the cover story]
-> cover_story
=== financial_targets ===
Agent 0x99: Transaction records connecting Mission 2's ransomware and Mission 5's espionage payments.
Agent 0x99: Wallet addresses for all ENTROPY cells.
Agent 0x99: And anything about coordinated funding—a master fund distributing money to multiple operations.
-> cover_story
// ================================================
// NPC STRATEGY
// ================================================
=== npc_strategy ===
Agent 0x99: Build rapport with Elena. She's your best intelligence source and potential recruit.
Agent 0x99: Satoshi is a true believer—useful for understanding their ideology, but unlikely to cooperate.
Agent 0x99: The traders and analysts are mostly innocent. They think they work at a legitimate exchange.
-> cover_story
// ================================================
// COVER STORY
// ================================================
=== cover_story ===
Agent 0x99: You're a compliance auditor from FinCEN—Financial Crimes Enforcement Network.
Agent 0x99: Cryptocurrency exchanges face constant regulatory scrutiny. Your audit is completely normal.
Agent 0x99: Elena will meet you as CTO. She'll provide access to systems for "compliance verification."
+ [What if they see through the cover?]
-> cover_backup
+ [I'm ready to deploy]
-> final_briefing
=== cover_backup ===
Agent 0x99: Your credentials are genuine—we have real FinCEN paperwork. HashChain has no reason to suspect.
Agent 0x99: And even if they do? You'll be inside their systems before they can react.
-> final_briefing
// ================================================
// RESOURCES
// ================================================
=== resources ===
Agent 0x99: You'll have phone contact with me throughout the mission.
Agent 0x99: SAFETYNET flag station in their server room for submitting intelligence.
Agent 0x99: And {player_name}—I've uploaded password cracking tools and dictionaries to your VM environment.
+ [What about physical tools?]
-> physical_tools
+ [Understood. Ready to go]
-> final_briefing
=== physical_tools ===
Agent 0x99: RFID badge cloner for accessing restricted areas. You'll find one inside—these crypto types love their security toys.
Agent 0x99: Everything else you need should be available as an "auditor." Leverage your cover.
-> final_briefing
// ================================================
// FINAL BRIEFING
// ================================================
=== final_briefing ===
Agent 0x99: {player_name}, this is a critical mission.
Agent 0x99: We've been fighting individual ENTROPY cells. This is our chance to understand the entire financial infrastructure.
Agent 0x99: Map the network. Find where the money goes. And if you can recruit Elena? That's a strategic intelligence win.
+ [What if I find something bigger than individual cells?]
-> bigger_picture
+ [Any final advice?]
-> final_advice
+ [I'm ready to go]
-> deployment
=== bigger_picture ===
Agent 0x99: Then we've struck gold.
Agent 0x99: If there's a central fund coordinating all ENTROPY operations, that's the kind of intelligence that could let us move against multiple cells simultaneously.
Agent 0x99: Follow the money. It always tells the truth.
-> deployment
=== final_advice ===
Agent 0x99: Remember: Elena is brilliant but conflicted. Appeal to her ethics, not her ideology.
Agent 0x99: Satoshi is a true believer. Understand his perspective but don't expect conversion.
Agent 0x99: And crack those passwords carefully—you'll need access to multiple servers to piece together the complete network.
-> deployment
// ================================================
// DEPLOYMENT
// ================================================
=== deployment ===
Agent 0x99: One more thing: we're racing the clock.
Agent 0x99: Our intelligence suggests a major fund distribution happening soon. If ENTROPY moves money to all cells simultaneously, they're coordinating something big.
Agent 0x99: Get inside. Map the network. Find the fund. And make the critical choices about assets and recruitment.
Agent 0x99: HashChain Exchange is the financial heart of ENTROPY. Let's see if we can stop it from beating.
~ mission_accepted = true
#exit_conversation
-> END

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,372 @@
// ================================================
// Mission 6: Follow the Money - Agent 0x99 Phone Support
// Financial Investigation Guidance & Event Reactions
// Provides help, hints, and contextual support
// ================================================
VAR password_hint_given = false
VAR blockchain_hint_given = false
VAR elena_guidance_given = false
VAR first_contact = true
// External variables
VAR player_name = "Agent 0x00"
VAR found_password_lists = false
VAR found_blockchain_evidence = false
VAR found_architects_fund = false
VAR elena_recruited = false
VAR elena_arrested = false
// ================================================
// START: PHONE SUPPORT
// ================================================
=== start ===
{first_contact:
~ first_contact = false
-> first_call
}
{not first_contact:
-> support_hub
}
// ================================================
// FIRST CALL (Orientation)
// ================================================
=== first_call ===
#speaker:agent_0x99
Agent 0x99: {player_name}, you're inside HashChain Exchange. How's the compliance auditor cover holding up?
Agent 0x99: This is a financial investigation. Follow the money, map the network, and find where ENTROPY's funding goes.
+ [Cover is solid so far]
Agent 0x99: Good. Elena should buy the FinCEN audit story. Crypto exchanges are constantly under regulatory scrutiny.
-> support_hub
+ [What should I focus on first?]
-> initial_guidance
+ [I'll call if I need help]
#exit_conversation
Agent 0x99: Roger that. I'm tracking your progress. Call anytime.
-> support_hub
=== initial_guidance ===
Agent 0x99: Priority one: Build rapport with Elena Volkov, the CTO. She's your access point and potential recruit.
Agent 0x99: Priority two: Access the backend servers. That's where the financial records are.
Agent 0x99: Priority three: Map the complete ENTROPY financial network. Every transaction linking cells together.
-> support_hub
// ================================================
// SUPPORT HUB (General Help)
// ================================================
=== support_hub ===
#speaker:agent_0x99
Agent 0x99: What do you need help with?
+ {not password_hint_given} [Password cracking guidance]
-> password_help
+ {not blockchain_hint_given} [Blockchain analysis tips]
-> blockchain_help
+ {not elena_guidance_given} [Elena Volkov recruitment strategy]
-> elena_guidance
+ [General mission advice]
-> general_advice
+ [I'm good for now]
#exit_conversation
Agent 0x99: Copy that. Call anytime.
-> support_hub
// ================================================
// PASSWORD CRACKING HELP
// ================================================
=== password_help ===
~ password_hint_given = true
Agent 0x99: Server passwords at crypto exchanges follow patterns. Think crypto-themed terms plus years.
Agent 0x99: "bitcoin2024", "ethereum2025", "satoshi2024"—variations on cryptocurrency names and dates.
Agent 0x99: Once you crack the first server, look for credential reuse. Admins get lazy with multiple systems.
+ [What tools should I use?]
Agent 0x99: Your VM environment has Hydra for brute forcing and John the Ripper for hash cracking.
Agent 0x99: Look for password lists in Elena's inventory or around the trading floor.
-> support_hub
+ [Got it, thanks]
-> support_hub
// ================================================
// BLOCKCHAIN ANALYSIS HELP
// ================================================
=== blockchain_help ===
~ blockchain_hint_given = true
Agent 0x99: Blockchain transactions are public, but privacy coins make tracing nearly impossible without internal records.
Agent 0x99: Look for transaction analysis documents in the Blockchain Analysis Lab. They'll have wallet addresses and fund flows.
Agent 0x99: Key targets: wallets from Mission 2's ransomware and Mission 5's espionage. They should all connect through HashChain.
+ [What am I looking for specifically?]
Agent 0x99: Destination wallets. A master fund receiving money from all cells.
Agent 0x99: If there's coordinated funding, the internal records will show it.
-> support_hub
+ [Thanks]
-> support_hub
// ================================================
// ELENA VOLKOV GUIDANCE
// ================================================
=== elena_guidance ===
~ elena_guidance_given = true
Agent 0x99: Elena is brilliant but conflicted. She built this infrastructure for "financial freedom."
Agent 0x99: Now it's funding ransomware, espionage, and attacks. Our psych profile says she's morally troubled.
+ [How do I recruit her?]
-> recruitment_strategy
+ [What if she refuses?]
-> arrest_strategy
=== recruitment_strategy ===
Agent 0x99: Show her the consequences of her work. The ransomware casualties, the coordinated attacks, The Architect's plan.
Agent 0x99: Appeal to her ethics, not her ideology. She's a cryptographer, not a terrorist.
Agent 0x99: If she sees the full scope, she might flip. And {player_name}—her expertise would be invaluable intelligence.
-> support_hub
=== arrest_strategy ===
Agent 0x99: If recruitment fails, arrest her. Eliminate her expertise from ENTROPY's network.
Agent 0x99: But try recruitment first. A cryptographer of her caliber is worth the effort.
-> support_hub
// ================================================
// GENERAL ADVICE
// ================================================
=== general_advice ===
Agent 0x99: Remember: Most employees at HashChain think they work at a legitimate exchange.
Agent 0x99: Elena and Satoshi know about ENTROPY. The traders and analysts are likely innocent.
+ [What about Satoshi Nakamoto II?]
-> satoshi_discussion
+ [What's the priority target?]
-> priority_target
+ [Understood]
-> support_hub
=== satoshi_discussion ===
Agent 0x99: Satoshi is a true believer. "Financial freedom through cryptography."
Agent 0x99: Useful for understanding Crypto Anarchist ideology, but don't expect cooperation.
Agent 0x99: He'll justify everything in the name of accelerating the collapse of centralized finance.
-> support_hub
=== priority_target ===
Agent 0x99: The Architect's Fund. A master wallet coordinating funding to all ENTROPY cells.
Agent 0x99: If we find it, we can map the entire financial network and potentially seize the assets.
-> support_hub
// ================================================
// EVENT: PASSWORD LISTS FOUND
// ================================================
=== on_password_lists_found ===
#speaker:agent_0x99
Agent 0x99: I see you obtained Elena's password dictionary. Smart.
Agent 0x99: Crypto-themed passwords are common in this industry. Use that list against the backend servers.
Agent 0x99: Hydra and John the Ripper will make quick work of weak passwords.
+ [Thanks for the tip]
#exit_conversation
-> support_hub
+ [Any other password hints?]
-> password_help
// ================================================
// EVENT: FIRST SERVER CRACKED
// ================================================
=== on_first_server_cracked ===
#speaker:agent_0x99
#complete_task:submit_flag1
#unlock_task:submit_flag2
Agent 0x99: First server access confirmed. Excellent password cracking, {player_name}.
Agent 0x99: Now look for credential reuse. Same passwords across multiple servers is common.
Agent 0x99: Each server you crack reveals more of the financial network.
+ [What am I looking for in the data?]
Agent 0x99: Transaction records, wallet addresses, anything linking ENTROPY cells together.
Agent 0x99: And keep an eye out for references to a master fund or coordinator.
#exit_conversation
-> support_hub
+ [On it]
#exit_conversation
-> support_hub
// ================================================
// EVENT: BLOCKCHAIN EVIDENCE DISCOVERED
// ================================================
=== on_blockchain_discovered ===
#speaker:agent_0x99
#complete_task:find_transaction_records
Agent 0x99: {player_name}, I'm seeing the blockchain transaction analysis you just found.
Agent 0x99: This is incredible. Mission 2's ransomware—$2.4 million. Mission 5's espionage—$847,000.
Agent 0x99: They all flow through HashChain's mixers to a single destination wallet.
+ [What's the destination?]
-> architects_fund_hint
+ [This connects all the cells]
-> cell_connections
=== architects_fund_hint ===
Agent 0x99: The analysis calls it "1ARCHITECT9FUND."
Agent 0x99: {player_name}, if this is real... this is the financial heart of ENTROPY.
Agent 0x99: Find the complete records. We need to know how much money we're talking about and where it's going.
#exit_conversation
-> support_hub
=== cell_connections ===
Agent 0x99: Exactly. Every ENTROPY cell we've encountered is financially connected through HashChain.
Agent 0x99: Social Fabric, Crypto Anarchists, Insider Threat Initiative—all funded through this network.
Agent 0x99: Find the complete allocation records. We need to map the entire structure.
#exit_conversation
-> support_hub
// ================================================
// EVENT: ARCHITECT'S FUND DISCOVERED
// ================================================
=== on_architects_fund_discovered ===
#speaker:agent_0x99
#complete_task:discover_architects_fund
Agent 0x99: {player_name}... I just saw what you pulled from the data center.
Agent 0x99: The Architect's Fund. $12.8 million USD. Allocated to six different ENTROPY cells.
Agent 0x99: And the timeline says distribution in 72 hours.
+ [This is a coordinated attack]
-> coordinated_attack
+ [180-340 projected casualties...]
-> casualty_numbers
=== coordinated_attack ===
Agent 0x99: All cells receiving funding simultaneously. That's not business as usual.
Agent 0x99: {player_name}, this is the kind of intelligence that could let us move against multiple cells at once.
Agent 0x99: But we need to decide: Do we seize the assets now, or monitor the transactions to map the complete network?
-> critical_choice_preview
=== casualty_numbers ===
Agent 0x99: They've calculated projected casualties. They KNOW people will die.
Agent 0x99: And they're calling it "The Architect's Masterpiece."
Agent 0x99: {player_name}, this is bigger than any individual cell. This is the coordination we've been looking for.
-> critical_choice_preview
=== critical_choice_preview ===
Agent 0x99: We're going to face a major choice here.
Agent 0x99: Seize the cryptocurrency now—immediate impact, cuts ENTROPY funding, but ends our surveillance.
Agent 0x99: Or monitor the transactions—long-term intelligence, map everyone receiving funds, but ENTROPY keeps operating.
+ [What do you recommend?]
-> handler_recommendation
+ [I'll think about it]
#exit_conversation
Agent 0x99: Take your time. This decision has strategic implications.
-> support_hub
=== handler_recommendation ===
Agent 0x99: Honestly? I don't know, {player_name}.
Agent 0x99: Seizing $12.8 million cripples ENTROPY funding immediately. That saves lives.
Agent 0x99: But monitoring reveals their entire network structure. That saves MORE lives long-term.
Agent 0x99: This is above my pay grade. You'll make the call when the time comes.
#exit_conversation
-> support_hub
// ================================================
// EVENT: FINANCIAL NETWORK MAPPED
// ================================================
=== on_network_complete ===
#speaker:agent_0x99
#unlock_task:access_satoshi_office
#unlock_task:confront_satoshi
Agent 0x99: Complete financial network mapped. Outstanding work, {player_name}.
Agent 0x99: We now understand ENTROPY's entire funding infrastructure.
Agent 0x99: Time for confrontation. Satoshi Nakamoto II should be accessible now.
Agent 0x99: And {player_name}—whatever you decide about Elena, make it count. She's either a massive intelligence asset or a dangerous criminal.
+ [What about the asset seizure choice?]
-> final_choice_reminder
+ [I'm ready]
#exit_conversation
Agent 0x99: Good luck. You've done exceptional work on this mission.
-> support_hub
=== final_choice_reminder ===
Agent 0x99: That choice is yours to make during the confrontation.
Agent 0x99: Seize the crypto assets—immediate impact, ENTROPY loses $12.8M funding.
Agent 0x99: Or monitor the wallets—long-term intelligence, identify everyone receiving funds.
Agent 0x99: Either choice has strategic value. I trust your judgment.
#exit_conversation
-> support_hub
// ================================================
// END OF PHONE SUPPORT
// ================================================

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,536 @@
// ===========================================
// Mission 6: Satoshi Nakamoto II Confrontation
// Final showdown with Crypto Anarchists leader
// Critical choices: Asset seizure/monitoring, Elena recruitment
// ===========================================
VAR confrontation_started = false
VAR shown_evidence = false
VAR ideology_discussed = false
VAR asset_choice_made = false
VAR satoshi_arrested = false
// External variables
VAR player_name = "Agent 0x00"
VAR found_blockchain_evidence = false
VAR found_architects_fund = false
VAR elena_recruited = false
VAR elena_arrested = false
VAR assets_seized = false
VAR monitoring_enabled = false
// ===========================================
// INITIAL CONFRONTATION
// ===========================================
=== start ===
#speaker:satoshi
{not confrontation_started:
~ confrontation_started = true
#display:satoshi-defiant
A charismatic figure in his early 40s sits behind an executive desk, Bitcoin whitepaper framed on the wall behind him.
Satoshi: You're not from FinCEN. I had you investigated.
Satoshi: SAFETYNET, correct? Counter-terrorism division.
Satoshi: Which means you've discovered our true purpose.
+ [You're funding ENTROPY operations]
You: Every cell we've encountered is financially connected through your exchange.
-> evidence_reveal
+ [The Architect's Fund. $12.8 million for coordinated attacks.]
You: 180-340 projected casualties. You calculated death tolls.
~ shown_evidence = true
-> casualties_discussion
+ [You're under arrest for facilitating terrorism]
-> arrest_attempt
}
{confrontation_started and not asset_choice_made:
#display:satoshi-calm
Satoshi: What will it be, Agent {player_name}?
-> choice_presentation
}
{asset_choice_made:
-> aftermath
}
// ===========================================
// EVIDENCE REVEAL
// ===========================================
=== evidence_reveal ===
#speaker:satoshi
~ shown_evidence = true
Satoshi: *smiles* You mapped the network. Impressive.
Satoshi: Yes, HashChain Exchange is the financial hub for ENTROPY. We provide infrastructure for all cells.
Satoshi: Money laundering, you'd call it. We call it "enabling financial freedom for freedom fighters."
+ [Freedom fighters? They're terrorists!]
-> ideology_discussion
+ [You're enabling mass murder]
-> casualties_discussion
// ===========================================
// CASUALTIES DISCUSSION
// ===========================================
=== casualties_discussion ===
#speaker:satoshi
~ shown_evidence = true
{found_architects_fund:
Satoshi: Ah, you found The Architect's allocation document. Thorough work.
Satoshi: 180-340 casualties across coordinated operations. Yes, those are the projections.
- else:
Satoshi: Casualties are inevitable in any revolution.
}
Satoshi: But let me ask you something: How many people die maintaining the current system?
+ [That's not justification for terrorism]
-> justification_rejection
+ [You calculated how many people would die and proceeded anyway]
-> calculated_cruelty
=== justification_rejection ===
#speaker:satoshi
Satoshi: Isn't it? The financial system you protect kills thousands through economic violence.
Satoshi: Poverty. Debt. Medical bankruptcy. Foreclosures.
Satoshi: ENTROPY accelerates the collapse of a system that's already murderous. We just make it obvious.
-> ideology_discussion
=== calculated_cruelty ===
#speaker:satoshi
Satoshi: We calculated casualties to MINIMIZE them.
Satoshi: The Architect's operations are surgical. Targeted. Educational.
Satoshi: Each attack teaches a lesson about system vulnerabilities. Makes people question their trust in centralized institutions.
Satoshi: Those deaths serve a purpose. They're not random violence.
-> ideology_discussion
// ===========================================
// IDEOLOGY DISCUSSION
// ===========================================
=== ideology_discussion ===
#speaker:satoshi
~ ideology_discussed = true
Satoshi: You don't understand our philosophy, do you?
Satoshi: Crypto Anarchists believe centralized control of money is the root of tyranny.
Satoshi: Governments weaponize currency. Financial surveillance enables oppression.
+ [So you fund terrorism to prove a point?]
-> terrorism_rebuttal
+ [Financial privacy has legitimate uses. This isn't it.]
-> corrupted_ideals
+ [You're just another criminal hiding behind ideology]
-> criminal_accusation
=== terrorism_rebuttal ===
#speaker:satoshi
Satoshi: *leans forward* We fund ACCELERATION.
Satoshi: The current system is doomed to collapse. Climate crisis, wealth inequality, technological disruption—it's already failing.
Satoshi: ENTROPY speeds up the inevitable. Makes the collapse happen on OUR terms, with preparation, instead of catastrophic surprise.
Satoshi: We're not terrorists. We're... midwives to a new era.
-> philosophy_challenge
=== corrupted_ideals ===
#speaker:satoshi
Satoshi: *nods approvingly* You understand the distinction. Good.
Satoshi: Financial privacy IS legitimate. But you're right—ENTROPY corrupted our ideals.
{elena_recruited:
Satoshi: Elena understood that too. That's why she betrayed us, isn't it?
-> elena_betrayal_reaction
- else:
Satoshi: At least, Elena thinks so. She's been having... moral difficulties.
-> elena_conflict
}
=== criminal_accusation ===
#speaker:satoshi
Satoshi: *dismissive laugh* Criminal? By whose law?
Satoshi: Governments that imprison whistleblowers? Intelligence agencies that surveil everyone?
Satoshi: Your legal system is illegitimate. We don't recognize its authority.
-> philosophy_challenge
// ===========================================
// PHILOSOPHY CHALLENGE
// ===========================================
=== philosophy_challenge ===
#speaker:satoshi
Satoshi: But I don't expect you to agree. You're SAFETYNET. You protect the status quo.
Satoshi: So let's discuss the practical matter: You've discovered our network. What will you do about it?
-> choice_presentation
// ===========================================
// ELENA REACTIONS
// ===========================================
=== elena_betrayal_reaction ===
#speaker:satoshi
{elena_recruited:
Satoshi: You recruited her. Showed her the casualty projections. Appealed to her conscience.
Satoshi: She was always the weak link. Too much empathy for an anarchist.
- else:
Satoshi: She refused you, I presume? Good. Her loyalty held.
}
-> choice_presentation
=== elena_conflict ===
#speaker:satoshi
Satoshi: She built this infrastructure for idealism. Now she's uncomfortable with the reality.
Satoshi: Revolutions require sacrifice. Not everyone has the stomach for it.
{not elena_recruited and not elena_arrested:
Satoshi: Did you try to recruit her? Appeal to her conscience?
Satoshi: I'm curious whether she chose principles or comfort.
}
-> choice_presentation
// ===========================================
// CHOICE PRESENTATION
// ===========================================
=== choice_presentation ===
#speaker:satoshi
Satoshi: You face a decision, Agent {player_name}.
{found_architects_fund:
Satoshi: You know about The Architect's Fund. $12.8 million ready for distribution.
- else:
Satoshi: You've mapped enough of the network to understand the infrastructure.
}
Satoshi: You can seize the cryptocurrency assets. Immediate impact. Cut ENTROPY funding.
Satoshi: Or you can monitor the transactions. Map every cell receiving funds. Long-term intelligence.
+ [I'm seizing the assets. ENTROPY loses its funding.]
-> seize_assets
+ [I'm enabling monitoring. We'll track every cell.]
-> enable_monitoring
+ [Why are you telling me this?]
-> strategic_explanation
=== strategic_explanation ===
#speaker:satoshi
Satoshi: Because either choice serves our purpose.
Satoshi: Seize the assets? We become martyrs. Proof of government tyranny. Recruitment doubles.
Satoshi: Enable monitoring? You commit resources to surveillance. Meanwhile, ENTROPY adapts.
Satoshi: You can't win, {player_name}. You can only choose how you lose.
+ [I'm seizing the assets]
-> seize_assets
+ [I'm enabling monitoring]
-> enable_monitoring
+ [I'm arresting you and dismantling the entire network]
-> arrest_attempt
// ===========================================
// SEIZE ASSETS CHOICE
// ===========================================
=== seize_assets ===
#speaker:satoshi
~ asset_choice_made = true
#set_variable:assets_seized=true
#complete_task:decide_asset_strategy
You: I'm seizing the cryptocurrency. $12.8 million in ENTROPY funding ends now.
{found_architects_fund:
You: The Architect's "Masterpiece"? Defunded. Coordinated operations? Cancelled.
}
Satoshi: *slow clap* Short-term thinking. SAFETYNET's specialty.
Satoshi: You just proved our point. Government seizes cryptocurrency at will. Financial freedom is an illusion.
Satoshi: Our recruitment will surge. Thank you for the propaganda victory.
+ [We stopped the attack. That's what matters.]
-> immediate_impact_response
+ [Better than letting 180-340 people die]
-> casualty_prevention_response
=== immediate_impact_response ===
#speaker:satoshi
Satoshi: This attack, yes. But you've made the NEXT one easier to recruit for.
Satoshi: Every crypto anarchist who was sitting on the fence? You just pushed them to our side.
Satoshi: Congratulations. You won the battle and lost the war.
-> arrest_finale
=== casualty_prevention_response ===
#speaker:satoshi
Satoshi: *nods* At least you're honest about the trade-off.
Satoshi: You value immediate lives over long-term strategy. That's... human. Compassionate, even.
Satoshi: Wrong, from an accelerationist perspective. But human.
-> arrest_finale
// ===========================================
// ENABLE MONITORING CHOICE
// ===========================================
=== enable_monitoring ===
#speaker:satoshi
~ asset_choice_made = true
#set_variable:monitoring_enabled=true
#complete_task:decide_asset_strategy
You: I'm enabling transaction monitoring. Every wallet, every cell, mapped in real-time.
You: We'll know everyone receiving funds. ENTROPY's entire network will be visible.
Satoshi: *impressed* Long-term strategic thinking. I didn't expect that from SAFETYNET.
Satoshi: You're trading immediate prevention for comprehensive intelligence. Bold.
+ [We'll dismantle the entire network, not just stop one attack]
-> long_term_strategy_response
+ [The intelligence is worth more than one operation]
-> intelligence_value_response
=== long_term_strategy_response ===
#speaker:satoshi
Satoshi: Perhaps. Or ENTROPY adapts, creates new financial channels, and your monitoring becomes worthless.
Satoshi: Meanwhile, The Architect's operations proceed. Those 180-340 casualties? They happen.
Satoshi: All for intelligence that might pay off eventually. If we don't adapt first.
-> arrest_finale
=== intelligence_value_response ===
#speaker:satoshi
Satoshi: Coldly logical. You're willing to let people die for strategic advantage.
Satoshi: *smiles* We're not so different, you and I.
Satoshi: Both making calculated sacrifices for a larger goal. Both convinced we're serving a greater good.
Satoshi: The only difference is which system we protect.
-> arrest_finale
// ===========================================
// ARREST ATTEMPT
// ===========================================
=== arrest_attempt ===
#speaker:satoshi
You: "Satoshi Nakamoto II," you're under arrest for money laundering, facilitating terrorism, conspiracy, and financial crimes.
#set_variable:satoshi_arrested=true
{asset_choice_made:
Satoshi: Of course I am. Was there any other ending to this confrontation?
- else:
Satoshi: Before you do that, you still need to decide: Assets or monitoring?
{player_name}, you can arrest me, but that choice shapes the investigation.
-> choice_presentation
}
-> arrest_finale
// ===========================================
// ARREST FINALE
// ===========================================
=== arrest_finale ===
#speaker:satoshi
Satoshi: *stands, offers hands for cuffs*
Satoshi: I'll be convicted, of course. Probably 40 years to life.
{assets_seized:
Satoshi: But the assets you seized? Proof of government overreach. Our recruitment will surge.
}
{monitoring_enabled:
Satoshi: And the monitoring you enabled? We'll adapt. Create new channels. Your intelligence will age poorly.
}
{elena_recruited:
Satoshi: Elena's cooperation will hurt us short-term. Her expertise was valuable.
Satoshi: But even she couldn't stop the movement. Crypto anarchism is bigger than any individual.
}
{elena_arrested:
Satoshi: Elena chose loyalty. I'm proud of her, even if it costs her freedom.
}
Satoshi: This isn't over, {player_name}. ENTROPY is decentralized. The Architect will adapt.
-> final_words
// ===========================================
// FINAL WORDS
// ===========================================
=== final_words ===
#speaker:satoshi
Satoshi: Last question: Do you ever wonder if we're right?
Satoshi: If the system you protect is doomed? If acceleration might actually save more lives than preservation?
+ [Your ideology doesn't justify murder]
-> ideology_rejection
+ [Sometimes. But I chose my side.]
-> honest_response
+ [I don't engage with terrorist philosophy]
-> dismissal
=== ideology_rejection ===
#speaker:satoshi
Satoshi: We'll see. History judges ideologies long after we're gone.
Satoshi: Maybe SAFETYNET will still exist in 50 years, protecting a thriving system.
Satoshi: Or maybe you'll look back and realize you were defending the Titanic.
-> mission_complete
=== honest_response ===
#speaker:satoshi
Satoshi: *nods with respect* Honest answer. Rare in your profession.
Satoshi: You're a good agent, {player_name}. You think strategically, question assumptions, understand trade-offs.
Satoshi: That makes you dangerous to us. But I can respect it.
-> mission_complete
=== dismissal ===
#speaker:satoshi
Satoshi: Of course not. Easier to ignore questions than confront them.
Satoshi: That's why the system will fall. It can't adapt. Can't question itself.
Satoshi: ENTROPY can. We evolve. We accelerate.
-> mission_complete
// ===========================================
// MISSION COMPLETE
// ===========================================
=== mission_complete ===
#speaker:satoshi
Satoshi: Take me to whatever holding facility you have prepared.
Satoshi: But know this: You stopped one exchange. One funding channel.
Satoshi: The Architect has contingencies. ENTROPY is decentralized.
Satoshi: This was never just about HashChain. It was about proving the system is vulnerable.
Satoshi: And {player_name}... you just proved it.
#complete_task:confront_satoshi
#exit_conversation
-> END
// ===========================================
// AFTERMATH (if player returns)
// ===========================================
=== aftermath ===
#speaker:satoshi
Satoshi: Mission's over, Agent. I'm already under arrest.
Satoshi: Did you want to gloat? Or are you having second thoughts about your choices?
+ [Just ensuring you're secured]
#exit_conversation
Satoshi: *smirks* I'm not going anywhere.
-> END
+ [I made the right choices]
#exit_conversation
Satoshi: Time will tell.
-> END
+ [Goodbye]
#exit_conversation
Satoshi: See you at the trial, {player_name}.
-> END

File diff suppressed because one or more lines are too long

View File

@@ -433,6 +433,7 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
{
"type": "keycard",
"name": "CTO Access Badge",
"badgeId": "cto_badge",
"takeable": false,
"observations": "Elena's high-level access badge for all exchange systems"
},
@@ -473,6 +474,12 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"readable": true,
"text": "HASHCHAIN EXCHANGE - DAILY TRADING SUMMARY\n\nVolume (24h): $847M USD equivalent\nTop Pairs: BTC/USD, ETH/USD, XMR/USD\n\nLarge Transactions Flagged:\n- Wallet 1ENTROPY2RansomInc: $2.4M mixed\n- Wallet 1ENTROPY5InsiderTh: $847K mixed\n- Wallet 1ARCHITECT9FUND: $12.8M received\n\nCompliance Note: Privacy coins (Monero) usage extremely high.\nNote to Elena: Is this normal? -Trader",
"observations": "Trading report showing ENTROPY wallet activity"
},
{
"type": "rfid_cloner",
"name": "RFID Badge Cloner",
"takeable": true,
"observations": "Portable RFID cloning device - can duplicate access badges for restricted areas"
}
]
},
@@ -481,7 +488,7 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"type": "room_servers",
"locked": true,
"lockType": "password",
"requires": "server_password",
"requires": "bitcoin2024",
"connections": {
"south": "trading_floor",
"north": "data_center"
@@ -533,7 +540,7 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"name": "Server Access Credentials",
"takeable": true,
"readable": true,
"text": "<%= password_hint_note %>",
"text": "HashChain Server Access:\nUser: admin\nPassword patterns: crypto terms + numbers\nCommon: bitcoin2024, ethereum2025, satoshi2024",
"observations": "Password hint note - crypto-themed passwords for server access"
}
]
@@ -542,7 +549,8 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"data_center": {
"type": "room_servers",
"connections": {
"south": "server_room"
"south": "server_room",
"east": "executive_wing"
},
"npcs": [],
"objects": [
@@ -558,7 +566,7 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"name": "The Architect's Fund Allocation",
"takeable": true,
"readable": true,
"text": "<%= architects_fund_document %>",
"text": "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurrent Balance: $12.8M USD (BTC equivalent)\n\nPLANNED DISTRIBUTION:\n- Critical Mass (Infrastructure): $3.2M\n- Social Fabric (Disinformation): $2.1M\n- Zero Day Syndicate (Exploits): $2.8M\n- Digital Vanguard (Corporate): $1.9M\n- Ghost Protocol (Intelligence): $1.5M\n- Supply Chain Saboteurs: $1.3M\n\nOPERATION: The Architect's Masterpiece\nTARGET DATE: 72 hours\nCOORDINATOR: The Architect\n\nNOTE: Simultaneous multi-cell attack. All cells receive funding simultaneously.\nSuccess probability: 94%\nProjected casualties: 180-340 across all operations",
"observations": "CRITICAL EVIDENCE: The Architect's Fund - $12.8M for coordinated attack in 72 hours, 180-340 projected casualties",
"onPickup": { "setVariable": { "found_architects_fund": true, "knows_coordinated_attack": true, "evidence_level": "evidence_level + 2", "lore_collected": "lore_collected + 1" } }
},
@@ -569,6 +577,13 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"readable": true,
"text": "HASHCHAIN EXCHANGE - EMERGENCY WALLET RECOVERY\n\nCold Storage Private Keys (Encrypted)\nTotal Holdings: $48.3M USD equivalent\n\nThe Architect's Fund Wallet:\nAddress: 1ARCHITECT9FUND\nBalance: $12.8M USD\nRecovery Key: [ENCRYPTED]\n\nNote: Seizure of this wallet would cripple ENTROPY funding.\nAlternative: Monitor transactions to identify all cells receiving funds.",
"observations": "Wallet recovery keys - choice point: seize assets or monitor"
},
{
"type": "keycard",
"name": "Executive Access Badge",
"badgeId": "executive_badge",
"takeable": true,
"observations": "High-security executive badge - grants access to CEO's office wing"
}
]
},
@@ -596,7 +611,7 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
],
"objects": [
{
"type": "lab-workstation",
"type": "pc",
"name": "Blockchain Analysis Workstation",
"takeable": false,
"observations": "Advanced blockchain forensics tools - transaction graph analysis, wallet clustering"
@@ -607,7 +622,7 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"name": "ENTROPY Transaction Network Analysis",
"takeable": true,
"readable": true,
"text": "<%= blockchain_evidence %>",
"text": "ENTROPY FINANCIAL NETWORK - TRANSACTION ANALYSIS\n\nSource Wallets:\n- 1ENTROPY2RansomInc -> $2.4M (Hospital ransomware - Mission 2)\n- 1ENTROPY5InsiderTh -> $847K (Corporate espionage - Mission 5)\n- 1ENTROPY3ZeroDaySy -> $1.2M (Exploit sales)\n- 1ENTROPY1SocialFab -> $680K (Disinformation campaigns)\n\nIntermediary: HashChain Exchange Mixer\n\nDestination: 1ARCHITECT9FUND\nTotal Value: $12.8M USD equivalent\n\nPURPOSE: Major coordinated operation funding\nTIMELINE: 72 hours until fund distribution",
"observations": "CRITICAL EVIDENCE: Complete ENTROPY financial network connecting M2 ransomware, M5 espionage, all cells",
"onPickup": { "setVariable": { "found_blockchain_evidence": true, "financial_network_mapped": true, "evidence_level": "evidence_level + 2" } }
},
@@ -663,7 +678,7 @@ architects_fund_document = "THE ARCHITECT'S FUND - STRATEGIC ALLOCATION\n\nCurre
"lockType": "rfid",
"requires": "executive_badge",
"connections": {
"south": "trading_floor",
"west": "data_center",
"north": "satoshi_office"
},
"npcs": [],