@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.
- package/bundle/typescript/package.json +1 -4
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js +12 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.d.ts +8 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js +10 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/decompile.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +20 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +28 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.d.ts +29 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js +82 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/move.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.d.ts +45 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +140 -43
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js +66 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/unravel.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js +11 -3
- package/bundle/typescript/src/commands/game/sideQuest/factories/repro-scene.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +21 -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 +71 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +88 -16
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/headless.js +34 -0
- package/bundle/typescript/src/commands/game/sideQuest/headless.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +89 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +161 -10
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.d.ts +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/types/repro.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js +8 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog-vocab.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.d.ts +24 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/backlog.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js +2 -12
- package/bundle/typescript/src/commands/game/sideQuest/utilities/bystander.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js +13 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/combat-exchange.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.d.ts +73 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js +210 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ephemeral.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +75 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +20 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +19 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +29 -6
- package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js +2 -14
- package/bundle/typescript/src/commands/game/sideQuest/utilities/street-gang.js.map +1 -1
- package/package.json +1 -4
|
@@ -428,6 +428,40 @@ export async function createHeadlessSession(opts) {
|
|
|
428
428
|
// subscriber still receives them.
|
|
429
429
|
session.pushStatus();
|
|
430
430
|
pushMap();
|
|
431
|
+
// THE SCENE CAN MOVE WITHOUT ANYONE TYPING.
|
|
432
|
+
//
|
|
433
|
+
// Everything above pushes from three places and three only:
|
|
434
|
+
// `command`, `addPlayer`, and this boot. Game's own way of saying
|
|
435
|
+
// "the world changed, repaint" is repaintForScene -- and out here
|
|
436
|
+
// that is INERT, because `_mapBox` is undefined on a server. Not
|
|
437
|
+
// assumed: a real headless boot emits map/room/status 1,1,1, calling
|
|
438
|
+
// updateExits + updateStatus by hand leaves it at 1,1,1, and one
|
|
439
|
+
// `command` takes it to 2,2,2.
|
|
440
|
+
//
|
|
441
|
+
// So a scene swap that happens OUTSIDE a command moves the table's
|
|
442
|
+
// truth and sends nothing after it. draftNextSceneInBackground is
|
|
443
|
+
// that shape by design -- `void continueToNextScene()`, 20-40
|
|
444
|
+
// seconds, resolving long after the command that started it already
|
|
445
|
+
// pushed the OLD scene.
|
|
446
|
+
//
|
|
447
|
+
// Installed AFTER `session` exists, deliberately: repaintForScene
|
|
448
|
+
// runs during the boot synthesis above, and a hook wired earlier
|
|
449
|
+
// would reach for a `session` that is not there yet.
|
|
450
|
+
//
|
|
451
|
+
// Double-pushing on a swap inside a command is accepted and cheap:
|
|
452
|
+
// the client coalesces its repaints (Game.scheduleRender) and
|
|
453
|
+
// route()'s seq dedupe is indifferent. Missing the swap entirely is
|
|
454
|
+
// the failure worth spending frames on.
|
|
455
|
+
//
|
|
456
|
+
// HARDENING. The inert joint is measured; a swap arriving outside a
|
|
457
|
+
// command is read in the source and NOT executed here
|
|
458
|
+
// (continueToNextScene is gated on job completion, so the harness
|
|
459
|
+
// cannot drive one end to end). This is not offered as the cause of
|
|
460
|
+
// any live report.
|
|
461
|
+
game.onSceneChanged = () => {
|
|
462
|
+
session.pushStatus();
|
|
463
|
+
pushMap();
|
|
464
|
+
};
|
|
431
465
|
return session;
|
|
432
466
|
});
|
|
433
467
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/headless.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../../../../../src/commands/game/sideQuest/headless.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,39 @@ export declare const STANCE_CYCLE: FightStance[];
|
|
|
18
18
|
export type Plane = 'meat' | 'matrix' | 'astral' | 'drone';
|
|
19
19
|
/** Meat and a jumped-in drone share the physical world. */
|
|
20
20
|
export declare function isPhysicalPlane(plane: Plane): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* ARE THESE TWO STANDING ON THE SAME SIDE OF A HOST'S WALL?
|
|
23
|
+
*
|
|
24
|
+
* The companion to fileReach, and it exists for the same reason: the
|
|
25
|
+
* boundary was being asked about in more than one place and the copies
|
|
26
|
+
* disagreed. fileReach settled it for FILES; nothing settled it for
|
|
27
|
+
* ICONS, so `look` honoured insideHost while every verb that picks a
|
|
28
|
+
* target read the room's raw actor list and saw straight through the
|
|
29
|
+
* wall. A technomancer standing inside a host was told "Empty
|
|
30
|
+
* architecture -- turning geometry and nothing in it worth the trip" by
|
|
31
|
+
* one surface and offered those same two IC as spike targets by the
|
|
32
|
+
* next.
|
|
33
|
+
*
|
|
34
|
+
* CANON MAKES THE PANEL BINDING, not the target list. Inside a host you
|
|
35
|
+
* see and interact with the icons inside it and not the ones outside,
|
|
36
|
+
* and from the grid the inside is unreachable (p.246) -- and threading
|
|
37
|
+
* adds its own half of the same rule: "You can only use complex forms
|
|
38
|
+
* on icons you've spotted" (p.251). An icon the room refuses to name is
|
|
39
|
+
* an icon nobody has spotted, so targeting it was never legal.
|
|
40
|
+
*
|
|
41
|
+
* BOTH IN THE SAME ROOM IS THE PRECONDITION, and every caller has it --
|
|
42
|
+
* these are room-scoped target lists. Given that, comparing insideHost
|
|
43
|
+
* directly is the whole rule: both undefined means both are out on the
|
|
44
|
+
* open grid, both equal to the room means both are inside its
|
|
45
|
+
* architecture. There is deliberately no third state.
|
|
46
|
+
*
|
|
47
|
+
* MEAT AND ASTRAL ACTORS PASS TRIVIALLY, which is correct and not an
|
|
48
|
+
* oversight: insideHost is persona state, so a body in the room has
|
|
49
|
+
* none. The plane filters the callers already apply are what keep those
|
|
50
|
+
* actors out of a Matrix target list; this function answers one question
|
|
51
|
+
* and is not a second plane check.
|
|
52
|
+
*/
|
|
53
|
+
export declare function sameHostSide(actor: Player, other: Player): boolean;
|
|
21
54
|
export type SimMode = 'cold' | 'hot';
|
|
22
55
|
/**
|
|
23
56
|
* The SR5e-condensed active skill list. Every pool that used to lean on
|
|
@@ -513,6 +546,16 @@ export declare class Player extends AbstractPlayer {
|
|
|
513
546
|
* rangedBase, so a generated pair of smartlink goggles works without
|
|
514
547
|
* anyone having added it to a table first. The augmentation tier is
|
|
515
548
|
* asked of the augmentation system, which already owns that fact.
|
|
549
|
+
*
|
|
550
|
+
* The gear tier must be WORN -- see the note in the body. The
|
|
551
|
+
* augmentation tier is not, and that asymmetry is canon rather than an
|
|
552
|
+
* oversight: an implanted smartlink is part of you (p.453), so there
|
|
553
|
+
* is nothing to put on and nothing to leave in a bag.
|
|
554
|
+
*
|
|
555
|
+
* ONE RESOLVER, TWO CONSUMERS: the +2 Accuracy (smartlinkAccuracyBonus)
|
|
556
|
+
* and the wireless +1 DICE for gear (getAttackPool) both ask this
|
|
557
|
+
* question and must never answer it differently. That is why the worn
|
|
558
|
+
* check lives here and not at either call site.
|
|
516
559
|
*/
|
|
517
560
|
smartlinkTier(): 'augmentation' | 'gear' | undefined;
|
|
518
561
|
/**
|
|
@@ -868,6 +911,52 @@ export declare class Player extends AbstractPlayer {
|
|
|
868
911
|
* `getInitiativePool` is gone rather than kept as an alias, so the
|
|
869
912
|
* compiler names every caller that still thinks initiative is a pool.
|
|
870
913
|
*/
|
|
914
|
+
/** Meters already crossed this Combat Turn. Reset by beginExchange. */
|
|
915
|
+
movedMetersThisTurn: number;
|
|
916
|
+
/** Extra meters bought by a Sprint this turn (see sprintMeters). */
|
|
917
|
+
sprintMetersThisTurn: number;
|
|
918
|
+
/** p.161: Agility x 2. Past this you are RUNNING for the rest of the turn. */
|
|
919
|
+
get walkRateMeters(): number;
|
|
920
|
+
/** p.161: Agility x 4, before any Sprint. */
|
|
921
|
+
get runRateMeters(): number;
|
|
922
|
+
/** Everything you may still cross this Combat Turn. */
|
|
923
|
+
get movementLeftMeters(): number;
|
|
924
|
+
/**
|
|
925
|
+
* RUNNING IS A STATE, NOT A CHOICE (p.161-162): "as soon as a
|
|
926
|
+
* character exceeds their Walk Rate they are considered Running until
|
|
927
|
+
* the end of the Combat Turn", and running costs -2 dice on everything
|
|
928
|
+
* except the Sprint test itself.
|
|
929
|
+
*
|
|
930
|
+
* This is what gives the walk/run split teeth. Without it the two
|
|
931
|
+
* rates would be a distinction with no consequence -- a number the
|
|
932
|
+
* engine tracked and nothing ever read.
|
|
933
|
+
*/
|
|
934
|
+
get isRunningThisTurn(): boolean;
|
|
935
|
+
/** -2 while running, else 0 (p.162 Running Modifiers). */
|
|
936
|
+
get runningPenalty(): number;
|
|
937
|
+
/** A fresh Combat Turn: the whole rate comes back, sprint included. */
|
|
938
|
+
resetMovementTurn(): void;
|
|
939
|
+
/**
|
|
940
|
+
* METERS PER SPRINT HIT.
|
|
941
|
+
*
|
|
942
|
+
* Canon splits this by metatype: +2m per hit for humans, elves and
|
|
943
|
+
* orks, +1m for dwarfs and trolls (p.162).
|
|
944
|
+
*
|
|
945
|
+
* THIS ENGINE HAS NO METATYPES -- checked, not assumed: there is no
|
|
946
|
+
* metatype field on Player, none in the player seed, none in chargen,
|
|
947
|
+
* and no dwarf/troll/elf/ork anywhere outside item prose. Every
|
|
948
|
+
* character it can currently represent is a human-baseline one, so the
|
|
949
|
+
* human value is not a shortcut here, it is the only row of that table
|
|
950
|
+
* this engine has a character for.
|
|
951
|
+
*
|
|
952
|
+
* Inventing a metatype to carry one modifier would be the tail wagging
|
|
953
|
+
* the dog: metatype in SR5 sets attribute maxima, racial bonuses and
|
|
954
|
+
* chargen priorities, and adding a half-real one so Sprint could
|
|
955
|
+
* consult it would put a lie in the character model to decorate a
|
|
956
|
+
* movement rule. When metatypes land, this constant is the one line
|
|
957
|
+
* that has to become a lookup.
|
|
958
|
+
*/
|
|
959
|
+
static readonly SPRINT_METERS_PER_HIT = 2;
|
|
871
960
|
getInitiativeAttribute(): number;
|
|
872
961
|
/**
|
|
873
962
|
* HOW MANY D6 THE INITIATIVE TEST ROLLS (p.159 chart, p.474).
|
|
@@ -15,6 +15,41 @@ export const STANCE_CYCLE = ['manual', 'guarded', 'aggressive'];
|
|
|
15
15
|
export function isPhysicalPlane(plane) {
|
|
16
16
|
return plane === 'meat' || plane === 'drone';
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* ARE THESE TWO STANDING ON THE SAME SIDE OF A HOST'S WALL?
|
|
20
|
+
*
|
|
21
|
+
* The companion to fileReach, and it exists for the same reason: the
|
|
22
|
+
* boundary was being asked about in more than one place and the copies
|
|
23
|
+
* disagreed. fileReach settled it for FILES; nothing settled it for
|
|
24
|
+
* ICONS, so `look` honoured insideHost while every verb that picks a
|
|
25
|
+
* target read the room's raw actor list and saw straight through the
|
|
26
|
+
* wall. A technomancer standing inside a host was told "Empty
|
|
27
|
+
* architecture -- turning geometry and nothing in it worth the trip" by
|
|
28
|
+
* one surface and offered those same two IC as spike targets by the
|
|
29
|
+
* next.
|
|
30
|
+
*
|
|
31
|
+
* CANON MAKES THE PANEL BINDING, not the target list. Inside a host you
|
|
32
|
+
* see and interact with the icons inside it and not the ones outside,
|
|
33
|
+
* and from the grid the inside is unreachable (p.246) -- and threading
|
|
34
|
+
* adds its own half of the same rule: "You can only use complex forms
|
|
35
|
+
* on icons you've spotted" (p.251). An icon the room refuses to name is
|
|
36
|
+
* an icon nobody has spotted, so targeting it was never legal.
|
|
37
|
+
*
|
|
38
|
+
* BOTH IN THE SAME ROOM IS THE PRECONDITION, and every caller has it --
|
|
39
|
+
* these are room-scoped target lists. Given that, comparing insideHost
|
|
40
|
+
* directly is the whole rule: both undefined means both are out on the
|
|
41
|
+
* open grid, both equal to the room means both are inside its
|
|
42
|
+
* architecture. There is deliberately no third state.
|
|
43
|
+
*
|
|
44
|
+
* MEAT AND ASTRAL ACTORS PASS TRIVIALLY, which is correct and not an
|
|
45
|
+
* oversight: insideHost is persona state, so a body in the room has
|
|
46
|
+
* none. The plane filters the callers already apply are what keep those
|
|
47
|
+
* actors out of a Matrix target list; this function answers one question
|
|
48
|
+
* and is not a second plane check.
|
|
49
|
+
*/
|
|
50
|
+
export function sameHostSide(actor, other) {
|
|
51
|
+
return actor.insideHost === other.insideHost;
|
|
52
|
+
}
|
|
18
53
|
export const SKILL_NAMES = [
|
|
19
54
|
'firearms', 'blades', 'clubs', 'unarmed',
|
|
20
55
|
'gunnery', 'astral-combat', 'cybercombat',
|
|
@@ -663,26 +698,54 @@ export class Player extends AbstractPlayer {
|
|
|
663
698
|
* rangedBase, so a generated pair of smartlink goggles works without
|
|
664
699
|
* anyone having added it to a table first. The augmentation tier is
|
|
665
700
|
* asked of the augmentation system, which already owns that fact.
|
|
701
|
+
*
|
|
702
|
+
* The gear tier must be WORN -- see the note in the body. The
|
|
703
|
+
* augmentation tier is not, and that asymmetry is canon rather than an
|
|
704
|
+
* oversight: an implanted smartlink is part of you (p.453), so there
|
|
705
|
+
* is nothing to put on and nothing to leave in a bag.
|
|
706
|
+
*
|
|
707
|
+
* ONE RESOLVER, TWO CONSUMERS: the +2 Accuracy (smartlinkAccuracyBonus)
|
|
708
|
+
* and the wireless +1 DICE for gear (getAttackPool) both ask this
|
|
709
|
+
* question and must never answer it differently. That is why the worn
|
|
710
|
+
* check lives here and not at either call site.
|
|
666
711
|
*/
|
|
667
712
|
smartlinkTier() {
|
|
668
713
|
if (this.augBonus('firearms') > 0)
|
|
669
714
|
return 'augmentation';
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
715
|
+
// ON YOUR FACE, NOT IN YOUR BAG (fxPHSuE4nrH3gAGiy, rejected:
|
|
716
|
+
// "taking Smartlink Goggles isn't the same as equipping them").
|
|
717
|
+
//
|
|
718
|
+
// This used to read worn OR CARRIED, excused by a comment saying the
|
|
719
|
+
// engine "does not model wearing eyewear separately from having it."
|
|
720
|
+
// That was simply false, and the shortcut was taken to route around
|
|
721
|
+
// a problem that did not exist: `head.eyes` is a real slot,
|
|
722
|
+
// documented "e.g. cybereyes, goggles", and determineEquipmentSlot
|
|
723
|
+
// routes BOTH the 'glasses' and 'eyewear' categories into it. So a
|
|
724
|
+
// player can equip the goggles, and the rule has somewhere to live.
|
|
725
|
+
//
|
|
726
|
+
// p.443-444 describes these as worn on the face -- contacts "worn
|
|
727
|
+
// directly on the eyes", glasses "on the bridge of the nose",
|
|
728
|
+
// goggles "strapped to the head" -- and p.433 spends the +2 only
|
|
729
|
+
// when you are USING a smartlink. A pair in the pack is not being
|
|
730
|
+
// used to view the gun's targeting data.
|
|
731
|
+
//
|
|
732
|
+
// head.eyes SPECIFICALLY, not "anywhere in equipment". The old check
|
|
733
|
+
// flattened EVERY slot, and equipment includes torso.backpack, the
|
|
734
|
+
// bandolier and the hip pouches -- so swapping carried for worn
|
|
735
|
+
// wholesale would still pay out for goggles inside an equipped pack.
|
|
736
|
+
// That is the same bug in a smaller bag.
|
|
737
|
+
const onFace = this._equipment.head?.eyes;
|
|
738
|
+
if (!onFace)
|
|
739
|
+
return undefined;
|
|
674
740
|
const hay = (i) => `${i.name} ${i.description ?? ''}`.toLowerCase();
|
|
675
|
-
// Worn OR carried: canon cares that the link is on your face, and
|
|
676
|
-
// this engine does not model wearing eyewear separately from having
|
|
677
|
-
// it. Named plainly rather than silently treating a bagged pair as
|
|
678
|
-
// equipped -- see the note in the PR.
|
|
679
741
|
// Eyewear by CATEGORY first -- the engine already sorts glasses and
|
|
680
742
|
// eyewear into their own bins, and a categorised item is a stronger
|
|
681
743
|
// signal than a word in a name. The name pattern is the fallback for
|
|
682
744
|
// generated gear that carries the fiction but not the tag.
|
|
683
745
|
const eyeCategory = (i) => i.category === Category.Glasses || i.category === Category.EyeCyberwere;
|
|
684
746
|
const eyeWords = /goggles|glasses|contacts|cybereyes|monocle|visor/;
|
|
685
|
-
const found =
|
|
747
|
+
const found = /smartlink/.test(hay(onFace))
|
|
748
|
+
&& (eyeCategory(onFace) || eyeWords.test(hay(onFace)));
|
|
686
749
|
return found ? 'gear' : undefined;
|
|
687
750
|
}
|
|
688
751
|
/**
|
|
@@ -755,6 +818,14 @@ export class Player extends AbstractPlayer {
|
|
|
755
818
|
}
|
|
756
819
|
/** Whether these two can trade physical blows (see attack.ts targeting). */
|
|
757
820
|
sharesCombatPlane(other) {
|
|
821
|
+
// A HOST WALL IS A COMBAT BOUNDARY TOO (p.246). Same rule as the
|
|
822
|
+
// spike and decompile target lists, read here so cybercombat gets
|
|
823
|
+
// it without a fourth copy: you cannot shoot into a host from the
|
|
824
|
+
// grid, and you cannot reach out of one to hit the street.
|
|
825
|
+
// Harmless off the Matrix -- insideHost is persona state, so two
|
|
826
|
+
// bodies in a room both carry undefined and the clause is true.
|
|
827
|
+
if (!sameHostSide(this, other))
|
|
828
|
+
return false;
|
|
758
829
|
return this.plane === other.plane
|
|
759
830
|
|| (isPhysicalPlane(this.plane) && isPhysicalPlane(other.plane));
|
|
760
831
|
}
|
|
@@ -1841,7 +1912,15 @@ export class Player extends AbstractPlayer {
|
|
|
1841
1912
|
const smartlink = this.activeCombatSkill() === 'firearms' && this.weaponDrawn
|
|
1842
1913
|
? (this.smartlinkTier() === 'gear' ? 1 : this.augBonus('firearms'))
|
|
1843
1914
|
: 0;
|
|
1844
|
-
|
|
1915
|
+
// RUNNING COSTS YOU (p.162 Running Modifiers): -2 dice on everything
|
|
1916
|
+
// you do once you have crossed your Walk Rate this Combat Turn.
|
|
1917
|
+
//
|
|
1918
|
+
// This is what makes walk-vs-run a decision instead of a label. The
|
|
1919
|
+
// engine tracked both rates and read neither, so a runner who
|
|
1920
|
+
// sprinted across a room to reach someone arrived shooting exactly
|
|
1921
|
+
// as straight as one who strolled -- and the movement budget's whole
|
|
1922
|
+
// point is that ground has a price.
|
|
1923
|
+
return Math.max(0, this.agility + this.skillRating(this.activeCombatSkill()) + adeptBonus + this.getWeaponProfile().poolBonus + this.augBonus('attack') + smartlink + this.woundModifier - this.sustainingPenalty - this.runningPenalty);
|
|
1845
1924
|
}
|
|
1846
1925
|
/**
|
|
1847
1926
|
* The subdual pool: bare-hands work regardless of what's in the other
|
|
@@ -1937,6 +2016,78 @@ export class Player extends AbstractPlayer {
|
|
|
1937
2016
|
* `getInitiativePool` is gone rather than kept as an alias, so the
|
|
1938
2017
|
* compiler names every caller that still thinks initiative is a pool.
|
|
1939
2018
|
*/
|
|
2019
|
+
// ==================== MOVEMENT BUDGET (SR5 p.161-162) ====================
|
|
2020
|
+
//
|
|
2021
|
+
// THE SECOND HALF OF THE COORDINATES RULING (2QpCcKFKCynk9jYoX: the
|
|
2022
|
+
// gap closes "either immediately out of combat, or WITH ACTIONS IN
|
|
2023
|
+
// COMBAT"). Out of combat you simply walk to someone; in a fight,
|
|
2024
|
+
// ground costs.
|
|
2025
|
+
//
|
|
2026
|
+
// Canon, RAG-checked: Walk Rate is Agility x 2 METERS PER COMBAT TURN
|
|
2027
|
+
// and Run Rate is Agility x 4 (p.161). The rate is a WHOLE-TURN TOTAL,
|
|
2028
|
+
// never a per-pass allowance -- the book's own worked example has a
|
|
2029
|
+
// character spend 8m of a 10m walk rate in one pass and carry the
|
|
2030
|
+
// remaining 2m (then 12m of run) into the next. Modelling it per pass
|
|
2031
|
+
// is the mistake this comment exists to prevent.
|
|
2032
|
+
/** Meters already crossed this Combat Turn. Reset by beginExchange. */
|
|
2033
|
+
movedMetersThisTurn = 0;
|
|
2034
|
+
/** Extra meters bought by a Sprint this turn (see sprintMeters). */
|
|
2035
|
+
sprintMetersThisTurn = 0;
|
|
2036
|
+
/** p.161: Agility x 2. Past this you are RUNNING for the rest of the turn. */
|
|
2037
|
+
get walkRateMeters() {
|
|
2038
|
+
return this.agility * 2;
|
|
2039
|
+
}
|
|
2040
|
+
/** p.161: Agility x 4, before any Sprint. */
|
|
2041
|
+
get runRateMeters() {
|
|
2042
|
+
return this.agility * 4;
|
|
2043
|
+
}
|
|
2044
|
+
/** Everything you may still cross this Combat Turn. */
|
|
2045
|
+
get movementLeftMeters() {
|
|
2046
|
+
return Math.max(0, this.runRateMeters + this.sprintMetersThisTurn - this.movedMetersThisTurn);
|
|
2047
|
+
}
|
|
2048
|
+
/**
|
|
2049
|
+
* RUNNING IS A STATE, NOT A CHOICE (p.161-162): "as soon as a
|
|
2050
|
+
* character exceeds their Walk Rate they are considered Running until
|
|
2051
|
+
* the end of the Combat Turn", and running costs -2 dice on everything
|
|
2052
|
+
* except the Sprint test itself.
|
|
2053
|
+
*
|
|
2054
|
+
* This is what gives the walk/run split teeth. Without it the two
|
|
2055
|
+
* rates would be a distinction with no consequence -- a number the
|
|
2056
|
+
* engine tracked and nothing ever read.
|
|
2057
|
+
*/
|
|
2058
|
+
get isRunningThisTurn() {
|
|
2059
|
+
return this.movedMetersThisTurn > this.walkRateMeters;
|
|
2060
|
+
}
|
|
2061
|
+
/** -2 while running, else 0 (p.162 Running Modifiers). */
|
|
2062
|
+
get runningPenalty() {
|
|
2063
|
+
return this.isRunningThisTurn ? 2 : 0;
|
|
2064
|
+
}
|
|
2065
|
+
/** A fresh Combat Turn: the whole rate comes back, sprint included. */
|
|
2066
|
+
resetMovementTurn() {
|
|
2067
|
+
this.movedMetersThisTurn = 0;
|
|
2068
|
+
this.sprintMetersThisTurn = 0;
|
|
2069
|
+
}
|
|
2070
|
+
/**
|
|
2071
|
+
* METERS PER SPRINT HIT.
|
|
2072
|
+
*
|
|
2073
|
+
* Canon splits this by metatype: +2m per hit for humans, elves and
|
|
2074
|
+
* orks, +1m for dwarfs and trolls (p.162).
|
|
2075
|
+
*
|
|
2076
|
+
* THIS ENGINE HAS NO METATYPES -- checked, not assumed: there is no
|
|
2077
|
+
* metatype field on Player, none in the player seed, none in chargen,
|
|
2078
|
+
* and no dwarf/troll/elf/ork anywhere outside item prose. Every
|
|
2079
|
+
* character it can currently represent is a human-baseline one, so the
|
|
2080
|
+
* human value is not a shortcut here, it is the only row of that table
|
|
2081
|
+
* this engine has a character for.
|
|
2082
|
+
*
|
|
2083
|
+
* Inventing a metatype to carry one modifier would be the tail wagging
|
|
2084
|
+
* the dog: metatype in SR5 sets attribute maxima, racial bonuses and
|
|
2085
|
+
* chargen priorities, and adding a half-real one so Sprint could
|
|
2086
|
+
* consult it would put a lie in the character model to decorate a
|
|
2087
|
+
* movement rule. When metatypes land, this constant is the one line
|
|
2088
|
+
* that has to become a lookup.
|
|
2089
|
+
*/
|
|
2090
|
+
static SPRINT_METERS_PER_HIT = 2;
|
|
1940
2091
|
getInitiativeAttribute() {
|
|
1941
2092
|
// NO sustaining penalty here (RAW spell pass): initiative is a score,
|
|
1942
2093
|
// not a TEST -- holding a spell slows what you DO, never when you get
|