Finish the NPC dialogue
This commit is contained in:
		| @@ -1,9 +1,16 @@ | ||||
| import { Architecture, LoadedNewMap } from "./newmap.ts"; | ||||
| import { Grid, Point } from "./engine/datatypes.ts"; | ||||
| import { getThralls } from "./thralls.ts"; | ||||
| import { | ||||
|   getThralls, | ||||
|   thrallCharm, | ||||
|   thrallLore, | ||||
|   thrallParty, | ||||
|   thrallStealth, | ||||
| } from "./thralls.ts"; | ||||
| import { | ||||
|   LadderPickup, | ||||
|   ThrallCollectionPlatePickup, | ||||
|   ThrallPickup, | ||||
|   ThrallPosterPickup, | ||||
|   ThrallRecruitedPickup, | ||||
| } from "./pickups.ts"; | ||||
| @@ -16,7 +23,7 @@ const BASIC_PLAN = Grid.createGridFromMultilineString(` | ||||
| ##### A #   # D ##### | ||||
| #####   ## ##   ##### | ||||
| #   ## ##   ## ##   # | ||||
| #bB               Ee# | ||||
| #bB       .       Ee# | ||||
| #   ## ##   ## ##   # | ||||
| #####   ## ##   ##### | ||||
| ##### C #   # F ##### | ||||
| @@ -63,6 +70,11 @@ export function generateManor(): LoadedNewMap { | ||||
|           cell.architecture = Architecture.Floor; | ||||
|           cell.pickup = new LadderPickup(); | ||||
|           break; | ||||
|         case ".": | ||||
|           cell.architecture = Architecture.Floor; | ||||
|           // TODO: Debug objects can be spawned here | ||||
|           // cell.pickup = new ThrallPickup({id: 5}); | ||||
|           break; | ||||
|         case " ": | ||||
|           cell.architecture = Architecture.Floor; | ||||
|           break; | ||||
|   | ||||
| @@ -97,6 +97,10 @@ export function getThralls() { | ||||
| // Their initial check is, generally, the initial check of the | ||||
| // thrall n-2 or thrall n+1 (ex: Party's initial check is Stealth | ||||
| // or Lore) | ||||
| // | ||||
| // I then made some swaps: | ||||
| // - Garrett gets Flatter instead of Respect Elders | ||||
| // - Monica gets Respect Elders instead of Flatter | ||||
| export let thrallParty = table.add({ | ||||
|   label: "Garrett", | ||||
|   sprite: sprThrallParty, | ||||
| @@ -112,18 +116,19 @@ export let thrallParty = table.add({ | ||||
|     options: [ | ||||
|       { | ||||
|         skill: () => stealth1, // Disguise | ||||
|         locked: '"What\'s wrong, Garrett?"', | ||||
|         locked: '"What\'s up?"', | ||||
|         failure: | ||||
|           "\"If you're not a large pile of money, don't talk to me.\"\n\nHe sobs into his ice cream.", | ||||
|         unlockable: "*look like a large pile of money*", | ||||
|         success: "He scoops you eagerly into his wallet.", | ||||
|       }, | ||||
|       { | ||||
|         skill: () => lore0, // Respect Elders | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: "TODO", | ||||
|         success: "TODO", | ||||
|         skill: () => charm0, // Flatter | ||||
|         locked: "Ask him how much he's winning", | ||||
|         failure: 'He rolls his eyes at you. "A billion."', | ||||
|         unlockable: "Tell him he's cute", | ||||
|         success: | ||||
|           "He looks at you like no one has ever told him that before, and blushes. You hold his wing and feel his pulse rise.", | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
| @@ -186,16 +191,17 @@ export let thrallLore = table.add({ | ||||
|     options: [ | ||||
|       { | ||||
|         skill: () => stare1, // Hypnotize | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: '"I\'m a wolf too."', | ||||
|         locked: '"I\'m a wolf too."', | ||||
|         failure: '"AROO?" He shakes his head no.', | ||||
|         unlockable: 'Zonk him. "I\'m a wolf now."', | ||||
|         success: | ||||
|           "He blinks a few times under your gaze -- then touches your muzzle -- then his own -- then arfs submissively.", | ||||
|       }, | ||||
|       { | ||||
|         skill: () => bat0, // Screech | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         locked: "Try to yowl", | ||||
|         failure: | ||||
|           "He sniffs at your collar. You don't _seem_ like a Wolf Scout.", | ||||
|         unlockable: '"Wolf Scouts AWOO!"', | ||||
|         success: | ||||
|           "Taken aback at how well you know the cheer, he freezes -- then joins you with a similar howl.", | ||||
| @@ -254,23 +260,24 @@ export let thrallBat = table.add({ | ||||
|   }, | ||||
|   initialCheck: { | ||||
|     label: | ||||
|       "That's Monica. You've seen her cook on TV! Looks like she's enjoying a kiwi flan.", | ||||
|       "That's Monica, the evil judge from MasterCook. A bit older than you, and you don't age anymore. She's enjoying a kiwi flan -- it looks good.", | ||||
|     options: [ | ||||
|       { | ||||
|         skill: () => party1, // Rave | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: "Slide her a sachet of cocaine.", | ||||
|         locked: "Act crazy to get her attention", | ||||
|         failure: '"I -- you -- you know we\'re not being filmed, right?"', | ||||
|         unlockable: "Flash your eyes like a TV camera", | ||||
|         success: | ||||
|           "\"No way. Ketamine if you've got it.\" You do.\n\n(It's not effective on vampires.)", | ||||
|           "The clash of light and color causes some kind of flashback.\nYou convince her that she's on set. She agrees to follow you backstage.", | ||||
|       }, | ||||
|       { | ||||
|         skill: () => charm0, // Flatter | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: '"You\'re the best cook ever!"', | ||||
|         skill: () => lore0, // Respect Elders | ||||
|         locked: '"That looks good."', | ||||
|         failure: | ||||
|           "\"It's not.\" She eats it with such relish it's hard to tell.", | ||||
|         unlockable: "Not as good as they used to be", | ||||
|         success: | ||||
|           '"Settle down!" she says, lowering your volume with a sweep of her hand. "It\'s true though."', | ||||
|           '"Certainly." She seems pleased that you understand.\n\n"Teach me to make a real one?"', | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
| @@ -334,17 +341,18 @@ export let thrallCharm = table.add({ | ||||
|     options: [ | ||||
|       { | ||||
|         skill: () => lore1, // Brick by Brick | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: '"Wanna see my crypt?"', | ||||
|         locked: `Ask for vampire facts`, | ||||
|         failure: `He eagerly describes the cape, the coffin, the crypt, the castle -- a whole lot of stuff you don't necessarily don't have.`, | ||||
|         unlockable: `Talk about your manor`, | ||||
|         success: | ||||
|           'He salivates -- swallowing hard before he manages, in response to the prospect, a firm "YES!"', | ||||
|           "You describe your manor for a while without inviting him. He salivates -- swallowing hard before he manages, in response to your comments, to beg for a peek.", | ||||
|       }, | ||||
|       { | ||||
|         skill: () => stealth0, // Be Quiet | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: "Say absolutely nothing.", | ||||
|         locked: "Get your fangs in his face", | ||||
|         failure: | ||||
|           '"Wow. You\'re -- wow! Wow! Wow!"\n\n"And what\'s more --" you say, giving him far too much of a desirable thing.', | ||||
|         unlockable: "Say absolutely nothing", | ||||
|         success: | ||||
|           "His mind overflows with fantasy, and when you let a glint of fang peek through, he claps his arms affectionately around your supercold torso.", | ||||
|       }, | ||||
| @@ -405,17 +413,21 @@ export let thrallStealth = table.add({ | ||||
|     options: [ | ||||
|       { | ||||
|         skill: () => bat1, // Flap | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: "Hang upside-down and offer her a martini.", | ||||
|         success: "\"You're ADORABLE!\" She's yours forever.", | ||||
|         locked: "Drink cherry soda with your fangs", | ||||
|         failure: | ||||
|           '"Wow! That\'s incredibly cool," she says. Her eyes scan the other patrons. "Can I get you anything?"', | ||||
|         unlockable: "Hang upside-down and offer a drink", | ||||
|         success: | ||||
|           '"You\'re ADORABLE!" Her attention is yours alone and she offers to follow you home.', | ||||
|       }, | ||||
|       { | ||||
|         skill: () => stare0, // Dazzle | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: "TODO", | ||||
|         success: "TODO", | ||||
|         locked: "Show her some sparks", | ||||
|         failure: | ||||
|           '"Neat trick!" she says. She blinds you with a glowstick, then heads back into the crowd.', | ||||
|         unlockable: "Trap her in a tunnel of light", | ||||
|         success: | ||||
|           "She blushes bright peach, unable to perceive any exit until you approach -- close enough to feel her warm, warm breath. She plants a kiss on your lips.", | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
| @@ -481,15 +493,18 @@ export let thrallStare = table.add({ | ||||
|         locked: "\"How many Rs in 'strawberry'?\"", | ||||
|         failure: | ||||
|           "It generates an image of a sad fruit shrugging in a muddy plantation.", | ||||
|         unlockable: "TODO", | ||||
|         success: "TODO", | ||||
|         unlockable: '"Do you want to come home with me?"', | ||||
|         success: | ||||
|           "It generates an image of a happy robot riding the shoulders of a tiny little bat.", | ||||
|       }, | ||||
|       { | ||||
|         skill: () => party0, // Chug | ||||
|         locked: "TODO", | ||||
|         failure: "TODO", | ||||
|         unlockable: "Drink a whole bottle of ink.", | ||||
|         success: "TODO", | ||||
|         locked: "Check its fluid levels", | ||||
|         failure: | ||||
|           "It submits to your examination, revealing ordinary quantities of robot blood, robot lubricant, Ener-G, and headlight fluid.", | ||||
|         unlockable: "Drink its battery", | ||||
|         success: | ||||
|           "The sulfuric acid doesn't burn you. This somehow makes Ridley want to hang out with you.\n\n(Ridley is weird.)", | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user