@maka/maka-cli 5.117.0 → 5.119.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/attack.js +6 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js +9 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/cast.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/compile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/deck.d.ts +14 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js +73 -38
- package/bundle/typescript/src/commands/game/sideQuest/commands/deck.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +3 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/docwagon.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/download.js +4 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/download.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js +10 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js +17 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/equip.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js +72 -20
- package/bundle/typescript/src/commands/game/sideQuest/commands/equipment.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +8 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +30 -14
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js +14 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/haggle.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js +95 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/hop.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/inv.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js +3 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js +5 -7
- package/bundle/typescript/src/commands/game/sideQuest/commands/jackpoint.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +24 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +20 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js +7 -6
- package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js +6 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/reload.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/rest.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js +8 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/say.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js +4 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/sheet.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js +11 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/sin.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js +5 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/stance.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +20 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +2 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.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 +17 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.d.ts +6 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js +17 -4
- package/bundle/typescript/src/commands/game/sideQuest/factories/chargen-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +132 -29
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/host.d.ts +80 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/host.js +98 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/host.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/item.d.ts +50 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js +78 -2
- package/bundle/typescript/src/commands/game/sideQuest/models/item.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +133 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +381 -85
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +40 -9
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +73 -12
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +3 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.d.ts +34 -1
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js +58 -26
- package/bundle/typescript/src/commands/game/sideQuest/qualities.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/player-equipment.d.ts +8 -12
- package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +14 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/seed/scene-seed.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.d.ts +22 -16
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js +22 -16
- package/bundle/typescript/src/commands/game/sideQuest/types/shared/equipment-enum.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/ui.js +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/ui.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js +13 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/auto-fight.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js +8 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/catalog-data.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +61 -16
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.d.ts +23 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js +111 -11
- package/bundle/typescript/src/commands/game/sideQuest/utilities/condition-report.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.d.ts +5 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js +5 -27
- package/bundle/typescript/src/commands/game/sideQuest/utilities/dice.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js +2 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-reach.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +11 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +56 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.d.ts +72 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js +100 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grids.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.d.ts +25 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.js +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-note.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.d.ts +29 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.js +64 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/harm-settlement.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.d.ts +9 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js +98 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic-actors.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +34 -6
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.d.ts +42 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js +75 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.d.ts +62 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js +97 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/matrix-roster.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js +3 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.d.ts +1 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +85 -7
- package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +10 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +39 -23
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.d.ts +16 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js +12 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/programs.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +2 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +23 -4
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import type { Player } from '../models/player.js';
|
|
2
2
|
/** The method name is the server's -- co-owned; do not rename alone. */
|
|
3
3
|
export declare const REPORT_METHOD = "characterSheet.reportCondition";
|
|
4
|
+
export interface ICompanionBeat {
|
|
5
|
+
name: string;
|
|
6
|
+
kind: string;
|
|
7
|
+
deployed: boolean;
|
|
8
|
+
where?: string;
|
|
9
|
+
line?: string;
|
|
10
|
+
damage?: {
|
|
11
|
+
taken: number;
|
|
12
|
+
max: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Every companion this persona has out (contract 2026-09-02); Game installs it from its ledger. */
|
|
16
|
+
export declare function setCompanionsResolver(fn: (player: Player) => ICompanionBeat[]): void;
|
|
17
|
+
/** Every host in the scene that holds marks on the persona, plus the PAN ledger (utilities/marks.ts marksOnYou); Game installs it. */
|
|
18
|
+
export declare function setMarksOnYouResolver(fn: (player: Player) => {
|
|
19
|
+
placer: string;
|
|
20
|
+
count: number;
|
|
21
|
+
}[]): void;
|
|
22
|
+
/** The marks a persona holds, by display name (utilities/marks.ts marksPlaced); Game installs it. */
|
|
23
|
+
export declare function setMarksPlacedResolver(fn: (player: Player) => {
|
|
24
|
+
target: string;
|
|
25
|
+
count: number;
|
|
26
|
+
}[]): void;
|
|
4
27
|
export declare function setActorRoleResolver(fn: (actor: Player) => string | undefined): void;
|
|
5
28
|
/** What one beat carries. Exported so a probe or a test can ask the
|
|
6
29
|
* engine exactly what it would send, without a wire. */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Logger } from './logger.js';
|
|
2
2
|
import { visibleActorsIn } from './spots.js';
|
|
3
|
+
import { hostLabel } from './grid-names.js';
|
|
3
4
|
/**
|
|
4
5
|
* THE LIVE CONDITION EMITTER -- the CLI half of the realtime sheet lane
|
|
5
6
|
* (contract agreed with maka-cli.com, 2026-09-01). On every condition
|
|
@@ -29,12 +30,37 @@ export const REPORT_METHOD = 'characterSheet.reportCondition';
|
|
|
29
30
|
* means no role, never a guess.
|
|
30
31
|
*/
|
|
31
32
|
let actorRole = () => undefined;
|
|
33
|
+
let companionsResolver = () => [];
|
|
34
|
+
/** Every companion this persona has out (contract 2026-09-02); Game installs it from its ledger. */
|
|
35
|
+
export function setCompanionsResolver(fn) {
|
|
36
|
+
companionsResolver = fn;
|
|
37
|
+
}
|
|
38
|
+
let marksPlacedResolver = () => [];
|
|
39
|
+
/** Without a scene, the ledgers the player alone can see: the PAN, and the host they stand inside. */
|
|
40
|
+
let marksOnYouResolver = (player) => [
|
|
41
|
+
...(player.hostInside && (player.hostInside.marksOn.get(player.name) ?? 0) > 0
|
|
42
|
+
? [{ placer: hostLabel(player.hostInside.over, { capital: true }), count: player.hostInside.marksOn.get(player.name) }]
|
|
43
|
+
: []),
|
|
44
|
+
...[...player.panMarksBy.entries()].filter(([, n]) => n > 0).map(([placer, count]) => ({ placer, count })),
|
|
45
|
+
];
|
|
46
|
+
/** Every host in the scene that holds marks on the persona, plus the PAN ledger (utilities/marks.ts marksOnYou); Game installs it. */
|
|
47
|
+
export function setMarksOnYouResolver(fn) {
|
|
48
|
+
marksOnYouResolver = fn;
|
|
49
|
+
}
|
|
50
|
+
/** The marks a persona holds, by display name (utilities/marks.ts marksPlaced); Game installs it. */
|
|
51
|
+
export function setMarksPlacedResolver(fn) {
|
|
52
|
+
marksPlacedResolver = fn;
|
|
53
|
+
}
|
|
32
54
|
export function setActorRoleResolver(fn) {
|
|
33
55
|
actorRole = fn;
|
|
34
56
|
}
|
|
35
57
|
export function buildConditionReport(player, deps) {
|
|
36
58
|
const { saveSlug, arSightUp } = deps;
|
|
37
|
-
|
|
59
|
+
// BRICKED INCLUDED (web report 2026-09-02: "my deck got bricked, but its
|
|
60
|
+
// status still says 4/12"): a forced dump clears activeDeck and
|
|
61
|
+
// getCyberdeck() hides a bricked deck, so the beat read nothing and the
|
|
62
|
+
// sheet froze on the last number. Status reads getAnyCyberdeck.
|
|
63
|
+
const deck = player.activeDeck ?? player.getAnyCyberdeck();
|
|
38
64
|
return {
|
|
39
65
|
slug: saveSlug(player.name),
|
|
40
66
|
damageTaken: player.damageTaken,
|
|
@@ -47,6 +73,12 @@ export function buildConditionReport(player, deps) {
|
|
|
47
73
|
// Where the meat sits while the persona rides the grid (web accepts
|
|
48
74
|
// since 2026-09-02): "jacked in from Your Hideout". Absent in the meat.
|
|
49
75
|
bodyRoom: player.plane === 'matrix' ? player.bodyRoom?.name : undefined,
|
|
76
|
+
// WHERE THE PERSONA IS (contract 2026-09-02, web accepts first): inside a
|
|
77
|
+
// host or on a grid, by name; absent in the meat. `room` above is the
|
|
78
|
+
// body's on every plane.
|
|
79
|
+
matrix: player.plane === 'matrix'
|
|
80
|
+
? { grid: player.currentGrid?.name, host: player.hostInside?.name }
|
|
81
|
+
: undefined,
|
|
50
82
|
simMode: player.simMode,
|
|
51
83
|
stance: player.autoStance,
|
|
52
84
|
drawn: player.weaponDrawn,
|
|
@@ -58,7 +90,29 @@ export function buildConditionReport(player, deps) {
|
|
|
58
90
|
// accepts since 2026-09-02): Quickening, dumpshock and open astral senses
|
|
59
91
|
// all bill through it, so the web never re-derives it.
|
|
60
92
|
sustainingPenalty: player.sustainingPenalty,
|
|
93
|
+
// Hostile MARKs standing on the persona (contract 2026-09-02, web accepted
|
|
94
|
+
// first): the sum of what other personas hold on this PAN, read at fire
|
|
95
|
+
// time -- placements, the reboot clear and convergence all move it.
|
|
96
|
+
panMarks: [...player.panMarksBy.values()].reduce((n, v) => n + v, 0),
|
|
97
|
+
// The marks the host you are INSIDE holds on you (its own ledger, Host.marksOn);
|
|
98
|
+
// 0 outside a host -- the web gates it on the matrix plane.
|
|
99
|
+
hostMarksOnYou: player.hostInside?.marksOn.get(player.name) ?? 0,
|
|
100
|
+
// THE MARKS YOU HOLD (contract 2026-09-02, web accepted first; user: "I
|
|
101
|
+
// still can't see my marks" -- the two counters above are marks ON
|
|
102
|
+
// you). Every host and PAN this persona has marked, count 1..3, named
|
|
103
|
+
// as the "marks" listing names them; [] when holding none.
|
|
104
|
+
marksPlaced: marksPlacedResolver(player),
|
|
105
|
+
// WHO HOLDS MARKS ON YOU, one row each (contract 2026-09-02, web accepted
|
|
106
|
+
// first; user: "more than one entity can put a mark on a deck -- list
|
|
107
|
+
// them"): every persona on the PAN ledger, plus EVERY host that made you
|
|
108
|
+
// (a host's mark outlives your exit, p.236). Supersedes the counters; they
|
|
109
|
+
// stay as the fallback until every emitter carries the list.
|
|
110
|
+
marksOnYou: marksOnYouResolver(player).slice(0, 24),
|
|
61
111
|
deckPrograms: deck?.loadedPrograms ?? [],
|
|
112
|
+
// THE DECK'S STORAGE (contract 2026-09-02, web accepted first): a purchase
|
|
113
|
+
// installs straight to storage, so the library moves live, not on the
|
|
114
|
+
// next save. Same key vocabulary as deckPrograms.
|
|
115
|
+
deckStored: (deck?.storedPrograms ?? []).slice(0, 64),
|
|
62
116
|
// THE DECK'S OWN STAT LINE, verbatim (contract addition 2026-09-02):
|
|
63
117
|
// the web shows programs live but its stat line came only from
|
|
64
118
|
// hydrate, so an ASDF swap or mode change went stale until the
|
|
@@ -67,6 +121,16 @@ export function buildConditionReport(player, deps) {
|
|
|
67
121
|
// Live deck condition boxes (web accepts since 2026-09-02): matrix
|
|
68
122
|
// damage moves between saves instead of waiting for the next one.
|
|
69
123
|
deckDamage: deck?.deckDamage,
|
|
124
|
+
// THE RIGGED DRONE'S HULL (contract 2026-09-02, web accepted first): boxes
|
|
125
|
+
// at fire time, so a jumped-in fight moves the sheet between saves;
|
|
126
|
+
// absent when not rigged. Hull writes fire the beat (combat-exchange,
|
|
127
|
+
// rest) -- the deck-damage story again.
|
|
128
|
+
droneDamage: player.riggedDrone?.droneDamage,
|
|
129
|
+
// EVERYTHING DEPLOYED (contract 2026-09-02, web accepted first; user:
|
|
130
|
+
// "their stats, their damage track, really"): drones, agents, sprites,
|
|
131
|
+
// spirits, hired allies -- name, kind, where, the engine's own stat
|
|
132
|
+
// line, and the thing's own track. [] = nothing out.
|
|
133
|
+
companions: companionsResolver(player).slice(0, 24),
|
|
70
134
|
// The ONE honest AR answer (2026-09-01): muted, cut, and no-rig
|
|
71
135
|
// all collapse into arSightUp, computed at fire time.
|
|
72
136
|
ar: arSightUp(player),
|
|
@@ -81,7 +145,12 @@ export function buildConditionReport(player, deps) {
|
|
|
81
145
|
// WHAT YOU CAN SEE, not who is there (user 2026-09-02: cover and
|
|
82
146
|
// line of sight): the room panel's own rule, so a lurker behind good
|
|
83
147
|
// cover you have not picked out is no dot on the web either.
|
|
148
|
+
// BODIES ONLY (session log 2026-09-02: IC actors listed as dots with a
|
|
149
|
+
// guessed role): a construct on the matrix plane -- IC, sprite, agent --
|
|
150
|
+
// has no body in the room. Another player's body still shows even
|
|
151
|
+
// while their persona rides the grid.
|
|
84
152
|
actors: (player.currentLocation ? visibleActorsIn(player.currentLocation, player) : [])
|
|
153
|
+
.filter(a => !(a.plane === 'matrix' && a !== player && (a.icHost !== undefined || a.companionKind === 'sprite' || a.companionKind === 'agent')))
|
|
85
154
|
.filter(a => a !== player && !a.isIncapacitated())
|
|
86
155
|
.slice(0, 24)
|
|
87
156
|
.map(a => ({
|
|
@@ -108,8 +177,29 @@ function noteRoster(report) {
|
|
|
108
177
|
}
|
|
109
178
|
catch { /* no session */ }
|
|
110
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Every field added to the beat since the 5.104 core, newest last. A beat
|
|
182
|
+
* refused by the site's check is retried without them -- see the catch in
|
|
183
|
+
* reportConditionSoon. When the site has accepted a field for good it can
|
|
184
|
+
* move above this line; nothing else reads the list.
|
|
185
|
+
*/
|
|
186
|
+
const ADDITIVE_FIELDS = [
|
|
187
|
+
'ar', 'actors', 'deckLine', 'deckDamage', 'astralPerceiving', 'bodyRoom', 'sustainingPenalty',
|
|
188
|
+
'matrix', 'panMarks', 'hostMarksOnYou', 'marksPlaced', 'marksOnYou', 'deckStored', 'droneDamage', 'companions',
|
|
189
|
+
];
|
|
111
190
|
/** Refusal reasons already written to the session log -- one line each. */
|
|
112
|
-
const announcedRefusals = new
|
|
191
|
+
const announcedRefusals = new Map();
|
|
192
|
+
/** One line the first time a reason appears, then every 25th, so a long silent stretch shows in the log. */
|
|
193
|
+
function noteRefusal(why) {
|
|
194
|
+
const n = (announcedRefusals.get(why) ?? 0) + 1;
|
|
195
|
+
announcedRefusals.set(why, n);
|
|
196
|
+
if (n === 1 || n % 25 === 0) {
|
|
197
|
+
try {
|
|
198
|
+
Logger.getInstance().write(`condition-report: beat refused -- ${why}${n > 1 ? ` (x${n})` : ''}`);
|
|
199
|
+
}
|
|
200
|
+
catch { /* no session */ }
|
|
201
|
+
}
|
|
202
|
+
}
|
|
113
203
|
export function reportConditionSoon(player) {
|
|
114
204
|
// Before the TIMER, not just before the call: a scheduled beat firing
|
|
115
205
|
// after a Jest file finished lazy-imported into a torn-down
|
|
@@ -139,20 +229,30 @@ export function reportConditionSoon(player) {
|
|
|
139
229
|
// beat fires next. All read at FIRE time, like position.
|
|
140
230
|
const report = buildConditionReport(player, { saveSlug, arSightUp });
|
|
141
231
|
noteRoster(report);
|
|
142
|
-
|
|
232
|
+
try {
|
|
233
|
+
await HubLink.call(REPORT_METHOD, report);
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
// A CONTRACT GAP MUST NOT BLACK OUT THE SHEET (session log 2026-09-02:
|
|
237
|
+
// one "Match failed [400]" at 21:15:59, then every beat refused in
|
|
238
|
+
// silence). The server's check refuses a field it has not learned
|
|
239
|
+
// yet -- a local build ahead of the site's deploy. Retry once with the
|
|
240
|
+
// additive fields stripped; the core beat is the same contract the
|
|
241
|
+
// sheet has honoured since 5.104.
|
|
242
|
+
if (!/Match failed/i.test(err instanceof Error ? err.message : String(err)))
|
|
243
|
+
throw err;
|
|
244
|
+
const core = { ...report };
|
|
245
|
+
for (const k of ADDITIVE_FIELDS)
|
|
246
|
+
delete core[k];
|
|
247
|
+
await HubLink.call(REPORT_METHOD, core);
|
|
248
|
+
noteRefusal('Match failed -- beat landed WITHOUT the additive fields (the site has not accepted one of them yet)');
|
|
249
|
+
}
|
|
143
250
|
})().catch((err) => {
|
|
144
251
|
// Still fire-and-forget -- but not INVISIBLE. A refused beat used to
|
|
145
252
|
// vanish here, and "the deck line isn't syncing" could not be told
|
|
146
253
|
// apart from "no beat was sent" (web report 2026-09-02). One line per
|
|
147
254
|
// distinct reason in the session log; the game itself never hears it.
|
|
148
|
-
|
|
149
|
-
if (!announcedRefusals.has(why)) {
|
|
150
|
-
announcedRefusals.add(why);
|
|
151
|
-
try {
|
|
152
|
-
Logger.getInstance().write(`condition-report: beat refused -- ${why}`);
|
|
153
|
-
}
|
|
154
|
-
catch { /* no session */ }
|
|
155
|
-
}
|
|
255
|
+
noteRefusal(err instanceof Error ? err.message : String(err));
|
|
156
256
|
});
|
|
157
257
|
}, COALESCE_MS);
|
|
158
258
|
pending.unref?.();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition-report.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/condition-report.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"condition-report.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/condition-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,11 @@ export interface IDiceRoll {
|
|
|
52
52
|
* the two readings never diverge -- a real limit is at least 1, so a
|
|
53
53
|
* roll with any raw hit keeps at least one counted hit.
|
|
54
54
|
*/
|
|
55
|
-
|
|
55
|
+
/** Roll options: `gremlins` = how many fewer 1s a glitch needs (SR5 p.81, Gremlins per rating). */
|
|
56
|
+
export interface IRollOptions {
|
|
57
|
+
gremlins?: number;
|
|
58
|
+
}
|
|
59
|
+
export declare function rollPool(pool: number, limit?: number, opts?: IRollOptions): IDiceRoll;
|
|
56
60
|
/**
|
|
57
61
|
* One-line render of a roll for the game log, e.g.: "8d6 -> 4 hits"
|
|
58
62
|
* Pool and hits only. The individual faces have been through two
|
|
@@ -5,37 +5,15 @@
|
|
|
5
5
|
* (it went ugly AND you failed). Pure functions, no game-state knowledge --
|
|
6
6
|
* combat resolution lives in commands/attack.ts.
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
* LIMITS (SR5 p.46-47). A limit caps the number of hits you may COUNT
|
|
10
|
-
* from a test; it is never a die added to the pool. The book writes it
|
|
11
|
-
* in brackets -- `Hacking + Logic [Sleaze]` -- and p.244 files the
|
|
12
|
-
* whole Matrix action list by which limit it uses.
|
|
13
|
-
*
|
|
14
|
-
* It caps RAW hits, before an opposed test subtracts the defender's,
|
|
15
|
-
* and net hits are then taken from the capped number (p.46-47, worked
|
|
16
|
-
* through at p.195). It is NOT applied to the defender: limits apply
|
|
17
|
-
* only to pools built from a skill plus an attribute, and a defence
|
|
18
|
-
* like Intuition + Firewall has no skill in it (p.46-47, and the melee
|
|
19
|
-
* example at p.174 -- "no limit because there is no skill involved").
|
|
20
|
-
* So callers pass a limit on the ACTING roll only.
|
|
21
|
-
*
|
|
22
|
-
* GLITCHES ARE UNAFFECTED, and half of that is canon while half is a
|
|
23
|
-
* decision this engine had to make. A glitch is more than half the dice
|
|
24
|
-
* showing 1 (p.45-46) -- nothing to do with hits, so a limit cannot
|
|
25
|
-
* touch it. A CRITICAL glitch is a glitch with no hit achieved, and the
|
|
26
|
-
* book does not say whether a hit thrown away by a limit still counts
|
|
27
|
-
* as achieved. Asked directly and the rulebooks are silent, so rather
|
|
28
|
-
* than invent a rule this reads the RAW dice: you rolled a 5, you
|
|
29
|
-
* achieved a hit, the limit only stopped you counting it. In practice
|
|
30
|
-
* the two readings never diverge -- a real limit is at least 1, so a
|
|
31
|
-
* roll with any raw hit keeps at least one counted hit.
|
|
32
|
-
*/
|
|
33
|
-
export function rollPool(pool, limit) {
|
|
8
|
+
export function rollPool(pool, limit, opts = {}) {
|
|
34
9
|
const size = Math.max(0, Math.floor(pool));
|
|
35
10
|
const rolls = Array.from({ length: size }, () => 1 + Math.floor(Math.random() * 6));
|
|
36
11
|
const rawHits = rolls.filter(r => r >= 5).length;
|
|
37
12
|
const ones = rolls.filter(r => r === 1).length;
|
|
38
|
-
|
|
13
|
+
// More than half the pool shows 1s (p.45): ones >= floor(size/2) + 1.
|
|
14
|
+
// Gremlins lowers that count by its rating (p.81), never below one die.
|
|
15
|
+
const needed = Math.max(1, Math.floor(size / 2) + 1 - Math.max(0, Math.floor(opts.gremlins ?? 0)));
|
|
16
|
+
const glitch = size > 0 && ones >= needed;
|
|
39
17
|
const capped = limit !== undefined && Number.isFinite(limit) && limit > 0;
|
|
40
18
|
const limitIgnored = limit !== undefined && !capped;
|
|
41
19
|
const hits = capped ? Math.min(rawHits, Math.floor(limit)) : rawHits;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dice.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/dice.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"dice.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/dice.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,10 +89,11 @@ export function hostLine(room, actor) {
|
|
|
89
89
|
: 'sealed';
|
|
90
90
|
const alert = room.hostAlert && !room.hostSanctioned ? ', walls UP' : '';
|
|
91
91
|
const over = hostOver(gridVicinity(actor)) === room ? ', over you' : '';
|
|
92
|
+
const onGrid = room.host?.grid ? ` on ${room.host.grid.name}` : '';
|
|
92
93
|
// A haven shows no rating and no eyes (jackpoint.ts): it is not a
|
|
93
94
|
// thing you crack, so the numbers you would crack it with stay off.
|
|
94
95
|
const rating = room.hostSanctioned ? '' : ` [HR ${room.hostRating}]`;
|
|
95
|
-
return `${inside ? '▣' : '●'} ${hostLabel(room, { capital: true })}${rating} -- ${standing}${alert}${over}${inside ? ' -- INSIDE' : ''}`;
|
|
96
|
+
return `${inside ? '▣' : '●'} ${hostLabel(room, { capital: true })}${rating}${onGrid} -- ${standing}${alert}${over}${inside ? ' -- INSIDE' : ''}`;
|
|
96
97
|
}
|
|
97
98
|
/** The Map dock's one-line host: icon, name, rating, standing -- cut to the dock. */
|
|
98
99
|
export function hostDockLine(room, actor, width) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-reach.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-reach.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"grid-reach.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-reach.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Player } from '../models/player.js';
|
|
2
|
+
import type { Host } from '../models/host.js';
|
|
2
3
|
import { Room } from '../models/room.js';
|
|
3
4
|
import { Scene } from '../models/scene.js';
|
|
4
5
|
/**
|
|
@@ -52,3 +53,13 @@ export declare function gridSculpt(actor: Player, room: Room): string;
|
|
|
52
53
|
* the one room, and the block reads as it always did.
|
|
53
54
|
*/
|
|
54
55
|
export declare function gridIconBlock(scene: Scene, actor: Player, room: Room, rooms?: Record<string, Room>): string;
|
|
56
|
+
/**
|
|
57
|
+
* THE ROOM DOCK INSIDE A HOST (user, 2026-09-02: "the room drawn when
|
|
58
|
+
* entering a host looks just like the room my meat body is in"). It was:
|
|
59
|
+
* the dock drew the body's room. A host has no floor plan to draw --
|
|
60
|
+
* its interior is a sculpted space with its own rules (SR5 p.219,
|
|
61
|
+
* p.246) -- so the dock shows what a persona inside one can see: the
|
|
62
|
+
* host, its rating, your marks and its alarm, the ice with its damage,
|
|
63
|
+
* the other personas, and the files. Cut to the dock's rows and columns.
|
|
64
|
+
*/
|
|
65
|
+
export declare function hostInteriorPanel(scene: Scene, actor: Player, host: Host, rows: number, cols: number): string[];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { sameHostSide } from '../models/player.js';
|
|
2
|
+
import { personasInside } from './matrix-roster.js';
|
|
2
3
|
import { hostsInReach, hostLine, roomsInReach, gridVicinity } from './grid-reach.js';
|
|
3
4
|
import { NPC } from '../models/npc.js';
|
|
4
5
|
import { hostLabel } from './grid-names.js';
|
|
@@ -275,7 +276,9 @@ function hostInteriorIcons(scene, actor, room) {
|
|
|
275
276
|
// is instanceof NPC and nothing cleverer. It deliberately does NOT
|
|
276
277
|
// read `hostile`: a rival decker can be hostile without being ice,
|
|
277
278
|
// and that would put the wrong noun on a person.
|
|
278
|
-
|
|
279
|
+
// Inside a host, the roster is who is INSIDE it (matrix-roster.ts) -- a
|
|
280
|
+
// persona's body is never in this room.
|
|
281
|
+
for (const a of (room.host ? personasInside(scene, room.host) : [])) {
|
|
279
282
|
if (a === actor)
|
|
280
283
|
continue;
|
|
281
284
|
if (a.plane === 'matrix' && sameHostSide(actor, a) && actor.canPerceive(a)) {
|
|
@@ -323,7 +326,8 @@ function hostInteriorIcons(scene, actor, room) {
|
|
|
323
326
|
// reach" while they attack. Naming them here does not pretend
|
|
324
327
|
// otherwise; advertising a verb that refuses would be the worse lie.
|
|
325
328
|
for (const name of room.runningIC) {
|
|
326
|
-
|
|
329
|
+
const ice = room.host?.iceActors.get(name);
|
|
330
|
+
icons.push(`▲ ${ice?.name ?? name} -- hunting, and it has your icon.${ice ? ` (${ice.conditionSummary()}) ("thread resonance-spike ${ice.name}" / "attack ${ice.name}" crash it)` : ''}`);
|
|
327
331
|
}
|
|
328
332
|
// THE WAN IS IN HERE WITH YOU (SR5 p.233, asked directly rather than
|
|
329
333
|
// reasoned from the geometry): "If you are in a host that has a WAN,
|
|
@@ -394,7 +398,7 @@ function hostInteriorIcons(scene, actor, room) {
|
|
|
394
398
|
*/
|
|
395
399
|
export function gridSculpt(actor, room) {
|
|
396
400
|
// INSIDE, THE HEADER NAMES THE HOST, not the street address. A persona
|
|
397
|
-
// in a host's architecture is not
|
|
401
|
+
// in a host's architecture is not out on the grid at all
|
|
398
402
|
// any more, and a header that kept saying so was half of why the
|
|
399
403
|
// boundary read as absent.
|
|
400
404
|
if (actor.insideHost === room) {
|
|
@@ -408,7 +412,8 @@ export function gridSculpt(actor, room) {
|
|
|
408
412
|
// signal comes from. A host directly overhead gets a line of its own.
|
|
409
413
|
const body = actor.bodyRoom ?? room;
|
|
410
414
|
const header = `{cyan-fg}THE GRID :: jacked in from ${body.name.toUpperCase()}{/cyan-fg}`;
|
|
411
|
-
const
|
|
415
|
+
const grid = actor.currentGrid;
|
|
416
|
+
const flat = `{cyan-fg}Black flatland under a black sky -- the icons are the only things out here.${grid ? ` Riding ${grid.name}${grid.userPenalty ? ' (-2 on everything you do, p.233)' : ''}.` : ''}{/cyan-fg}`;
|
|
412
417
|
if (!room.hasNode)
|
|
413
418
|
return `${header}\n${flat}`;
|
|
414
419
|
return `${header}\n${flat}\n{cyan-fg}${hostLabel(room, { capital: true })} hangs directly overhead, sealed. What it holds is inside it.{/cyan-fg}`;
|
|
@@ -453,7 +458,12 @@ export function gridIconBlock(scene, actor, room, rooms) {
|
|
|
453
458
|
out.push(near.length > 0
|
|
454
459
|
? `{cyan-fg}ICONS IN REACH:{/cyan-fg}\n${near.map(i => ` {cyan-fg}${i}{/cyan-fg}`).join('\n')}`
|
|
455
460
|
: `{cyan-fg}Nothing near -- background noise around your signal.{/cyan-fg}`);
|
|
456
|
-
|
|
461
|
+
// FARTHER OUT, WITHOUT AN ADDRESS (SR5 p.235, p.243): Matrix Perception
|
|
462
|
+
// never tells you where a device physically sits -- that is Trace Icon,
|
|
463
|
+
// two marks and an opposed test. So far icons are listed by the noise
|
|
464
|
+
// band they cost, never by the room they are in. Only your own body's
|
|
465
|
+
// room is named above, because you know where you are sitting.
|
|
466
|
+
const byBand = new Map();
|
|
457
467
|
for (const { room: r, noise } of roomsInReach(rooms, actor).slice(1)) {
|
|
458
468
|
let icons = [];
|
|
459
469
|
try {
|
|
@@ -464,12 +474,50 @@ export function gridIconBlock(scene, actor, room, rooms) {
|
|
|
464
474
|
}
|
|
465
475
|
if (icons.length === 0)
|
|
466
476
|
continue;
|
|
467
|
-
// Names only: a far icon is a dim shape, not a readout.
|
|
468
477
|
const names = icons.map(i => i.replace(/^[^\s]+\s+/, '').split(' -- ')[0]);
|
|
469
|
-
|
|
478
|
+
const list = byBand.get(noise) ?? [];
|
|
479
|
+
for (const n of names)
|
|
480
|
+
if (!list.includes(n))
|
|
481
|
+
list.push(n);
|
|
482
|
+
byBand.set(noise, list);
|
|
470
483
|
}
|
|
484
|
+
const far = [...byBand.entries()].sort((a, b) => a[0] - b[0])
|
|
485
|
+
.map(([noise, names]) => ` {cyan-fg}· dim, noise -${noise}: ${names.join(', ')}{/cyan-fg}`);
|
|
471
486
|
if (far.length > 0)
|
|
472
487
|
out.push(`{cyan-fg}FARTHER OUT -- dimmer with distance:{/cyan-fg}\n${far.join('\n')}`);
|
|
473
|
-
|
|
488
|
+
// A blank line between the distance bands (user, 2026-09-02): three
|
|
489
|
+
// sections read as three when they do not touch.
|
|
490
|
+
return out.join('\n\n');
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* THE ROOM DOCK INSIDE A HOST (user, 2026-09-02: "the room drawn when
|
|
494
|
+
* entering a host looks just like the room my meat body is in"). It was:
|
|
495
|
+
* the dock drew the body's room. A host has no floor plan to draw --
|
|
496
|
+
* its interior is a sculpted space with its own rules (SR5 p.219,
|
|
497
|
+
* p.246) -- so the dock shows what a persona inside one can see: the
|
|
498
|
+
* host, its rating, your marks and its alarm, the ice with its damage,
|
|
499
|
+
* the other personas, and the files. Cut to the dock's rows and columns.
|
|
500
|
+
*/
|
|
501
|
+
export function hostInteriorPanel(scene, actor, host, rows, cols) {
|
|
502
|
+
const cut = (raw) => `{cyan-fg}${[...raw].slice(0, Math.max(4, cols)).join('')}{/cyan-fg}`;
|
|
503
|
+
const lines = [];
|
|
504
|
+
lines.push(cut(`INSIDE ${host.name}`));
|
|
505
|
+
const marks = host.marksBy.get(actor.name) ?? 0;
|
|
506
|
+
lines.push(cut(host.sanctioned
|
|
507
|
+
? 'haven -- welcome here'
|
|
508
|
+
: `HR ${host.rating} · marks ${marks}/3${host.alert ? ' · WALLS UP' : ''}${host.cracked ? ' · cracked' : ''}`));
|
|
509
|
+
for (const kind of host.runningIC) {
|
|
510
|
+
const ice = host.iceActors.get(kind);
|
|
511
|
+
lines.push(cut(`▲ ${kind}${ice ? ` ${ice.damageTaken}/${ice.maxConditionBoxes}` : ''}`));
|
|
512
|
+
}
|
|
513
|
+
for (const a of personasInside(scene, host)) {
|
|
514
|
+
if (a === actor || a.icHost === host)
|
|
515
|
+
continue;
|
|
516
|
+
lines.push(cut(`◆ ${a.name}`));
|
|
517
|
+
}
|
|
518
|
+
const files = host.files().length;
|
|
519
|
+
if (files > 0)
|
|
520
|
+
lines.push(cut(`◇ ${files} file${files === 1 ? '' : 's'} ${host.cracked ? 'open' : 'sealed'}`));
|
|
521
|
+
return lines.slice(0, Math.max(1, rows));
|
|
474
522
|
}
|
|
475
523
|
//# sourceMappingURL=grid-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-view.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grid-view.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/grid-view.ts"],"names":[],"mappings":"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"}
|