@maka/maka-cli 5.78.0 → 5.80.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 (51) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +13 -1
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.d.ts +19 -0
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js +90 -0
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.d.ts +24 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js +59 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js.map +1 -0
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +6 -0
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js +6 -0
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/overwatch.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +4 -0
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +14 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/game.js +43 -6
  19. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  20. package/bundle/typescript/src/commands/game/sideQuest/headless.js +2 -3
  21. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
  22. package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +12 -6
  23. package/bundle/typescript/src/commands/game/sideQuest/models/item.js +12 -6
  24. package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
  25. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +97 -0
  26. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +164 -2
  27. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +19 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +19 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/qualities.js +18 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js +25 -7
  34. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-dump.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +22 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +158 -20
  37. package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
  38. package/bundle/typescript/src/commands/game/sideQuest/utilities/jackpoint.d.ts +62 -0
  39. package/bundle/typescript/src/commands/game/sideQuest/utilities/jackpoint.js +85 -0
  40. package/bundle/typescript/src/commands/game/sideQuest/utilities/jackpoint.js.map +1 -0
  41. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +11 -2
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +34 -4
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +78 -47
  45. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.js +45 -4
  47. package/bundle/typescript/src/commands/game/sideQuest/utilities/repro-launch.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.d.ts +41 -0
  49. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +73 -0
  50. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -1
  51. package/package.json +1 -1
@@ -15,7 +15,7 @@ import { isFence, LIFESTYLE_TIERS } from './utilities/commerce.js';
15
15
  import { bestFakeSin, wandRead, processArrest } from './utilities/sin.js';
16
16
  import { renderMapViewport, mapCaption } from './utilities/map-view.js';
17
17
  import { tallestRoomRows } from './utilities/room-grid.js';
18
- import { renderRoomLayoutCompact, crewOfTable } from './utilities/room-view.js';
18
+ import { renderRoomLayoutCompact, crewOfTable, roomCaption } from './utilities/room-view.js';
19
19
  import { getPref } from './utilities/prefs.js';
20
20
  import { rollPool, formatRoll } from './utilities/dice.js';
21
21
  import { Direction } from './types/shared/direction-enum.js';
@@ -143,6 +143,7 @@ import { OverwatchCommand } from './commands/overwatch.js';
143
143
  import { MarkCommand } from './commands/mark.js';
144
144
  import { SnoopCommand } from './commands/snoop.js';
145
145
  import { TapCommand } from './commands/tap.js';
146
+ import { JackPointCommand } from './commands/jackpoint.js';
146
147
  import { TimeCommand } from './commands/time.js';
147
148
  // The HUD's clock -- read in the engine so a shared run reads the
148
149
  // host's wall clock, never each client's own (item B).
@@ -2283,10 +2284,19 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
2283
2284
  CommandFactory.registerCommand('mark', MarkCommand);
2284
2285
  // Camera feeds you own (surveillance).
2285
2286
  CommandFactory.registerCommand('snoop', SnoopCommand);
2286
- // The cable into a slaved camera (canon p.232/233) -- "splice" and
2287
- // "jackpoint" are what players reach for when they mean the same act.
2287
+ // The cable into a slaved camera (canon p.232/233) -- "splice" is
2288
+ // what players reach for when they mean the same act.
2289
+ //
2290
+ // "jackpoint" USED TO BE LISTED HERE AS A THIRD SYNONYM AND NEVER
2291
+ // WAS ONE: the word appeared only in this comment and was registered
2292
+ // nowhere, so a player who typed it got the typo matcher reading it
2293
+ // as `jack` and jacking them into the Matrix. The name belongs to
2294
+ // the data haven (SR5 p.225-226) and is now a verb of its own; the
2295
+ // comment that claimed otherwise is gone with it.
2288
2296
  CommandFactory.registerCommand('tap', TapCommand);
2289
2297
  CommandFactory.registerCommand('splice', TapCommand);
2298
+ // The shadowrunners' data haven, invitation only (SR5 p.225-226).
2299
+ CommandFactory.registerCommand('jackpoint', JackPointCommand);
2290
2300
  // The wall clock (item B). "clock" too -- half of us type that.
2291
2301
  CommandFactory.registerCommand('time', TimeCommand);
2292
2302
  CommandFactory.registerCommand('clock', TimeCommand);
@@ -3049,6 +3059,12 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
3049
3059
  this.player.plane = 'meat';
3050
3060
  this.player.bodyRoom = undefined;
3051
3061
  this.player.simMode = undefined;
3062
+ // This path leaves the Matrix WITHOUT going through leaveMatrix, so
3063
+ // it has to drop the keep-alives itself. Found by enumerating every
3064
+ // exit rather than trusting the choke point: a link-lock left set
3065
+ // here would ride the cab home and the next jack-in would start
3066
+ // already trapped, with nothing on the grid holding it.
3067
+ this.player.linkLockedBy.clear();
3052
3068
  this.player.astralTicks = 0;
3053
3069
  this.player.activeDeck = undefined;
3054
3070
  this.player.riggedDrone = undefined;
@@ -3094,6 +3110,9 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
3094
3110
  this.player.plane = 'meat';
3095
3111
  this.player.bodyRoom = undefined;
3096
3112
  this.player.simMode = undefined;
3113
+ // Same reason as settleTravelState: an exit that bypasses
3114
+ // leaveMatrix must drop the link-lock itself.
3115
+ this.player.linkLockedBy.clear();
3097
3116
  this.player.astralTicks = 0;
3098
3117
  this.player.activeDeck = undefined;
3099
3118
  this.player.riggedDrone = undefined;
@@ -4530,8 +4549,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
4530
4549
  isOtherPlayer: a => this.scene.isHumanControlled(a),
4531
4550
  });
4532
4551
  if (roomLines.length > 0) {
4533
- const spot = spotOf(this.player);
4534
- roomLines.push(caption(spot ? `@ ${spot}` : '(moving through)', boxWidth));
4552
+ roomLines.push(caption(roomCaption(here, this.player), boxWidth));
4535
4553
  }
4536
4554
  this.setRoomOverlay(roomLines);
4537
4555
  }
@@ -4763,6 +4781,25 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
4763
4781
  reason: `The host's ice burns your deck out from under you.`,
4764
4782
  }));
4765
4783
  }
4784
+ else if (turn.scrambled) {
4785
+ // SCRAMBLE IC (p.248): "you reboot immediately, taking dumpshock if
4786
+ // you were in VR." A forced exit through the same door, which is
4787
+ // what makes it a reboot rather than a graceful drop -- and the
4788
+ // reboot is also what hands the reducers' damage back.
4789
+ //
4790
+ // `else if` on purpose: a deck already bricked this turn has been
4791
+ // dumped, and dumping a persona twice would bill dumpshock twice.
4792
+ turn.lines.push(...leaveMatrix(this.scene, actor, {
4793
+ forced: true,
4794
+ reason: `Scramble IC rips the connection out at the root --`,
4795
+ }));
4796
+ }
4797
+ if (turn.traced) {
4798
+ // TRACK IC (p.249): the location goes to the authorities. Routed
4799
+ // into the heat the game already keeps for being made in the meat
4800
+ // world, rather than a second parallel notion of "they know".
4801
+ this.addHeat(4, `Track IC reported ${actor.name}'s location`);
4802
+ }
4766
4803
  const body = turn.lines.join('\n');
4767
4804
  return result.length > 0 ? `${result}\n${body}` : body;
4768
4805
  }
@@ -4785,7 +4822,7 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
4785
4822
  // players" / "crew street"); the bare verb still answers quietly.
4786
4823
  { title: 'party', entries: [['crew', 'party'], ['hire'], ['dismiss'], ['train'], ['order'], ['lead'], ['command'], ['deploy'], ['recall']] },
4787
4824
  { title: 'magic', entries: [['spells'], ['cast'], ['summon', 'conjure'], ['project'], ['return'], ['assense']] },
4788
- { title: 'matrix', entries: [['jack'], ['deck'], ['load'], ['unload'], ['hack'], ['mark'], ['tap', 'splice'], ['snoop'], ['overwatch', 'os'], ['pan'], ['ar'], ['aros'], ['silent'], ['reboot'], ['agent'], ['drone'], ['jump', 'rig']] },
4825
+ { title: 'matrix', entries: [['jack'], ['jackpoint'], ['deck'], ['load'], ['unload'], ['hack'], ['mark'], ['tap', 'splice'], ['snoop'], ['overwatch', 'os'], ['pan'], ['ar'], ['aros'], ['silent'], ['reboot'], ['agent'], ['drone'], ['jump', 'rig']] },
4789
4826
  // The Emerged get their own shelf (player request: "there MUST be
4790
4827
  // resonance" -- matrix is the place, Resonance is the talent).
4791
4828
  // `sustain` shelves here and not under magic: the command is