@provable-games/dm-engine 0.5.0 → 0.6.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/dist/constants/game.d.ts +2 -0
- package/dist/constants/game.d.ts.map +1 -1
- package/dist/constants/game.js +2 -0
- package/dist/constants/game.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/packing.d.ts +51 -3
- package/dist/packing.d.ts.map +1 -1
- package/dist/packing.js +99 -8
- package/dist/packing.js.map +1 -1
- package/dist/protocol.d.ts +8 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +9 -1
- package/dist/protocol.js.map +1 -1
- package/dist/replay.d.ts +22 -9
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +170 -45
- package/dist/replay.js.map +1 -1
- package/dist/rules/boosts.d.ts +39 -0
- package/dist/rules/boosts.d.ts.map +1 -0
- package/dist/rules/boosts.js +105 -0
- package/dist/rules/boosts.js.map +1 -0
- package/dist/rules/game.d.ts +19 -3
- package/dist/rules/game.d.ts.map +1 -1
- package/dist/rules/game.js +66 -42
- package/dist/rules/game.js.map +1 -1
- package/dist/rules/gameSimulation.d.ts +22 -6
- package/dist/rules/gameSimulation.d.ts.map +1 -1
- package/dist/rules/gameSimulation.js +102 -47
- package/dist/rules/gameSimulation.js.map +1 -1
- package/dist/rules/loot.d.ts +39 -4
- package/dist/rules/loot.d.ts.map +1 -1
- package/dist/rules/loot.js +75 -142
- package/dist/rules/loot.js.map +1 -1
- package/dist/transcript.d.ts +6 -1
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js.map +1 -1
- package/dist/view.d.ts +7 -2
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +10 -4
- package/dist/view.js.map +1 -1
- package/package.json +1 -1
package/dist/constants/game.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export declare const STARTING_HEALTH = 100;
|
|
|
7
7
|
export declare const STARTING_GOLD = 40;
|
|
8
8
|
export declare const STARTER_WEAPONS: number[];
|
|
9
9
|
export declare const MAX_STAT_VALUE = 31;
|
|
10
|
+
/** `MAX_STAT_UPGRADES_AVAILABLE` — 4 bits in the packed adventurer, so grants saturate here. */
|
|
11
|
+
export declare const MAX_STAT_UPGRADES_AVAILABLE = 15;
|
|
10
12
|
export declare const MAX_BAG_SIZE = 15;
|
|
11
13
|
export declare const MIN_DAMAGE = 4;
|
|
12
14
|
export declare const MAX_GOLD = 511;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,eAAe,UAAmB,CAAC;AAChD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAG5C,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,eAAe,UAAmB,CAAC;AAChD,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,gGAAgG;AAChG,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAC/C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
|
package/dist/constants/game.js
CHANGED
|
@@ -10,6 +10,8 @@ export const STARTING_HEALTH = 100;
|
|
|
10
10
|
export const STARTING_GOLD = 40;
|
|
11
11
|
export const STARTER_WEAPONS = [12, 16, 46, 76];
|
|
12
12
|
export const MAX_STAT_VALUE = 31;
|
|
13
|
+
/** `MAX_STAT_UPGRADES_AVAILABLE` — 4 bits in the packed adventurer, so grants saturate here. */
|
|
14
|
+
export const MAX_STAT_UPGRADES_AVAILABLE = 15;
|
|
13
15
|
export const MAX_BAG_SIZE = 15;
|
|
14
16
|
export const MIN_DAMAGE = 4;
|
|
15
17
|
export const MAX_GOLD = 511;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,iBAAiB;AACjB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,uBAAuB;AACvB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"game.js","sourceRoot":"","sources":["../../src/constants/game.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,iBAAiB;AACjB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,uBAAuB;AACvB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,gGAAgG;AAChG,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACvC,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export * as BeastConstants from "./constants/beast.js";
|
|
|
20
20
|
export * as LootConstants from "./constants/loot.js";
|
|
21
21
|
export * as ObstacleConstants from "./constants/obstacle.js";
|
|
22
22
|
export * from "./rules/beast.js";
|
|
23
|
+
export * from "./rules/boosts.js";
|
|
23
24
|
export * from "./rules/game.js";
|
|
24
25
|
export * from "./rules/gameSimulation.js";
|
|
25
26
|
export * from "./rules/health.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAG7D,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAG1B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAG7D,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ export * as LootConstants from "./constants/loot.js";
|
|
|
24
24
|
export * as ObstacleConstants from "./constants/obstacle.js";
|
|
25
25
|
// Rules.
|
|
26
26
|
export * from "./rules/beast.js";
|
|
27
|
+
export * from "./rules/boosts.js";
|
|
27
28
|
export * from "./rules/game.js";
|
|
28
29
|
export * from "./rules/gameSimulation.js";
|
|
29
30
|
export * from "./rules/health.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,UAAU;AACV,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,SAAS;AACT,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,UAAU;AACV,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAE5B,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAE7D,SAAS;AACT,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
|
package/dist/packing.d.ts
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
import type { Adventurer, Item } from "./types.js";
|
|
2
|
+
/** `ImplBag`'s slot count. The bag is fifteen FIXED slots, not a list -- see `emptyBag`. */
|
|
3
|
+
export declare const BAG_SLOTS = 15;
|
|
4
|
+
/**
|
|
5
|
+
* A bag is `item_1 .. item_15`, and the slot an item sits in is part of the packed felt.
|
|
6
|
+
*
|
|
7
|
+
* `ImplBag::remove_item` zeroes its slot IN PLACE and `add_item` fills the FIRST empty one, so a
|
|
8
|
+
* bag that has lost an item carries a hole and the next pickup lands in it. Modelling the bag as
|
|
9
|
+
* a JavaScript list instead -- `splice` to remove, `push` to add -- reorders every slot after the
|
|
10
|
+
* hole, and `packBag` then produces a felt the chain never stored. Nothing in the RULES reads the
|
|
11
|
+
* order (boosts are a sum, `bagIsFull` is a count), so the divergence is invisible right up until
|
|
12
|
+
* a settled game's `packed_bag` is compared against `GameSettled` and does not match.
|
|
13
|
+
*
|
|
14
|
+
* So the engine carries all fifteen slots, holes included, and `compactBag` is the projection for
|
|
15
|
+
* anything that renders a list.
|
|
16
|
+
*/
|
|
17
|
+
export declare function emptyBag(): Item[];
|
|
18
|
+
/** Widen a short or compacted bag to fifteen slots, preserving the order it arrived in. */
|
|
19
|
+
export declare function toBagSlots(items: readonly Item[]): Item[];
|
|
20
|
+
/** The occupied slots, in slot order. What a renderer or a length check wants. */
|
|
21
|
+
export declare function compactBag(bag: readonly Item[]): Item[];
|
|
22
|
+
/** How many slots hold an item. NOT `bag.length`, which is 15 for every bag. */
|
|
23
|
+
export declare function bagCount(bag: readonly Item[]): number;
|
|
24
|
+
/** `ImplBag::is_full` -- true only when all fifteen slots are occupied. */
|
|
25
|
+
export declare function bagIsFull(bag: readonly Item[]): boolean;
|
|
26
|
+
/** `ImplBag::contains`. */
|
|
27
|
+
export declare function bagContains(bag: readonly Item[], itemId: number): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* `ImplBag::add_item` -- the first EMPTY slot, which is not the same as the end.
|
|
30
|
+
*
|
|
31
|
+
* Mutates in place and returns the slot index, or throws when the bag is full, exactly as the
|
|
32
|
+
* contract's `'Bag is full'` panic does.
|
|
33
|
+
*/
|
|
34
|
+
export declare function addToBag(bag: Item[], item: Item): number;
|
|
35
|
+
/**
|
|
36
|
+
* `ImplBag::remove_item` -- zero the slot where it sits, leaving a hole for the next pickup.
|
|
37
|
+
*
|
|
38
|
+
* Returns the removed item, or null when the bag does not hold it.
|
|
39
|
+
*/
|
|
40
|
+
export declare function removeFromBag(bag: Item[], itemId: number): Item | null;
|
|
2
41
|
export declare function unpackAdventurer(packed: bigint): Adventurer;
|
|
42
|
+
/**
|
|
43
|
+
* All fifteen slots, holes included.
|
|
44
|
+
*
|
|
45
|
+
* This used to drop the empty ones, which made `unpackBag(packBag(x))` an identity for a bag with
|
|
46
|
+
* no holes and a REORDERING for one with them -- see `emptyBag`. Callers that want a list call
|
|
47
|
+
* `compactBag` on the result.
|
|
48
|
+
*/
|
|
3
49
|
export declare function unpackBag(packed: bigint): Item[];
|
|
4
50
|
/**
|
|
5
51
|
* The inverse of `unpackAdventurer`, and the payload `GameCore::initialize_game` takes.
|
|
@@ -13,9 +59,11 @@ export declare function unpackBag(packed: bigint): Item[];
|
|
|
13
59
|
*/
|
|
14
60
|
export declare function packAdventurer(adventurer: Adventurer): bigint;
|
|
15
61
|
/**
|
|
16
|
-
* The inverse of `unpackBag
|
|
17
|
-
*
|
|
18
|
-
*
|
|
62
|
+
* The inverse of `unpackBag`: slot `k` is written at bit `16k`, holes included.
|
|
63
|
+
*
|
|
64
|
+
* A short array is accepted and packed from slot 0 -- which is what a caller building a fixture
|
|
65
|
+
* bag wants -- but a bag that has been through `removeFromBag` must be passed whole, or its holes
|
|
66
|
+
* collapse and every later slot shifts down.
|
|
19
67
|
*/
|
|
20
68
|
export declare function packBag(items: Item[]): bigint;
|
|
21
69
|
export declare function felt252AsU256(value: bigint): [bigint, bigint];
|
package/dist/packing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packing.d.ts","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"packing.d.ts","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKnD,4FAA4F;AAC5F,eAAO,MAAM,SAAS,KAAK,CAAC;AAM5B;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,IAAI,IAAI,EAAE,CAEjC;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,CAOzD;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,CAEvD;AAED,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM,CAIrD;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,OAAO,CAEvD;AAED,2BAA2B;AAC3B,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAcxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAStE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CA4C3D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAQhD;AAaD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAqC7D;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAO7C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAG7D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAS3E"}
|
package/dist/packing.js
CHANGED
|
@@ -1,8 +1,92 @@
|
|
|
1
1
|
const MASK_16 = 0xffffn;
|
|
2
2
|
const MASK_128 = (1n << 128n) - 1n;
|
|
3
|
+
/** `ImplBag`'s slot count. The bag is fifteen FIXED slots, not a list -- see `emptyBag`. */
|
|
4
|
+
export const BAG_SLOTS = 15;
|
|
3
5
|
function unpackItem(raw) {
|
|
4
6
|
return { id: Number(raw & 0x7fn), xp: Number(raw >> 7n) };
|
|
5
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* A bag is `item_1 .. item_15`, and the slot an item sits in is part of the packed felt.
|
|
10
|
+
*
|
|
11
|
+
* `ImplBag::remove_item` zeroes its slot IN PLACE and `add_item` fills the FIRST empty one, so a
|
|
12
|
+
* bag that has lost an item carries a hole and the next pickup lands in it. Modelling the bag as
|
|
13
|
+
* a JavaScript list instead -- `splice` to remove, `push` to add -- reorders every slot after the
|
|
14
|
+
* hole, and `packBag` then produces a felt the chain never stored. Nothing in the RULES reads the
|
|
15
|
+
* order (boosts are a sum, `bagIsFull` is a count), so the divergence is invisible right up until
|
|
16
|
+
* a settled game's `packed_bag` is compared against `GameSettled` and does not match.
|
|
17
|
+
*
|
|
18
|
+
* So the engine carries all fifteen slots, holes included, and `compactBag` is the projection for
|
|
19
|
+
* anything that renders a list.
|
|
20
|
+
*/
|
|
21
|
+
export function emptyBag() {
|
|
22
|
+
return Array.from({ length: BAG_SLOTS }, () => ({ id: 0, xp: 0 }));
|
|
23
|
+
}
|
|
24
|
+
/** Widen a short or compacted bag to fifteen slots, preserving the order it arrived in. */
|
|
25
|
+
export function toBagSlots(items) {
|
|
26
|
+
if (items.length > BAG_SLOTS)
|
|
27
|
+
throw new Error("bag holds at most 15 items");
|
|
28
|
+
const slots = emptyBag();
|
|
29
|
+
items.forEach((item, index) => {
|
|
30
|
+
slots[index] = { id: item?.id ?? 0, xp: item?.xp ?? 0 };
|
|
31
|
+
});
|
|
32
|
+
return slots;
|
|
33
|
+
}
|
|
34
|
+
/** The occupied slots, in slot order. What a renderer or a length check wants. */
|
|
35
|
+
export function compactBag(bag) {
|
|
36
|
+
return bag.filter((item) => item.id !== 0).map((item) => ({ ...item }));
|
|
37
|
+
}
|
|
38
|
+
/** How many slots hold an item. NOT `bag.length`, which is 15 for every bag. */
|
|
39
|
+
export function bagCount(bag) {
|
|
40
|
+
let count = 0;
|
|
41
|
+
for (const item of bag)
|
|
42
|
+
if (item.id !== 0)
|
|
43
|
+
count += 1;
|
|
44
|
+
return count;
|
|
45
|
+
}
|
|
46
|
+
/** `ImplBag::is_full` -- true only when all fifteen slots are occupied. */
|
|
47
|
+
export function bagIsFull(bag) {
|
|
48
|
+
return bagCount(bag) >= BAG_SLOTS;
|
|
49
|
+
}
|
|
50
|
+
/** `ImplBag::contains`. */
|
|
51
|
+
export function bagContains(bag, itemId) {
|
|
52
|
+
return itemId !== 0 && bag.some((item) => item.id === itemId);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* `ImplBag::add_item` -- the first EMPTY slot, which is not the same as the end.
|
|
56
|
+
*
|
|
57
|
+
* Mutates in place and returns the slot index, or throws when the bag is full, exactly as the
|
|
58
|
+
* contract's `'Bag is full'` panic does.
|
|
59
|
+
*/
|
|
60
|
+
export function addToBag(bag, item) {
|
|
61
|
+
for (let index = 0; index < bag.length; index += 1) {
|
|
62
|
+
if (bag[index].id === 0) {
|
|
63
|
+
bag[index] = { id: item.id, xp: item.xp };
|
|
64
|
+
return index;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// A caller may hand in a shorter array than fifteen -- a compacted one, or a fixture. It has no
|
|
68
|
+
// holes by construction, so appending lands in the same slot the contract would have used.
|
|
69
|
+
if (bag.length < BAG_SLOTS) {
|
|
70
|
+
bag.push({ id: item.id, xp: item.xp });
|
|
71
|
+
return bag.length - 1;
|
|
72
|
+
}
|
|
73
|
+
throw new Error("bag is full");
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* `ImplBag::remove_item` -- zero the slot where it sits, leaving a hole for the next pickup.
|
|
77
|
+
*
|
|
78
|
+
* Returns the removed item, or null when the bag does not hold it.
|
|
79
|
+
*/
|
|
80
|
+
export function removeFromBag(bag, itemId) {
|
|
81
|
+
for (let index = 0; index < bag.length; index += 1) {
|
|
82
|
+
if (bag[index].id === itemId && itemId !== 0) {
|
|
83
|
+
const removed = { ...bag[index] };
|
|
84
|
+
bag[index] = { id: 0, xp: 0 };
|
|
85
|
+
return removed;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
6
90
|
export function unpackAdventurer(packed) {
|
|
7
91
|
let equipment = packed & MASK_128;
|
|
8
92
|
const items = [];
|
|
@@ -47,13 +131,18 @@ export function unpackAdventurer(packed) {
|
|
|
47
131
|
level_salt: take(14n),
|
|
48
132
|
};
|
|
49
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* All fifteen slots, holes included.
|
|
136
|
+
*
|
|
137
|
+
* This used to drop the empty ones, which made `unpackBag(packBag(x))` an identity for a bag with
|
|
138
|
+
* no holes and a REORDERING for one with them -- see `emptyBag`. Callers that want a list call
|
|
139
|
+
* `compactBag` on the result.
|
|
140
|
+
*/
|
|
50
141
|
export function unpackBag(packed) {
|
|
51
142
|
const items = [];
|
|
52
143
|
let value = packed;
|
|
53
|
-
for (let index = 0; index <
|
|
54
|
-
|
|
55
|
-
if (item.id !== 0)
|
|
56
|
-
items.push(item);
|
|
144
|
+
for (let index = 0; index < BAG_SLOTS; index += 1) {
|
|
145
|
+
items.push(unpackItem(value & MASK_16));
|
|
57
146
|
value >>= 16n;
|
|
58
147
|
}
|
|
59
148
|
return items;
|
|
@@ -116,12 +205,14 @@ export function packAdventurer(adventurer) {
|
|
|
116
205
|
return (high << 128n) | low;
|
|
117
206
|
}
|
|
118
207
|
/**
|
|
119
|
-
* The inverse of `unpackBag
|
|
120
|
-
*
|
|
121
|
-
*
|
|
208
|
+
* The inverse of `unpackBag`: slot `k` is written at bit `16k`, holes included.
|
|
209
|
+
*
|
|
210
|
+
* A short array is accepted and packed from slot 0 -- which is what a caller building a fixture
|
|
211
|
+
* bag wants -- but a bag that has been through `removeFromBag` must be passed whole, or its holes
|
|
212
|
+
* collapse and every later slot shifts down.
|
|
122
213
|
*/
|
|
123
214
|
export function packBag(items) {
|
|
124
|
-
if (items.length >
|
|
215
|
+
if (items.length > BAG_SLOTS)
|
|
125
216
|
throw new Error("bag holds at most 15 items");
|
|
126
217
|
let packed = 0n;
|
|
127
218
|
for (let index = items.length - 1; index >= 0; index -= 1) {
|
package/dist/packing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packing.js","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,OAAO,CAAC;AACxB,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAEnC,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,IAAI,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;QAC5C,SAAS,KAAK,GAAG,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,IAAI,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;QACjB,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC;QACb,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACd,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC;QACvB,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAC;QACjC,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAClB,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;YACnB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAClB,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAChB,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,EAAE,CAAC;SACR;QACD,SAAS,EAAE;YACT,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAChB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACf;QACD,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC;QAC7B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC;QACrB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"packing.js","sourceRoot":"","sources":["../src/packing.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -74,5 +74,13 @@ export declare function encodeEquip(items: number[]): bigint;
|
|
|
74
74
|
export declare function encodeDrop(items: number[]): bigint;
|
|
75
75
|
export declare function encodeSurrender(): bigint;
|
|
76
76
|
export declare function decodeAction(raw: bigint): DecodedAction;
|
|
77
|
+
/**
|
|
78
|
+
* The low nibble, and nothing else -- `stream.cairo`'s `action_opcode`.
|
|
79
|
+
*
|
|
80
|
+
* `fold_stream` deliberately does NOT decode: it only needs to know whether an action is a START,
|
|
81
|
+
* and `commit_action` already ran the full decode, canonicality included, before the felt entered
|
|
82
|
+
* the chain. Running `decodeAction` here made the reconstruction refuse transcripts the chain
|
|
83
|
+
* folds happily.
|
|
84
|
+
*/
|
|
77
85
|
export declare function actionOpcode(encoded: bigint): OpcodeValue;
|
|
78
86
|
//# sourceMappingURL=protocol.d.ts.map
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA6DD,wFAAwF;AACxF,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,GAChB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB9D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAYhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAmEvD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEzD"}
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA6DD,wFAAwF;AACxF,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKzF;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,GAChB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAG3E;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB9D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAYhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUnD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAUlD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAmEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAEzD"}
|
package/dist/protocol.js
CHANGED
|
@@ -276,7 +276,15 @@ export function decodeAction(raw) {
|
|
|
276
276
|
}
|
|
277
277
|
return action;
|
|
278
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* The low nibble, and nothing else -- `stream.cairo`'s `action_opcode`.
|
|
281
|
+
*
|
|
282
|
+
* `fold_stream` deliberately does NOT decode: it only needs to know whether an action is a START,
|
|
283
|
+
* and `commit_action` already ran the full decode, canonicality included, before the felt entered
|
|
284
|
+
* the chain. Running `decodeAction` here made the reconstruction refuse transcripts the chain
|
|
285
|
+
* folds happily.
|
|
286
|
+
*/
|
|
279
287
|
export function actionOpcode(encoded) {
|
|
280
|
-
return
|
|
288
|
+
return Number(encoded & 0xfn);
|
|
281
289
|
}
|
|
282
290
|
//# sourceMappingURL=protocol.js.map
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/replay.d.ts
CHANGED
|
@@ -44,19 +44,32 @@ export interface ReplayState {
|
|
|
44
44
|
* itself. Defaults to true so the client's behaviour is the one you get by omission.
|
|
45
45
|
*/
|
|
46
46
|
equipmentApplied?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Whether `adventurer.stats` already carry the equipment and bag boosts.
|
|
49
|
+
*
|
|
50
|
+
* `Replay::step` brackets every dispatch with `add_stat_boosts` / `remove_stat_boosts`, so on
|
|
51
|
+
* chain storage is boost-free and the rules always see boosted stats. The client keeps them
|
|
52
|
+
* baked into its store between actions; the off-chain replayer holds the boost-free state the
|
|
53
|
+
* packed felt carries. Defaults to true so the client's behaviour is the one you get by
|
|
54
|
+
* omission -- the same rule `equipmentApplied` follows.
|
|
55
|
+
*
|
|
56
|
+
* Either way `applyAction` normalises to the chain's convention, applies the bracket, and
|
|
57
|
+
* converts back, so both callers reach the same `packed_adventurer`.
|
|
58
|
+
*/
|
|
59
|
+
boostsApplied?: boolean;
|
|
47
60
|
}
|
|
48
61
|
/**
|
|
49
|
-
* Apply one action
|
|
62
|
+
* Apply one action, with the boost bracket `Replay::step` runs around every dispatch.
|
|
50
63
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
64
|
+
* normalise the caller's adventurer to the chain's boost-free convention
|
|
65
|
+
* -> add_stat_boosts (the rules always see boosted stats, and a derived `luck`)
|
|
66
|
+
* -> the handler (which may itself add or remove suffix boosts mid-action)
|
|
67
|
+
* -> remove_stat_boosts (recomputed against the POST-action equipment and bag)
|
|
68
|
+
* -> convert back to the caller's convention
|
|
55
69
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* separates two actions that were committed in the same block and therefore share a hash.
|
|
70
|
+
* The recomputation on the way out is what makes an equip's mid-action `apply_suffix_boost` net
|
|
71
|
+
* out to nothing. Without it every greatness-15 unlock leaves a permanent offset behind, which is
|
|
72
|
+
* what the off-chain replayer used to accumulate.
|
|
60
73
|
*/
|
|
61
74
|
export declare function applyAction(state: ReplayState, action: GameAction, entropy: bigint | null): GameEvent[];
|
|
62
75
|
//# sourceMappingURL=replay.d.ts.map
|
package/dist/replay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replay.d.ts","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA0DxC;;;;;GAKG;AACH,eAAO,MAAM,cAAc;IACzB,sEAAsE;;IAEtE,+FAA+F;;IAE/F,iGAAiG;;CAEzF,CAAC;AAEX,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/D;AA+JD,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,IAAI,EAAE,CAAC;IACZ,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACtC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,sFAAsF;IACtF,eAAe,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyjCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,SAAS,EAAE,CA4Bb"}
|