@maka/maka-cli 5.23.0 → 5.25.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 (36) hide show
  1. package/bundle/typescript/package.json +1 -1
  2. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js +10 -3
  3. package/bundle/typescript/src/commands/game/sideQuest/commands/hack.js.map +1 -1
  4. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js +41 -4
  5. package/bundle/typescript/src/commands/game/sideQuest/commands/look.js.map +1 -1
  6. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.d.ts +18 -0
  7. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js +161 -0
  8. package/bundle/typescript/src/commands/game/sideQuest/commands/mark.js.map +1 -0
  9. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js +11 -1
  10. package/bundle/typescript/src/commands/game/sideQuest/commands/reboot.js.map +1 -1
  11. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js +19 -6
  12. package/bundle/typescript/src/commands/game/sideQuest/commands/source.js.map +1 -1
  13. package/bundle/typescript/src/commands/game/sideQuest/engine-version.d.ts +1 -1
  14. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js +5 -1
  15. package/bundle/typescript/src/commands/game/sideQuest/engine-version.js.map +1 -1
  16. package/bundle/typescript/src/commands/game/sideQuest/game.js +4 -1
  17. package/bundle/typescript/src/commands/game/sideQuest/game.js.map +1 -1
  18. package/bundle/typescript/src/commands/game/sideQuest/models/player.d.ts +1 -0
  19. package/bundle/typescript/src/commands/game/sideQuest/models/player.js +5 -0
  20. package/bundle/typescript/src/commands/game/sideQuest/models/player.js.map +1 -1
  21. package/bundle/typescript/src/commands/game/sideQuest/models/room.d.ts +1 -0
  22. package/bundle/typescript/src/commands/game/sideQuest/models/room.js +6 -0
  23. package/bundle/typescript/src/commands/game/sideQuest/models/room.js.map +1 -1
  24. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js +4 -2
  25. package/bundle/typescript/src/commands/game/sideQuest/utilities/grid-view.js.map +1 -1
  26. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.d.ts +20 -0
  27. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js +50 -0
  28. package/bundle/typescript/src/commands/game/sideQuest/utilities/marks.js.map +1 -0
  29. package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js +3 -0
  30. package/bundle/typescript/src/commands/game/sideQuest/utilities/overwatch.js.map +1 -1
  31. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js +4 -1
  32. package/bundle/typescript/src/commands/game/sideQuest/utilities/planes.js.map +1 -1
  33. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.d.ts +32 -0
  34. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js +73 -0
  35. package/bundle/typescript/src/commands/game/sideQuest/utilities/sin.js.map +1 -0
  36. package/package.json +1 -1
@@ -0,0 +1,32 @@
1
+ import { Player } from '../models/player.js';
2
+ import { Item } from '../models/item.js';
3
+ /**
4
+ * IDENTITY AT THE COUNTER (SINs & commerce, player go 2026-08-24;
5
+ * canon p.363-368, values engine-adapted -- the RAG was down). The
6
+ * street's cash economy asks no questions -- but RESTRICTED-tier gear
7
+ * (availability >= PAPER_AVAILABILITY) wants a NAME on the deal:
8
+ *
9
+ * - A NATIONAL or CORP SIN signs cleanly -- legal paper is the whole
10
+ * upside of being on file (the downside was priced into the
11
+ * quality).
12
+ * - A CRIMINAL SIN can't be hidden (it broadcasts): the deal goes
13
+ * through, the system takes its cut, the file grows a line.
14
+ * - A carried FAKE SIN signs at clean price -- but every paper deal
15
+ * is one more wand pass, and a bad read BURNS the fake (the deal
16
+ * survives on cash at the no-paper premium).
17
+ * - The SINless pay the premium, always: no paper, cash talks
18
+ * louder.
19
+ *
20
+ * Shared by source.ts (the big-ticket path); street-stall "buy" stays
21
+ * the pure cash economy by design. No import.meta (engine-graph law).
22
+ */
23
+ export declare const PAPER_AVAILABILITY = 9;
24
+ export declare function bestFakeSin(p: Player): {
25
+ item: Item;
26
+ rating: number;
27
+ } | undefined;
28
+ export interface IPaperResult {
29
+ price: number;
30
+ lines: string[];
31
+ }
32
+ export declare function paperPurchase(p: Player, basePrice: number, availability: number, meta: (line: string) => void): IPaperResult;
@@ -0,0 +1,73 @@
1
+ import { rollPool, formatRoll } from './dice.js';
2
+ /**
3
+ * IDENTITY AT THE COUNTER (SINs & commerce, player go 2026-08-24;
4
+ * canon p.363-368, values engine-adapted -- the RAG was down). The
5
+ * street's cash economy asks no questions -- but RESTRICTED-tier gear
6
+ * (availability >= PAPER_AVAILABILITY) wants a NAME on the deal:
7
+ *
8
+ * - A NATIONAL or CORP SIN signs cleanly -- legal paper is the whole
9
+ * upside of being on file (the downside was priced into the
10
+ * quality).
11
+ * - A CRIMINAL SIN can't be hidden (it broadcasts): the deal goes
12
+ * through, the system takes its cut, the file grows a line.
13
+ * - A carried FAKE SIN signs at clean price -- but every paper deal
14
+ * is one more wand pass, and a bad read BURNS the fake (the deal
15
+ * survives on cash at the no-paper premium).
16
+ * - The SINless pay the premium, always: no paper, cash talks
17
+ * louder.
18
+ *
19
+ * Shared by source.ts (the big-ticket path); street-stall "buy" stays
20
+ * the pure cash economy by design. No import.meta (engine-graph law).
21
+ */
22
+ export const PAPER_AVAILABILITY = 9;
23
+ const SINLESS_PREMIUM = 0.25;
24
+ const CRIMINAL_SURCHARGE = 0.15;
25
+ const VENDOR_WAND_DICE = 4;
26
+ export function bestFakeSin(p) {
27
+ const fakes = p.inventory.getAllItems()
28
+ .map(i => ({ item: i, m: /^Fake SIN \(Rating (\d)\)$/.exec(i.name) }))
29
+ .filter(x => x.m !== null)
30
+ .map(x => ({ item: x.item, rating: parseInt(x.m[1], 10) }))
31
+ .sort((a, b) => b.rating - a.rating);
32
+ return fakes[0];
33
+ }
34
+ export function paperPurchase(p, basePrice, availability, meta) {
35
+ if (availability < PAPER_AVAILABILITY)
36
+ return { price: basePrice, lines: [] };
37
+ if (p.qualities.has('sinner-criminal')) {
38
+ const bump = Math.ceil(basePrice * CRIMINAL_SURCHARGE);
39
+ return {
40
+ price: basePrice + bump,
41
+ lines: [`Restricted gear wants a name on it -- and your CRIMINAL SIN broadcasts before you can offer one. The deal goes through with the system's cut on top (+${bump} nuyen), and somewhere a file grows a line.`],
42
+ };
43
+ }
44
+ if (p.qualities.has('sinner-national') || p.qualities.has('sinner-corp')) {
45
+ return {
46
+ price: basePrice,
47
+ lines: [`Restricted gear wants a name on it -- and you HAVE one. Your SIN signs; legal paper, clean price. (It's on the record, but that was always the deal.)`],
48
+ };
49
+ }
50
+ const fake = bestFakeSin(p);
51
+ if (fake) {
52
+ const wand = rollPool(VENDOR_WAND_DICE);
53
+ meta(`Vendor wand (${VENDOR_WAND_DICE}d6): ${formatRoll(wand)} (beats Rating ${fake.rating} to burn the fake)`);
54
+ if (wand.hits <= fake.rating) {
55
+ return {
56
+ price: basePrice,
57
+ lines: [`Restricted gear wants a name on it -- your Rating ${fake.rating} fake signs. Clean paper, clean price.`],
58
+ };
59
+ }
60
+ p.inventory.removeItem(fake.item.name);
61
+ const bump = Math.ceil(basePrice * SINLESS_PREMIUM);
62
+ return {
63
+ price: basePrice + bump,
64
+ lines: [`Restricted gear wants a name -- and the wand CHOKES on your Rating ${fake.rating} fake. BURNED, flagged in every database at once. The deal survives on cash and a shrug: +${bump} nuyen, no paper.`],
65
+ };
66
+ }
67
+ const bump = Math.ceil(basePrice * SINLESS_PREMIUM);
68
+ return {
69
+ price: basePrice + bump,
70
+ lines: [`Restricted gear wants a name on it and you have NONE -- the no-paper premium runs +${bump} nuyen. (A fake SIN signs this away: "catalog software".)`],
71
+ };
72
+ }
73
+ //# sourceMappingURL=sin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sin.js","sourceRoot":"","sources":["../../../../../../../src/commands/game/sideQuest/utilities/sin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maka/maka-cli",
3
- "version": "5.23.0",
3
+ "version": "5.25.0",
4
4
  "type": "module",
5
5
  "summary": "A command line tool for scaffolding Meteor 2.x applications using either React.",
6
6
  "description": "A command line tool for scaffolding Meteor 2.x applications using React.",