@maka/maka-cli 5.82.0 → 5.83.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 +2 -2
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.d.ts +53 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js +135 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/enter-host.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.d.ts +15 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js +33 -18
- package/bundle/typescript/src/commands/game/sideQuest/commands/go.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +39 -9
- package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +26 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.d.ts +4 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js +14 -11
- package/bundle/typescript/src/commands/game/sideQuest/commands/map.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +5 -3
- package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js +28 -13
- package/bundle/typescript/src/commands/game/sideQuest/commands/search.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js +85 -18
- package/bundle/typescript/src/commands/game/sideQuest/commands/take.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.d.ts +8 -5
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js +8 -8
- package/bundle/typescript/src/commands/game/sideQuest/commands/tap.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/commands/thread.js +69 -16
- 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 +23 -1
- package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js +12 -8
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-chunks.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.d.ts +34 -1
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js +108 -8
- package/bundle/typescript/src/commands/game/sideQuest/factories/scene-factory.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.d.ts +18 -0
- package/bundle/typescript/src/commands/game/sideQuest/game.js +63 -7
- package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +22 -0
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js +62 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +32 -1
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js +48 -3
- package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.d.ts +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js +8 -5
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ar.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.d.ts +3 -2
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +112 -15
- package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.d.ts +8 -3
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js +70 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/ic.js.map +1 -1
- package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.d.ts +50 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.js +44 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/limits.js.map +1 -0
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.d.ts +76 -8
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +87 -14
- package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
- package/package.json +2 -2
|
@@ -56,6 +56,7 @@ import { InventoryCommand } from './commands/inv.js';
|
|
|
56
56
|
import { EquipmentCommand } from './commands/equipment.js';
|
|
57
57
|
import { MapCommand } from './commands/map.js';
|
|
58
58
|
import { SilentCommand } from './commands/silent.js';
|
|
59
|
+
import { EnterHostCommand, ExitHostCommand } from './commands/enter-host.js';
|
|
59
60
|
import { RestCommand } from './commands/rest.js';
|
|
60
61
|
import { ReloadCommand } from './commands/reload.js';
|
|
61
62
|
import { SubdueCommand } from './commands/subdue.js';
|
|
@@ -2125,6 +2126,20 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2125
2126
|
CommandFactory.registerCommand('map', MapCommand);
|
|
2126
2127
|
CommandFactory.registerCommand('exits', MapCommand);
|
|
2127
2128
|
CommandFactory.registerCommand('silent', SilentCommand);
|
|
2129
|
+
// ENTER/EXIT HOST (p.239). The boundary between the grid and a host's
|
|
2130
|
+
// own space -- see commands/enter-host.ts for why it did not exist
|
|
2131
|
+
// until now.
|
|
2132
|
+
//
|
|
2133
|
+
// "exit" IS NOT REGISTERED HERE, ON PURPOSE. It is already the
|
|
2134
|
+
// quit-the-game verb, and the quit branch in handleInput runs BEFORE
|
|
2135
|
+
// CommandFactory dispatch -- so a command registered under 'exit'
|
|
2136
|
+
// would never once execute. Tests calling the class directly would
|
|
2137
|
+
// still pass, which is exactly the shape of defect kwR8SYTimMu2mgQq5
|
|
2138
|
+
// (tests exercising code the game never runs). Instead the quit
|
|
2139
|
+
// branch ROUTES a bare "exit" to this command while the persona is
|
|
2140
|
+
// inside a host, and 'exit-host' is the always-reachable name.
|
|
2141
|
+
CommandFactory.registerCommand('enter', EnterHostCommand);
|
|
2142
|
+
CommandFactory.registerCommand('exit-host', ExitHostCommand);
|
|
2128
2143
|
CommandFactory.registerCommand('rest', RestCommand);
|
|
2129
2144
|
CommandFactory.registerCommand('reload', ReloadCommand);
|
|
2130
2145
|
CommandFactory.registerCommand('subdue', SubdueCommand);
|
|
@@ -2172,6 +2187,10 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
2172
2187
|
CommandFactory.registerCommand('surrender', SurrenderCommand);
|
|
2173
2188
|
CommandFactory.registerCommand('jack', JackCommand);
|
|
2174
2189
|
CommandFactory.registerCommand('project', ProjectCommand);
|
|
2190
|
+
// 'astral' is what a player types when they mean project -- the
|
|
2191
|
+
// word has to be CLAIMED or the parser calls it nonsense
|
|
2192
|
+
// (LFmjA76izZ62NDjAv).
|
|
2193
|
+
CommandFactory.registerCommand('astral', ProjectCommand);
|
|
2175
2194
|
CommandFactory.registerCommand('return', ReturnCommand);
|
|
2176
2195
|
CommandFactory.registerCommand('assense', AssenseCommand);
|
|
2177
2196
|
CommandFactory.registerCommand('drone', DroneCommand);
|
|
@@ -3065,6 +3084,9 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3065
3084
|
// here would ride the cab home and the next jack-in would start
|
|
3066
3085
|
// already trapped, with nothing on the grid holding it.
|
|
3067
3086
|
this.player.linkLockedBy.clear();
|
|
3087
|
+
// Same enumeration, same reason: insideHost is persona state and these
|
|
3088
|
+
// paths end the persona without passing through planes.leaveMatrix.
|
|
3089
|
+
this.player.insideHost = undefined;
|
|
3068
3090
|
this.player.astralTicks = 0;
|
|
3069
3091
|
this.player.activeDeck = undefined;
|
|
3070
3092
|
this.player.riggedDrone = undefined;
|
|
@@ -3113,6 +3135,9 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
3113
3135
|
// Same reason as settleTravelState: an exit that bypasses
|
|
3114
3136
|
// leaveMatrix must drop the link-lock itself.
|
|
3115
3137
|
this.player.linkLockedBy.clear();
|
|
3138
|
+
// Same enumeration, same reason: insideHost is persona state and these
|
|
3139
|
+
// paths end the persona without passing through planes.leaveMatrix.
|
|
3140
|
+
this.player.insideHost = undefined;
|
|
3116
3141
|
this.player.astralTicks = 0;
|
|
3117
3142
|
this.player.activeDeck = undefined;
|
|
3118
3143
|
this.player.riggedDrone = undefined;
|
|
@@ -4689,8 +4714,10 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
4689
4714
|
// real session typed "jack-in" and bounced) -- normalize the hyphen.
|
|
4690
4715
|
const normalized = input.replace(/^\s*jack-(in|out)\b/i, 'jack $1');
|
|
4691
4716
|
const parts = normalized.trim().split(' ');
|
|
4692
|
-
const
|
|
4693
|
-
|
|
4717
|
+
// `let`, not const: the quit branch below re-points a bare "exit" at
|
|
4718
|
+
// exit-host when the persona is inside one (p.239).
|
|
4719
|
+
let verb = parts[0].toLowerCase();
|
|
4720
|
+
let args = parts.slice(1);
|
|
4694
4721
|
this.lastResolvedVerb = verb;
|
|
4695
4722
|
const out = (text) => ({ text, verb: this.lastResolvedVerb });
|
|
4696
4723
|
// Empty input is a nervous Enter, not a command (a real session's
|
|
@@ -4707,6 +4734,17 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
4707
4734
|
}
|
|
4708
4735
|
// fall through -- the answer was a real command; play on.
|
|
4709
4736
|
}
|
|
4737
|
+
else if (verb === 'exit' && actor.insideHost) {
|
|
4738
|
+
// INSIDE A HOST, "exit" MEANS THE HOST (p.239 Enter/Exit Host), not
|
|
4739
|
+
// the game. A persona who just crossed into a host's architecture
|
|
4740
|
+
// and types the obvious word to come back out should not be asked
|
|
4741
|
+
// whether they want to stop playing. "quit" still quits, and is
|
|
4742
|
+
// never ambiguous; this only ever fires while there is an
|
|
4743
|
+
// enclosure nearer than the game itself to leave.
|
|
4744
|
+
verb = 'exit-host';
|
|
4745
|
+
args = [];
|
|
4746
|
+
this.lastResolvedVerb = verb;
|
|
4747
|
+
}
|
|
4710
4748
|
else if (verb === 'quit' || verb === 'exit') {
|
|
4711
4749
|
this._quitArmed = true;
|
|
4712
4750
|
return out(`Really quit? ("y" to confirm -- anything else keeps playing.)`);
|
|
@@ -4852,24 +4890,42 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
4852
4890
|
* drill into the real descriptions. Verbs registered but missing from
|
|
4853
4891
|
* this table surface in an "other" bucket rather than vanishing -- a
|
|
4854
4892
|
* future command can't silently fall out of help.
|
|
4893
|
+
*
|
|
4894
|
+
* AN ALIAS MEANS THE SAME COMMAND -- not "a related word"
|
|
4895
|
+
* (ZJjWMKww2kstbkJCW: "'descend' is not in the list of moving
|
|
4896
|
+
* commands"). Both readers of this table take the group's HEAD as the
|
|
4897
|
+
* command: the overview prints e[0] and nothing else, and "help
|
|
4898
|
+
* <word>" looks up the primary's class to describe it. So a distinct
|
|
4899
|
+
* command parked at index 1 is invisible in the overview AND answers
|
|
4900
|
+
* questions about it with another command's description -- `descend`
|
|
4901
|
+
* was reported missing, but `help descend` was also quietly printing
|
|
4902
|
+
* how to climb UP.
|
|
4903
|
+
*
|
|
4904
|
+
* Five groups had it: descend under climb, run and sprint under move,
|
|
4905
|
+
* unfollow under follow, decompile under compile, kill under attack.
|
|
4906
|
+
* Every one of them is its own class with its own description that no
|
|
4907
|
+
* player could reach. They are split out here rather than taught to
|
|
4908
|
+
* the renderer, because "a group is one command" is the assumption
|
|
4909
|
+
* the renderer is ENTITLED to make -- the table was what lied.
|
|
4910
|
+
* help-taxonomy.test.ts now holds that line for the whole table.
|
|
4855
4911
|
*/
|
|
4856
4912
|
static HELP_CATEGORIES = [
|
|
4857
|
-
{ title: 'moving', entries: [['look'], ['go'], ['move', 'walk', 'approach', 'run', 'sprint'], ['climb', '
|
|
4913
|
+
{ title: 'moving', entries: [['look'], ['go'], ['move', 'walk', 'approach'], ['run'], ['sprint'], ['climb', 'mantle', 'scale', 'clamber'], ['descend'], ['sit', 'kneel'], ['lie', 'prone'], ['stand'], ['follow'], ['unfollow'], ['map', 'exits'], ['search'], ['sneak']] },
|
|
4858
4914
|
{ title: 'gear', entries: [['inv', 'inventory'], ['equipment', 'eq'], ['take'], ['loot'], ['drop'], ['give'], ['store'], ['equip'], ['unequip'], ['brandish', 'draw'], ['holster', 'stow'], ['reload'], ['use'], ['read']] },
|
|
4859
|
-
{ title: 'combat', entries: [['attack', 'kill'], ['subdue'], ['grapple', 'restrain', 'clinch'], ['struggle'], ['release'], ['cover'], ['stance'], ['surrender'], ['edge'], ['rest']] },
|
|
4915
|
+
{ title: 'combat', entries: [['attack'], ['kill'], ['subdue'], ['grapple', 'restrain', 'clinch'], ['struggle'], ['release'], ['cover'], ['stance'], ['surrender'], ['edge'], ['rest']] },
|
|
4860
4916
|
// The party layer: everyone who walks (or flies, or manifests) at
|
|
4861
4917
|
// your side answers to these.
|
|
4862
4918
|
// "players" folded back under crew after playtesting ("crew
|
|
4863
4919
|
// players" / "crew street"); the bare verb still answers quietly.
|
|
4864
4920
|
{ title: 'party', entries: [['crew', 'party'], ['hire'], ['dismiss'], ['train'], ['order'], ['lead'], ['command'], ['deploy'], ['recall']] },
|
|
4865
|
-
{ title: 'magic', entries: [['spells'], ['cast'], ['summon', 'conjure'], ['project'], ['return'], ['assense']] },
|
|
4866
|
-
{ title: 'matrix', entries: [['jack'], ['jackpoint'], ['deck'], ['load'], ['unload'], ['hack'], ['mark'], ['tap', 'splice'], ['snoop'], ['overwatch', 'os'], ['pan'], ['ar'], ['aros'], ['silent'], ['reboot'], ['agent'], ['drone'], ['jump', 'rig']] },
|
|
4921
|
+
{ title: 'magic', entries: [['spells'], ['cast'], ['summon', 'conjure'], ['project', 'astral'], ['return'], ['assense']] },
|
|
4922
|
+
{ title: 'matrix', entries: [['jack'], ['jackpoint'], ['deck'], ['load'], ['unload'], ['hack'], ['mark'], ['enter'], ['exit-host'], ['tap', 'splice'], ['snoop'], ['overwatch', 'os'], ['pan'], ['ar'], ['aros'], ['silent'], ['reboot'], ['agent'], ['drone'], ['jump', 'rig']] },
|
|
4867
4923
|
// The Emerged get their own shelf (player request: "there MUST be
|
|
4868
4924
|
// resonance" -- matrix is the place, Resonance is the talent).
|
|
4869
4925
|
// `sustain` shelves here and not under magic: the command is
|
|
4870
4926
|
// technomancer-gated (a sprite task, SR5 p.256) and refuses anyone
|
|
4871
4927
|
// else, so the Emerged shelf is where its audience looks.
|
|
4872
|
-
{ title: 'resonance', entries: [['compile', 'decompile'], ['thread'], ['unravel'], ['register'], ['standby'], ['sustain'], ['sprites']] },
|
|
4928
|
+
{ title: 'resonance', entries: [['compile'], ['decompile'], ['thread'], ['unravel'], ['register'], ['standby'], ['sustain'], ['sprites']] },
|
|
4873
4929
|
{ title: 'social', entries: [['say'], ['emote', 'me'], ['talk-to'], ['call'], ['end-call', 'end', 'hangup'], ['accept'], ['decline', 'deny', 'refuse'], ['haggle', 'negotiate'], ['persuade', 'convince'], ['ask'], ['contacts']] },
|
|
4874
4930
|
{ title: 'street', entries: [['abandon'], ['browse', 'buy'], ['sell'], ['catalog'], ['source', 'procure'], ['work', 'gig'], ['jobs'], ['journal'], ['perform'], ['palm'], ['docwagon'], ['treat'], ['eat'], ['drink'], ['lifestyle'], ['pay']] },
|
|
4875
4931
|
{ title: 'barriers', entries: [['pick'], ['breach'], ['dispel', 'dispell'], ['bluff'], ['unlock'], ['lock']] },
|