@maka/maka-cli 5.8.0 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js +4 -2
- package/bundle/typescript/src/commands/game/sideQuest/archetypes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/advance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +14 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/assense.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +24 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +31 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +16 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.d.ts +7 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +86 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/companions.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +5 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +94 -16
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.d.ts +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js +178 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/grapple.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hints.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hints.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/initiate.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/lifestyle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +48 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +41 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +160 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/order.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/persuade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/project.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/project.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/quality-trade.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +8 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +15 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sell.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/sneak.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js +24 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/spells.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/summon.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/surrender.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +37 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/treat.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +9 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/work.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/work.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/item-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +138 -23
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +33 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +303 -26
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +195 -6
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +11 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +35 -5
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +19 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +51 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +197 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +76 -20
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +157 -34
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +208 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.js +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/exit-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/item-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +100 -7
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +18 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.d.ts +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js +232 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/cloud-saves.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.d.ts +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js +57 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grapple.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/hints.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +71 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +447 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +8 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +121 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +315 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +174 -18
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { priceOf } from '../utilities/commerce.js';
|
|
3
|
+
import { sameSpot, spotOf, spotRefusal } from '../utilities/spots.js';
|
|
3
4
|
export class GiveCommand extends Command {
|
|
4
5
|
static verb = 'give';
|
|
5
6
|
static description = 'Give an item or money to someone.';
|
|
@@ -38,6 +39,10 @@ export class GiveCommand extends Command {
|
|
|
38
39
|
? `${recipient.name} is a drone right now -- hand it something and it'd still be here when the rotors leave. Wait for the flesh.`
|
|
39
40
|
: `${recipient.name} isn't HERE in any way that can carry things.`;
|
|
40
41
|
}
|
|
42
|
+
// "At" spots: a handover is arm's reach (see utilities/spots.ts).
|
|
43
|
+
if (!sameSpot(this.actor, recipient)) {
|
|
44
|
+
return spotRefusal(recipient.name, spotOf(recipient));
|
|
45
|
+
}
|
|
41
46
|
// === Try to give currency ===
|
|
42
47
|
const currencyMatch = itemOrAmount.match(/^(\d+)\s*(nuyen|¥)?$/i);
|
|
43
48
|
if (currencyMatch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"give.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/give.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"give.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/give.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,11 @@ export declare class GoCommand extends Command implements ICommand {
|
|
|
13
13
|
*/
|
|
14
14
|
private resolvePartingShot;
|
|
15
15
|
private go;
|
|
16
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* The revisit short form: the room's name and who's about -- NOTHING
|
|
18
|
+
* else (player request: the auto "Exits: ..." line was two rows of
|
|
19
|
+
* furniture on every step; "look" and "map" list exits when asked).
|
|
20
|
+
*/
|
|
17
21
|
private shortArrival;
|
|
18
22
|
/** The direction that undoes a move -- feeds the HUD breadcrumb. */
|
|
19
23
|
private static opposite;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Door } from '../models/door.js';
|
|
2
2
|
import { CombatExchange } from '../utilities/combat-exchange.js';
|
|
3
3
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
4
|
+
import { entrySpotFor, exitSpot, ensureAtSpot, spotsActive, highlightSpots, highlightActors } from '../utilities/spots.js';
|
|
5
|
+
import { heldBy, holding } from '../utilities/grapple.js';
|
|
6
|
+
import { hint } from '../utilities/hints.js';
|
|
4
7
|
import { Command } from './command.js';
|
|
5
8
|
export class GoCommand extends Command {
|
|
6
9
|
static verb = 'go';
|
|
7
|
-
static description = 'Move in the specified direction. Fleeing someone you just fought hands them one free parting shot.';
|
|
10
|
+
static description = 'Move in the specified direction ("go back" retraces your last move). Fleeing someone you just fought hands them one free parting shot.';
|
|
8
11
|
async execute(args) {
|
|
9
12
|
if (!args)
|
|
10
13
|
return '';
|
|
@@ -61,6 +64,17 @@ export class GoCommand extends Command {
|
|
|
61
64
|
});
|
|
62
65
|
return exchange.finishExchange([...lines, ...death]);
|
|
63
66
|
}
|
|
67
|
+
if (fleer.isUnconscious()) {
|
|
68
|
+
// Stun KO on the way out: the player defers to the room settling
|
|
69
|
+
// (Scene.beginPlayerKnockout); an NPC is a live capture.
|
|
70
|
+
const ko = fleer === this.scene.getPlayer()
|
|
71
|
+
? await exchange.resolvePlayerKnockout(opponent)
|
|
72
|
+
: await exchange.resolveDeath(fleer, opponent, {
|
|
73
|
+
fatal: false,
|
|
74
|
+
fallLine: `${fleer.name} drops mid-stride, out cold, two steps from the door. Their gear scatters across ${fleer.currentLocation.name}.`,
|
|
75
|
+
});
|
|
76
|
+
return exchange.finishExchange([...lines, ...ko]);
|
|
77
|
+
}
|
|
64
78
|
return null;
|
|
65
79
|
}
|
|
66
80
|
async go(args) {
|
|
@@ -68,6 +82,18 @@ export class GoCommand extends Command {
|
|
|
68
82
|
this.logger.write(`${this.actor.name}'s 'Go' command failed: No direction specified.`);
|
|
69
83
|
return 'Please specify a direction to go.';
|
|
70
84
|
}
|
|
85
|
+
// GRAPPLED (SR5e p.195): held means held -- no movement of any kind
|
|
86
|
+
// until the hold breaks. This is the whole point of "restrain" (a
|
|
87
|
+
// real session's witness NPC kept bolting): a locked-down runner
|
|
88
|
+
// stays in the room. The holder is bound too -- hands full.
|
|
89
|
+
const gripHolder = heldBy(this.actor, this.scene);
|
|
90
|
+
if (gripHolder) {
|
|
91
|
+
return `${gripHolder.name} has you locked down -- you're not going anywhere. "struggle" to break the hold.`;
|
|
92
|
+
}
|
|
93
|
+
const gripHeld = holding(this.actor, this.scene);
|
|
94
|
+
if (gripHeld) {
|
|
95
|
+
return `You're holding ${gripHeld.name} -- walk away and the hold is gone. "release" first if that's the plan.`;
|
|
96
|
+
}
|
|
71
97
|
// No walking out from between the narration beats of a combat exchange
|
|
72
98
|
// you're part of (see CombatExchange.beginExchange) -- found via a real
|
|
73
99
|
// session where the player slipped rooms mid-exchange. The pause
|
|
@@ -85,7 +111,7 @@ export class GoCommand extends Command {
|
|
|
85
111
|
// applies when they finally make their break.
|
|
86
112
|
if (this.actor === this.scene.getPlayer()) {
|
|
87
113
|
this.logger.write(`GoCommand: ${this.actor.name} tried to move mid-exchange -- blocked.`);
|
|
88
|
-
return `Lead is flying -- you can't disengage until the exchange resolves
|
|
114
|
+
return `Lead is flying -- you can't disengage until the exchange resolves.${hint(` (The lull after it is your chance to run.)`)}`;
|
|
89
115
|
}
|
|
90
116
|
if (this.actor.waitingForLull) {
|
|
91
117
|
return `You're already waiting for an opening -- one move at a time.`;
|
|
@@ -95,7 +121,7 @@ export class GoCommand extends Command {
|
|
|
95
121
|
const settled = await CombatExchange.waitForLull([this.actor]);
|
|
96
122
|
if (!settled) {
|
|
97
123
|
this.logger.write(`GoCommand: ${this.actor.name} tried to move mid-exchange -- blocked (wait timed out).`);
|
|
98
|
-
return `Lead is flying -- you can't disengage until the exchange resolves
|
|
124
|
+
return `Lead is flying -- you can't disengage until the exchange resolves.${hint(` (The lull after it is your chance to run.)`)}`;
|
|
99
125
|
}
|
|
100
126
|
if (this.actor.isIncapacitated()) {
|
|
101
127
|
return `You're down. You aren't going anywhere.`;
|
|
@@ -116,7 +142,27 @@ export class GoCommand extends Command {
|
|
|
116
142
|
const partingShot = await this.resolvePartingShot();
|
|
117
143
|
if (partingShot)
|
|
118
144
|
return partingShot;
|
|
119
|
-
|
|
145
|
+
let direction = args[0].toLowerCase();
|
|
146
|
+
// "go back" -- retrace your last move (player instinct from a real
|
|
147
|
+
// session; the HUD breadcrumb already shows exactly this). cameFrom
|
|
148
|
+
// records the room AND the direction home, and we verify the exit
|
|
149
|
+
// still leads THERE: after a taxi or scene swap the same compass
|
|
150
|
+
// direction can point somewhere new, and "back" silently taking you
|
|
151
|
+
// somewhere you have never been is worse than a refusal.
|
|
152
|
+
if (direction === 'back') {
|
|
153
|
+
const crumb = this.actor.cameFrom;
|
|
154
|
+
if (!crumb) {
|
|
155
|
+
return `Back where? You haven't come from anywhere yet.`;
|
|
156
|
+
}
|
|
157
|
+
const backExit = this.actor.currentLocation.getExit(crumb.back);
|
|
158
|
+
const leadsHome = backExit instanceof Door
|
|
159
|
+
? backExit.getOtherSide(this.actor.currentLocation)?.name === crumb.room
|
|
160
|
+
: typeof backExit === 'string' && backExit === crumb.room;
|
|
161
|
+
if (!leadsHome) {
|
|
162
|
+
return `The way you came isn't behind you anymore.`;
|
|
163
|
+
}
|
|
164
|
+
direction = crumb.back;
|
|
165
|
+
}
|
|
120
166
|
if (!this.isValidDirection(direction)) {
|
|
121
167
|
this.logger.write(`${this.actor.name} attempted to go ${direction} which is not valid.`);
|
|
122
168
|
return 'That is not a way to go';
|
|
@@ -131,6 +177,19 @@ export class GoCommand extends Command {
|
|
|
131
177
|
this.logger.write(`${this.actor.name} 'Go' command failed: Specified direction "${direction}" does not exist in current room's exits.`);
|
|
132
178
|
return `You can't go that way.`;
|
|
133
179
|
}
|
|
180
|
+
// "At" spots: an exit is a PLACE (a real session's bar had one
|
|
181
|
+
// "door" spot but two doorways -- the backroom door lives at the
|
|
182
|
+
// back corner, and nothing said so). Walking out means walking to
|
|
183
|
+
// it first: free out of combat, refused mid-exchange -- the same
|
|
184
|
+
// rule pick/unlock already enforce on the same doors.
|
|
185
|
+
let crossNote = '';
|
|
186
|
+
if (this.actor.plane === 'meat') {
|
|
187
|
+
const reach = ensureAtSpot(this.actor, exitSpot(currentRoom, direction));
|
|
188
|
+
if (reach.refusal)
|
|
189
|
+
return reach.refusal;
|
|
190
|
+
if (reach.line)
|
|
191
|
+
crossNote = `${reach.line}\n`;
|
|
192
|
+
}
|
|
134
193
|
// If it's a Door, determine the target room
|
|
135
194
|
if (exit instanceof Door) {
|
|
136
195
|
// Locks are a MEAT problem: an astral form drifts through the
|
|
@@ -139,7 +198,7 @@ export class GoCommand extends Command {
|
|
|
139
198
|
// movement -- the grid overlays everything.
|
|
140
199
|
if (exit.checkIfLocked() && this.actor.plane === 'meat') {
|
|
141
200
|
this.actor.performAction('is prevented by locked door', currentRoom.name);
|
|
142
|
-
return
|
|
201
|
+
return `${crossNote}The door in the direction "${direction}" is locked.`;
|
|
143
202
|
}
|
|
144
203
|
// Get the other side of the door (the room the player should move to)
|
|
145
204
|
const targetRoom = exit.getOtherSide(currentRoom);
|
|
@@ -153,7 +212,13 @@ export class GoCommand extends Command {
|
|
|
153
212
|
this.actor.performAction('exits', `${this.actor.currentLocation.name} to ${targetRoom.name}`);
|
|
154
213
|
this.actor.cameFrom = { room: this.actor.currentLocation.name, back: GoCommand.opposite(direction) };
|
|
155
214
|
this.actor.currentLocation = targetRoom; // Update player's location
|
|
156
|
-
|
|
215
|
+
// "At" spots: an arrival stands at the room's entry (the setter
|
|
216
|
+
// cleared any stale spot), and the WITNESS event says where -- so
|
|
217
|
+
// an NPC's history reads "enters the bar (at the door)" and its AI
|
|
218
|
+
// greets from across the room instead of assuming you're at its
|
|
219
|
+
// elbow (see utilities/spots.ts).
|
|
220
|
+
this.actor.atSpot = entrySpotFor(targetRoom, direction);
|
|
221
|
+
this.actor.performAction('enters', `${targetRoom.name}${this.actor.atSpot ? ` (at the ${this.actor.atSpot})` : ''}`);
|
|
157
222
|
}
|
|
158
223
|
else {
|
|
159
224
|
// If it's a room name (string)
|
|
@@ -167,7 +232,8 @@ export class GoCommand extends Command {
|
|
|
167
232
|
return wardBlock;
|
|
168
233
|
this.actor.cameFrom = { room: this.actor.currentLocation.name, back: GoCommand.opposite(direction) };
|
|
169
234
|
this.actor.currentLocation = nextRoom;
|
|
170
|
-
this.actor.
|
|
235
|
+
this.actor.atSpot = entrySpotFor(nextRoom, direction);
|
|
236
|
+
this.actor.performAction('enters', `${nextRoom.name}${this.actor.atSpot ? ` (at the ${this.actor.atSpot})` : ''}`);
|
|
171
237
|
}
|
|
172
238
|
// Astral movement accrues the snap-back debt (see planes.ts).
|
|
173
239
|
if (this.actor.plane === 'astral') {
|
|
@@ -191,6 +257,7 @@ export class GoCommand extends Command {
|
|
|
191
257
|
if (!canFollow || c.npc.currentLocation === dest || c.npc.isIncapacitated())
|
|
192
258
|
continue;
|
|
193
259
|
c.npc.currentLocation = dest;
|
|
260
|
+
c.npc.atSpot = this.actor.atSpot; // at their master's heel = at their spot
|
|
194
261
|
c.npc.performAction('enters', `${dest.name}, at ${this.actor.name}'s heel`);
|
|
195
262
|
}
|
|
196
263
|
}
|
|
@@ -205,23 +272,34 @@ export class GoCommand extends Command {
|
|
|
205
272
|
const room = this.actor.currentLocation;
|
|
206
273
|
if (!room.visitedBy.has(this.actor.name)) {
|
|
207
274
|
room.visitedBy.add(this.actor.name);
|
|
208
|
-
|
|
275
|
+
if (spotsActive(room)) {
|
|
276
|
+
// Arrival shows the ROOM and its places -- casing who stands
|
|
277
|
+
// where is a "look", and a Perception check (player ruling).
|
|
278
|
+
// Obvious people in the prose get their color too.
|
|
279
|
+
return `${crossNote}${highlightActors(room, highlightSpots(room, room.description), this.actor)}${hint(`\n("look" to case who's where.)`)}`;
|
|
280
|
+
}
|
|
281
|
+
return crossNote + highlightActors(room, room.description, this.actor);
|
|
209
282
|
}
|
|
210
|
-
return this.shortArrival(room);
|
|
283
|
+
return crossNote + this.shortArrival(room);
|
|
211
284
|
}
|
|
212
|
-
/**
|
|
285
|
+
/**
|
|
286
|
+
* The revisit short form: the room's name and who's about -- NOTHING
|
|
287
|
+
* else (player request: the auto "Exits: ..." line was two rows of
|
|
288
|
+
* furniture on every step; "look" and "map" list exits when asked).
|
|
289
|
+
*/
|
|
213
290
|
shortArrival(room) {
|
|
214
|
-
const exits = [...room.exits.entries()]
|
|
215
|
-
.map(([dir, door]) => typeof door === 'string' ? dir : `${dir} (${door.getOtherSideToName(room).replace(/^To /, '')}${door.isLocked ? ', locked' : ''})`)
|
|
216
|
-
.join(', ');
|
|
217
291
|
const others = room.getActors()
|
|
218
292
|
.filter(a => a !== this.actor && this.actor.canPerceive(a))
|
|
219
293
|
.map(a => a.name);
|
|
220
294
|
const lines = [`{bold}${room.name}{/bold}`];
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
if (
|
|
295
|
+
// Spotted rooms: places only -- who's at them takes a "look"
|
|
296
|
+
// (Perception, player ruling). Unspotted rooms keep the flat list.
|
|
297
|
+
if (spotsActive(room)) {
|
|
298
|
+
lines.push(`Places: ${room.spots.map(s => `{yellow-fg}${s.name}{/yellow-fg}`).join(', ')}`);
|
|
299
|
+
}
|
|
300
|
+
else if (others.length > 0) {
|
|
224
301
|
lines.push(`Here: ${others.join(', ')}`);
|
|
302
|
+
}
|
|
225
303
|
return lines.join('\n');
|
|
226
304
|
}
|
|
227
305
|
/** The direction that undoes a move -- feeds the HUD breadcrumb. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/go.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AAEjD,MAAM,OAAO,SAAU,SAAQ,OAAO;IAC1B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,WAAW,GAAG,oGAAoG,CAAC;IAEpI,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,+CAA+C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtG,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,kBAAkB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;QACtC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,SAAS,GAAG,MAAM,CAAC;QACzB,MAAM,OAAO,GACX,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,cAAc,GAAG,SAAS;YAC7C,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC3B,QAAQ,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,CAAC;QAErD,qDAAqD;QACrD,KAAK,CAAC,cAAc,GAAG,SAAS,CAAC;QACjC,QAAQ,CAAC,cAAc,GAAG,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEvE,iEAAiE;QACjE,gEAAgE;QAChE,sEAAsE;QACtE,iDAAiD;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzK,oEAAoE;QACpE,+CAA+C;QAC/C,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,QAAQ,CAAC,QAAQ,CACrB,CAAC,GAAG,KAAK,CAAC,IAAI,qCAAqC,QAAQ,CAAC,IAAI,2BAA2B,CAAC,EAC5F,CAAC,sBAAsB,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAC/D,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,0BAA0B,QAAQ,CAAC,IAAI,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;YACnH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,GAAG,KAAK,CAAC,IAAI,4CAA4C,QAAQ,CAAC,IAAI,wBAAwB,CAAC;QACnH,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,UAAU,CAAC,MAAM,CAAC,oBAAoB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;QAChH,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAE1B,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;gBACzD,QAAQ,EAAE,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;oBACxC,CAAC,CAAC,uEAAuE;oBACzE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,0EAA0E,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG;aACzH,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,EAAE,CAAC,IAAc;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,iDAAiD,CAAC,CAAC;YACvF,OAAO,mCAAmC,CAAC;QAC7C,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,iEAAiE;QACjE,0CAA0C;QAC1C,uEAAuE;QACvE,qEAAqE;QACrE,yDAAyD;QACzD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC;YAC5G,qEAAqE;YACrE,qEAAqE;YACrE,iEAAiE;YACjE,qEAAqE;YACrE,iDAAiD;YACjD,iEAAiE;YACjE,8CAA8C;YAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,yCAAyC,CAAC,CAAC;gBAC1F,OAAO,+GAA+G,CAAC;YACzH,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC9B,OAAO,8DAA8D,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,0DAA0D,CAAC,CAAC;oBAC3G,OAAO,+GAA+G,CAAC;gBACzH,CAAC;gBACD,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;oBACjC,OAAO,yCAAyC,CAAC;gBACnD,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,mDAAmD,CAAC,CAAC;gBACpG,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YACpC,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,mEAAmE;QACnE,sEAAsE;QACtE,+DAA+D;QAC/D,mEAAmE;QACnE,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpD,IAAI,WAAW;YAAE,OAAO,WAAW,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,oBAAoB,SAAS,sBAAsB,CAAC,CAAC;YACzF,OAAO,yBAAyB,CAAC;QACnC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QAE/C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,2EAA2E,CAAC,CAAC;YACjH,OAAO,wCAAwC,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,8CAA8C,SAAS,2CAA2C,CAAC,CAAC;YACxI,OAAO,wBAAwB,CAAC;QAClC,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACzB,8DAA8D;YAC9D,oEAAoE;YACpE,6DAA6D;YAC7D,4CAA4C;YAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,6BAA6B,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1E,OAAO,8BAA8B,SAAS,cAAc,CAAC;YAC/D,CAAC;YAED,sEAAsE;YACtE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,uEAAuE,CAAC,CAAC;gBAC7G,OAAO,wEAAwE,CAAC;YAClF,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC;YAEhC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACrG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU,CAAC,CAAE,2BAA2B;YACrE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,+BAA+B;YACjF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,+BAA+B,IAAI,cAAc,CAAC,CAAC;gBACvF,OAAO,mEAAmE,CAAC;YAC7E,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACrG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,kEAAkE;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,kEAAkE;QAClE,qEAAqE;QACrE,mEAAmE;QACnE,kEAAkE;QAClE,+DAA+D;QAC/D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC;oBACpG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;wBAChD,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ;4BAClD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC;gBACpC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE;oBAAE,SAAS;gBACtF,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC7B,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,qEAAqE;QACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,IAAI,cAAc,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAEnI,qEAAqE;QACrE,iEAAiE;QACjE,+DAA+D;QAC/D,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,sEAAsE;IAC9D,YAAY,CAAC,IAAU;QAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;aACpC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;aACxJ,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;QAC5C,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,oEAAoE;IAC5D,MAAM,CAAC,QAAQ,CAAC,SAAiB;QACvC,MAAM,GAAG,GAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3H,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IACrC,CAAC;IAED;;;8CAG0C;IAClC,SAAS,CAAC,MAAY;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC1C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,8EAA8E,EAAE,SAAS,CAAC,CAAC;gBACtH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO,gBAAgB,MAAM,CAAC,IAAI,gGAAgG,CAAC;QACrI,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"go.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/go.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Command, ICommand } from './command.js';
|
|
2
|
+
/**
|
|
3
|
+
* SUBDUING (SR5e p.195) -- "grapple"/"restrain"/"clinch": seize someone
|
|
4
|
+
* and hold them, dealing NO damage. The RAW shape, faithfully: a normal
|
|
5
|
+
* unarmed melee attack; on a hit, Strength + net hits must EXCEED the
|
|
6
|
+
* defender's Physical limit to immobilize. Held, they cannot move, flee,
|
|
7
|
+
* or fight (they count as prone against attacks: -2 defense, see
|
|
8
|
+
* Player.getDefensePool) until they win the escape test -- "struggle",
|
|
9
|
+
* Unarmed + Strength against the original net hits. The holder's hands
|
|
10
|
+
* are FULL: no attacking anyone else and no walking away without
|
|
11
|
+
* "release" (the maintain cost, p.195, translated to this engine).
|
|
12
|
+
* Built for the real session where a witness NPC kept bolting for the
|
|
13
|
+
* door faster than any conversation could hold them.
|
|
14
|
+
*/
|
|
15
|
+
export declare class GrappleCommand extends Command implements ICommand {
|
|
16
|
+
protected static verb: string;
|
|
17
|
+
protected static description: string;
|
|
18
|
+
execute(args?: string[]): Promise<string>;
|
|
19
|
+
/** NPC actors keep roll anatomy inline for their AI history; the
|
|
20
|
+
* player's goes to the Mechanics ticker (readability pass). */
|
|
21
|
+
private finishMeta;
|
|
22
|
+
private release;
|
|
23
|
+
}
|
|
24
|
+
/** "release" as its own verb -- the natural word once someone is held. */
|
|
25
|
+
export declare class ReleaseCommand extends GrappleCommand {
|
|
26
|
+
protected static verb: string;
|
|
27
|
+
protected static description: string;
|
|
28
|
+
execute(_args?: string[]): Promise<string>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The RAW escape (p.195): a Complex Action, Unarmed + Strength, threshold
|
|
32
|
+
* = the net hits that locked the hold.
|
|
33
|
+
*/
|
|
34
|
+
export declare class StruggleCommand extends Command implements ICommand {
|
|
35
|
+
protected static verb: string;
|
|
36
|
+
protected static description: string;
|
|
37
|
+
execute(_args?: string[]): Promise<string>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { Command } from './command.js';
|
|
2
|
+
import { hint } from '../utilities/hints.js';
|
|
3
|
+
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
4
|
+
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
5
|
+
import { physicalLimit, heldBy, holding, releaseGrapple } from '../utilities/grapple.js';
|
|
6
|
+
import { spotOf, ensureAtSpot } from '../utilities/spots.js';
|
|
7
|
+
/**
|
|
8
|
+
* SUBDUING (SR5e p.195) -- "grapple"/"restrain"/"clinch": seize someone
|
|
9
|
+
* and hold them, dealing NO damage. The RAW shape, faithfully: a normal
|
|
10
|
+
* unarmed melee attack; on a hit, Strength + net hits must EXCEED the
|
|
11
|
+
* defender's Physical limit to immobilize. Held, they cannot move, flee,
|
|
12
|
+
* or fight (they count as prone against attacks: -2 defense, see
|
|
13
|
+
* Player.getDefensePool) until they win the escape test -- "struggle",
|
|
14
|
+
* Unarmed + Strength against the original net hits. The holder's hands
|
|
15
|
+
* are FULL: no attacking anyone else and no walking away without
|
|
16
|
+
* "release" (the maintain cost, p.195, translated to this engine).
|
|
17
|
+
* Built for the real session where a witness NPC kept bolting for the
|
|
18
|
+
* door faster than any conversation could hold them.
|
|
19
|
+
*/
|
|
20
|
+
export class GrappleCommand extends Command {
|
|
21
|
+
static verb = 'grapple';
|
|
22
|
+
static description = 'Seize and restrain someone (SR5e Subduing, p.195) -- no damage, they can\'t move or fight until they break free ("struggle"). "release" lets them go. Also: "restrain", "clinch".';
|
|
23
|
+
async execute(args = []) {
|
|
24
|
+
const actor = this.actor;
|
|
25
|
+
if (actor.plane !== 'meat') {
|
|
26
|
+
return `A hold takes real hands on a real body -- nothing to grab from here.`;
|
|
27
|
+
}
|
|
28
|
+
let words = [...(args ?? [])];
|
|
29
|
+
if (/^(the|a|an)$/i.test(words[0] ?? ''))
|
|
30
|
+
words = words.slice(1);
|
|
31
|
+
// Already holding someone: bare "grapple" (or naming them) releases;
|
|
32
|
+
// naming anyone else is refused -- hands are full.
|
|
33
|
+
const held = holding(actor, this.scene);
|
|
34
|
+
if (held) {
|
|
35
|
+
const query = words.join(' ').toLowerCase();
|
|
36
|
+
if (words.length === 0 || held.name.toLowerCase().includes(query)) {
|
|
37
|
+
return this.release(held);
|
|
38
|
+
}
|
|
39
|
+
return `Your hands are full holding ${held.name} -- "release" first.`;
|
|
40
|
+
}
|
|
41
|
+
if (words.length === 0) {
|
|
42
|
+
return `Grapple whom? Try: grapple <name>`;
|
|
43
|
+
}
|
|
44
|
+
const holder = heldBy(actor, this.scene);
|
|
45
|
+
if (holder) {
|
|
46
|
+
return `${holder.name} has YOU locked down -- "struggle" free before you grab anyone.`;
|
|
47
|
+
}
|
|
48
|
+
if (actor.inExchange || (actor === this.scene.getPlayer() && this.scene.isPlayerExchangeActive())) {
|
|
49
|
+
return `Lead is flying -- closing to grapple waits for the lull.`;
|
|
50
|
+
}
|
|
51
|
+
// Same fuzzy resolution the other combat verbs use.
|
|
52
|
+
const room = actor.currentLocation;
|
|
53
|
+
const candidates = this.scene.getActorsInRoom(room)
|
|
54
|
+
.filter(a => a !== actor && a.plane === 'meat' && actor.canPerceive(a));
|
|
55
|
+
const picked = fuzzyPickName(words.join(' '), candidates.map(a => a.name));
|
|
56
|
+
const target = picked ? candidates.find(a => a.name === picked) : undefined;
|
|
57
|
+
if (!target) {
|
|
58
|
+
return `You don't see "${words.join(' ')}" here to grab.`;
|
|
59
|
+
}
|
|
60
|
+
if (target.isIncapacitated()) {
|
|
61
|
+
return `${target.name} is already down -- nothing left to restrain.`;
|
|
62
|
+
}
|
|
63
|
+
if (target.grappledBy) {
|
|
64
|
+
const other = heldBy(target, this.scene);
|
|
65
|
+
if (other && other !== actor)
|
|
66
|
+
return `${target.name} is already locked in ${other.name}'s grip.`;
|
|
67
|
+
}
|
|
68
|
+
// "At" spots: a hold happens chest to chest -- walk over first (free
|
|
69
|
+
// out of combat, the ensureAtSpot convention).
|
|
70
|
+
const reach = ensureAtSpot(actor, spotOf(target));
|
|
71
|
+
if (reach.refusal)
|
|
72
|
+
return reach.refusal;
|
|
73
|
+
const crossNote = reach.line ? `${reach.line}\n` : '';
|
|
74
|
+
const isPlayer = actor === this.scene.getPlayer();
|
|
75
|
+
const lines = [];
|
|
76
|
+
const meta = [];
|
|
77
|
+
// Someone with their hands up doesn't resist a zip-tie: restraining a
|
|
78
|
+
// surrendered target is automatic and quiet (threshold 4 to wriggle
|
|
79
|
+
// out -- betraying a surrender is on them).
|
|
80
|
+
if (target.surrendered) {
|
|
81
|
+
target.grappledBy = actor.name;
|
|
82
|
+
target.grappleThreshold = 4;
|
|
83
|
+
actor.grappling = target.name;
|
|
84
|
+
actor.performAction('grapples', `${target.name}, restraining them without a fight`);
|
|
85
|
+
this.scene.updateStatus();
|
|
86
|
+
return `${crossNote}${target.name}'s hands are already up -- you take hold and lock them down without a fight. They're not going anywhere.${hint(` ("release" to let go.)`)}`;
|
|
87
|
+
}
|
|
88
|
+
// The RAW melee attack, opposed as usual.
|
|
89
|
+
const attackRoll = rollPool(Math.max(1, actor.getUnarmedAttackPool() + actor.consumeEdgeBoost()));
|
|
90
|
+
const defenseRoll = rollPool(Math.max(0, target.getDefensePool()));
|
|
91
|
+
meta.push(`Grapple -- Unarmed: ${formatRoll(attackRoll)}`);
|
|
92
|
+
meta.push(`${target.name} defense: ${formatRoll(defenseRoll)}`);
|
|
93
|
+
const net = attackRoll.hits - defenseRoll.hits;
|
|
94
|
+
// The lunge is a hostile act either way -- observers and the target's
|
|
95
|
+
// own AI react to it like an attack (see NPC.RESPOND_WORTHY_VERB).
|
|
96
|
+
if (net <= 0) {
|
|
97
|
+
actor.performAction('grapples', `at ${target.name} -- and comes up with air`);
|
|
98
|
+
this.finishMeta(isPlayer, meta, lines);
|
|
99
|
+
return `${crossNote}${lines.join('\n')}You lunge for ${target.name} -- they twist clear. Now they know exactly what you want.`;
|
|
100
|
+
}
|
|
101
|
+
// Strength + net hits must EXCEED the Physical limit (p.195).
|
|
102
|
+
const grip = actor.strength + net;
|
|
103
|
+
const limit = physicalLimit(target);
|
|
104
|
+
meta.push(`Hold: Strength ${actor.strength} + ${net} net = ${grip} vs Physical limit ${limit} (p.195)`);
|
|
105
|
+
this.finishMeta(isPlayer, meta, lines);
|
|
106
|
+
if (grip <= limit) {
|
|
107
|
+
actor.performAction('grapples', `${target.name} -- a grip, but not a hold; they wrench loose`);
|
|
108
|
+
return `${crossNote}${lines.join('\n')}You get hands on ${target.name}, but they're too solid to hold -- they wrench loose.`;
|
|
109
|
+
}
|
|
110
|
+
target.grappledBy = actor.name;
|
|
111
|
+
target.grappleThreshold = net;
|
|
112
|
+
actor.grappling = target.name;
|
|
113
|
+
actor.performAction('grapples', `${target.name} and locks them down -- held fast, unable to move`);
|
|
114
|
+
this.scene.addWorldEvent(`${actor.name} grappled and restrained ${target.name} in ${room.name}.`);
|
|
115
|
+
this.scene.updateStatus();
|
|
116
|
+
return `${crossNote}${lines.join('\n')}You seize ${target.name} and lock the hold -- HELD FAST, no damage done. They can't move, flee, or fight until they break your grip${isPlayer ? `, and your hands are full until you "release"` : ''}.${hint(` (They escape only by beating ${net} hits on Unarmed + Strength.)`)}`;
|
|
117
|
+
}
|
|
118
|
+
/** NPC actors keep roll anatomy inline for their AI history; the
|
|
119
|
+
* player's goes to the Mechanics ticker (readability pass). */
|
|
120
|
+
finishMeta(isPlayer, meta, lines) {
|
|
121
|
+
if (isPlayer) {
|
|
122
|
+
for (const m of meta)
|
|
123
|
+
this.logger.meta(m);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
lines.push(...meta.map(m => ` ${m}`), '');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
release(held) {
|
|
130
|
+
releaseGrapple(held, this.actor);
|
|
131
|
+
this.actor.performAction('releases', `${held.name} from the hold`);
|
|
132
|
+
this.scene.updateStatus();
|
|
133
|
+
return `You let ${held.name} go and step back.`;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** "release" as its own verb -- the natural word once someone is held. */
|
|
137
|
+
export class ReleaseCommand extends GrappleCommand {
|
|
138
|
+
static verb = 'release';
|
|
139
|
+
static description = 'Let go of someone you\'re grappling.';
|
|
140
|
+
async execute(_args = []) {
|
|
141
|
+
const held = holding(this.actor, this.scene);
|
|
142
|
+
if (!held)
|
|
143
|
+
return `You're not holding anyone.`;
|
|
144
|
+
return super.execute([]);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* The RAW escape (p.195): a Complex Action, Unarmed + Strength, threshold
|
|
149
|
+
* = the net hits that locked the hold.
|
|
150
|
+
*/
|
|
151
|
+
export class StruggleCommand extends Command {
|
|
152
|
+
static verb = 'struggle';
|
|
153
|
+
static description = 'Fight your way out of a grapple: Unarmed + Strength vs the hold (SR5e p.195).';
|
|
154
|
+
async execute(_args = []) {
|
|
155
|
+
const actor = this.actor;
|
|
156
|
+
const holder = heldBy(actor, this.scene);
|
|
157
|
+
if (!holder) {
|
|
158
|
+
return `Nobody's holding you.`;
|
|
159
|
+
}
|
|
160
|
+
const threshold = actor.grappleThreshold ?? 2;
|
|
161
|
+
const pool = Math.max(1, actor.strength + actor.skillRating('unarmed') + actor.woundModifier - actor.sustainingPenalty);
|
|
162
|
+
const roll = rollPool(pool);
|
|
163
|
+
const isPlayer = actor === this.scene.getPlayer();
|
|
164
|
+
const rollLine = `Escape -- Unarmed + Strength: ${formatRoll(roll)} (threshold ${threshold})`;
|
|
165
|
+
if (isPlayer)
|
|
166
|
+
this.logger.meta(rollLine);
|
|
167
|
+
const inline = isPlayer ? '' : ` ${rollLine}\n`;
|
|
168
|
+
if (roll.hits >= threshold) {
|
|
169
|
+
releaseGrapple(actor, holder);
|
|
170
|
+
actor.performAction('struggles free', `of ${holder.name}'s hold`);
|
|
171
|
+
this.scene.updateStatus();
|
|
172
|
+
return `${inline}You wrench yourself out of ${holder.name}'s grip -- FREE.`;
|
|
173
|
+
}
|
|
174
|
+
actor.performAction('struggles', `against ${holder.name}'s hold -- no give`);
|
|
175
|
+
return `${inline}You strain against ${holder.name}'s hold -- no give. Still locked down.`;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=grapple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapple.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/grapple.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AAGjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,mLAAmL,CAAC;IAEnN,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,sEAAsE,CAAC;QAChF,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9B,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEjE,qEAAqE;QACrE,mDAAmD;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAyB,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,+BAA+B,IAAI,CAAC,IAAI,sBAAsB,CAAC;QACxE,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,mCAAmC,CAAC;QAC7C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,GAAG,MAAM,CAAC,IAAI,iEAAiE,CAAC;QACzF,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC;YAClG,OAAO,0DAA0D,CAAC;QACpE,CAAC;QAED,oDAAoD;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,kBAAkB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC5D,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,OAAO,GAAG,MAAM,CAAC,IAAI,+CAA+C,CAAC;QACvE,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,GAAG,MAAM,CAAC,IAAI,yBAAyB,KAAK,CAAC,IAAI,UAAU,CAAC;QACnG,CAAC;QAED,qEAAqE;QACrE,+CAA+C;QAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAgB,CAAC,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC,OAAO,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtD,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAa,EAAE,CAAC;QAE1B,sEAAsE;QACtE,oEAAoE;QACpE,4CAA4C;QAC5C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;YAC/B,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC5B,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;YAC9B,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,oCAAoC,CAAC,CAAC;YACpF,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,IAAI,2GAA2G,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAChL,CAAC;QAED,0CAA0C;QAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,oBAAoB,EAAE,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,uBAAuB,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,aAAa,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE/C,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC,IAAI,2BAA2B,CAAC,CAAC;YAC9E,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,IAAI,4DAA4D,CAAC;QACjI,CAAC;QAED,8DAA8D;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;QAClC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,QAAQ,MAAM,GAAG,UAAU,IAAI,sBAAsB,KAAK,UAAU,CAAC,CAAC;QACxG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YAClB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,+CAA+C,CAAC,CAAC;YAC/F,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,IAAI,uDAAuD,CAAC;QAC/H,CAAC;QAED,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;QAC/B,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAC9B,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;QAC9B,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,mDAAmD,CAAC,CAAC;QACnG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,4BAA4B,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QAClG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,8GAA8G,QAAQ,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,iCAAiC,GAAG,+BAA+B,CAAC,EAAE,CAAC;IAC7T,CAAC;IAED;oEACgE;IACxD,UAAU,CAAC,QAAiB,EAAE,IAAc,EAAE,KAAe;QACnE,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,IAAkB;QAChC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,gBAAgB,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC1B,OAAO,WAAW,IAAI,CAAC,IAAI,oBAAoB,CAAC;IAClD,CAAC;;AAGH,0EAA0E;AAC1E,MAAM,OAAO,cAAe,SAAQ,cAAc;IACtC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,sCAAsC,CAAC;IAEtE,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI;YAAE,OAAO,4BAA4B,CAAC;QAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;;AAGH;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO;IAChC,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,+EAA+E,CAAC;IAE/G,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,uBAAuB,CAAC;QACjC,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACxH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,iCAAiC,UAAU,CAAC,IAAI,CAAC,eAAe,SAAS,GAAG,CAAC;QAC9F,IAAI,QAAQ;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC;QAEjD,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;YAC3B,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC9B,KAAK,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC;YAClE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,OAAO,GAAG,MAAM,8BAA8B,MAAM,CAAC,IAAI,kBAAkB,CAAC;QAC9E,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,OAAO,GAAG,MAAM,sBAAsB,MAAM,CAAC,IAAI,wCAAwC,CAAC;IAC5F,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BypassCommand } from './bypass-command.js';
|
|
2
|
+
import { hint } from '../utilities/hints.js';
|
|
2
3
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
3
4
|
import { Door } from '../models/door.js';
|
|
4
5
|
import { leaveMatrix, canReachHost } from '../utilities/planes.js';
|
|
@@ -87,7 +88,7 @@ export class HackCommand extends BypassCommand {
|
|
|
87
88
|
lines.push(` ${lockedDoors.length} maglock${lockedDoors.length === 1 ? '' : 's'} release${lockedDoors.length === 1 ? 's' : ''} in the MEAT world. The way is open, out there.`);
|
|
88
89
|
}
|
|
89
90
|
if (vaultedFiles.length > 0) {
|
|
90
|
-
lines.push(` {cyan-fg}The data vault unseals -- ${vaultedFiles.map(i => i.name).join(', ')} ${vaultedFiles.length === 1 ? '
|
|
91
|
+
lines.push(` {cyan-fg}The data vault unseals -- ${vaultedFiles.map(i => i.name).join(', ')} spill${vaultedFiles.length === 1 ? 's' : ''} into the open.${hint(` Yours to "take".`)}{/cyan-fg}`);
|
|
91
92
|
}
|
|
92
93
|
if (lockedDoors.length === 0 && vaultedFiles.length === 0) {
|
|
93
94
|
lines.push(` Nothing here is locked down, but the node's systems are yours to read.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hack.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/hack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hack.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/hack.ts"],"names":[],"mappings":"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"}
|