Finish the NPC dialogue
This commit is contained in:
parent
a7024728ba
commit
b0226d5d4b
@ -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.)",
|
||||
},
|
||||
],
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user