@maka/maka-cli 5.24.0 → 5.26.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/go.js +17 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +7 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js +64 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +19 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/source.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/factories/room-factory.js +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +5 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +7 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +33 -6
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +15 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +32 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +73 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.d.ts +28 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.js +46 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.js.map +1 -0
- package/package.json +1 -1
|
@@ -97,8 +97,14 @@ export default class Game {
|
|
|
97
97
|
performedThisCycle: boolean;
|
|
98
98
|
private _runHeat;
|
|
99
99
|
private static readonly CHECKPOINT_HEAT;
|
|
100
|
+
private _camSeenRooms;
|
|
101
|
+
camPingedRooms: Set<string>;
|
|
102
|
+
/** On a run (not the hub, not a classic hubless scene) -- the state
|
|
103
|
+
* where heat, cameras, and the ride home all exist. */
|
|
104
|
+
get onRun(): boolean;
|
|
100
105
|
/** Bill the district's attention. No-op at the hub or in classic
|
|
101
|
-
* (hubless) scenes -- only runs have a ride home to be caught on.
|
|
106
|
+
* (hubless) scenes -- only runs have a ride home to be caught on.
|
|
107
|
+
* On CAMERA (surveillance.ts), the bill DOUBLES -- footage travels. */
|
|
102
108
|
addHeat(amount: number, why: string): void;
|
|
103
109
|
/** The HUD's read on the district (bands, never the number). */
|
|
104
110
|
private heatBand;
|
|
@@ -86,6 +86,7 @@ import { getProgram } from './utilities/programs.js';
|
|
|
86
86
|
import { MoveCommand, RunCommand, SprintCommand } from './commands/move.js';
|
|
87
87
|
import { HintsCommand } from './commands/hints.js';
|
|
88
88
|
import { hint } from './utilities/hints.js';
|
|
89
|
+
import { camerasLive } from './utilities/surveillance.js';
|
|
89
90
|
import { InstallCommand } from './commands/install.js';
|
|
90
91
|
import { BuyCommand } from './commands/buy.js';
|
|
91
92
|
import { SellCommand } from './commands/sell.js';
|
|
@@ -107,6 +108,7 @@ import { BreachCommand } from './commands/breach.js';
|
|
|
107
108
|
import { EmoteCommand } from './commands/emote.js';
|
|
108
109
|
import { OverwatchCommand } from './commands/overwatch.js';
|
|
109
110
|
import { MarkCommand } from './commands/mark.js';
|
|
111
|
+
import { SnoopCommand } from './commands/snoop.js';
|
|
110
112
|
import { AutoFight } from './utilities/auto-fight.js';
|
|
111
113
|
import { CommandFactory } from './factories/command-factory.js';
|
|
112
114
|
import { SceneSynthesizer } from './factories/scene-factory.js';
|
|
@@ -247,13 +249,33 @@ export default class Game {
|
|
|
247
249
|
// and a fresh run starts cold. Not saved: heat is a per-run debt.
|
|
248
250
|
_runHeat = 0;
|
|
249
251
|
static CHECKPOINT_HEAT = 6;
|
|
252
|
+
// SURVEILLANCE (utilities/surveillance.ts): rooms whose cameras have
|
|
253
|
+
// already been called out this run, and rooms where facial rec
|
|
254
|
+
// already pinged a criminal SIN -- one line each, ever.
|
|
255
|
+
_camSeenRooms = new Set();
|
|
256
|
+
camPingedRooms = new Set();
|
|
257
|
+
/** On a run (not the hub, not a classic hubless scene) -- the state
|
|
258
|
+
* where heat, cameras, and the ride home all exist. */
|
|
259
|
+
get onRun() {
|
|
260
|
+
return this.hasHub && this.scene !== this._hubScene;
|
|
261
|
+
}
|
|
250
262
|
/** Bill the district's attention. No-op at the hub or in classic
|
|
251
|
-
* (hubless) scenes -- only runs have a ride home to be caught on.
|
|
263
|
+
* (hubless) scenes -- only runs have a ride home to be caught on.
|
|
264
|
+
* On CAMERA (surveillance.ts), the bill DOUBLES -- footage travels. */
|
|
252
265
|
addHeat(amount, why) {
|
|
253
|
-
if (!this.
|
|
266
|
+
if (!this.onRun)
|
|
254
267
|
return;
|
|
255
|
-
|
|
256
|
-
|
|
268
|
+
let billed = amount;
|
|
269
|
+
const room = this.player.currentLocation;
|
|
270
|
+
if (room && camerasLive(this.scene.getRooms(), room)) {
|
|
271
|
+
billed *= 2;
|
|
272
|
+
if (!this._camSeenRooms.has(room.name)) {
|
|
273
|
+
this._camSeenRooms.add(room.name);
|
|
274
|
+
Logger.getInstance().logWithColor(`{red-fg}A camera's dead eye caught ALL of it -- that footage is already somewhere else. (Crack the site's host to loop the feeds.){/red-fg}`, 'red');
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
this._runHeat += billed;
|
|
278
|
+
Logger.getInstance().write(`Heat: +${billed}${billed !== amount ? ` (${amount} doubled on camera)` : ''} (${why}) -> ${this._runHeat}.`);
|
|
257
279
|
}
|
|
258
280
|
/** The HUD's read on the district (bands, never the number). */
|
|
259
281
|
heatBand() {
|
|
@@ -1700,6 +1722,8 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
1700
1722
|
CommandFactory.registerCommand('os', OverwatchCommand);
|
|
1701
1723
|
// MAtrix Recognition Keys (canon p.235-236).
|
|
1702
1724
|
CommandFactory.registerCommand('mark', MarkCommand);
|
|
1725
|
+
// Camera feeds you own (surveillance).
|
|
1726
|
+
CommandFactory.registerCommand('snoop', SnoopCommand);
|
|
1703
1727
|
}
|
|
1704
1728
|
determineStartRoom() {
|
|
1705
1729
|
return this.scene.determineStartRoom();
|
|
@@ -2555,8 +2579,11 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2555
2579
|
*/
|
|
2556
2580
|
async activateRunScene(seed, tier, opts) {
|
|
2557
2581
|
this._tier = tier;
|
|
2558
|
-
// A fresh run starts COLD -- heat is a per-night debt
|
|
2582
|
+
// A fresh run starts COLD -- heat is a per-night debt, and the
|
|
2583
|
+
// cameras haven't seen anything yet.
|
|
2559
2584
|
this._runHeat = 0;
|
|
2585
|
+
this._camSeenRooms.clear();
|
|
2586
|
+
this.camPingedRooms.clear();
|
|
2560
2587
|
this.sceneSeed = seed;
|
|
2561
2588
|
// A call partner from the old scene wouldn't exist in the new one --
|
|
2562
2589
|
// hang up before moving on, rather than leave a dangling reference.
|
|
@@ -3409,7 +3436,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3409
3436
|
// players" / "crew street"); the bare verb still answers quietly.
|
|
3410
3437
|
{ title: 'party', entries: [['crew', 'party'], ['hire'], ['dismiss'], ['train'], ['order'], ['lead'], ['command'], ['deploy'], ['recall']] },
|
|
3411
3438
|
{ title: 'magic', entries: [['spells'], ['cast'], ['summon', 'conjure'], ['project'], ['return'], ['assense']] },
|
|
3412
|
-
{ title: 'matrix', entries: [['jack'], ['deck'], ['load'], ['unload'], ['hack'], ['mark'], ['overwatch', 'os'], ['pan'], ['silent'], ['reboot'], ['agent'], ['drone'], ['jump', 'rig']] },
|
|
3439
|
+
{ title: 'matrix', entries: [['jack'], ['deck'], ['load'], ['unload'], ['hack'], ['mark'], ['snoop'], ['overwatch', 'os'], ['pan'], ['silent'], ['reboot'], ['agent'], ['drone'], ['jump', 'rig']] },
|
|
3413
3440
|
// The Emerged get their own shelf (player request: "there MUST be
|
|
3414
3441
|
// resonance" -- matrix is the place, Resonance is the talent).
|
|
3415
3442
|
{ title: 'resonance', entries: [['compile', 'decompile'], ['thread'], ['register']] },
|