@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.
Files changed (34) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +17 -3
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +7 -2
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.d.ts +16 -0
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js +64 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/snoop.js.map +1 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +19 -6
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +5 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +1 -0
  15. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +1 -0
  17. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +5 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  19. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +7 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/game.js +33 -6
  21. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +2 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +3 -0
  24. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +1 -0
  26. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +15 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +32 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +73 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -0
  31. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.d.ts +28 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.js +46 -0
  33. package/bundle/typescript/src/commands/game/sideQuest/utilities/surveillance.js.map +1 -0
  34. 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.hasHub || this.scene === this._hubScene)
266
+ if (!this.onRun)
254
267
  return;
255
- this._runHeat += amount;
256
- Logger.getInstance().write(`Heat: +${amount} (${why}) -> ${this._runHeat}.`);
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']] },