@maka/maka-cli 5.49.0 → 5.50.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 (90) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js +20 -1
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/attack.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js +9 -0
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/bypass-command.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js +9 -8
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/call.js.map +1 -1
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.d.ts +5 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js +27 -6
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/contacts.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js +2 -2
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/give.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +43 -3
  14. package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +6 -24
  16. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/commands/loot.d.ts +21 -0
  18. package/bundle/typescript/src/commands/game/sideQuest/commands/loot.js +93 -0
  19. package/bundle/typescript/src/commands/game/sideQuest/commands/loot.js.map +1 -0
  20. package/bundle/typescript/src/commands/game/sideQuest/commands/map.d.ts +4 -4
  21. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +23 -31
  22. package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
  23. package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +32 -3
  24. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +313 -17
  25. package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/commands/note.d.ts +25 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/commands/note.js +57 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/commands/note.js.map +1 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +20 -3
  30. package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js +9 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/commands/solve.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +1 -1
  34. package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
  35. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js +1 -1
  36. package/bundle/typescript/src/commands/game/sideQuest/commands/talk.js.map +1 -1
  37. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js +1 -0
  38. package/bundle/typescript/src/commands/game/sideQuest/factories/room-factory.js.map +1 -1
  39. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.d.ts +13 -1
  40. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +66 -9
  41. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
  42. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +37 -1
  43. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
  44. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.d.ts +2 -2
  45. package/bundle/typescript/src/commands/game/sideQuest/factories/scene-seed-generator.js +2 -2
  46. package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +47 -19
  47. package/bundle/typescript/src/commands/game/sideQuest/game.js +182 -70
  48. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  49. package/bundle/typescript/src/commands/game/sideQuest/headless.js +17 -2
  50. package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
  51. package/bundle/typescript/src/commands/game/sideQuest/models/npc.d.ts +9 -0
  52. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js +62 -3
  53. package/bundle/typescript/src/commands/game/sideQuest/models/npc.js.map +1 -1
  54. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +31 -0
  55. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +28 -0
  56. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  57. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.d.ts +5 -1
  58. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js +24 -6
  59. package/bundle/typescript/src/commands/game/sideQuest/models/puzzle.js.map +1 -1
  60. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +85 -2
  61. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +182 -2
  62. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  63. package/bundle/typescript/src/commands/game/sideQuest/models/scene.d.ts +4 -4
  64. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js +17 -7
  65. package/bundle/typescript/src/commands/game/sideQuest/models/scene.js.map +1 -1
  66. package/bundle/typescript/src/commands/game/sideQuest/scenes/scene2.json +17 -13
  67. package/bundle/typescript/src/commands/game/sideQuest/types/save-file.d.ts +29 -0
  68. package/bundle/typescript/src/commands/game/sideQuest/types/seed/puzzle-seed.d.ts +2 -0
  69. package/bundle/typescript/src/commands/game/sideQuest/types/seed/room-seed.d.ts +5 -1
  70. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.d.ts +9 -0
  71. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +87 -8
  72. package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
  73. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js +28 -0
  74. package/bundle/typescript/src/commands/game/sideQuest/utilities/persistence.js.map +1 -1
  75. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +7 -0
  76. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +9 -0
  77. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  78. package/bundle/typescript/src/commands/game/sideQuest/utilities/range.d.ts +22 -0
  79. package/bundle/typescript/src/commands/game/sideQuest/utilities/range.js +69 -0
  80. package/bundle/typescript/src/commands/game/sideQuest/utilities/range.js.map +1 -0
  81. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.d.ts +186 -0
  82. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js +742 -0
  83. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-grid.js.map +1 -0
  84. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.d.ts +34 -0
  85. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js +524 -0
  86. package/bundle/typescript/src/commands/game/sideQuest/utilities/room-view.js.map +1 -0
  87. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.d.ts +273 -3
  88. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js +890 -24
  89. package/bundle/typescript/src/commands/game/sideQuest/utilities/spots.js.map +1 -1
  90. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-view.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/room-view.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Room, IRoomSpot } from '../models/room.js';
2
2
  import type { Player } from '../models/player.js';
3
3
  import { Direction } from '../types/shared/direction-enum.js';
4
+ import { GridCoord, ITerrainRegion } from './room-grid.js';
4
5
  /**
5
6
  * Intra-room locations ("at" spots -- player request: every room felt
6
7
  * like everything stood at your elbow; walking into the bar had both
@@ -25,8 +26,6 @@ import { Direction } from '../types/shared/direction-enum.js';
25
26
  * Every spot comparison in the game goes through these helpers -- no
26
27
  * call site rolls its own.
27
28
  */
28
- /** Movement distance between spots, scaled by the room's size. */
29
- export declare const SIZE_COST: Record<'small' | 'medium' | 'large', number>;
30
29
  export declare function spotsActive(room: Room | undefined): boolean;
31
30
  /**
32
31
  * The IMPLICIT spot every spotted room has: the open floor. "move away"
@@ -52,7 +51,166 @@ export declare function spotOf(actor: Player): string | undefined;
52
51
  export declare function sameSpot(a: Player, b: Player): boolean;
53
52
  /** Whether an actor can reach a positioned thing (item/puzzle/exit). */
54
53
  export declare function canReach(actor: Player, targetSpot: string | undefined): boolean;
55
- export declare function moveCost(room: Room): number;
54
+ /**
55
+ * ROOM GRIDS (spatial wave 2026-08-25): the spot-name-level wrappers
56
+ * around utilities/room-grid.ts's coordinate primitives -- everything
57
+ * ABOVE this line still only ever touches spot NAMES; nothing but
58
+ * these three functions (and Room.ensureGrid itself) ever sees a
59
+ * GridCoord. All three return undefined/0 when the room has no grid
60
+ * (THE COMPAT RULE: a spotless room never synthesizes one) or the
61
+ * named spot doesn't exist in it.
62
+ */
63
+ export declare function spotCell(room: Room, spotName: string): GridCoord | undefined;
64
+ /** Every cell physically filled by furniture -- the full footprint of
65
+ * each named place (a bar runs several cells), minus the open floor
66
+ * (bare ground) and minus any OPEN doorway (a threshold you stand in,
67
+ * see openThresholds). Nobody stands here and movement goes around. */
68
+ export declare function furnitureCells(room: Room): Set<string>;
69
+ /** The ONE cell a doorway is reached from: directly opposite the door,
70
+ * one step in from its wall (player ruling 2026-08-25 -- "a south door
71
+ * requires you can move through the cell one unit north of it"). This
72
+ * is what makes a doorway a chokepoint worth holding. Undefined for
73
+ * up/down exits, which have no wall to stand off, and for an approach
74
+ * that would fall outside the room. */
75
+ export declare function approachCellFor(room: Room, direction: Direction): GridCoord | undefined;
76
+ /**
77
+ * Who is standing in the way of this doorway -- in the threshold itself
78
+ * or in its single approach cell. A body in either one holds the door
79
+ * (the 2026-08-25 ruling): squeezing past is not on offer here the way
80
+ * it is in open floor, because there is no second route to a doorway.
81
+ *
82
+ * `mover` never blocks themselves, and neither do their OWN companions:
83
+ * a spirit that follows you at your heel gets seated beside you, which
84
+ * would routinely park it on your approach cell and wall you into the
85
+ * room you just walked into.
86
+ */
87
+ /**
88
+ * A FIXTURE sitting in a doorway or on its single approach cell -- the
89
+ * non-living half of doorwayBlocker (playtest 2026-08-25: "I shouldn't
90
+ * be able to 'go' a direction if something is in the way of it").
91
+ * Synthesis reserves those cells so this should never fire on a
92
+ * generated room; it stays as the guard for hand-authored seeds, which
93
+ * can declare a spot anywhere they like.
94
+ */
95
+ export declare function doorwayFurniture(room: Room, direction: Direction): string | undefined;
96
+ export declare function doorwayBlocker(room: Room, direction: Direction, mover: Player): Player | undefined;
97
+ export declare function seatingIn(room: Room): Map<string, GridCoord>;
98
+ /**
99
+ * One tactical step (player request 2026-08-25: "move south 2"). Walks
100
+ * up to `count` cells in a cardinal direction from wherever the actor's
101
+ * body actually is, stopping at the first square it cannot enter -- a
102
+ * wall, furniture, uncleared terrain, or somebody standing there. No
103
+ * squeezing: this is a deliberate step, so it stops rather than
104
+ * shouldering through.
105
+ *
106
+ * Returns the cell reached and how many steps were actually taken, plus
107
+ * what stopped it short. Nothing is mutated -- commands/move.ts commits
108
+ * the result.
109
+ */
110
+ export declare function stepFrom(room: Room, mover: Player, direction: Direction, count: number): {
111
+ cell?: GridCoord;
112
+ taken: number;
113
+ blockedBy?: 'wall' | 'furniture' | 'terrain' | 'someone';
114
+ };
115
+ /**
116
+ * The named place a stepped-to cell counts as being "at" -- whichever
117
+ * fixture the cell touches (its own footprint or any neighbour of it),
118
+ * else the open floor. This is what keeps `atSpot` authoritative for
119
+ * every interaction while the body stands on an arbitrary square:
120
+ * step up beside the bar and you are AT the bar, step away and you are
121
+ * on open ground.
122
+ */
123
+ export declare function spotForCell(room: Room, cell: GridCoord): string;
124
+ /**
125
+ * A cell `mover` could stand in at or beside `target` -- the general
126
+ * form of seating, for walking to something that is not a named place.
127
+ * Used by "move to <body>": the fallen keep a cell but no spot, and you
128
+ * still need to be able to walk over and go through their pockets.
129
+ */
130
+ export declare function standingRoomNear(room: Room, target: GridCoord, mover: Player): GridCoord | undefined;
131
+ /** Where this actor's BODY sits (see seatingIn) -- undefined when they
132
+ * are circulating, off-meat, or the room has no grid. Pass a seating
133
+ * map when resolving several actors, so it's computed once. */
134
+ export declare function actorCell(room: Room, actor: Player, seats?: Map<string, GridCoord>): GridCoord | undefined;
135
+ /** Everything you have to walk AROUND rather than through: other
136
+ * people's bodies and the furniture itself. findPath treats these as a
137
+ * soft block (see its pass order) so they steer a route without ever
138
+ * making a destination unreachable. `mover` is always excluded -- you
139
+ * never block yourself. */
140
+ export declare function occupiedCells(room: Room, mover?: Player): Set<string>;
141
+ /** The cell `mover` would end up in on arriving at `spotName` -- their
142
+ * seat around that fixture, with everyone else's seats already taken.
143
+ * This, not the fixture's anchor, is where movement actually paths to:
144
+ * the anchor is furniture now, and nobody stands inside the bar. */
145
+ export declare function seatFor(room: Room, spotName: string, mover: Player): GridCoord | undefined;
146
+ /** Straight-line meters between two actors' BODIES -- the distance
147
+ * combat should use, now that people stand beside their furniture
148
+ * rather than inside it. Falls back to their spots' own separation
149
+ * when either has no seat (circulating, or a gridless room). */
150
+ export declare function actorDistanceMeters(room: Room, a: Player, b: Player): number;
151
+ /** The walkable route between two spots, or undefined when terrain
152
+ * blocks every route (see move.ts / ensureAtSpot for the refusal).
153
+ * Purely geometric -- bodies and furniture are NOT considered, because
154
+ * the only thing that may hard-refuse a crossing is terrain; see
155
+ * routeForMove for the version movement actually walks. */
156
+ export declare function pathBetweenSpots(room: Room, from: string, to: string): GridCoord[] | undefined;
157
+ /**
158
+ * The route a body actually walks: seat to seat, steering around other
159
+ * people and around the furniture (player ruling 2026-08-25 -- "cannot
160
+ * move through, only around"). Reports whether it had to SQUEEZE past
161
+ * somebody, which move.ts narrates.
162
+ *
163
+ * Bodies and furniture are soft blocks by design (see findPath's pass
164
+ * order): a crowded room slows you down and makes you go the long way,
165
+ * but it can never strand you. Only terrain hard-refuses, and that
166
+ * check stays in pathBetweenSpots where it always was.
167
+ */
168
+ export declare function routeForMove(room: Room, mover: Player, toSpot: string): {
169
+ path?: GridCoord[];
170
+ squeezed: boolean;
171
+ };
172
+ export declare function spotDistanceMeters(room: Room, from: string, to: string): number;
173
+ /** Cover between two spots (see room-grid.ts coverBetween) -- honors a
174
+ * cover-tagged DEFENDER spot first (the same check combat-exchange.ts
175
+ * makes), falling back to a terrain occluder on the line between. */
176
+ export declare function spotCoverBetween(room: Room, from: string, to: string): 'partial' | 'good' | undefined;
177
+ /** How many z-levels the route between two spots climbs via a risky
178
+ * 'climb' link (stairs/ladder never roll anything) -- undefined when
179
+ * the crossing never touches one. See move.ts's Athletics check. */
180
+ export declare function spotClimbSteps(room: Room, from: string, to: string): number | undefined;
181
+ /**
182
+ * Re-seats the OPEN FLOOR on the emptiest ground in the room, and
183
+ * returns whether it moved (playtest 2026-08-25: "'move away' is an
184
+ * actual location" -- it was pinned to one synthesized cell near the
185
+ * centroid, so peeling off always put you in the same square no matter
186
+ * who was standing where). "Away" should mean AWAY: the cell that
187
+ * maximises distance from the people you're stepping back from, then
188
+ * from the room's fixtures.
189
+ *
190
+ * Scored lexicographically -- people first, furniture as the
191
+ * tie-break -- over cells that exist, aren't sealed behind terrain,
192
+ * and that `mover` can actually reach. Anyone ALREADY on the open
193
+ * floor is excluded from the avoid-set: they're the ones this cell
194
+ * belongs to, and counting them would have it flee itself.
195
+ *
196
+ * Callers must invoke this BEFORE setting `atSpot = OPEN_FLOOR`; the
197
+ * grid is transient display/geometry state (never serialized), so a
198
+ * reload simply re-derives the synthesized default -- see the
199
+ * determinism contract in room-grid.ts.
200
+ */
201
+ export declare function reseatOpenFloor(room: Room, mover: Player): boolean;
202
+ /** Which terrain region is sealing the route from `from` to `to`, and
203
+ * the Puzzle that clears it (for the bypass verb) -- undefined when
204
+ * the room has no grid, or (a synthesis edge case) a region blocks
205
+ * the path but its puzzle can no longer be found. */
206
+ export declare function blockingRegion(room: Room, from: string, to: string): {
207
+ region: ITerrainRegion;
208
+ puzzle: import('../models/puzzle.js').Puzzle;
209
+ } | undefined;
210
+ /** One refusal voice for a terrain-blocked crossing -- always names
211
+ * the obstacle AND the mechanism (the safe "solve" route, plus the
212
+ * puzzle's own bypass verb when it has one). */
213
+ export declare function terrainRefusal(region: ITerrainRegion, targetLabel: string, puzzle?: import('../models/puzzle.js').Puzzle): string;
56
214
  /**
57
215
  * The spot an exit is reachable from. Seed-declared (room.exitSpots)
58
216
  * first; else a spot named like a doorway; else undefined = the exit is
@@ -63,6 +221,25 @@ export declare function exitSpot(room: Room, direction: Direction): string | und
63
221
  * far side) stands: at this room's matching exit spot; else the room's
64
222
  * doorway-named spot; else its first spot (a positioned room always
65
223
  * positions the arriving player -- that's what makes gating bite). */
224
+ /**
225
+ * Where you physically land walking in through `arrivedFrom`: IN the
226
+ * doorway you just came through (player ruling 2026-08-25 -- "when I
227
+ * enter the night market from the east, I should arrive on the western
228
+ * entrance"). The threshold is a standable cell now, so arrival no
229
+ * longer has to be rounded to whichever named place happens to own that
230
+ * exit -- Night Market's seed puts three of its exits "at the stalls",
231
+ * which is right for LEAVING (that's the spot you must stand at to go)
232
+ * but wrong for arriving, and used to materialise you ten metres inside
233
+ * the room.
234
+ *
235
+ * Returns the exact cell plus the spot it counts as, or undefined when
236
+ * the room has no grid, the direction has no doorway, or someone is
237
+ * already standing in it -- all of which fall back to entrySpotFor.
238
+ */
239
+ export declare function arrivalAt(room: Room, arrivedFrom: Direction | undefined): {
240
+ cell: GridCoord;
241
+ spot: string;
242
+ } | undefined;
66
243
  export declare function entrySpotFor(room: Room, arrivedFrom: Direction | undefined): string | undefined;
67
244
  /** One refusal voice for every spot gate -- always names the cure. */
68
245
  export declare function spotRefusal(targetLabel: string, spotName: string): string;
@@ -72,6 +249,14 @@ export declare function spotRefusal(targetLabel: string, spotName: string): stri
72
249
  * that you CAN'T do it from across the room, not that you must type two
73
250
  * commands). Mid-exchange nobody strolls: refuse like go.ts does, and
74
251
  * the Phase-2 crossing machinery will make it cost instead.
252
+ *
253
+ * ROOM GRIDS (spatial wave 2026-08-25): checks the route FIRST -- an
254
+ * uncleared barrier refuses the crossing even out of combat, always
255
+ * naming the obstacle and the mechanism (utilities/room-grid.ts /
256
+ * terrainRefusal). Rooms with no synthesized grid (still the common
257
+ * case -- most spotted rooms carry no terrain hints) never pay for the
258
+ * pathfind: spotDistanceMeters/pathBetweenSpots short-circuit to
259
+ * "reachable" the same instant canReach already would have.
75
260
  */
76
261
  export declare function ensureAtSpot(actor: Player, targetSpot: string | undefined): {
77
262
  line?: string;
@@ -90,6 +275,91 @@ export declare const SPOT_COLOR = "yellow";
90
275
  */
91
276
  export declare function highlightSpots(room: Room, text: string): string;
92
277
  export declare const ACTOR_COLOR = "green";
278
+ /** The RAW cover threshold guarding a spot (p.135-136: Normal 2 for
279
+ * partial cover, Hidden 4 for good) -- 0 when nothing tucks there. */
280
+ export declare function coverThreshold(room: Room, spotName: string | undefined): number;
281
+ /**
282
+ * PERCEPTION AT RANGE (SR5 p.135-136 Perception Test Modifiers,
283
+ * RAG-verified): "object/sound not in immediate vicinity" -2, "object/
284
+ * sound far away" -3. Canon names the bands but never puts meters on
285
+ * them, so the metre cuts are OURS -- pinned to the scale the game
286
+ * already speaks in, SR5 p.185's pistol brackets: short range 5 m is
287
+ * "immediate vicinity", medium 20 m is where "far away" begins.
288
+ *
289
+ * This became load-bearing with the 2026-08-25 room resize: a `huge`
290
+ * room is 32x22 m, so a stallholder clocking a runner the instant they
291
+ * step through the far door was the room being too small, not the NPC
292
+ * being sharp (playtest: "would Skitter even notice me?").
293
+ */
294
+ export declare const IMMEDIATE_VICINITY_M = 5;
295
+ export declare const FAR_AWAY_M = 20;
296
+ export declare function perceptionRangeModifier(meters: number): number;
297
+ /**
298
+ * The Perception threshold to pick someone out: p.136's "Normal" 2 for
299
+ * a pedestrian, 4 for anyone in good cover -- and ZERO for a person
300
+ * standing in the open inside `FAR_AWAY_M`, where seeing them is not a
301
+ * test at all.
302
+ *
303
+ * That last clause is deliberate calibration, not laziness. Requiring a
304
+ * test past `IMMEDIATE_VICINITY_M` was tried first and was far too
305
+ * blind: it had the regulars in a 24x16 m bar failing to register
306
+ * someone walking in twelve metres away. Canon's -2/-3 are about
307
+ * resolving DETAIL at range, not about whether a human body registers
308
+ * at all, so the test starts where "far away" does. A 32x22 m market
309
+ * still hides you from the far stall; a bar does not.
310
+ */
311
+ export declare function noticeThreshold(room: Room, target: Player, meters: number): number;
312
+ /**
313
+ * Whether `observer` would register `target` at all right now, WITHOUT
314
+ * rolling -- the passive read used by NPC reactions and by the room
315
+ * map. Their Perception pool stands in for an average roll (pool/4,
316
+ * SR5's own rule of thumb of one hit per four dice) so a sharp-eyed
317
+ * fixer notices what a distracted teenager misses, and the range
318
+ * modifier from p.135-136 applies.
319
+ *
320
+ * Deliberately NOT a dice roll: this fires on every movement event in
321
+ * the room, and a random result would have NPCs blinking in and out of
322
+ * awareness between one step and the next.
323
+ */
324
+ export declare function wouldNotice(observer: Player, target: Player): boolean;
325
+ /**
326
+ * HOW FAR A VOICE CARRIES. Canon has no rule for this (RAG-checked:
327
+ * p.135-136 covers Perception modifiers, p.441 white-noise generators,
328
+ * nothing on speech range), so these bands are a documented RULING
329
+ * pinned to the same 5 m / 20 m scale as perception above.
330
+ *
331
+ * The point is that a big room should SOUND big: before the 2026-08-25
332
+ * resize every cross-spot remark got one flat "(calling across the
333
+ * room)" tag, which in a 32x22 m market read as a stallholder holding a
334
+ * casual conversation at a dead bellow (playtest: "he's basically
335
+ * screaming").
336
+ */
337
+ export type VoiceBand = 'conversation' | 'raised' | 'shout' | 'yell';
338
+ export declare function voiceBandFor(meters: number): VoiceBand;
339
+ /** The tag appended to speech that has to travel -- empty at
340
+ * conversational range, where it would just be noise. */
341
+ export declare function voiceTag(band: VoiceBand): string;
342
+ /** Records that `viewer` has picked `target` out of their cover here --
343
+ * a spot they keep (Room.revealedBy) so every later read, the room
344
+ * map included, knows they've been seen. */
345
+ export declare function revealActor(room: Room, viewer: Player, target: Player): void;
346
+ /** Everyone `viewer` has already picked out of cover in this room. */
347
+ export declare function revealedTo(room: Room, viewer: Player): ReadonlySet<string>;
348
+ /** Runs a Perception result against every covered occupant, banking
349
+ * whoever it beats. Called by the verbs that constitute LOOKING (look,
350
+ * search) so the room map reflects what the player has actually made
351
+ * out. Returns the newly-revealed actors, for callers that narrate. */
352
+ export declare function revealWithPerception(room: Room, viewer: Player, hits: number): Player[];
353
+ /**
354
+ * Actors in `room` visible to `viewer` without a fresh roll: the viewer
355
+ * first, then anyone perceivable who is either standing in the open or
356
+ * has ALREADY been picked out of their cover (Room.revealedBy -- see
357
+ * revealWithPerception). Shared by highlightActors (prose) and
358
+ * utilities/room-view.ts (the room minimap). Coloring or drawing
359
+ * someone still unspotted would hand over a presence the Perception
360
+ * test is there to guard.
361
+ */
362
+ export declare function visibleActorsIn(room: Room, viewer: Player): Player[];
93
363
  /**
94
364
  * Colors the names of PRESENT, OBVIOUS people in a room's prose (player
95
365
  * request: places got the keyword treatment; actual NPCs deserve one