@maka/maka-cli 5.88.0 → 5.90.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 (53) hide show
  1. package/bundle/typescript/package.json +1 -4
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +12 -1
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.d.ts +8 -2
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +10 -2
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -1
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +20 -2
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +28 -2
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +29 -5
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +82 -8
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.d.ts +45 -0
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +140 -43
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js +66 -11
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js.map +1 -1
  19. package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js +11 -3
  20. package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +1 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +21 -0
  22. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +71 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/game.js +88 -16
  25. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/headless.js +34 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
  28. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +89 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +161 -10
  30. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +8 -0
  32. package/bundle/typescript/src/commands/game/sideQuest/types/repro.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js +8 -0
  34. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +24 -0
  36. package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js +2 -12
  38. package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +13 -0
  40. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  41. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.d.ts +73 -0
  42. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +210 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +75 -3
  45. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  46. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +20 -1
  47. package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
  48. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +19 -2
  49. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +29 -6
  50. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js +2 -14
  52. package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js.map +1 -1
  53. package/package.json +1 -4
@@ -2,26 +2,32 @@ import { Command } from './command.js';
2
2
  import { hint } from '../utilities/hints.js';
3
3
  import { GoCommand } from './go.js';
4
4
  import { NPC } from '../models/npc.js';
5
+ import { Player } from '../models/player.js';
5
6
  import { Door } from '../models/door.js';
6
7
  import { fuzzyPickName } from '../utilities/fuzzy-match.js';
7
- import { heldBy, holding } from '../utilities/grapple.js';
8
+ import { heldBy, holding, physicalLimit } from '../utilities/grapple.js';
8
9
  import { spotsActive, resolveSpot, spotOf, describeSpotRoster, OPEN_FLOOR, pathBetweenSpots, spotDistanceMeters, spotClimbSteps, blockingRegion, terrainRefusal, reseatOpenFloor, routeForMove, stepFrom, spotForCell, actorCell, standingRoomNear, furnitureCells, approachCellFor, } from '../utilities/spots.js';
9
10
  // fallDamageDVMeters, not fallDamageDV: a climb that fell short drops
10
11
  // you from where you GOT to, which is a distance in metres, not a whole
11
12
  // storey. The storey-based wrapper still exists for callers that really
12
13
  // do fall a level.
13
- import { fallDamageDVMeters, climbHitsFor, climbMetersFrom, climbSurfaceModifier, METERS_PER_CELL, METERS_PER_LEVEL, key } from '../utilities/room-grid.js';
14
+ import { fallDamageDVMeters, climbHitsFor, climbMetersFrom, climbSurfaceModifier, METERS_PER_CELL, METERS_PER_LEVEL, key, distanceMeters } from '../utilities/room-grid.js';
14
15
  import { rollPool, formatRoll } from '../utilities/dice.js';
15
16
  /**
16
17
  * "walk to <spot>" / "run to <spot>" / "sprint to <spot>" -- crossing
17
18
  * the CURRENT room to one of its "at" spots (see utilities/spots.ts;
18
19
  * player request: rooms felt like everything stood at your elbow). The
19
20
  * three verbs are SR5e's movement modes (p.161-162); out of combat all
20
- * three are free narration and differ only in flavor. In combat the
21
- * mode is the tactical choice -- walk exposed but steady, run harder to
22
- * hit but -2 on your next action, sprint an Athletics test to cross
23
- * clean (Phase 2; v1 refuses spot moves mid-exchange like go.ts does
24
- * room moves).
21
+ * three are free narration and differ only in flavor.
22
+ *
23
+ * IN COMBAT THEY COST GROUND (2QpCcKFKCynk9jYoX, second half of the
24
+ * coordinates ruling: the gap closes "either immediately out of combat,
25
+ * or with actions in combat"). A Combat Turn carries a budget -- Walk
26
+ * Rate Agility x 2 m, Run Rate Agility x 4 m, both whole-turn totals
27
+ * (p.161) -- crossing spends from it, exceeding the Walk Rate makes you
28
+ * RUNNING at -2 dice for the rest of the turn (p.162), and "sprint"
29
+ * rolls the Complex Action that buys more ground. See spendMovement.
30
+ * This replaced a flat refusal to move mid-exchange at all.
25
31
  *
26
32
  * "move" and "approach" alias walk. A Direction argument is a STEP
27
33
  * across this room's grid ("move south 2"), never a room change -- on a
@@ -687,6 +693,66 @@ export class MoveCommand extends Command {
687
693
  : `the ${actor.atSpot}`;
688
694
  return `You step ${taken * 1} ${taken === 1 ? 'pace' : 'paces'} ${direction}${shortNote}. You're at ${place} now.`;
689
695
  }
696
+ /**
697
+ * IS THIS ACTOR IN A COMBAT TURN AT ALL?
698
+ *
699
+ * `inExchange` is only true while an exchange is being resolved, so it
700
+ * cannot answer "am I in a fight" between commands. `lastExchangeAt`
701
+ * can, and it is the predicate resolvePartingShot already uses for
702
+ * "engaged" -- reusing it keeps one definition of being in a fight
703
+ * rather than minting a second that can drift from it.
704
+ */
705
+ static FIGHT_WINDOW_MS = 60_000;
706
+ inCombatTurn(actor) {
707
+ return !!actor.combatOpponent && Date.now() - actor.lastExchangeAt < MoveCommand.FIGHT_WINDOW_MS;
708
+ }
709
+ /**
710
+ * Bills a crossing against the Combat Turn's movement rate, or returns
711
+ * the refusal when there is not enough left (SR5 p.161-162).
712
+ *
713
+ * Returns undefined -- meaning "go ahead" -- whenever this is not a
714
+ * combat turn, which is every ordinary walk across a bar.
715
+ */
716
+ spendMovement(actor, to) {
717
+ if (!this.inCombatTurn(actor))
718
+ return undefined;
719
+ const room = actor.currentLocation;
720
+ const from = actorCell(room, actor);
721
+ if (!from)
722
+ return undefined;
723
+ const cost = distanceMeters(from, to);
724
+ if (cost <= 0)
725
+ return undefined;
726
+ // THE SPRINT ACTION (p.162), and this is where the engine's existing
727
+ // "sprint to <x>" verb finally means something mechanical. Canon
728
+ // makes it a Complex Action -- Running + Strength [Physical], each
729
+ // hit buying more ground -- so it is rolled when the player asks for
730
+ // it, not applied automatically to cover a shortfall.
731
+ //
732
+ // ATHLETICS, NOT RUNNING: this engine's skill list has no Running
733
+ // (nor Gymnastics); it collapses both into `athletics`, which
734
+ // resolvePartingShot already rolls for exactly this -- breaking away
735
+ // at a dead run. Mapping canon's skill onto the one this game has is
736
+ // better than inventing a skill nobody can raise.
737
+ if (this.mode() === 'sprint' && actor.sprintMetersThisTurn === 0) {
738
+ const skill = actor.skillRating('athletics');
739
+ const roll = rollPool(Math.max(1, skill + actor.strength + actor.qualityBonus('athletics') + actor.augBonus('athletics') + actor.woundModifier), physicalLimit(actor));
740
+ const bought = roll.hits * Player.SPRINT_METERS_PER_HIT;
741
+ actor.sprintMetersThisTurn = bought;
742
+ this.logger.meta(`Sprint (Athletics + Strength [Physical]): ${formatRoll(roll)} -- +${bought} m this turn`);
743
+ }
744
+ if (cost > actor.movementLeftMeters) {
745
+ const left = actor.movementLeftMeters;
746
+ // Name the numbers. A refusal that says only "you can't" in a
747
+ // system the player cannot see is the kind of wall that gets
748
+ // reported as a bug.
749
+ return left <= 0
750
+ ? `You've already covered your ground this turn (${actor.runRateMeters} m at a dead run). Nothing left in the legs until the next exchange.`
751
+ : `That's ${cost.toFixed(1)} m and you have ${left.toFixed(1)} m left this turn (Run Rate ${actor.runRateMeters} m).${hint(` ("sprint" buys more ground -- Athletics + Strength, ${Player.SPRINT_METERS_PER_HIT} m a hit.)`)}`;
752
+ }
753
+ actor.movedMetersThisTurn += cost;
754
+ return undefined;
755
+ }
690
756
  /** Closes the last few paces to someone already at your own spot --
691
757
  * you end up beside them rather than merely in the same zone. */
692
758
  crossToActor(target) {
@@ -700,12 +766,20 @@ export class MoveCommand extends Command {
700
766
  if (!cell || (actor.atCell && actor.atCell.x === cell.x && actor.atCell.y === cell.y && actor.atCell.z === cell.z)) {
701
767
  return `You're already standing with ${target.name}.`;
702
768
  }
769
+ // GROUND COSTS IN A FIGHT (2QpCcKFKCynk9jYoX, second half of the
770
+ // ruling: the gap closes "either immediately out of combat, or with
771
+ // actions in combat"). Out of a fight this whole block is skipped
772
+ // and you simply walk -- that is the "immediately" half.
773
+ const spend = this.spendMovement(actor, cell);
774
+ if (spend)
775
+ return spend;
703
776
  actor.atCell = cell;
704
777
  actor.atSpot = spotForCell(room, cell);
705
778
  actor.performAction('steps up beside', target.name);
706
779
  this.scene.updateStatus();
707
780
  this.scene.updateExits(room);
708
- return `You close the last few paces and stand with ${target.name}.`;
781
+ const pace = actor.isRunningThisTurn ? ` You're running now -- everything else this turn is at -2.` : '';
782
+ return `You close the last few paces and stand with ${target.name}.${pace}`;
709
783
  }
710
784
  /**
711
785
  * "move to north door" / "move to the east exit" / "move to door".
@@ -1 +1 @@
1
- {"version":3,"file":"move.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/move.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"move.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/commands/move.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,26 @@ export interface IComplexForm {
24
24
  /** Fading value = level + delta (min 2). */
25
25
  fvDelta: number;
26
26
  kind: 'instant' | 'sustained';
27
+ /**
28
+ * WHAT THE FORM AIMS AT -- the engine's read of canon's Target line,
29
+ * and the reason a form does or does not demand `at <name>`.
30
+ *
31
+ * 'icon' -- Target: Device (p.252 also allows a persona). Named, or
32
+ * the action does not happen.
33
+ * 'sprite' -- Target: Sprite (p.253 Stitches). Named among your own.
34
+ * 'none' -- the weave settles on YOUR persona and nothing else is
35
+ * chosen, so there is nothing to name.
36
+ *
37
+ * The rule this encodes, checked against the books rather than
38
+ * remembered: a complex form's Target line says what may be chosen,
39
+ * threading itself restricts the choice to icons you have SPOTTED
40
+ * (p.251), and spells make the same step explicit ("Step 2: Choose
41
+ * the Target", p.281). The target is part of the action. Deditri
42
+ * filed exactly that -- "Threads and Spells that require targets need
43
+ * to be part of the action. It can't just default" -- and the engine
44
+ * now agrees for every form that takes one.
45
+ */
46
+ aim: 'none' | 'icon' | 'sprite';
27
47
  }
28
48
  export declare const FORMS: IComplexForm[];
29
49
  export declare class ThreadCommand extends Command implements ICommand {
@@ -39,6 +59,31 @@ export declare class ThreadCommand extends Command implements ICommand {
39
59
  long: string;
40
60
  })[];
41
61
  execute(args?: string[]): Promise<string>;
62
+ /**
63
+ * WHAT THIS WEAVE IS AIMED AT, decided before a single die is rolled.
64
+ *
65
+ * ONE PLACE, EVERY FORM. The old code asked this question inside each
66
+ * form's own resolution, so `resonance-spike` grew a targeting rule
67
+ * and `stitches` -- which canon also gives a Target line (p.253:
68
+ * "Target: Sprite") -- kept picking the first sprite in the list. That
69
+ * is the same defect Deditri filed, one case down the switch, and
70
+ * fixing the one they happened to hit would have reproduced their
71
+ * report the first time a technomancer held two sprites.
72
+ *
73
+ * NOTHING IS EVER CHOSEN FOR YOU. Not the lone hostile in the room,
74
+ * not whoever you are already fighting, not your only sprite. That is
75
+ * cast.ts's rule, arrived at from the same books ("Step 2: Choose the
76
+ * Target", p.281), and the reason the two verbs now agree is that
77
+ * they are answering one question the books ask once.
78
+ *
79
+ * DELIBERATELY NOT sustain.ts's RULE, and the difference is worth
80
+ * stating because the two look alike. `sustain` picks silently when
81
+ * you hold one registered sprite, and its comment explains why: p.256
82
+ * gives the hand-off and says nothing about designating one sprite
83
+ * among several, so that is UI, and UI may be convenient. A form's
84
+ * Target line is not UI. Do not "harmonize" these.
85
+ */
86
+ private resolveAim;
42
87
  /** Per-form resolution once the weave holds (hits >= 1). */
43
88
  private resolveForm;
44
89
  }
@@ -3,11 +3,26 @@ 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 { sameHostSide } from '../models/player.js';
6
7
  export const FORMS = [
7
- { key: 'resonance-spike', name: 'Resonance Spike', blurb: 'raw Resonance as a weapon -- boxes of Matrix damage, no marks, no mercy', fvDelta: -1, kind: 'instant' },
8
- { key: 'stitches', name: 'Stitches', blurb: 'rethread a damaged sprite -- repairs its condition monitor', fvDelta: 0, kind: 'instant' },
9
- { key: 'diagnostics', name: 'Diagnostics', blurb: 'the code shows you its seams -- +2 to your Matrix pools while held', fvDelta: -1, kind: 'sustained' },
10
- { key: 'static-veil', name: 'Static Veil', blurb: 'you read as background noise -- +2 Matrix defense while held', fvDelta: -1, kind: 'sustained' },
8
+ { key: 'resonance-spike', name: 'Resonance Spike', blurb: 'raw Resonance as a weapon -- boxes of Matrix damage, no marks, no mercy', fvDelta: -1, kind: 'instant', aim: 'icon' },
9
+ { key: 'stitches', name: 'Stitches', blurb: 'rethread a damaged sprite -- repairs its condition monitor', fvDelta: 0, kind: 'instant', aim: 'sprite' },
10
+ // AIM 'none' IS A STATEMENT ABOUT THIS ENGINE, NOT ABOUT CANON.
11
+ //
12
+ // Asked directly, the rules return Infusion of [Matrix Attribute] --
13
+ // Target: Device, Duration S, FV L+1 (p.252) -- which is what these
14
+ // two are, renamed and flattened: a sustained boost to a Matrix
15
+ // attribute. Canon lets an Infusion be aimed at another icon, and
16
+ // this engine only ever applies it to the threader's own persona.
17
+ //
18
+ // So the honest label is 'none': nothing is being chosen FOR you
19
+ // here, which is the defect this sweep is about. Aiming a buff at
20
+ // somebody else is a capability the engine does not have, and adding
21
+ // a target prompt for a target the code cannot use would be the
22
+ // worse failure -- a syntax that refuses everything you type.
23
+ // Reported rather than invented; see the note on the sweep.
24
+ { key: 'diagnostics', name: 'Diagnostics', blurb: 'the code shows you its seams -- +2 to your Matrix pools while held', fvDelta: -1, kind: 'sustained', aim: 'none' },
25
+ { key: 'static-veil', name: 'Static Veil', blurb: 'you read as background noise -- +2 Matrix defense while held', fvDelta: -1, kind: 'sustained', aim: 'none' },
11
26
  ];
12
27
  export class ThreadCommand extends Command {
13
28
  static verb = 'thread';
@@ -67,7 +82,7 @@ export class ThreadCommand extends Command {
67
82
  // must not fuzzy-match a form called something with "hammer" in it.
68
83
  // Everything after "at" is the target and nothing else looks at it.
69
84
  const atIdx = words.findIndex(w => w.toLowerCase() === 'at');
70
- const spikeTarget = atIdx >= 0 ? words.slice(atIdx + 1).join(' ').trim() : '';
85
+ const namedTarget = atIdx >= 0 ? words.slice(atIdx + 1).join(' ').trim() : '';
71
86
  if (atIdx >= 0)
72
87
  words = words.slice(0, atIdx);
73
88
  const numArg = words.find(w => /^\d+$/.test(w));
@@ -88,6 +103,24 @@ export class ThreadCommand extends Command {
88
103
  return `${form.name} is already woven and held. ("thread drop ${form.key}" releases it first.)`;
89
104
  }
90
105
  const overreach = level > actor.resonance;
106
+ // AIM BEFORE YOU ROLL -- the half of this that is not about
107
+ // targeting at all.
108
+ //
109
+ // The refusals used to live inside resolveForm, which runs AFTER
110
+ // the threading test and after Fading is computed. That was
111
+ // survivable while a refusal was a rare ambiguity; it is not
112
+ // survivable now that naming no target refuses every time, because
113
+ // then a typo costs a Complex Action AND a stun box. Measured, not
114
+ // supposed: a targetless spike printed "the spike arcs and grounds
115
+ // out" and "The fading bites -- 1 stun" in the same breath.
116
+ //
117
+ // cast.ts has always refused at the door -- `cast manabolt` with no
118
+ // target answers "Cast it at whom?" and rolls nothing. Threads now
119
+ // do the same. A refusal is the game saying the action did not
120
+ // happen; charging for it says the opposite.
121
+ const aim = this.resolveAim(form, namedTarget);
122
+ if (aim.refusal)
123
+ return aim.refusal;
91
124
  // The threading test: Resonance + software [Level] -- hits capped
92
125
  // by the Level, unskilled defaults at -1 (the conjuring school).
93
126
  const software = actor.skillRating('software');
@@ -113,7 +146,7 @@ export class ThreadCommand extends Command {
113
146
  lines.push(` The weave slips through your fingers -- nothing holds.`);
114
147
  }
115
148
  else {
116
- lines.push(...this.resolveForm(form, level, hits, spikeTarget));
149
+ lines.push(...this.resolveForm(form, level, hits, aim));
117
150
  }
118
151
  this.logger.meta(`Fading (${fadingValue}${overreach ? ', OVERREACH -- physical' : ''}): resist ${formatRoll(resist)}`);
119
152
  if (fadingTaken === 0) {
@@ -133,8 +166,99 @@ export class ThreadCommand extends Command {
133
166
  this.scene.updateStatus();
134
167
  return lines.join('\n');
135
168
  }
169
+ /**
170
+ * WHAT THIS WEAVE IS AIMED AT, decided before a single die is rolled.
171
+ *
172
+ * ONE PLACE, EVERY FORM. The old code asked this question inside each
173
+ * form's own resolution, so `resonance-spike` grew a targeting rule
174
+ * and `stitches` -- which canon also gives a Target line (p.253:
175
+ * "Target: Sprite") -- kept picking the first sprite in the list. That
176
+ * is the same defect Deditri filed, one case down the switch, and
177
+ * fixing the one they happened to hit would have reproduced their
178
+ * report the first time a technomancer held two sprites.
179
+ *
180
+ * NOTHING IS EVER CHOSEN FOR YOU. Not the lone hostile in the room,
181
+ * not whoever you are already fighting, not your only sprite. That is
182
+ * cast.ts's rule, arrived at from the same books ("Step 2: Choose the
183
+ * Target", p.281), and the reason the two verbs now agree is that
184
+ * they are answering one question the books ask once.
185
+ *
186
+ * DELIBERATELY NOT sustain.ts's RULE, and the difference is worth
187
+ * stating because the two look alike. `sustain` picks silently when
188
+ * you hold one registered sprite, and its comment explains why: p.256
189
+ * gives the hand-off and says nothing about designating one sprite
190
+ * among several, so that is UI, and UI may be convenient. A form's
191
+ * Target line is not UI. Do not "harmonize" these.
192
+ */
193
+ resolveAim(form, query) {
194
+ const actor = this.actor;
195
+ if (form.aim === 'none') {
196
+ if (query.length > 0) {
197
+ return { refusal: `${form.name} settles on your own persona -- there is nothing to aim it at.` };
198
+ }
199
+ return {};
200
+ }
201
+ if (form.aim === 'sprite') {
202
+ const sprites = this.game?.companions.filter(c => c.kind === 'sprite') ?? [];
203
+ if (sprites.length === 0) {
204
+ return { refusal: `Stitches finds nothing to mend -- no sprite rides with you.${hint(` ("compile <type> <level>" threads one.)`)}` };
205
+ }
206
+ const roster = sprites.map(s => `"${s.npc.name}"`).join(', ');
207
+ if (query.length === 0) {
208
+ return { refusal: `Stitch WHICH sprite? Yours: ${roster}.${hint(` ("thread stitches <level> at <name>")`)}` };
209
+ }
210
+ const picked = fuzzyPickName(query, sprites.map(s => s.npc.name));
211
+ if (!picked) {
212
+ return { refusal: `No sprite of yours answers to "${query}". Yours: ${roster}.` };
213
+ }
214
+ return { sprite: sprites.find(s => s.npc.name === picked) };
215
+ }
216
+ // form.aim === 'icon'
217
+ if (actor.plane !== 'matrix') {
218
+ return { refusal: `The spike has nowhere to earth itself out here.${hint(` ("jack in" -- the Resonance strikes on the grid.)`)}` };
219
+ }
220
+ // ONLY WHAT IS ON YOUR SIDE OF THE WALL (p.246, and p.251: "You can
221
+ // only use complex forms on icons you've spotted"). Without
222
+ // sameHostSide this was the room's raw actor roll, so a persona
223
+ // inside a host could spike icons standing out on the street -- and
224
+ // a persona on the street could spike ice the grid view had just
225
+ // refused to name.
226
+ //
227
+ // THE REFUSALS DELIBERATELY DO NOT SAY WHAT IS ON THE OTHER SIDE.
228
+ // "Nothing in reach" is the whole truth a persona is entitled to:
229
+ // naming the ice behind the wall would leak exactly what the wall
230
+ // exists to hide.
231
+ const icons = actor.currentLocation.getActors()
232
+ .filter((a) => a instanceof NPC && a.plane === 'matrix' && !a.deathClaimed && a !== actor
233
+ && sameHostSide(actor, a));
234
+ const foes = icons.filter(a => !a.allyOf);
235
+ if (query.length === 0) {
236
+ // NAMING NOTHING IS NOW A REFUSAL EVERY TIME, not only when the
237
+ // room was ambiguous. The lone-foe and combatOpponent fallbacks
238
+ // that used to sit here were the rest of what Deditri filed: they
239
+ // stopped choosing your SPRITE, and went on choosing.
240
+ //
241
+ // The two answers are different events and read differently. With
242
+ // something to aim at, the question is which; with nothing, the
243
+ // fact is that the grid is empty of enemies -- and your own icons
244
+ // are named there, because "your sprite is standing right here
245
+ // and is not a candidate" is the whole point of the fix.
246
+ return foes.length > 0
247
+ ? { refusal: `Spike WHAT? Name it: ${foes.map(f => f.name).join(', ')}.${hint(` ("thread resonance-spike <level> at <name>")`)}` }
248
+ : { refusal: `Spike WHAT? Nothing hostile rides this grid.${icons.length > 0 ? ` Only your own: ${icons.map(i => i.name).join(', ')}.` : ''}` };
249
+ }
250
+ // AN ALLY CAN STILL BE NAMED OUT LOUD -- there are reasons to burn
251
+ // your own construct -- so the match runs against every icon in
252
+ // reach, not just the hostile ones. What changed is that nothing
253
+ // picks one for you.
254
+ const named = fuzzyPickName(query, icons.map(i => i.name));
255
+ if (!named) {
256
+ return { refusal: `Nothing on this grid answers to "${query}".${icons.length > 0 ? ` In reach: ${icons.map(i => i.name).join(', ')}.` : ''}` };
257
+ }
258
+ return { icon: icons.find(i => i.name === named) };
259
+ }
136
260
  /** Per-form resolution once the weave holds (hits >= 1). */
137
- resolveForm(form, level, hits, spikeTarget = "") {
261
+ resolveForm(form, level, hits, aim) {
138
262
  const actor = this.actor;
139
263
  switch (form.key) {
140
264
  case 'resonance-spike': {
@@ -143,39 +267,9 @@ export class ThreadCommand extends Command {
143
267
  // targets need to be part of the action. It can't just
144
268
  // default").
145
269
  //
146
- // They are right twice over. The old selector fell back to
147
- // `getActors().find(a => a.plane === 'matrix')` -- ANY matrix
148
- // icon in the room, with no hostility test and no ally test at
149
- // all -- while the comment above it claimed "nearest hostile
150
- // icon". Your own sprite is an NPC standing on the grid beside
151
- // you, so it was usually first in the list. The engine shot the
152
- // runner's own construct and called it an enemy.
153
- //
154
- // YOUR OWN NEVER GET PICKED FOR YOU. An ally can still be named
155
- // out loud -- there are reasons to burn your own sprite -- but
156
- // nothing chooses one on your behalf.
157
- if (actor.plane !== 'matrix') {
158
- return [` The spike has nowhere to earth itself out here.${hint(` ("jack in" -- the Resonance strikes on the grid.)`)}`];
159
- }
160
- const icons = actor.currentLocation.getActors()
161
- .filter((a) => a instanceof NPC && a.plane === 'matrix' && !a.deathClaimed && a !== actor);
162
- const foes = icons.filter(a => !a.allyOf);
163
- const named = spikeTarget.length > 0 ? fuzzyPickName(spikeTarget, icons.map(i => i.name)) : undefined;
164
- if (spikeTarget.length > 0 && !named) {
165
- return [` Nothing on this grid answers to "${spikeTarget}".${icons.length > 0 ? ` In reach: ${icons.map(i => i.name).join(', ')}.` : ''}`];
166
- }
167
- const target = named
168
- ? icons.find(i => i.name === named)
169
- : (actor.combatOpponent instanceof NPC && actor.combatOpponent.plane === 'matrix' && !actor.combatOpponent.allyOf
170
- ? actor.combatOpponent
171
- : foes.length === 1 ? foes[0] : undefined);
172
- if (!target) {
173
- // Refuse rather than guess, and SAY what the choices are --
174
- // the house pattern for an ambiguous target.
175
- return foes.length > 1
176
- ? [` Spike WHAT? More than one icon is in reach: ${foes.map(f => f.name).join(', ')}.${hint(` ("thread resonance-spike <level> at <name>")`)}`]
177
- : [` The spike arcs and grounds out -- no hostile icon in reach.${icons.length > 0 ? ` Only your own ride the grid here: ${icons.map(i => i.name).join(', ')}.` : ''}`];
178
- }
270
+ // The choosing happens in resolveAim, before the dice. What is
271
+ // left here is what canon does once a named icon is struck.
272
+ const target = aim.icon;
179
273
  // CANON'S OWN TEST (p.253): Resonance Spike is Software +
180
274
  // Resonance [Level] v. WILLPOWER + FIREWALL, and it deals ONE
181
275
  // BOX PER NET HIT with no chance to resist. The threading roll
@@ -197,9 +291,12 @@ export class ThreadCommand extends Command {
197
291
  return [` The spike lands SQUARE on ${target.name} -- ${net} box${net === 1 ? '' : 'es'} of raw Resonance${fell ? `, and its code shears apart` : ` (${target.conditionSummary()})`}.`];
198
292
  }
199
293
  case 'stitches': {
200
- const sprite = this.game?.companions.find(c => c.kind === 'sprite');
201
- if (!sprite)
202
- return [` Stitches finds nothing to mend -- no sprite rides with you.`];
294
+ // TARGET: SPRITE (p.253), and the sprite is named. This used to
295
+ // read `companions.find(c => c.kind === 'sprite')` -- the first
296
+ // one in the list, whichever that happened to be, with a second
297
+ // registered sprite silently unreachable. Same defect as the
298
+ // spike's, one case down the switch; resolveAim owns it now.
299
+ const sprite = aim.sprite;
203
300
  const before = sprite.npc.damageTaken;
204
301
  sprite.npc.healDamage(hits);
205
302
  const healed = before - sprite.npc.damageTaken;