@maka/maka-cli 5.63.1 → 5.65.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/commands/ar.js +29 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.d.ts +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js +86 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/ask.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.d.ts +29 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +151 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.d.ts +40 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js +107 -25
- package/bundle/typescript/src/commands/game/sideQuest/commands/bluff.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.d.ts +11 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js +13 -16
- package/bundle/typescript/src/commands/game/sideQuest/commands/breach.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js +30 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/buy.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.d.ts +40 -49
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +121 -160
- package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +29 -5
- 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 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +13 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +22 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js +65 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/cover.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/dispel.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +25 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js +18 -10
- package/bundle/typescript/src/commands/game/sideQuest/commands/jobs.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.d.ts +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js +136 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/journal.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +157 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +18 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.d.ts +2 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/pick.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/players.js +8 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/players.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js +115 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/posture.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +46 -12
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +30 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js +11 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/silent.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.d.ts +47 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +91 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.d.ts +20 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.js +61 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/time.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unlock.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.d.ts +17 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js +136 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/use.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +15 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +128 -44
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +551 -254
- 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 +82 -84
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +23 -4
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +95 -79
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js +176 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/seed-migration.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +104 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +268 -16
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.d.ts +78 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js +188 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless-harness.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.d.ts +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +78 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.d.ts +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/_index.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/device.d.ts +121 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js +145 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/device.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/door.d.ts +27 -8
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js +15 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/door.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +143 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +253 -30
- package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +68 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +102 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +80 -34
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +126 -54
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +1 -4
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +0 -22
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene1.json +78 -109
- package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +4 -101
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.d.ts +52 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/device-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.d.ts +63 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/legacy-puzzle-seed.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/player-seed.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.d.ts +2 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js +1 -14
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/abstracts.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.d.ts +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js +36 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/affordances.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js +116 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-review.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +73 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js +56 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +37 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.d.ts +26 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js +48 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/credentials.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.d.ts +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js +55 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/devices.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.d.ts +57 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js +46 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/fuzzy-match.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.d.ts +38 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js +42 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/log-style.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +72 -17
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.d.ts +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js +43 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/playtester.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +14 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +45 -31
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +66 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +81 -15
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +142 -33
- package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.d.ts +88 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js +113 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/use-target.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.d.ts +83 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js +106 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/world-clock.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js +54 -5
- package/bundle/typescript/src/commands/game/sideQuest.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/maka.js +1 -1
- package/bundle/typescript/src/maka.js.map +1 -1
- package/bundle/typescript/src/tools/sdk-loader/relocate.d.ts +19 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js +22 -2
- package/bundle/typescript/src/tools/sdk-loader/relocate.js.map +1 -1
- package/package.json +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +0 -72
- package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.d.ts +0 -6
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js +0 -26
- package/bundle/typescript/src/commands/game/sideQuest/factories/puzzle-factory.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +0 -143
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +0 -366
- package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +0 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +0 -28
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js +0 -2
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.js.map +0 -1
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { Door } from '../models/door.js';
|
|
2
|
+
import { Item } from '../models/item.js';
|
|
2
3
|
import { NPC } from '../models/npc.js';
|
|
3
4
|
import { Category } from '../types/shared/item-enum.js';
|
|
4
5
|
import { Command } from './command.js';
|
|
5
|
-
import { shellsInRoom, canReachHost } from '../utilities/planes.js';
|
|
6
|
+
import { shellsInRoom, canReachHost, planeTintItemName, emphasizeFind } from '../utilities/planes.js';
|
|
6
7
|
import { gridIconBlock, gridIcons, gridSculpt } from '../utilities/grid-view.js';
|
|
7
8
|
import { aroBlock } from '../utilities/ar.js';
|
|
8
9
|
import { hint } from '../utilities/hints.js';
|
|
9
10
|
import { BULLET } from '../utilities/log-style.js';
|
|
10
|
-
import { spotsActive, whoIsWhereLine, highlightSpots, highlightActors } from '../utilities/spots.js';
|
|
11
|
+
import { spotsActive, whoIsWhereLine, highlightSpots, highlightActors, canReach } from '../utilities/spots.js';
|
|
11
12
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
13
|
+
import { findCatalogItem } from '../utilities/catalog.js';
|
|
12
14
|
export class LookCommand extends Command {
|
|
13
15
|
static verb = 'look';
|
|
14
16
|
static description = 'Examine your surroundings';
|
|
@@ -101,6 +103,23 @@ export class LookCommand extends Command {
|
|
|
101
103
|
const who = whoIsWhereLine(room, this.actor, roll.hits);
|
|
102
104
|
if (who)
|
|
103
105
|
description += `\n\n${who}.`;
|
|
106
|
+
// >>> FILED, NOT FIXED (2026-08-27): THESE TWO BRANCHES ARE
|
|
107
|
+
// MUTUALLY EXCLUSIVE, AND THE SECOND IS THE ONLY UNCONDITIONAL ONE.
|
|
108
|
+
// In a spots-active room the who-stands-where line is the ONLY
|
|
109
|
+
// listing a player gets, and it is gated on a perception roll. If
|
|
110
|
+
// whoIsWhereLine comes back empty -- everyone tucked behind cover
|
|
111
|
+
// on a bad roll -- the room names NOBODY, and the "You see:"
|
|
112
|
+
// fallback below that would have named them never runs, because it
|
|
113
|
+
// is an `else if` on the branch that just failed.
|
|
114
|
+
//
|
|
115
|
+
// So a room can hold people and print no one, with no error and no
|
|
116
|
+
// failing test. That is indistinguishable from the symptom we spent
|
|
117
|
+
// an hour chasing from a different cause (an astral NPC a meat
|
|
118
|
+
// viewer could not perceive -- see Player.canPerceive), and the next
|
|
119
|
+
// person to hit it will spend the same hour if this note is gone.
|
|
120
|
+
// Left alone deliberately: changing it is a perception-rules change
|
|
121
|
+
// and wants its own ruling, since always-listing would undo the
|
|
122
|
+
// casing-and-cover mechanic on purpose.
|
|
104
123
|
}
|
|
105
124
|
else if (otherActors.length > 0) {
|
|
106
125
|
const actorList = otherActors.map(a => {
|
|
@@ -119,6 +138,45 @@ export class LookCommand extends Command {
|
|
|
119
138
|
description += `\n\n${shellList}`;
|
|
120
139
|
}
|
|
121
140
|
}
|
|
141
|
+
// WHAT IS SIMPLY THERE TO BE SEEN (player note 2026-08-27: "'look'
|
|
142
|
+
// should reveal items that are under a perception threshold.
|
|
143
|
+
// 'search' is an active perception check").
|
|
144
|
+
//
|
|
145
|
+
// CANON BACKS THE SPLIT EXACTLY. SR5e p.135: characters "should
|
|
146
|
+
// always be able to observe what is immediately obvious without
|
|
147
|
+
// spending an action or making a test". An active hunt is OBSERVE
|
|
148
|
+
// IN DETAIL, a Simple Action carrying a Perception + Intuition test
|
|
149
|
+
// against threshold 2 for the normal and 4 for the hidden (p.165,
|
|
150
|
+
// p.135-136) -- which is what search.ts already rolls.
|
|
151
|
+
//
|
|
152
|
+
// Before this, `look` listed NO items whatsoever: a corpse's
|
|
153
|
+
// scattered kit and something you had just watched hit the floor
|
|
154
|
+
// were both invisible until you typed "search". That made searching
|
|
155
|
+
// mandatory for the obvious, which is precisely the action p.135
|
|
156
|
+
// says not to spend.
|
|
157
|
+
//
|
|
158
|
+
// The obvious set is Room.plainSightItems, which already means
|
|
159
|
+
// exactly this -- goods that arrived WITNESSED (a witnessed drop, a
|
|
160
|
+
// dead NPC's scattered gear; see scene.ts and drop.ts) and which
|
|
161
|
+
// "take all" already honours without a search. No new concept, and
|
|
162
|
+
// no roll: a test here would re-import the thing being removed.
|
|
163
|
+
{
|
|
164
|
+
const obvious = room.inventory.getAllItems()
|
|
165
|
+
.filter(i => room.plainSightItems.has(i.name.toLowerCase()))
|
|
166
|
+
.filter(i => i.plane === 'meat');
|
|
167
|
+
const underfoot = obvious.filter(i => canReach(this.actor, i.atSpot));
|
|
168
|
+
const beyond = [...new Set(obvious.filter(i => !canReach(this.actor, i.atSpot)).map(i => i.atSpot))];
|
|
169
|
+
if (underfoot.length > 0) {
|
|
170
|
+
const named = underfoot.map(i => emphasizeFind(planeTintItemName(i, this.actor.plane))).join(', ');
|
|
171
|
+
description += `\n\nIn plain sight: ${named}.`;
|
|
172
|
+
}
|
|
173
|
+
// Distance is a Perception MODIFIER, not a free pass (p.136:
|
|
174
|
+
// "object not in immediate vicinity -2"), so something obvious
|
|
175
|
+
// across the room registers as present without being itemised.
|
|
176
|
+
if (beyond.length > 0) {
|
|
177
|
+
description += `\n\nSomething's lying out over at the ${beyond.join(', the ')}.`;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
122
180
|
// THE AR LAYER (player request 2026-08-26: "we need AROs on anything
|
|
123
181
|
// online"). Last, and only when the overlay is actually up: the
|
|
124
182
|
// room's prose is what your EYES report, and the icons float over
|
|
@@ -319,16 +377,110 @@ export class LookCommand extends Command {
|
|
|
319
377
|
}
|
|
320
378
|
return `You cannot see through`;
|
|
321
379
|
}
|
|
380
|
+
/**
|
|
381
|
+
* THE DETAILS THE GAME ALREADY KNEW (2026-08-27: "when looking at an
|
|
382
|
+
* inventory item, I should be able to get its details").
|
|
383
|
+
*
|
|
384
|
+
* This used to return `details || description` and stop -- one line of
|
|
385
|
+
* prose. Everything mechanical about the object was already in hand
|
|
386
|
+
* and simply never reached the player: its category and rating, what
|
|
387
|
+
* it weighs, how many rounds are in it, whether it's jammed, a deck's
|
|
388
|
+
* attribute array, and -- for anything the gear catalog recognises --
|
|
389
|
+
* the book's own price, availability, legality and page citation.
|
|
390
|
+
*
|
|
391
|
+
* NOTHING IS INVENTED. Every line is omitted when its source is
|
|
392
|
+
* absent, so an improvised object still reads as one line of prose
|
|
393
|
+
* rather than a stat block full of blanks. That matters more than the
|
|
394
|
+
* completeness: a confident-looking "Availability --" for an item the
|
|
395
|
+
* catalog has never heard of is the same class of lie as an NPC
|
|
396
|
+
* quoting a code it made up.
|
|
397
|
+
*/
|
|
322
398
|
inspectItem(itemName, inventory) {
|
|
323
399
|
const item = inventory.getItem(itemName);
|
|
324
400
|
if (!item) {
|
|
325
401
|
return `You don't see any ${itemName} here.`;
|
|
326
402
|
}
|
|
403
|
+
const prose = item.details || item.description || `It's just a regular ${itemName}.`;
|
|
327
404
|
if (item.category == Category.Book) {
|
|
328
|
-
|
|
405
|
+
// A book's payload IS its detail -- "read" is the verb that opens
|
|
406
|
+
// it, and saying so beats a stat block on a paperback.
|
|
407
|
+
return `${item.description} is readable.${hint(`\n("read ${item.name.toLowerCase()}")`)}`;
|
|
329
408
|
}
|
|
330
|
-
|
|
331
|
-
|
|
409
|
+
const lines = [`{bold}${item.name}{/bold}`, prose];
|
|
410
|
+
for (const line of this.itemFacts(item))
|
|
411
|
+
lines.push(` ${line}`);
|
|
412
|
+
return lines.join('\n');
|
|
413
|
+
}
|
|
414
|
+
/** The mechanical rows, each omitted when its source is absent. */
|
|
415
|
+
itemFacts(item) {
|
|
416
|
+
const out = [];
|
|
417
|
+
const book = findCatalogItem(item.name);
|
|
418
|
+
// WHAT IT IS: category, rating, how it carries.
|
|
419
|
+
const build = [
|
|
420
|
+
item.category,
|
|
421
|
+
item.rating,
|
|
422
|
+
item.size,
|
|
423
|
+
item.weight ? `${item.weight}kg` : undefined,
|
|
424
|
+
].filter(Boolean);
|
|
425
|
+
if (build.length > 0)
|
|
426
|
+
out.push(build.join(' · '));
|
|
427
|
+
// WHAT IT DOES. The catalog's stat line is the book's own wording
|
|
428
|
+
// and beats anything re-derived from the model, so it wins when the
|
|
429
|
+
// row exists; the derived numbers are the fallback for gear the
|
|
430
|
+
// catalog has never seen.
|
|
431
|
+
// A DERIVED STAT ONLY FOR SOMETHING THAT IS A WEAPON. meleeBase
|
|
432
|
+
// answers for every object -- a credstick has one -- so gating on
|
|
433
|
+
// the number alone printed "Melee base 2" under a length of rebar
|
|
434
|
+
// and would have printed it under a paperback.
|
|
435
|
+
const isWeapon = /weapon/i.test(String(item.category));
|
|
436
|
+
if (book?.stats) {
|
|
437
|
+
out.push(book.stats);
|
|
438
|
+
}
|
|
439
|
+
else if (item.isFirearm?.() && item.rangedBase) {
|
|
440
|
+
out.push(`Ranged base ${item.rangedBase}${item.armorPen ? `, AP ${item.armorPen}` : ''}`);
|
|
441
|
+
}
|
|
442
|
+
else if (isWeapon && item.meleeBase) {
|
|
443
|
+
out.push(`Melee base ${item.meleeBase}${item.armorPen ? `, AP ${item.armorPen}` : ''}`);
|
|
444
|
+
}
|
|
445
|
+
// STATE, which is the part that changes in play and the part a
|
|
446
|
+
// player is usually asking about.
|
|
447
|
+
if (item.isFirearm?.()) {
|
|
448
|
+
out.push(`Loaded: ${item.ammo}/${Item.MAGAZINE_CAPACITY}${item.jammed ? ' {red-fg}JAMMED{/red-fg}' : ''}`);
|
|
449
|
+
}
|
|
450
|
+
if (item.isCyberdeck?.()) {
|
|
451
|
+
out.push(`Device rating ${item.deviceRating} · A ${item.attack} / S ${item.sleaze} / DP ${item.dataProcessing} / FW ${item.firewall}`);
|
|
452
|
+
const slots = item.programSlots;
|
|
453
|
+
const loaded = item.loadedPrograms ?? [];
|
|
454
|
+
out.push(`Programs ${loaded.length}/${slots}${loaded.length > 0 ? `: ${loaded.join(', ')}` : ''}`);
|
|
455
|
+
if (item.isBricked)
|
|
456
|
+
out.push(`{red-fg}BRICKED{/red-fg}`);
|
|
457
|
+
}
|
|
458
|
+
if (item.isCurrencyCarrier?.()) {
|
|
459
|
+
out.push(`Holds ${item.currencyAmount}¥`);
|
|
460
|
+
}
|
|
461
|
+
if (item.plane !== 'meat') {
|
|
462
|
+
out.push(`This is ${item.plane === 'matrix' ? 'DATA -- it lives on the grid' : 'an astral object'}.`);
|
|
463
|
+
}
|
|
464
|
+
// WHAT THE STREET SAYS. Availability and legality are the numbers a
|
|
465
|
+
// runner actually plans around, and the page citation is what makes
|
|
466
|
+
// them checkable rather than asserted.
|
|
467
|
+
const price = item.price ?? book?.price;
|
|
468
|
+
const street = [];
|
|
469
|
+
if (price !== undefined)
|
|
470
|
+
street.push(`${price}¥`);
|
|
471
|
+
if (book) {
|
|
472
|
+
// Book notation AND the word, once: "5R" is what the tables say,
|
|
473
|
+
// and "restricted" is what it means to someone who hasn't read
|
|
474
|
+
// them. Printing the suffix and the word as separate list items
|
|
475
|
+
// said the same thing twice.
|
|
476
|
+
const meaning = book.legality === 'R' ? ' (restricted)' : book.legality === 'F' ? ' (forbidden)' : '';
|
|
477
|
+
street.push(`Avail ${book.availability === 0 ? '--' : book.availability}${book.legality ?? ''}${meaning}`);
|
|
478
|
+
if (book.page)
|
|
479
|
+
street.push(`SR5e ${book.page}`);
|
|
480
|
+
}
|
|
481
|
+
if (street.length > 0)
|
|
482
|
+
out.push(street.join(' · '));
|
|
483
|
+
return out;
|
|
332
484
|
}
|
|
333
485
|
inspectActor(targetName) {
|
|
334
486
|
const target = this.scene.getActor(targetName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"look.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/look.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC5B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,WAAW,GAAG,2BAA2B,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAE/C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAErC,MAAM,MAAM,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAI,MAAM,EAAE,CAAC;YACX,iEAAiE;YACjE,oEAAoE;YACpE,kEAAkE;YAClE,iEAAiE;YACjE,iEAAiE;YACjE,iEAAiE;YACjE,8DAA8D;YAC9D,mCAAmC;YACnC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC;gBAClF,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,MAAM,8BAA8B,CAAC,CAAC;gBAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,MAAM,IAAI,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,wDAAwD;gBACxD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;qBAC1B,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;qBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzF,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBAED,OAAO,kBAAkB,MAAM,EAAE,CAAC;YACpC,CAAC;QAEH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,sCAAsC,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,IAAI;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,0DAA0D,CAAC,CAAC;YAChG,OAAO,6BAA6B,CAAC;QACvC,CAAC;QAED,oEAAoE;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,uCAAuC;QACvC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,+DAA+D;QAC/D,wDAAwD;QACxD,uDAAuD;QACvD,IAAI,WAAW,GAAG,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5H,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,WAAW,IAAI,IAAI,CAAC,MAAM;gBACxB,CAAC,CAAC,uGAAuG;gBACzG,CAAC,CAAC,2GAA2G,CAAC;QAClH,CAAC;QAED,qEAAqE;QACrE,oCAAoC;QACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK;aAC3B,eAAe,CAAC,IAAI,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAExE,gEAAgE;QAChE,+DAA+D;QAC/D,iEAAiE;QACjE,mEAAmE;QACnE,yBAAyB;QACzB,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAClL,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,GAAG;gBAAE,WAAW,IAAI,OAAO,GAAG,GAAG,CAAC;QACxC,CAAC;aAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvG,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,WAAW,IAAI,iBAAiB,SAAS,EAAE,CAAC;QAC9C,CAAC;QAED,iEAAiE;QACjE,oEAAoE;QACpE,2CAA2C;QAC3C,CAAC;YACC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,4CAA4C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7G,WAAW,IAAI,OAAO,SAAS,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,gEAAgE;QAChE,kEAAkE;QAClE,kEAAkE;QAClE,0CAA0C;QAC1C,CAAC;YACC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,WAAW,IAAI,OAAO,IAAI,EAAE,CAAC;QACpD,CAAC;QAED,oEAAoE;QACpE,+DAA+D;QAC/D,oEAAoE;QACpE,+DAA+D;QAC/D,0CAA0C;QAC1C,OAAO,WAAW,CAAC;IACrB,CAAC;IAGD;;;;;;;;;;OAUG;IACK,QAAQ,CAAC,IAAU;QACzB,kEAAkE;QAClE,oEAAoE;QACpE,mEAAmE;QACnE,mEAAmE;QACnE,6DAA6D;QAC7D,mEAAmE;QACnE,MAAM,KAAK,GAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,iEAAiE,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED;;;;;;;;;OASG;IACK,UAAU,CAAC,MAAc;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QAExC,iEAAiE;QACjE,gEAAgE;QAChE,mEAAmE;QACnE,mEAAmE;QACnE,wDAAwD;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,OAAO,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,qHAAqH,IAAI,CAAC,IAAI,8BAA8B,CAAC;YACtK,CAAC;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtC,OAAO,GAAG,MAAM,CAAC,IAAI,2HAA2H,CAAC;YACnJ,CAAC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QAED,+DAA+D;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;aAC7C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,qEAAqE;QACrE,kEAAkE;QAClE,yDAAyD;QACzD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9G,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3G,IAAI,QAAQ;gBAAE,OAAO,YAAY,QAAQ,YAAY,CAAC;QACxD,CAAC;QAED,oEAAoE;QACpE,+DAA+D;QAC/D,+DAA+D;QAC/D,iEAAiE;QACjE,yDAAyD;QACzD,CAAC;YACC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;iBAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;YAClF,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,GAAG,IAAI,CAAC,IAAI,kFAAkF,CAAC;gBACxG,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1D,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;oBAClB,OAAO,GAAG,IAAI,CAAC,IAAI,6BAA6B,MAAM,CAAC,IAAI,6GAA6G,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,4DAA4D,IAAI,CAAC,IAAI,kCAAkC,CAAC,EAAE,CAAC;gBAC9S,CAAC;gBACD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,iCAAiC,OAAO,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;gBACnH,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,aAAc,MAA+B,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzH,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAoC,EAAE,CAAC;oBACtF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACvC,IAAI,CAAC,KAAK;wBAAE,SAAS;oBACrB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM;4BAAE,SAAS;wBACvC,MAAM,KAAK,GAAa,EAAE,CAAC;wBAC3B,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;4BAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBACtD,IAAK,IAA6B,CAAC,MAAM;4BAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBACjF,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrF,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;oBAChD,IAAI,IAAI,KAAK,MAAM;wBAAE,SAAS;oBAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;wBAClE,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;gBAC/F,MAAM,KAAK,GAAG,IAAI,CAAC,6DAA6D,IAAI,CAAC,IAAI,eAAe,CAAC,CAAC;gBAC1G,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,mEAAmE;QACnE,kEAAkE;QAClE,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,OAAO,gBAAgB,MAAM,2GAA2G,IAAI,CAAC,yCAAyC,CAAC,EAAE,CAAC;QAC5L,CAAC;QAED,qEAAqE;QACrE,mEAAmE;QACnE,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,OAAO,IAAI,MAAM,CAAC;QACnC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,GAAG,QAAQ,CAAC,IAAI,kGAAkG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,cAAc,8BAA8B,IAAI,CAAC,wDAAwD,CAAC,EAAE,CAAC;QACrQ,CAAC;QAED,OAAO,oCAAoC,MAAM,KAAK,IAAI,CAAC,6DAA6D,CAAC,EAAE,CAAC;IAC9H,CAAC;IAED;;;;;;;OAOG;IACK,cAAc,CAAC,MAAoB;QACzC,MAAM,KAAK,GAAa,CAAC,cAAc,MAAM,CAAC,IAAI,uCAAuC,CAAC,CAAC;QAE3F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC;QAC/E,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QAC9E,CAAC;aAAM,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;QACnG,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,yBAAyB,OAAO,MAAM,IAAI,CAAC,+CAA+C,CAAC,EAAE,CAAC,CAAC;QAC5G,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,SAAoB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,0DAA0D,CAAC,CAAC;YAChG,OAAO,6BAA6B,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,qCAAqC,SAAS,IAAI,CAAC;QAC5D,CAAC;QAED,IAAI,YAA8B,CAAC;QAEnC,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACzB,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpC,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,oDAAoD,SAAS,IAAI,CAAC;YAC3E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,yEAAyE,SAAS,IAAI,CAAC;QAChG,CAAC;QAGD,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAEO,WAAW,CAAC,QAAgB,EAAE,SAAoB;QACxD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,qBAAqB,QAAQ,QAAQ,CAAC;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,GAAG,IAAI,CAAC,WAAW,eAAe,CAAC;QAC5C,CAAC;QAED,qGAAqG;QACrG,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,IAAI,uBAAuB,QAAQ,GAAG,CAAC;IAChF,CAAC;IAEO,YAAY,CAAC,UAAkB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,8BAA8B,UAAU,GAAG,CAAC;QACrD,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,WAAW,CAAC,CAAC;QAEtC,IAAI,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAED,oEAAoE;QACpE,+DAA+D;QAC/D,IAAI,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACxB,CAAC,CAAC,2CAA2C;gBAC7C,CAAC,CAAC,mDAAmD,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,WAAW;gBAAE,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,YAAY,CAAC,CAAC;YAChH,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,YAAY,QAAQ,CAAC,CAAC;YACnG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAEnC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAA+B,EAAE,CAAC;YAC5E,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5B,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,yCAAyC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"look.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/look.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from './command.js';
|
|
2
2
|
import { Door } from '../models/door.js';
|
|
3
3
|
import { isWatched, camerasLive } from '../utilities/surveillance.js';
|
|
4
|
+
import { optionMark } from '../utilities/log-style.js';
|
|
4
5
|
import { capitalCase } from 'change-case';
|
|
5
6
|
import { getPref, setPref } from '../utilities/prefs.js';
|
|
6
7
|
/**
|
|
@@ -52,15 +53,20 @@ export class MapCommand extends Command {
|
|
|
52
53
|
lines.push('There are no exits here.');
|
|
53
54
|
return lines.join('\n');
|
|
54
55
|
}
|
|
56
|
+
// Numbered for the same reason the grid list is: this is a list you
|
|
57
|
+
// type back at. go.ts reads room.exits in this same insertion order,
|
|
58
|
+
// so "go 2" is the second row here.
|
|
55
59
|
lines.push('Exits:');
|
|
60
|
+
let nth = 0;
|
|
56
61
|
for (const [direction, exit] of room.exits.entries()) {
|
|
62
|
+
nth += 1;
|
|
57
63
|
if (exit instanceof Door) {
|
|
58
64
|
const target = exit.getOtherSideToName(room);
|
|
59
65
|
const state = exit.checkIfLocked() ? ' (locked)' : exit.checkIfLockable() ? ' (unlocked)' : '';
|
|
60
|
-
lines.push(
|
|
66
|
+
lines.push(`${optionMark(nth)}${capitalCase(direction)}: ${target}${state}`);
|
|
61
67
|
}
|
|
62
68
|
else {
|
|
63
|
-
lines.push(
|
|
69
|
+
lines.push(`${optionMark(nth)}${capitalCase(direction)}: ${exit}`);
|
|
64
70
|
}
|
|
65
71
|
}
|
|
66
72
|
return lines.join('\n');
|
|
@@ -77,10 +83,18 @@ export class MapCommand extends Command {
|
|
|
77
83
|
const body = this.actor.bodyRoom;
|
|
78
84
|
const lines = [
|
|
79
85
|
`THE GRID`,
|
|
80
|
-
`{cyan-fg}No distance out here -- "go <name>" is one thought away.{/cyan-fg}`,
|
|
86
|
+
`{cyan-fg}No distance out here -- "go <name>" (or "go <number>") is one thought away.{/cyan-fg}`,
|
|
81
87
|
];
|
|
82
88
|
const allRooms = this.rooms ?? {};
|
|
89
|
+
// NUMBERED BECAUSE YOU CAN ACT ON IT (player request 2026-08-27,
|
|
90
|
+
// and this list is the example they gave). The same rooms in this
|
|
91
|
+
// same order are what go.ts:gridJump resolves against -- both walk
|
|
92
|
+
// Object.values(this.rooms) -- so the index printed here is the
|
|
93
|
+
// index the parser honours. Keep those two iterations in step; a
|
|
94
|
+
// number that selects the wrong room is worse than no number.
|
|
95
|
+
let nth = 0;
|
|
83
96
|
for (const r of Object.values(allRooms)) {
|
|
97
|
+
nth += 1;
|
|
84
98
|
const icon = r.hasNode ? (r.nodeAccess === 'wired' ? '■' : '●') : '·';
|
|
85
99
|
const kind = r.hasNode
|
|
86
100
|
? (r.nodeAccess === 'wired' ? 'AIR-GAPPED host -- dark without a hard line' : 'host node')
|
|
@@ -103,7 +117,7 @@ export class MapCommand extends Command {
|
|
|
103
117
|
if (r === body)
|
|
104
118
|
marks.push('your body');
|
|
105
119
|
const name = r.hasNode ? `{cyan-fg}${r.name}{/cyan-fg}` : r.name;
|
|
106
|
-
lines.push(
|
|
120
|
+
lines.push(`${optionMark(nth)}${icon} ${name} -- ${kind}${eyes}${marks.length > 0 ? ` {yellow-fg}[${marks.join(', ')}]{/yellow-fg}` : ''}`);
|
|
107
121
|
}
|
|
108
122
|
return lines.join('\n');
|
|
109
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,OAAO,UAAW,SAAQ,OAAO;IAC3B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,WAAW,GAAG,0OAA0O,CAAC;IAE1Q,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,gCAAgC,CAAC;QAC1C,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAE1C,iEAAiE;QACjE,yDAAyD;QACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE;gBAAE,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;YACrC,OAAO,EAAE,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACvG,CAAC;QAED,+DAA+D;QAC/D,gEAAgE;QAChE,+DAA+D;QAC/D,kEAAkE;QAClE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,gEAAgE;QAChE,gEAAgE;QAChE,oEAAoE;QACpE,iEAAiE;QACjE,kEAAkE;QAClE,kEAAkE;QAClE,mCAAmC;QACnC,gEAAgE;QAChE,qEAAqE;QACrE,sDAAsD;QACtD,MAAM,KAAK,GAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACvC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/F,KAAK,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -169,7 +169,7 @@ export class MoveCommand extends Command {
|
|
|
169
169
|
if (mine !== undefined && room.ensureGrid() && !pathBetweenSpots(room, mine, spot.name)) {
|
|
170
170
|
const blocked = blockingRegion(room, mine, spot.name);
|
|
171
171
|
if (blocked)
|
|
172
|
-
return terrainRefusal(blocked.region, spot.name, blocked.
|
|
172
|
+
return terrainRefusal(blocked.region, spot.name, blocked.device);
|
|
173
173
|
}
|
|
174
174
|
// Mid-exchange, nobody strolls (same rule as go.ts room moves): the
|
|
175
175
|
// player is refused; an NPC's AI retries in the lull. Phase 2 will
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { BypassCommand } from './bypass-command.js';
|
|
2
|
-
import { PuzzleBypassType } from '../types/seed/puzzle-seed.js';
|
|
3
2
|
export declare class PickCommand extends BypassCommand {
|
|
4
3
|
protected static verb: string;
|
|
5
4
|
protected static description: string;
|
|
6
|
-
protected
|
|
5
|
+
protected deviceKind: "lock";
|
|
7
6
|
protected verbName: string;
|
|
8
|
-
protected
|
|
7
|
+
protected noDeviceMessage: string;
|
|
9
8
|
execute(args: string[]): Promise<string>;
|
|
10
9
|
protected determineOutcome(): Promise<boolean>;
|
|
11
10
|
}
|
|
@@ -3,9 +3,9 @@ import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
|
3
3
|
export class PickCommand extends BypassCommand {
|
|
4
4
|
static verb = 'pick';
|
|
5
5
|
static description = 'Pick a lock -- Agility + locksmith, skips needing the code. Fail, and the mechanism seizes for good (the code still works) -- and the noise carries. "pick north" or "pick <name>" if there\'s more than one barrier.';
|
|
6
|
-
|
|
6
|
+
deviceKind = 'lock';
|
|
7
7
|
verbName = 'pick';
|
|
8
|
-
|
|
8
|
+
noDeviceMessage = "There's nothing here to pick.";
|
|
9
9
|
async execute(args) {
|
|
10
10
|
// Lockpicking is HANDS work -- a jacked-in persona picking a physical
|
|
11
11
|
// maglock (which a real session did, from cold-sim) breaks the plane
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/pick.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,OAAO,WAAY,SAAQ,aAAa;IAClC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,MAAM,CAAC,WAAW,GAAG,uNAAuN,CAAC;IAC7O,UAAU,GAAG,MAAe,CAAC;IAC7B,QAAQ,GAAG,MAAM,CAAC;IAClB,eAAe,GAAG,+BAA+B,CAAC;IAE5D,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,sEAAsE;QACtE,qEAAqE;QACrE,gCAAgC;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,2DAA2D,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,cAAc,6DAA6D,CAAC;QAC7K,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,+FAA+F,CAAC;QACzG,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,yFAAyF,CAAC;QACnG,CAAC;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,gBAAgB;QAC9B,uEAAuE;QACvE,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClI,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IACxB,CAAC"}
|
|
@@ -43,9 +43,15 @@ export class PlayersCommand extends Command {
|
|
|
43
43
|
lines.push(` Quiet out there tonight -- nobody else on the street.`);
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
46
|
-
|
|
46
|
+
// KARMA IS NOT THE STREET'S BUSINESS (playtest 2026-08-27:
|
|
47
|
+
// "remove the Karma column from the player list"). It is a
|
|
48
|
+
// character-sheet number, and putting it on the roster invited a
|
|
49
|
+
// comparison the roster is not for -- who is on the street and
|
|
50
|
+
// whether you can reach them. The remaining columns keep their
|
|
51
|
+
// own widths, so nothing reflows.
|
|
52
|
+
lines.push(` ${'Runner'.padEnd(18)} ${'Archetype'.padEnd(16)} Status`);
|
|
47
53
|
for (const p of players) {
|
|
48
|
-
lines.push(` ${p.playerName.padEnd(18)} ${(p.archetypeName ?? '?').padEnd(16)} ${
|
|
54
|
+
lines.push(` ${p.playerName.padEnd(18)} ${(p.archetypeName ?? '?').padEnd(16)} ${p.online ? 'online' : 'away'}`);
|
|
49
55
|
}
|
|
50
56
|
}
|
|
51
57
|
const footer = hint(`"hire <runner>" seats one at your table (they accept the invite from their own terminal); "call <runner>" rings them on the crew channel -- then "say" talks, "end-call" hangs up.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"players.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/players.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,kRAAkR,CAAC;IAElT,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAClB,OAAO,wEAAwE,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO,0EAA0E,CAAC;QACpF,CAAC;QACD,iEAAiE;QACjE,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,mEAAmE,CAAC;QAC7E,CAAC;QACD,gEAAgE;QAChE,qEAAqE;QACrE,sDAAsD;QACtD,MAAM,KAAK,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;YACtB,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,qDAAqD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG;gBACzE,CAAC,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,6BAA6B;YACxI,CAAC,CAAC,IAAI,KAAK,YAAY;gBACrB,CAAC,CAAC,oEAAoE;gBACtE,CAAC,CAAC,2EAA2E,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"players.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/players.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,MAAM,CAAC,WAAW,GAAG,kRAAkR,CAAC;IAElT,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;YAClB,OAAO,wEAAwE,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,OAAO,0EAA0E,CAAC;QACpF,CAAC;QACD,iEAAiE;QACjE,+DAA+D;QAC/D,6DAA6D;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,YAAY,EAAE,CAAC;QACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,mEAAmE,CAAC;QAC7E,CAAC;QACD,gEAAgE;QAChE,qEAAqE;QACrE,sDAAsD;QACtD,MAAM,KAAK,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI;YACtB,CAAC,CAAC,MAAM;gBACN,CAAC,CAAC,qDAAqD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG;gBACzE,CAAC,CAAC,0BAA0B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,sBAAsB,6BAA6B;YACxI,CAAC,CAAC,IAAI,KAAK,YAAY;gBACrB,CAAC,CAAC,oEAAoE;gBACtE,CAAC,CAAC,2EAA2E,CAAC,CAAC;QACnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,2DAA2D;YAC3D,iEAAiE;YACjE,+DAA+D;YAC/D,+DAA+D;YAC/D,kCAAkC;YAClC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YACxE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,oLAAoL,CAAC,CAAC;QAC1M,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Command, ICommand } from './command.js';
|
|
2
|
+
/**
|
|
3
|
+
* SIT, LIE DOWN, STAND UP (player request 2026-08-27: sit and lie down
|
|
4
|
+
* as "moving" commands).
|
|
5
|
+
*
|
|
6
|
+
* Canon, checked rather than recalled:
|
|
7
|
+
* - DROP PRONE is a FREE ACTION (SR5e p.164) -- "a character may kneel
|
|
8
|
+
* or drop prone as a Free Action, as long as he is not surprised".
|
|
9
|
+
* - STAND UP is a SIMPLE ACTION (p.166), and a WOUNDED character must
|
|
10
|
+
* pass Body + Willpower (2) to manage it, wound modifiers applying.
|
|
11
|
+
* - Prone is a real combat state: -1 to a prone attacker's melee
|
|
12
|
+
* (p.187), -2 to a prone defender except against ranged fire from
|
|
13
|
+
* beyond five metres (p.189), and +1 to anyone attacking someone
|
|
14
|
+
* prone (p.187).
|
|
15
|
+
*
|
|
16
|
+
* SITTING IS NOT A COMBAT STATE and this does not pretend otherwise.
|
|
17
|
+
* SR5e attaches no modifier to sitting or kneeling, so neither does the
|
|
18
|
+
* game: it changes the fiction and the prose and nothing on the dice.
|
|
19
|
+
* Giving it a penalty to make the verb feel like it did something would
|
|
20
|
+
* be inventing rules, which is a worse failure than a verb that is
|
|
21
|
+
* merely flavour.
|
|
22
|
+
*
|
|
23
|
+
* The surprise clause on p.164 is not modelled -- this engine has no
|
|
24
|
+
* surprise state, the same gap noted in cover.ts. Left out rather than
|
|
25
|
+
* faked.
|
|
26
|
+
*/
|
|
27
|
+
export declare class PostureCommand extends Command implements ICommand {
|
|
28
|
+
protected static verb: string;
|
|
29
|
+
protected static description: string;
|
|
30
|
+
/** Which posture this invocation is asking for. */
|
|
31
|
+
private wanted;
|
|
32
|
+
execute(args?: string[], verb?: string): Promise<string>;
|
|
33
|
+
/** STAND UP: a Simple Action, and a real test when you're hurt. */
|
|
34
|
+
private standUp;
|
|
35
|
+
}
|
|
36
|
+
/** "lie"/"lie down"/"prone" -- same command, different way in. */
|
|
37
|
+
export declare class LieDownCommand extends PostureCommand {
|
|
38
|
+
protected static verb: string;
|
|
39
|
+
execute(args?: string[]): Promise<string>;
|
|
40
|
+
}
|
|
41
|
+
/** "stand"/"stand up"/"get up". */
|
|
42
|
+
export declare class StandCommand extends PostureCommand {
|
|
43
|
+
protected static verb: string;
|
|
44
|
+
execute(args?: string[]): Promise<string>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Command } from './command.js';
|
|
2
|
+
import { hint } from '../utilities/hints.js';
|
|
3
|
+
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
4
|
+
import { spotOf } from '../utilities/spots.js';
|
|
5
|
+
/**
|
|
6
|
+
* SIT, LIE DOWN, STAND UP (player request 2026-08-27: sit and lie down
|
|
7
|
+
* as "moving" commands).
|
|
8
|
+
*
|
|
9
|
+
* Canon, checked rather than recalled:
|
|
10
|
+
* - DROP PRONE is a FREE ACTION (SR5e p.164) -- "a character may kneel
|
|
11
|
+
* or drop prone as a Free Action, as long as he is not surprised".
|
|
12
|
+
* - STAND UP is a SIMPLE ACTION (p.166), and a WOUNDED character must
|
|
13
|
+
* pass Body + Willpower (2) to manage it, wound modifiers applying.
|
|
14
|
+
* - Prone is a real combat state: -1 to a prone attacker's melee
|
|
15
|
+
* (p.187), -2 to a prone defender except against ranged fire from
|
|
16
|
+
* beyond five metres (p.189), and +1 to anyone attacking someone
|
|
17
|
+
* prone (p.187).
|
|
18
|
+
*
|
|
19
|
+
* SITTING IS NOT A COMBAT STATE and this does not pretend otherwise.
|
|
20
|
+
* SR5e attaches no modifier to sitting or kneeling, so neither does the
|
|
21
|
+
* game: it changes the fiction and the prose and nothing on the dice.
|
|
22
|
+
* Giving it a penalty to make the verb feel like it did something would
|
|
23
|
+
* be inventing rules, which is a worse failure than a verb that is
|
|
24
|
+
* merely flavour.
|
|
25
|
+
*
|
|
26
|
+
* The surprise clause on p.164 is not modelled -- this engine has no
|
|
27
|
+
* surprise state, the same gap noted in cover.ts. Left out rather than
|
|
28
|
+
* faked.
|
|
29
|
+
*/
|
|
30
|
+
export class PostureCommand extends Command {
|
|
31
|
+
static verb = 'sit';
|
|
32
|
+
static description = 'Change posture: "sit" (fiction only -- SR5e gives sitting no combat modifier), "lie down" to go prone (a Free Action, p.164 -- harder to hit at range, worse in a brawl), "stand" to get back up (a Simple Action, p.166; wounded, that needs Body + Willpower).';
|
|
33
|
+
/** Which posture this invocation is asking for. */
|
|
34
|
+
wanted(verb, args) {
|
|
35
|
+
const whole = [verb, ...args].join(' ').toLowerCase().trim();
|
|
36
|
+
if (/^(stand|stand up|get up|rise)\b/.test(whole))
|
|
37
|
+
return 'standing';
|
|
38
|
+
if (/^(sit|sit down|kneel)\b/.test(whole))
|
|
39
|
+
return 'sitting';
|
|
40
|
+
if (/^(lie|lie down|lay down|prone|drop prone|hit the dirt)\b/.test(whole))
|
|
41
|
+
return 'prone';
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
async execute(args = [], verb = 'sit') {
|
|
45
|
+
const actor = this.actor;
|
|
46
|
+
if (actor.plane !== 'meat') {
|
|
47
|
+
return `Your body's posture is your BODY's business -- and you're not in it.`;
|
|
48
|
+
}
|
|
49
|
+
const want = this.wanted(verb, args);
|
|
50
|
+
if (!want)
|
|
51
|
+
return `Sit, lie down, or stand?`;
|
|
52
|
+
if (actor.posture === want) {
|
|
53
|
+
return want === 'standing' ? `You're already on your feet.`
|
|
54
|
+
: want === 'sitting' ? `You're already sitting.`
|
|
55
|
+
: `You're already flat.`;
|
|
56
|
+
}
|
|
57
|
+
const where = spotOf(actor);
|
|
58
|
+
const here = where ? ` at the ${where}` : '';
|
|
59
|
+
if (want === 'standing')
|
|
60
|
+
return this.standUp(here);
|
|
61
|
+
if (want === 'prone') {
|
|
62
|
+
// FREE ACTION (p.164) -- costs nothing, which is exactly why it
|
|
63
|
+
// is worth doing the moment rounds start coming in.
|
|
64
|
+
actor.posture = 'prone';
|
|
65
|
+
actor.performAction('drops prone', where ?? actor.currentLocation.name);
|
|
66
|
+
this.scene.updateStatus?.();
|
|
67
|
+
return `You go flat${here}.`
|
|
68
|
+
+ `\n {green-fg}PRONE:{/green-fg} +2 harder to hit at range, but -2 to defend up close and -1 swinging from the floor.`
|
|
69
|
+
+ hint(` ("stand" to get back up -- a Simple Action.)`);
|
|
70
|
+
}
|
|
71
|
+
actor.posture = 'sitting';
|
|
72
|
+
actor.performAction('sits down', where ?? actor.currentLocation.name);
|
|
73
|
+
this.scene.updateStatus?.();
|
|
74
|
+
return `You sit${here}.${hint(` (Comfort, not cover -- sitting changes nothing in a fight.)`)}`;
|
|
75
|
+
}
|
|
76
|
+
/** STAND UP: a Simple Action, and a real test when you're hurt. */
|
|
77
|
+
standUp(here) {
|
|
78
|
+
const actor = this.actor;
|
|
79
|
+
const wounded = actor.woundModifier < 0;
|
|
80
|
+
if (wounded) {
|
|
81
|
+
// p.166: "if the character is wounded and attempting to stand, he
|
|
82
|
+
// must succeed in a Body + Willpower (2) Test", wound modifiers
|
|
83
|
+
// applying. Failing costs the attempt, not the character.
|
|
84
|
+
const pool = Math.max(1, actor.body + actor.willpower + actor.woundModifier);
|
|
85
|
+
const roll = rollPool(pool);
|
|
86
|
+
if (this.scene.isHumanControlled(actor)) {
|
|
87
|
+
this.logger.meta(`Stand up -- Body + Willpower: ${formatRoll(roll)} (2+ to make it)`);
|
|
88
|
+
}
|
|
89
|
+
if (roll.hits < 2) {
|
|
90
|
+
actor.performAction('tries to rise', 'and fails');
|
|
91
|
+
return `You get halfway up and your body refuses${here}. ${actor.conditionSummary()}`
|
|
92
|
+
+ hint(` ("stand" again, or "treat" the worst of it first.)`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
actor.posture = 'standing';
|
|
96
|
+
actor.performAction('stands up', here.trim() || actor.currentLocation.name);
|
|
97
|
+
this.scene.updateStatus?.();
|
|
98
|
+
return wounded ? `You drag yourself upright${here}.` : `You get to your feet${here}.`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/** "lie"/"lie down"/"prone" -- same command, different way in. */
|
|
102
|
+
export class LieDownCommand extends PostureCommand {
|
|
103
|
+
static verb = 'lie';
|
|
104
|
+
async execute(args = []) {
|
|
105
|
+
return super.execute(args, 'lie');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/** "stand"/"stand up"/"get up". */
|
|
109
|
+
export class StandCommand extends PostureCommand {
|
|
110
|
+
static verb = 'stand';
|
|
111
|
+
async execute(args = []) {
|
|
112
|
+
return super.execute(args, 'stand');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=posture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posture.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/posture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAY,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAC/B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,MAAM,CAAC,WAAW,GAAG,kQAAkQ,CAAC;IAElS,mDAAmD;IAC3C,MAAM,CAAC,IAAY,EAAE,IAAc;QACzC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC;QACrE,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5D,IAAI,0DAA0D,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAC3F,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE,EAAE,IAAI,GAAG,KAAK;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,sEAAsE,CAAC;QAChF,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,0BAA0B,CAAC;QAE7C,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,8BAA8B;gBACzD,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB;oBAC9C,CAAC,CAAC,sBAAsB,CAAC;QAC/B,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7C,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,gEAAgE;YAChE,oDAAoD;YACpD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACxB,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;YAC5B,OAAO,cAAc,IAAI,GAAG;kBACxB,sHAAsH;kBACtH,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;QAC1B,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;QAC5B,OAAO,UAAU,IAAI,IAAI,IAAI,CAAC,8DAA8D,CAAC,EAAE,CAAC;IAClG,CAAC;IAED,mEAAmE;IAC3D,OAAO,CAAC,IAAY;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,kEAAkE;YAClE,gEAAgE;YAChE,0DAA0D;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAClB,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;gBAClD,OAAO,2CAA2C,IAAI,KAAK,KAAK,CAAC,gBAAgB,EAAE,EAAE;sBACjF,IAAI,CAAC,qDAAqD,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;QAC3B,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,CAAC,CAAC,4BAA4B,IAAI,GAAG,CAAC,CAAC,CAAC,uBAAuB,IAAI,GAAG,CAAC;IACxF,CAAC;;AAGH,kEAAkE;AAClE,MAAM,OAAO,cAAe,SAAQ,cAAc;IACtC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IAC9B,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;;AAGH,mCAAmC;AACnC,MAAM,OAAO,YAAa,SAAQ,cAAc;IACpC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;IAChC,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE;QAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC"}
|