@maka/maka-cli 5.381.1 → 5.382.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/engine-version.js +12 -1
- package/bundle/typescript/src/commands/game/sideQuest/game.js +63 -10
- package/bundle/typescript/src/commands/game/sideQuest/utilities/shared-run.js +4 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.382.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 3.x applications using React.",
|
|
@@ -3308,5 +3308,16 @@
|
|
|
3308
3308
|
// at boot -- and the reputation game over is awaited before the
|
|
3309
3309
|
// command's reply, so the banner is that step's outcome on every
|
|
3310
3310
|
// client and in a dry run's transcript.
|
|
3311
|
-
|
|
3311
|
+
// 1.194.0 (2026-10-04): THE DISTRICT FOLLOWS THE TIER (nqRsvbN6gvKHFKfW9;
|
|
3312
|
+
// ruling: "a runner should end up in a district that fits their
|
|
3313
|
+
// lifestyle"). A Middle runner who slid to Low on unpaid rent woke in
|
|
3314
|
+
// Everett in a stitched-in hole named after Auburn's walk-up.
|
|
3315
|
+
// - A tier whose home is authored in ANOTHER district no longer builds a
|
|
3316
|
+
// hole here (rebindHomeForTier).
|
|
3317
|
+
// - Game.settleAddress moves the runner to hubIdForTier's district as
|
|
3318
|
+
// home, binding that district's own building, after the ride home, at
|
|
3319
|
+
// hub boot (reaching a save that already slid) and after a shared
|
|
3320
|
+
// run's homecoming. A move that cannot land now is retried next time;
|
|
3321
|
+
// a session with no districtSeedLoader never moves.
|
|
3322
|
+
export const ENGINE_VERSION = '1.194.0';
|
|
3312
3323
|
//# sourceMappingURL=engine-version.js.map
|
|
@@ -42,7 +42,7 @@ import { pickedUpLine } from './utilities/takeover.js';
|
|
|
42
42
|
import { presenceBeatAllowed, presenceProcessOnTheStreet } from './utilities/presence-gate.js';
|
|
43
43
|
import { pushSave, burnCloudSaveFor, enqueueBoundPush, flushPushQueue, writeSpill, takeLastMemorial, authToken, clearSpill, hasPendingPush, getCloudSessionId, setLeasedHandler, } from './utilities/cloud-saves.js';
|
|
44
44
|
import { DOCWAGON_TIERS, RESUSC_FEE, DEATH_COMP } from './utilities/docwagon.js';
|
|
45
|
-
import { isFence, knownDistricts, LIFESTYLE_TIERS, LIFESTYLE_OPTIONS, canonicalLifestyleTier, canonicalLifestyleOption, lifestyleOptionAllowed, lifestyleTierFor } from './utilities/commerce.js';
|
|
45
|
+
import { isFence, knownDistricts, LIFESTYLE_TIERS, LIFESTYLE_OPTIONS, canonicalLifestyleTier, canonicalLifestyleOption, lifestyleOptionAllowed, lifestyleTierFor, hubIdForTier } from './utilities/commerce.js';
|
|
46
46
|
import { reconcileGarage, findDumpster, DUMPSTER_NAME } from './models/home-containers.js';
|
|
47
47
|
import { ownedDrones } from './utilities/owned-drones.js';
|
|
48
48
|
import { attachBrandMark, attachBrandMarkBottomRight } from './utilities/brand-mark.js';
|
|
@@ -3645,6 +3645,15 @@ export default class Game {
|
|
|
3645
3645
|
// ordinary Street/Squatter case, and the only no-op worth naming.
|
|
3646
3646
|
if (authored === undefined && current.residenceTier === undefined)
|
|
3647
3647
|
return;
|
|
3648
|
+
// THE TIER'S ADDRESS IS IN ANOTHER DISTRICT (nqRsvbN6gvKHFKfW9: a Middle
|
|
3649
|
+
// runner slid to Low on unpaid rent and woke in Everett, in a stitched-in
|
|
3650
|
+
// hole named after Auburn's walk-up). An authored home with no authored
|
|
3651
|
+
// successor HERE means the runner is moving out, not down the hall:
|
|
3652
|
+
// settleAddress takes them to the district that fits, and that district's
|
|
3653
|
+
// own building is bound on arrival. Building a hole here would only leave
|
|
3654
|
+
// a counterfeit of somebody else's address standing on this street.
|
|
3655
|
+
if (authored === undefined)
|
|
3656
|
+
return;
|
|
3648
3657
|
const next = authored ?? this.buildRuntimeHome();
|
|
3649
3658
|
this.moveStash(current, next);
|
|
3650
3659
|
// THE OLD HOLE IS CODE-OWNED, so it leaves with the lease -- and
|
|
@@ -5751,6 +5760,44 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
5751
5760
|
}
|
|
5752
5761
|
return { ok: true, name: seed.name, firstVisit };
|
|
5753
5762
|
}
|
|
5763
|
+
/**
|
|
5764
|
+
* LIVE WHERE THE RENT SAYS (user ruling 2026-10-04, nqRsvbN6gvKHFKfW9: "a
|
|
5765
|
+
* runner should end up in a district that fits their lifestyle").
|
|
5766
|
+
*
|
|
5767
|
+
* The lifestyle desk moves house itself. A tier that SLID on unpaid rent
|
|
5768
|
+
* (settleLifestyleUpkeep) cannot: every homecoming is synchronous and a
|
|
5769
|
+
* district move is not. So each async door a runner comes home through --
|
|
5770
|
+
* the ride home, the hub boot, a shared run's write-back -- calls this
|
|
5771
|
+
* afterwards, and the boot call also reaches a save that slid before this
|
|
5772
|
+
* shipped.
|
|
5773
|
+
*
|
|
5774
|
+
* Never refuses loudly. A move that cannot happen now (no network, a job
|
|
5775
|
+
* standing open) leaves the runner where they are, logged, and the next
|
|
5776
|
+
* homecoming or boot tries again. A visit is left alone: the runner is not
|
|
5777
|
+
* at home, and home is what this is about.
|
|
5778
|
+
*/
|
|
5779
|
+
async settleAddress() {
|
|
5780
|
+
if (!this.hasHub || !this._hubScene || this.scene !== this._hubScene || this._crewSpace || this.isVisiting)
|
|
5781
|
+
return undefined;
|
|
5782
|
+
// NO LOADER, NOWHERE TO GO: a terminal and a site-hosted hub both say how
|
|
5783
|
+
// to fetch a district (districtSeedLoader). A harness that names none
|
|
5784
|
+
// booted exactly the one district it means to test, and must not be
|
|
5785
|
+
// carried off to a network fetch because its fixture's tier lives elsewhere.
|
|
5786
|
+
if (!this.districtSeedLoader)
|
|
5787
|
+
return undefined;
|
|
5788
|
+
const here = this.districtId;
|
|
5789
|
+
const want = hubIdForTier(this.lifestyleTier);
|
|
5790
|
+
if (here === undefined || want === undefined || here === want)
|
|
5791
|
+
return undefined;
|
|
5792
|
+
const leaving = this._hubSeed?.name ?? here;
|
|
5793
|
+
const moved = await this.moveToDistrict(want, { asHome: true });
|
|
5794
|
+
if (!moved.ok) {
|
|
5795
|
+
Logger.getInstance().write(`Address: ${this.lifestyleTier} lives in ${want}, runner still in ${here} -- move deferred (${moved.why}).`);
|
|
5796
|
+
return undefined;
|
|
5797
|
+
}
|
|
5798
|
+
this.requestSave('move');
|
|
5799
|
+
return `${leaving} is past what a ${this.lifestyleTier} lifestyle pays for. The landlord's drone has your things at the curb by morning, and a cab takes you to ${moved.name} -- ${this._homeRoom.name} is home now. The footlocker came with you; the neighbourhood did not.`;
|
|
5800
|
+
}
|
|
5754
5801
|
/**
|
|
5755
5802
|
* Wires a fresh, always-unlocked path between the persistent home base
|
|
5756
5803
|
* and wherever the player is starting the current job from. Clears the
|
|
@@ -6195,6 +6242,11 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
6195
6242
|
const owed = this.applyHostedHomecoming();
|
|
6196
6243
|
if (owed)
|
|
6197
6244
|
Logger.getInstance().logWithColor(owed, 'green');
|
|
6245
|
+
// A tier that slid -- at that homecoming, or in a session that ended
|
|
6246
|
+
// before the move could land -- moves house before the runner wakes.
|
|
6247
|
+
const moved = await this.settleAddress();
|
|
6248
|
+
if (moved)
|
|
6249
|
+
Logger.getInstance().logWithColor(moved, 'green');
|
|
6198
6250
|
this.requestSave('hub-arrival');
|
|
6199
6251
|
}
|
|
6200
6252
|
// A REGISTERED sprite from the save re-shells at the cot (the
|
|
@@ -6961,7 +7013,10 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
6961
7013
|
return `You're inside a loose end's host -- "exit" or "jack out" is what ends it.`;
|
|
6962
7014
|
}
|
|
6963
7015
|
if (this._hubScene && this.scene !== this._hubScene) {
|
|
6964
|
-
|
|
7016
|
+
const home = this.returnToHub();
|
|
7017
|
+
// A tier that slid at the door moves house (settleAddress).
|
|
7018
|
+
const moved = await this.settleAddress();
|
|
7019
|
+
return moved ? `${home}\n${moved}` : home;
|
|
6965
7020
|
}
|
|
6966
7021
|
const gate = this.canDraftNextScene();
|
|
6967
7022
|
if (!gate.allowed) {
|
|
@@ -7426,14 +7481,12 @@ ${client.name} won't be remembering anything. Dead Johnsons pay nothing -- and t
|
|
|
7426
7481
|
const lapse = dropped.length > 0
|
|
7427
7482
|
? ` The garage lease goes with it -- the shutter comes down${sealedIn.length > 0 ? ` with ${sealedIn.join(', ')} still inside` : ''}.`
|
|
7428
7483
|
: '';
|
|
7429
|
-
// THE ADDRESS
|
|
7430
|
-
//
|
|
7431
|
-
//
|
|
7432
|
-
// district move is async
|
|
7433
|
-
//
|
|
7434
|
-
|
|
7435
|
-
// does, with "lifestyle".
|
|
7436
|
-
rentLine = `The landlord's drone pings before the door even shuts: ${paid > 0 ? `${paid} paid, ` : ''}${this.rentDebt} nuyen still owed.${shedLine} Your ${tier.name} arrangement lapses -- you're living ${this.lifestyleTier} now.${lapse}${hint(` ("pay" the tab, "lifestyle" to move somewhere you can afford.)`)}`;
|
|
7484
|
+
// THE ADDRESS GOES WITH THE TIER (user ruling 2026-10-04, on
|
|
7485
|
+
// nqRsvbN6gvKHFKfW9: "a runner should end up in a district that fits
|
|
7486
|
+
// their lifestyle"). Not here, though: this is synchronous and a
|
|
7487
|
+
// district move is async, so every homecoming's async caller follows
|
|
7488
|
+
// up with settleAddress, which does the moving.
|
|
7489
|
+
rentLine = `The landlord's drone pings before the door even shuts: ${paid > 0 ? `${paid} paid, ` : ''}${this.rentDebt} nuyen still owed.${shedLine} Your ${tier.name} arrangement lapses -- you're living ${this.lifestyleTier} now.${lapse}${hint(` ("pay" the tab when you're flush.)`)}`;
|
|
7437
7490
|
}
|
|
7438
7491
|
else {
|
|
7439
7492
|
rentLine = `Even the doorway costs something: ${this.rentDebt} nuyen on the tab.${shedLine}${hint(` ("pay" when you're flush.)`)}`;
|
|
@@ -1996,6 +1996,10 @@ export class SharedRunSession {
|
|
|
1996
1996
|
const lines = g.applyHostedHomecoming(owed);
|
|
1997
1997
|
if (lines)
|
|
1998
1998
|
Logger.getInstance().logWithColor(lines, 'green');
|
|
1999
|
+
// A tier that slid at that homecoming moves house (settleAddress).
|
|
2000
|
+
const moved = await g.settleAddress();
|
|
2001
|
+
if (moved)
|
|
2002
|
+
Logger.getInstance().logWithColor(moved, 'green');
|
|
1999
2003
|
}
|
|
2000
2004
|
}
|
|
2001
2005
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maka/maka-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.382.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
|
|
6
6
|
"description": "A command line tool for scaffolding Meteor 3.x applications using React.",
|