@maka/maka-cli 5.20.0 → 5.22.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/compile.js +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.d.ts +30 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +150 -15
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +83 -21
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.d.ts +14 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js +57 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js +9 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.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 +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +11 -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 +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.d.ts +34 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js +109 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +4 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/tools/mpi/mpi.class.js +3 -1
- package/bundle/typescript/src/tools/mpi/mpi.class.js.map +1 -1
- package/bundle/typescript/src/tools/mpi/sdk-runtime.d.ts +1 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js +30 -0
- package/bundle/typescript/src/tools/mpi/sdk-runtime.js.map +1 -1
- package/bundle/typescript/src/tools/scaffold/scaffold.class.js +2 -1
- package/bundle/typescript/src/tools/scaffold/scaffold.class.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.22.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 2.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 2.x applications using React.",
|
|
@@ -3,6 +3,8 @@ import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
|
3
3
|
import { hint } from '../utilities/hints.js';
|
|
4
4
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
5
5
|
import { NPC } from '../models/npc.js';
|
|
6
|
+
import { accrueOverwatch } from '../utilities/overwatch.js';
|
|
7
|
+
import { leaveMatrix } from '../utilities/planes.js';
|
|
6
8
|
/** Exported for game.ts: re-shelling a REGISTERED sprite after travel
|
|
7
9
|
* or a resumed save needs the same stat builder. */
|
|
8
10
|
export const SPRITE_TYPES = {
|
|
@@ -217,6 +219,15 @@ export class CompileCommand extends Command {
|
|
|
217
219
|
lines.push(` Threads tear loose -- ${dmg} boxes: it holds together, barely, and it's coming for you.`);
|
|
218
220
|
}
|
|
219
221
|
}
|
|
222
|
+
// GOD counts Resonance crimes too (canon: decompiling is an illegal
|
|
223
|
+
// action; the defender's hits are the evidence).
|
|
224
|
+
const god = accrueOverwatch(this.scene, actor, theirs.hits, 'decompiled a hostile construct');
|
|
225
|
+
lines.push(...god.lines);
|
|
226
|
+
if (god.converged && actor.plane === 'matrix') {
|
|
227
|
+
lines.push(...leaveMatrix(this.scene, actor, { forced: true, reason: `GOD force-reboots your persona --` }));
|
|
228
|
+
this.scene.updateStatus();
|
|
229
|
+
return lines.join('\n');
|
|
230
|
+
}
|
|
220
231
|
// Fading, the same toll compiling bills (p.256): 2x its hits, min 2,
|
|
221
232
|
// resisted Resonance + Willpower, landing as stun.
|
|
222
233
|
const fadingValue = Math.max(2, theirs.hits * 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/compile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/compile.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,30 @@ export declare class HackCommand extends BypassCommand {
|
|
|
6
6
|
protected bypassType: PuzzleBypassType;
|
|
7
7
|
protected verbName: string;
|
|
8
8
|
protected noPuzzleMessage: string;
|
|
9
|
+
/**
|
|
10
|
+
* The Attack/Sleaze fork (canon p.236 "Noticing Hackers", player
|
|
11
|
+
* ruling 2026-08-23): "loud"/"force"/"brute"/"attack" anywhere in the
|
|
12
|
+
* words picks Brute Force; "quiet"/"sleaze"/"sneak" picks Hack on the
|
|
13
|
+
* Fly explicitly; default is SLEAZE -- the hacker's classic route.
|
|
14
|
+
* The mode word is stripped so "hack loud mama wu" still finds Mama Wu.
|
|
15
|
+
*/
|
|
16
|
+
private static parseMode;
|
|
9
17
|
execute(args?: string[]): Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* The host-crack roll, forked by route (canon p.238/240): SLEAZE =
|
|
20
|
+
* Logic + hacking + the deck's Sleaze edge (a technomancer's living
|
|
21
|
+
* persona rides Resonance/2); ATTACK = the full cybercombat pool
|
|
22
|
+
* (getAttackPool on the matrix plane IS Brute Force). A host holding
|
|
23
|
+
* a mark on you (hostAlert) raises the threshold -- walls up.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Bill GOD's evidence for one illegal action and, when the score
|
|
27
|
+
* converges, follow the hammer with the forced reboot a jacked-in
|
|
28
|
+
* persona owes (overwatch.ts never imports planes.ts -- the dump is
|
|
29
|
+
* the caller's move, and this caller already holds leaveMatrix).
|
|
30
|
+
*/
|
|
31
|
+
private godBill;
|
|
32
|
+
private hostIntrusionRoll;
|
|
10
33
|
/**
|
|
11
34
|
* The PAN duel: opposed roll, attacker's Logic + deck quality (a
|
|
12
35
|
* technomancer uses half resonance instead of a deck) vs the target's
|
|
@@ -20,6 +43,13 @@ export declare class HackCommand extends BypassCommand {
|
|
|
20
43
|
*
|
|
21
44
|
* Returns null when the args don't name a hackable actor here, so
|
|
22
45
|
* barrier names and directions fall through to the puzzle path.
|
|
46
|
+
*
|
|
47
|
+
* The Attack/Sleaze fork applies here too (canon p.236): SLEAZE
|
|
48
|
+
* (default) rides the deck's Sleaze edge -- fail and the target's
|
|
49
|
+
* link pings them a probe warning (you're noticed); succeed and the
|
|
50
|
+
* world events never name you. ATTACK ("hack loud <name>") rides the
|
|
51
|
+
* Attack edge -- success is announced with your name on it, but a
|
|
52
|
+
* MISS goes completely unnoticed and the firewall bites YOU instead.
|
|
23
53
|
*/
|
|
24
54
|
private tryPanHack;
|
|
25
55
|
protected determineOutcome(): Promise<boolean>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BypassCommand } from './bypass-command.js';
|
|
2
|
+
import { accrueOverwatch } from '../utilities/overwatch.js';
|
|
2
3
|
import { hint } from '../utilities/hints.js';
|
|
3
4
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
4
5
|
import { Door } from '../models/door.js';
|
|
@@ -6,18 +7,39 @@ import { leaveMatrix, canReachHost } from '../utilities/planes.js';
|
|
|
6
7
|
import { fuzzyPickName } from '../utilities/fuzzy-match.js';
|
|
7
8
|
export class HackCommand extends BypassCommand {
|
|
8
9
|
static verb = 'hack';
|
|
9
|
-
static description = 'Hack a terminal or
|
|
10
|
+
static description = 'Hack a terminal, host, or PAN. TWO ROUTES (canon p.238/240): bare "hack" is SLEAZE (Hack on the Fly -- Logic + hacking + Sleaze; succeed and NOBODY knows; fail and you are MADE: alarm, ice hunting, walls up). "hack loud" is ATTACK (Brute Force -- your cybercombat pool; success is announced to the whole grid, but a MISS goes unnoticed -- the firewall just bites you). "hack <name>" cracks a PAN the same two ways. Terminal-puzzle hacks are their own rail (a failed one locks you out for good).';
|
|
10
11
|
bypassType = 'hack';
|
|
11
12
|
verbName = 'hack';
|
|
12
13
|
noPuzzleMessage = "There's nothing here to hack.";
|
|
14
|
+
/**
|
|
15
|
+
* The Attack/Sleaze fork (canon p.236 "Noticing Hackers", player
|
|
16
|
+
* ruling 2026-08-23): "loud"/"force"/"brute"/"attack" anywhere in the
|
|
17
|
+
* words picks Brute Force; "quiet"/"sleaze"/"sneak" picks Hack on the
|
|
18
|
+
* Fly explicitly; default is SLEAZE -- the hacker's classic route.
|
|
19
|
+
* The mode word is stripped so "hack loud mama wu" still finds Mama Wu.
|
|
20
|
+
*/
|
|
21
|
+
static parseMode(args) {
|
|
22
|
+
const rest = [...(args ?? [])];
|
|
23
|
+
let mode = 'sleaze';
|
|
24
|
+
const loudIdx = rest.findIndex(w => /^(loud|force|brute|attack)$/i.test(w));
|
|
25
|
+
if (loudIdx >= 0) {
|
|
26
|
+
mode = 'attack';
|
|
27
|
+
rest.splice(loudIdx, 1);
|
|
28
|
+
}
|
|
29
|
+
const quietIdx = rest.findIndex(w => /^(quiet|sleaze|sneak)$/i.test(w));
|
|
30
|
+
if (quietIdx >= 0)
|
|
31
|
+
rest.splice(quietIdx, 1);
|
|
32
|
+
return { mode, rest };
|
|
33
|
+
}
|
|
13
34
|
async execute(args = []) {
|
|
35
|
+
const { mode, rest } = HackCommand.parseMode(args);
|
|
14
36
|
// PAN warfare: "hack <name>" cracks a meat actor's personal area
|
|
15
37
|
// network -- from inside the Matrix, or right here in AR with a
|
|
16
38
|
// working deck in hand (which is also how enemy deckers get YOU).
|
|
17
39
|
// Tried first so a name never falls through to the barrier-bypass
|
|
18
40
|
// path; misses fall through untouched.
|
|
19
|
-
if (
|
|
20
|
-
const panResult = await this.tryPanHack(
|
|
41
|
+
if (rest && rest.length > 0) {
|
|
42
|
+
const panResult = await this.tryPanHack(rest, mode);
|
|
21
43
|
if (panResult)
|
|
22
44
|
return panResult;
|
|
23
45
|
}
|
|
@@ -43,9 +65,31 @@ export class HackCommand extends BypassCommand {
|
|
|
43
65
|
}
|
|
44
66
|
const lockedDoors = Array.from(room.exits.values())
|
|
45
67
|
.filter((exit) => exit instanceof Door && exit.checkIfLocked());
|
|
68
|
+
const threshold = room.hostAlert ? 3 : 2;
|
|
46
69
|
this.actor.performAction('hacks the host', room.name);
|
|
47
|
-
const success = await this.
|
|
70
|
+
const success = await this.hostIntrusionRoll(mode, threshold);
|
|
71
|
+
// GOD sees every illegal action (utilities/overwatch.ts) -- flat 2
|
|
72
|
+
// evidence per host intrusion, success or failure (threshold rolls
|
|
73
|
+
// have no defender dice to count).
|
|
74
|
+
const godLines = this.godBill(2, `host intrusion (${mode})`);
|
|
48
75
|
if (!success) {
|
|
76
|
+
if (mode === 'sleaze') {
|
|
77
|
+
// Canon p.236: a blown SLEAZE action is NOTICED -- the host
|
|
78
|
+
// marks you, alerts its owner, the ice starts hunting. No
|
|
79
|
+
// damage; the price is your invisibility.
|
|
80
|
+
room.hostAlert = true;
|
|
81
|
+
this.actor.sneaking = false;
|
|
82
|
+
this.scene.addWorldEvent(`The ${room.name} host MADE ${this.actor.name} mid-intrusion -- alarm flagged, ice hunting.`);
|
|
83
|
+
this.scene.updateStatus();
|
|
84
|
+
return [
|
|
85
|
+
`The ice turns and LOOKS AT YOU -- your sleaze unravels mid-handshake.`,
|
|
86
|
+
` The host holds a MARK on your persona now: walls up (harder to crack until it falls), and everything guarding this place knows an intruder is on the grid.`,
|
|
87
|
+
...godLines,
|
|
88
|
+
].join('\n');
|
|
89
|
+
}
|
|
90
|
+
// Canon p.236: a failed ATTACK action is NOT noticed -- "you
|
|
91
|
+
// failed to affect your opponent". Brute force fails dumb, not
|
|
92
|
+
// loud; the price is the firewall's bite instead.
|
|
49
93
|
const bite = rollPool(this.actor.getSoakPool());
|
|
50
94
|
const dealt = Math.max(0, 3 - bite.hits);
|
|
51
95
|
// The roll is ticker material; the bite is world (readability pass).
|
|
@@ -73,6 +117,8 @@ export class HackCommand extends BypassCommand {
|
|
|
73
117
|
else {
|
|
74
118
|
lines.push(` You shed the counterstrike and back off clean.`);
|
|
75
119
|
}
|
|
120
|
+
lines.push(` Nobody upstairs noticed a thing -- a failed smash never lands, so there's nothing to see.`);
|
|
121
|
+
lines.push(...godLines);
|
|
76
122
|
this.scene.updateStatus();
|
|
77
123
|
return lines.join('\n');
|
|
78
124
|
}
|
|
@@ -94,11 +140,61 @@ export class HackCommand extends BypassCommand {
|
|
|
94
140
|
if (lockedDoors.length === 0 && vaultedFiles.length === 0) {
|
|
95
141
|
lines.push(` Nothing here is locked down, but the node's systems are yours to read.`);
|
|
96
142
|
}
|
|
97
|
-
|
|
98
|
-
|
|
143
|
+
if (mode === 'attack') {
|
|
144
|
+
// Brute-force success is ANNOUNCED (canon: the target knows it's
|
|
145
|
+
// under attack and screams to its owner -- it just can't see
|
|
146
|
+
// WHOSE hand did it).
|
|
147
|
+
this.actor.sneaking = false;
|
|
148
|
+
this.scene.addWorldEvent(`The ${room.name} host was smashed open by brute force -- its security is down, alarms screaming.`);
|
|
149
|
+
lines.push(` The host SCREAMED on the way down -- everything listening knows it fell, even if nothing saw your hand.`);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// Sleaze success is INVISIBLE (canon p.236: no visibility gain)
|
|
153
|
+
// -- no world event; only the log remembers.
|
|
154
|
+
lines.push(` ...and nobody upstairs is any the wiser. The ice never saw a hand.`);
|
|
155
|
+
}
|
|
156
|
+
lines.push(...godLines);
|
|
157
|
+
this.logger.write(`${this.actor.name} hacked ${room.name}'s node (${mode}): ${lockedDoors.length} door(s) unlocked, ${vaultedFiles.length} file(s) unsealed.`);
|
|
99
158
|
return lines.join('\n');
|
|
100
159
|
}
|
|
101
|
-
return super.execute(
|
|
160
|
+
return super.execute(rest);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The host-crack roll, forked by route (canon p.238/240): SLEAZE =
|
|
164
|
+
* Logic + hacking + the deck's Sleaze edge (a technomancer's living
|
|
165
|
+
* persona rides Resonance/2); ATTACK = the full cybercombat pool
|
|
166
|
+
* (getAttackPool on the matrix plane IS Brute Force). A host holding
|
|
167
|
+
* a mark on you (hostAlert) raises the threshold -- walls up.
|
|
168
|
+
*/
|
|
169
|
+
/**
|
|
170
|
+
* Bill GOD's evidence for one illegal action and, when the score
|
|
171
|
+
* converges, follow the hammer with the forced reboot a jacked-in
|
|
172
|
+
* persona owes (overwatch.ts never imports planes.ts -- the dump is
|
|
173
|
+
* the caller's move, and this caller already holds leaveMatrix).
|
|
174
|
+
*/
|
|
175
|
+
godBill(defenseHits, why) {
|
|
176
|
+
const bill = accrueOverwatch(this.scene, this.actor, defenseHits, why);
|
|
177
|
+
if (bill.converged && this.actor.plane === 'matrix') {
|
|
178
|
+
bill.lines.push(...leaveMatrix(this.scene, this.actor, { forced: true, reason: `GOD force-reboots your persona --` }));
|
|
179
|
+
}
|
|
180
|
+
return bill.lines;
|
|
181
|
+
}
|
|
182
|
+
async hostIntrusionRoll(mode, threshold) {
|
|
183
|
+
let pool;
|
|
184
|
+
if (mode === 'attack') {
|
|
185
|
+
pool = Math.max(1, this.actor.getAttackPool());
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
const sleazeEdge = this.actor.isTechnomancer()
|
|
189
|
+
? Math.floor(this.actor.resonance / 2)
|
|
190
|
+
: this.actor.activeDeck?.matrixEdge('sleaze') ?? 0;
|
|
191
|
+
pool = Math.max(1, this.actor.logic + this.actor.skillRating('hacking') + sleazeEdge + this.actor.qualityBonus('hacking') + this.actor.woundModifier - this.actor.sustainingPenalty);
|
|
192
|
+
}
|
|
193
|
+
const roll = rollPool(pool);
|
|
194
|
+
if (this.scene.isHumanControlled(this.actor)) {
|
|
195
|
+
this.logger.meta(`${mode === 'attack' ? 'Brute Force (attack)' : 'Hack on the Fly (sleaze)'}: ${formatRoll(roll)} (${threshold}+ to crack)`);
|
|
196
|
+
}
|
|
197
|
+
return roll.hits >= threshold;
|
|
102
198
|
}
|
|
103
199
|
/**
|
|
104
200
|
* The PAN duel: opposed roll, attacker's Logic + deck quality (a
|
|
@@ -113,8 +209,15 @@ export class HackCommand extends BypassCommand {
|
|
|
113
209
|
*
|
|
114
210
|
* Returns null when the args don't name a hackable actor here, so
|
|
115
211
|
* barrier names and directions fall through to the puzzle path.
|
|
212
|
+
*
|
|
213
|
+
* The Attack/Sleaze fork applies here too (canon p.236): SLEAZE
|
|
214
|
+
* (default) rides the deck's Sleaze edge -- fail and the target's
|
|
215
|
+
* link pings them a probe warning (you're noticed); succeed and the
|
|
216
|
+
* world events never name you. ATTACK ("hack loud <name>") rides the
|
|
217
|
+
* Attack edge -- success is announced with your name on it, but a
|
|
218
|
+
* MISS goes completely unnoticed and the firewall bites YOU instead.
|
|
116
219
|
*/
|
|
117
|
-
async tryPanHack(args) {
|
|
220
|
+
async tryPanHack(args, mode) {
|
|
118
221
|
const actor = this.actor;
|
|
119
222
|
const room = actor.currentLocation;
|
|
120
223
|
const candidates = this.scene.getActorsInRoom(room)
|
|
@@ -136,11 +239,13 @@ export class HackCommand extends BypassCommand {
|
|
|
136
239
|
if (!master) {
|
|
137
240
|
return `${target.name} runs no devices at all -- nothing to crack. Respect, almost.`;
|
|
138
241
|
}
|
|
139
|
-
//
|
|
140
|
-
//
|
|
242
|
+
// The mode picks which deck attribute rides the pool (p.227 config):
|
|
243
|
+
// Sleaze for the quiet route (a loaded Exploit program is baked into
|
|
244
|
+
// the Sleaze value), Attack for brute force. A technomancer's living
|
|
245
|
+
// persona rides Resonance/2 either way.
|
|
141
246
|
const atkQuality = actor.isTechnomancer()
|
|
142
247
|
? Math.floor(actor.resonance / 2)
|
|
143
|
-
: (actor.activeDeck ?? arDeck)?.matrixEdge('sleaze') ?? 0;
|
|
248
|
+
: (actor.activeDeck ?? arDeck)?.matrixEdge(mode === 'attack' ? 'attack' : 'sleaze') ?? 0;
|
|
144
249
|
// Logic + the better of HACKING and ELECTRONIC WARFARE + gear (canon:
|
|
145
250
|
// EW is the jamming-and-signals half of PAN warfare; best-of keeps
|
|
146
251
|
// pre-EW deckers whole) -- a trained operator out-fences a smart
|
|
@@ -153,22 +258,51 @@ export class HackCommand extends BypassCommand {
|
|
|
153
258
|
// Dice anatomy to the Mechanics ticker (readability pass) --
|
|
154
259
|
// player-gated like every roll site: an NPC's probe isn't your dice.
|
|
155
260
|
if (this.scene.isHumanControlled(actor)) {
|
|
156
|
-
this.logger.meta(`PAN intrusion: ${formatRoll(attack)}`);
|
|
261
|
+
this.logger.meta(`PAN intrusion (${mode === 'attack' ? 'brute force' : 'sleaze'}): ${formatRoll(attack)}`);
|
|
157
262
|
this.logger.meta(` their firewall: ${formatRoll(defense)}`);
|
|
158
263
|
}
|
|
264
|
+
// GOD counts the defender's hits as evidence (canon p.231-232) --
|
|
265
|
+
// this is the one action shape where the book's exact accrual works.
|
|
266
|
+
const godLines = this.godBill(defense.hits, `PAN intrusion (${mode})`);
|
|
159
267
|
const lines = [
|
|
160
268
|
`You reach into ${target.name}'s PAN${target.runningSilent ? ' -- or where it SHOULD be; they\'re running silent' : ''}:`,
|
|
161
269
|
];
|
|
162
270
|
if (attack.hits <= defense.hits) {
|
|
271
|
+
if (mode === 'attack') {
|
|
272
|
+
// Canon p.236: a failed Attack action is never noticed -- the
|
|
273
|
+
// firewall just chews on YOU. Same damage routing as ice hits.
|
|
274
|
+
const dealt = Math.max(0, 2 - rollPool(actor.getSoakPool()).hits);
|
|
275
|
+
lines.push(` The master ${master.name} shrugs the smash off -- and chews back.${dealt > 0 ? '' : ` You shed the recoil clean.`}`);
|
|
276
|
+
if (dealt > 0) {
|
|
277
|
+
if (actor.simMode === 'hot' || actor.isTechnomancer()) {
|
|
278
|
+
actor.takeStun(dealt);
|
|
279
|
+
lines.push(` Feedback burns -- ${dealt} stun (biofeedback): ${actor.stunSummary()}`);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
actor.takeMatrixDamage(dealt);
|
|
283
|
+
lines.push(` Your deck's boards sizzle -- ${dealt} box${dealt === 1 ? '' : 'es'}: ${actor.matrixSummary()}`);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
lines.push(` ${target.name} never felt a thing -- a smash that doesn't land leaves no trace.`);
|
|
287
|
+
lines.push(...godLines);
|
|
288
|
+
this.scene.updateStatus();
|
|
289
|
+
return lines.join('\n');
|
|
290
|
+
}
|
|
163
291
|
lines.push(` The master ${master.name} slams the door -- and ${target.name}'s link just pinged them a probe warning.`);
|
|
164
292
|
target.performAction('notices a Matrix probe', 'their link flashing an intrusion warning');
|
|
293
|
+
lines.push(...godLines);
|
|
165
294
|
return lines.join('\n');
|
|
166
295
|
}
|
|
296
|
+
// WHO the world events name (canon p.236): a sleaze success gains no
|
|
297
|
+
// visibility -- the effects land with no hand attached; a brute-force
|
|
298
|
+
// success is felt as an ATTACK, name and all.
|
|
299
|
+
const who = mode === 'attack' ? actor.name : 'an unseen hand';
|
|
167
300
|
if (target.runningSilent) {
|
|
168
301
|
target.runningSilent = false;
|
|
169
302
|
lines.push(` FOUND. You wrench the hidden PAN into the open -- ${target.name}'s link screams back to life, broadcasting for everyone.`);
|
|
170
303
|
target.performAction('is forced loud', 'their silent commlink lighting up against their will');
|
|
171
|
-
this.scene.addWorldEvent(`${
|
|
304
|
+
this.scene.addWorldEvent(`${who} forced ${target.name}'s PAN loud.`);
|
|
305
|
+
lines.push(...godLines);
|
|
172
306
|
this.scene.updateStatus();
|
|
173
307
|
return lines.join('\n');
|
|
174
308
|
}
|
|
@@ -177,7 +311,7 @@ export class HackCommand extends BypassCommand {
|
|
|
177
311
|
gun.jammed = true;
|
|
178
312
|
lines.push(` IN. The ${gun.name}'s smartlink seizes mid-handshake -- LOCKED. ${target.name} is down to fists and harsh language until they reboot.`);
|
|
179
313
|
target.performAction('suffers a PAN crack', `their ${gun.name} smartlink locking dead`);
|
|
180
|
-
this.scene.addWorldEvent(`${
|
|
314
|
+
this.scene.addWorldEvent(`${who} jammed ${target.name}'s ${gun.name} through their PAN.`);
|
|
181
315
|
}
|
|
182
316
|
else if (!target.arOffline && target.equipment.head?.commlink) {
|
|
183
317
|
target.arOffline = true;
|
|
@@ -189,11 +323,12 @@ export class HackCommand extends BypassCommand {
|
|
|
189
323
|
}
|
|
190
324
|
lines.push(` IN. You cut ${target.name}'s AR overlay dead -- no tactical feed, no calls, until they reboot.`);
|
|
191
325
|
target.performAction('suffers a PAN crack', 'their AR overlay dying around them');
|
|
192
|
-
this.scene.addWorldEvent(`${
|
|
326
|
+
this.scene.addWorldEvent(`${who} cut ${target.name}'s AR through their PAN.`);
|
|
193
327
|
}
|
|
194
328
|
else {
|
|
195
329
|
lines.push(` IN -- but there's nothing left to crack: their gear is already dark or dead.`);
|
|
196
330
|
}
|
|
331
|
+
lines.push(...godLines);
|
|
197
332
|
this.scene.updateStatus();
|
|
198
333
|
return lines.join('\n');
|
|
199
334
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hack.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/hack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hack.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/hack.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,18 @@ export declare class LookCommand extends Command implements ICommand {
|
|
|
4
4
|
protected static description: string;
|
|
5
5
|
execute(args: string[]): Promise<string>;
|
|
6
6
|
private look;
|
|
7
|
+
/**
|
|
8
|
+
* The persona's room view (player ruling 2026-08-23: the grid is
|
|
9
|
+
* ICONS, not furniture): the room's prose for orientation, then every
|
|
10
|
+
* actionable icon with its verb -- the host as a THING with a state,
|
|
11
|
+
* personas on this plane, meat presences as their broadcasting PANs,
|
|
12
|
+
* paydata on the floor of the grid. NO exits (the grid sees no
|
|
13
|
+
* distance -- "go <name>" jumps), no meat perception rolls. Silent
|
|
14
|
+
* PANs are deliberately NOT listed -- that's what silence buys
|
|
15
|
+
* (hack.ts can still drag one loud if you know it's there). Glyphs
|
|
16
|
+
* match the grid map: ● host, ■ air-gapped, ◆ persona, ▣ PAN, ◇ data.
|
|
17
|
+
*/
|
|
18
|
+
private gridLook;
|
|
7
19
|
private lookOutside;
|
|
8
20
|
private inspectItem;
|
|
9
21
|
private inspectActor;
|
|
@@ -3,6 +3,7 @@ import { NPC } from '../models/npc.js';
|
|
|
3
3
|
import { Category } from '../types/shared/item-enum.js';
|
|
4
4
|
import { Command } from './command.js';
|
|
5
5
|
import { shellsInRoom, canReachHost } from '../utilities/planes.js';
|
|
6
|
+
import { hint } from '../utilities/hints.js';
|
|
6
7
|
import { BULLET } from '../utilities/log-style.js';
|
|
7
8
|
import { spotsActive, whoIsWhereLine, highlightSpots, highlightActors, exitSpot } from '../utilities/spots.js';
|
|
8
9
|
import { rollPool, formatRoll } from '../utilities/dice.js';
|
|
@@ -37,6 +38,20 @@ export class LookCommand extends Command {
|
|
|
37
38
|
if (actorMatch) {
|
|
38
39
|
return this.inspectActor(actorMatch.name);
|
|
39
40
|
}
|
|
41
|
+
// Jacked in, a meat person IS their PAN (player ruling: "when I
|
|
42
|
+
// go to someone with a commlink, I should see their commlink").
|
|
43
|
+
// "look at mama wu" reads the network, not the noodles.
|
|
44
|
+
if (this.actor.plane === 'matrix') {
|
|
45
|
+
const meat = this.scene.getActorsInRoom(this.actor.currentLocation)
|
|
46
|
+
.find(a => a.name.toLowerCase() === target.toLowerCase() && a.plane === 'meat');
|
|
47
|
+
if (meat && !meat.isIncapacitated() && !meat.runningSilent) {
|
|
48
|
+
const master = meat.getPanMaster();
|
|
49
|
+
if (master) {
|
|
50
|
+
return `${meat.name} reads as a PAN out here: ${master.name} as master, slaved gear glittering around it. The meat behind it is a dim silhouette.${hint(` ("hack ${meat.name}" cracks the network; "jack out" to meet the person.)`)}`;
|
|
51
|
+
}
|
|
52
|
+
return `${meat.name}'s silhouette carries no signal at all -- no PAN, nothing to read from the grid.`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
40
55
|
return `You cannot see ${target}`;
|
|
41
56
|
}
|
|
42
57
|
}
|
|
@@ -51,29 +66,18 @@ export class LookCommand extends Command {
|
|
|
51
66
|
this.logger.error(`${this.actor.name} is not in a valid room during 'Look' command execution.`);
|
|
52
67
|
return "You're not in a valid room.";
|
|
53
68
|
}
|
|
69
|
+
// THE GRID IS ICONS, NOT FURNITURE (player ruling 2026-08-23: "it's
|
|
70
|
+
// hard to tell WHAT is the thing I can act on") -- jacked in, the
|
|
71
|
+
// room view is its own assembly: no exits, no meat perception, just
|
|
72
|
+
// every actionable icon with its verb.
|
|
73
|
+
if (this.actor.plane === 'matrix') {
|
|
74
|
+
return this.gridLook(room);
|
|
75
|
+
}
|
|
54
76
|
// "At" spots live IN the prose, keyword-colored, and so do the
|
|
55
77
|
// OBVIOUS people standing in it (player request) -- see
|
|
56
78
|
// utilities/spots.ts highlightSpots / highlightActors.
|
|
57
79
|
let description = highlightActors(room, highlightSpots(room, (room.details) ? room.details : room.description), this.actor);
|
|
58
|
-
|
|
59
|
-
// A node reads differently by state: burning (hackable), dark
|
|
60
|
-
// (air-gapped, hard line only -- see planes.canReachHost), or cracked
|
|
61
|
-
// open (already yours).
|
|
62
|
-
if (this.actor.plane === 'matrix') {
|
|
63
|
-
if (!room.hasNode) {
|
|
64
|
-
description += `\n\n{cyan-fg}Thin grid out here -- ambient AR clutter, nothing worth cracking.{/cyan-fg}`;
|
|
65
|
-
}
|
|
66
|
-
else if (!canReachHost(this.actor, room)) {
|
|
67
|
-
description += `\n\n{cyan-fg}A host squats here, DARK -- air-gapped, no wireless presence at all. It only opens to a hard line: jack in from inside this room.{/cyan-fg}`;
|
|
68
|
-
}
|
|
69
|
-
else if (room.hostCracked) {
|
|
70
|
-
description += `\n\n{cyan-fg}The host here hangs cracked open, security in shreds -- whatever it guarded is unsealed.{/cyan-fg}`;
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
description += `\n\n{cyan-fg}A host node burns here -- sculpted ice geometry over the room's systems. This is hackable ground.{/cyan-fg}`;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else if (this.actor.plane === 'astral') {
|
|
80
|
+
if (this.actor.plane === 'astral') {
|
|
77
81
|
description += room.warded
|
|
78
82
|
? `\n\n{magenta-fg}The walls here are SEALED -- a ward's lattice hums across every surface.{/magenta-fg}`
|
|
79
83
|
: `\n\n{magenta-fg}The meat world glows dim below you; emotions stain the walls like old smoke.{/magenta-fg}`;
|
|
@@ -107,8 +111,9 @@ export class LookCommand extends Command {
|
|
|
107
111
|
description += `\n\nYou see:\n${actorList}`;
|
|
108
112
|
}
|
|
109
113
|
// Empty bodies slump in plain sight of the meat plane -- and the
|
|
110
|
-
// astral, which watches over it.
|
|
111
|
-
|
|
114
|
+
// astral, which watches over it. (The matrix view returned early --
|
|
115
|
+
// gridLook shows icons, not slumped meat.)
|
|
116
|
+
{
|
|
112
117
|
const shells = shellsInRoom(this.scene, room).filter(s => s !== this.actor);
|
|
113
118
|
if (shells.length > 0) {
|
|
114
119
|
const shellList = shells.map(s => `${BULLET}${s.name}'s body -- slumped and vacant, nobody home`).join('\n');
|
|
@@ -140,6 +145,63 @@ export class LookCommand extends Command {
|
|
|
140
145
|
}
|
|
141
146
|
return description;
|
|
142
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* The persona's room view (player ruling 2026-08-23: the grid is
|
|
150
|
+
* ICONS, not furniture): the room's prose for orientation, then every
|
|
151
|
+
* actionable icon with its verb -- the host as a THING with a state,
|
|
152
|
+
* personas on this plane, meat presences as their broadcasting PANs,
|
|
153
|
+
* paydata on the floor of the grid. NO exits (the grid sees no
|
|
154
|
+
* distance -- "go <name>" jumps), no meat perception rolls. Silent
|
|
155
|
+
* PANs are deliberately NOT listed -- that's what silence buys
|
|
156
|
+
* (hack.ts can still drag one loud if you know it's there). Glyphs
|
|
157
|
+
* match the grid map: ● host, ■ air-gapped, ◆ persona, ▣ PAN, ◇ data.
|
|
158
|
+
*/
|
|
159
|
+
gridLook(room) {
|
|
160
|
+
const lines = [highlightActors(room, (room.details) ? room.details : room.description, this.actor)];
|
|
161
|
+
const icons = [];
|
|
162
|
+
if (room.hasNode) {
|
|
163
|
+
if (!canReachHost(this.actor, room)) {
|
|
164
|
+
icons.push(`■ The ${room.name} host -- DARK. Air-gapped: it only opens to a hard line ("jack in" from inside this room).`);
|
|
165
|
+
}
|
|
166
|
+
else if (room.hostCracked) {
|
|
167
|
+
icons.push(`● The ${room.name} host -- cracked open, security in shreds. Whatever it guarded is unsealed.`);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
icons.push(`● The ${room.name} host -- sculpted ice geometry over the room's systems.${room.hostAlert ? ' Walls UP -- it holds a mark on an intruder.' : ''} ("hack" slips in on sleaze; "hack loud" smashes)`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
for (const a of this.scene.getActorsInRoom(room)) {
|
|
174
|
+
if (a === this.actor)
|
|
175
|
+
continue;
|
|
176
|
+
if (this.actor.canPerceive(a)) {
|
|
177
|
+
const companion = this.game?.companions.find(c => c.npc === a);
|
|
178
|
+
icons.push(companion
|
|
179
|
+
? `◆ ${a.name} -- yours, riding with your persona`
|
|
180
|
+
: `◆ ${a.name} -- a persona on this grid`);
|
|
181
|
+
}
|
|
182
|
+
else if (a.plane === 'meat' && !a.isIncapacitated() && !a.runningSilent) {
|
|
183
|
+
const master = a.getPanMaster();
|
|
184
|
+
if (master) {
|
|
185
|
+
icons.push(`▣ ${a.name}'s PAN (${master.name}) -- a meat presence, broadcasting. ("hack ${a.name}" cracks it)`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
for (const item of room.inventory.getAllItems()) {
|
|
190
|
+
if (item.plane === 'matrix') {
|
|
191
|
+
icons.push(`◇ ${item.name} [data] -- right there on the grid. ("take" it)`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (icons.length > 0) {
|
|
195
|
+
lines.push(`{cyan-fg}ICONS IN REACH:{/cyan-fg}\n${icons.map(i => ` {cyan-fg}${i}{/cyan-fg}`).join('\n')}`);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
lines.push(`{cyan-fg}Thin grid out here -- ambient AR clutter, nothing worth cracking.{/cyan-fg}`);
|
|
199
|
+
}
|
|
200
|
+
const coach = hint(`("map" lights the whole grid; "go <name>" is one thought away.)`);
|
|
201
|
+
if (coach.length > 0)
|
|
202
|
+
lines.push(coach);
|
|
203
|
+
return lines.join('\n\n');
|
|
204
|
+
}
|
|
143
205
|
lookOutside(direction) {
|
|
144
206
|
const room = this.actor.currentLocation;
|
|
145
207
|
if (!room) {
|