@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/replay.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { actionSeed as deriveActionSeed } from "./protocol.js";
|
|
2
|
-
import { HEALTH_INCREASE_PER_VITALITY, ITEM_XP_MULTIPLIER_BEASTS, ITEM_XP_MULTIPLIER_OBSTACLES, POTION_HEALTH_AMOUNT, STARTER_WEAPONS, STARTING_GOLD, STARTING_HEALTH, XP_FOR_DISCOVERIES, } from "./constants/game.js";
|
|
3
|
-
import { unpackAdventurer, unpackBag } from "./packing.js";
|
|
2
|
+
import { HEALTH_INCREASE_PER_VITALITY, ITEM_XP_MULTIPLIER_BEASTS, MAX_STAT_VALUE, ITEM_XP_MULTIPLIER_OBSTACLES, POTION_HEALTH_AMOUNT, STARTER_WEAPONS, STARTING_GOLD, STARTING_HEALTH, XP_FOR_DISCOVERIES, } from "./constants/game.js";
|
|
3
|
+
import { addToBag, bagIsFull, toBagSlots, unpackAdventurer, unpackBag, } from "./packing.js";
|
|
4
|
+
import { addStatBoosts, removeStatBoosts } from "./rules/boosts.js";
|
|
4
5
|
import { calculateGoldReward, calculateLevel, getNewItemsEquipped } from "./rules/game.js";
|
|
5
|
-
import { abilityBasedAvoidThreatWithRoll, beastToBeastEvent, calculateAdventurerAttackDamage, calculateBeastCounterAttack, calculateObstacleDamage, canExplore, decreaseHealth, dropItem, equipItem, generateBeast, generateObstacle, generateStartingStats, getArmorAtSlot, getAttackLocation, getBaseXpReward, getDiscovery, getSlotDisplayName, grantXpToEquippedItems, increaseGold, increaseHealth, increaseXp, isCriticalHit, processLootDiscovery, } from "./rules/gameSimulation.js";
|
|
6
|
+
import { abilityBasedAvoidThreatWithRoll, applyRandomStats, beastToBeastEvent, calculateAdventurerAttackDamage, calculateBeastCounterAttack, calculateObstacleDamage, canExplore, decreaseHealth, dropItem, equipItem, generateBeast, generateObstacle, generateStartingStats, getArmorAtSlot, getAttackLocation, getBaseXpReward, getDiscovery, getSlotDisplayName, grantXpToEquippedItems, increaseGold, increaseHealth, increaseXp, isCriticalHit, processLootDiscovery, } from "./rules/gameSimulation.js";
|
|
6
7
|
import { getMaxHealth } from "./rules/health.js";
|
|
7
8
|
import { ItemUtils } from "./rules/loot.js";
|
|
8
|
-
import { getLevelSeed, potionPrice } from "./rules/market.js";
|
|
9
|
-
import { felt_to_two_u64,
|
|
9
|
+
import { getAvailableItems, getLevelSeed, potionPrice } from "./rules/market.js";
|
|
10
|
+
import { felt_to_two_u64, get_simple_entropy, getBattleRandomness, getBeastEntropy, getBeastFromEntropy, getBeastFromSeed, getRandomness, } from "./rules/processFutures.js";
|
|
10
11
|
const EMPTY_ITEM = { id: 0, xp: 0 };
|
|
11
12
|
/**
|
|
12
13
|
* The three randomness modes, mirroring `utils/randomness.cairo::RandomnessMode`.
|
|
@@ -171,8 +172,26 @@ function applyTheme(beast, _dungeonId) {
|
|
|
171
172
|
* It is not the seed: `resolveActionRolls` mixes it with the adventurer's own state, which is what
|
|
172
173
|
* separates two actions that were committed in the same block and therefore share a hash.
|
|
173
174
|
*/
|
|
174
|
-
|
|
175
|
+
function runAction(state, action, entropy) {
|
|
175
176
|
const specialsOverride = () => state.startOverride?.specialsOverride ?? 0n;
|
|
177
|
+
/**
|
|
178
|
+
* The beast the adventurer is fighting.
|
|
179
|
+
*
|
|
180
|
+
* The contract never stores one: `attack`, `flee` and `equip` all rebuild it from `beast_salt`
|
|
181
|
+
* hashed with the game id and the current xp, which is why the salt is in the packed model at
|
|
182
|
+
* all. A caller that has the beast on hand passes it; one that has lost it -- a rebuilt
|
|
183
|
+
* checkpoint, a resumed board -- gets it derived rather than silently skipping the fight.
|
|
184
|
+
* `beast_health` is the LIVE value, so it overrides the derivation's starting health.
|
|
185
|
+
*/
|
|
186
|
+
const resolveBeast = (adventurer) => {
|
|
187
|
+
if (state.beast)
|
|
188
|
+
return state.beast;
|
|
189
|
+
if (adventurer.beast_health <= 0)
|
|
190
|
+
return null;
|
|
191
|
+
const beastEntropy = getBeastEntropy(adventurer.beast_salt, state.gameId ?? "0", adventurer.xp);
|
|
192
|
+
const derived = getBeastFromEntropy(adventurer.xp, beastEntropy);
|
|
193
|
+
return applyTheme({ ...derived, health: adventurer.beast_health }, null);
|
|
194
|
+
};
|
|
176
195
|
const clientGameAction = (action) => {
|
|
177
196
|
switch (action.type) {
|
|
178
197
|
case "start_game":
|
|
@@ -263,18 +282,25 @@ export function applyAction(state, action, entropy) {
|
|
|
263
282
|
const { u64_1: beastSeed, u64_2: marketSeed } = seeded
|
|
264
283
|
? felt_to_two_u64(entropy)
|
|
265
284
|
: { u64_1: 0n, u64_2: 0n };
|
|
285
|
+
// `Replay::start` brackets itself: boosts go on BEFORE the random points are dealt, so they
|
|
286
|
+
// saturate against the boosted stats and the health grant is measured against the boosted
|
|
287
|
+
// maximum. The bracket's other half lives in `applyAction`, which takes them back off.
|
|
288
|
+
const startingBag = override && override.packedAdventurer !== 0n
|
|
289
|
+
? unpackBag(override.packedBag)
|
|
290
|
+
: toBagSlots(settings?.bag ?? []);
|
|
291
|
+
addStatBoosts(adventurer, startingBag, state.gameId ?? "0", specialsOverride());
|
|
266
292
|
const randomStats = settings?.random_starting_stats ?? 0;
|
|
267
293
|
if (randomStats > 0) {
|
|
268
294
|
const healthBefore = getMaxHealth(adventurer.stats.vitality);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
295
|
+
if (seeded) {
|
|
296
|
+
applyRandomStats(adventurer.stats, beastSeed, randomStats);
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
const dealt = generateStartingStats(undefined, randomStats);
|
|
300
|
+
for (const key of ["strength", "dexterity", "vitality", "intelligence", "wisdom", "charisma"]) {
|
|
301
|
+
adventurer.stats[key] = Math.min(MAX_STAT_VALUE, adventurer.stats[key] + dealt[key]);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
278
304
|
// Vitality among the points raises max health, and the adventurer is handed it rather than
|
|
279
305
|
// starting the run already wounded.
|
|
280
306
|
const gained = getMaxHealth(adventurer.stats.vitality) - healthBefore;
|
|
@@ -304,10 +330,9 @@ export function applyAction(state, action, entropy) {
|
|
|
304
330
|
events.push({ type: "adventurer", adventurer });
|
|
305
331
|
// The override supplies the bag alongside the adventurer, and it supplies it even when it is
|
|
306
332
|
// empty -- an override that hands the run nothing is a real answer, not a missing one.
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
333
|
+
// `start` persists the bag unconditionally, so it is always emitted: the boost bracket in
|
|
334
|
+
// `applyAction` reads it back to work out what to take off.
|
|
335
|
+
events.push({ type: "bag", bag: startingBag });
|
|
311
336
|
return events;
|
|
312
337
|
};
|
|
313
338
|
const explore = (action) => {
|
|
@@ -336,6 +361,7 @@ export function applyAction(state, action, entropy) {
|
|
|
336
361
|
const tillGold = action.tillGold ?? false;
|
|
337
362
|
let damageTaken = 0;
|
|
338
363
|
let goldFound = false;
|
|
364
|
+
let itemFound = false;
|
|
339
365
|
let bagMutated = false;
|
|
340
366
|
// Exploration loop
|
|
341
367
|
while (true) {
|
|
@@ -405,7 +431,7 @@ export function applyAction(state, action, entropy) {
|
|
|
405
431
|
// these two do not).
|
|
406
432
|
const ambushResult = calculateBeastCounterAttack(beastEvent, adventurer, baseDamageReduction, true, rnd && injectedEntropy !== null
|
|
407
433
|
? { attackLocationRnd: Number(rnd.rnd5), criticalHitRnd: Number(rnd.rnd6) }
|
|
408
|
-
: undefined, specialsOverride());
|
|
434
|
+
: undefined, storeState.gameId ?? "0", specialsOverride());
|
|
409
435
|
if (ambushResult.damage > 0) {
|
|
410
436
|
decreaseHealth(adventurer, ambushResult.damage);
|
|
411
437
|
events.push({
|
|
@@ -450,7 +476,7 @@ export function applyAction(state, action, entropy) {
|
|
|
450
476
|
: undefined;
|
|
451
477
|
const slot = getAttackLocation(obstacleRolls?.attackLocationRnd);
|
|
452
478
|
const armor = getArmorAtSlot(adventurer, slot);
|
|
453
|
-
const obstacleResult = calculateObstacleDamage(obstacle, armor, adventurerLevel, baseDamageReduction, obstacleRolls);
|
|
479
|
+
const obstacleResult = calculateObstacleDamage(obstacle, armor, adventurerLevel, baseDamageReduction, obstacleRolls, adventurer.equipment.neck);
|
|
454
480
|
const damage = dodged ? 0 : obstacleResult.damage;
|
|
455
481
|
if (!dodged && damage > 0) {
|
|
456
482
|
decreaseHealth(adventurer, damage);
|
|
@@ -503,10 +529,13 @@ export function applyAction(state, action, entropy) {
|
|
|
503
529
|
increaseHealth(adventurer, discovery.amount);
|
|
504
530
|
}
|
|
505
531
|
else if (discovery.type === "Loot") {
|
|
532
|
+
// `item_found` on EVERY loot branch, converted to gold or not, and `gold_found` on
|
|
533
|
+
// neither: `_process_discovery` returns `DiscoveryType::Loot` either way, and the
|
|
534
|
+
// explore loop keys off the discovery type rather than what it was worth.
|
|
535
|
+
itemFound = true;
|
|
506
536
|
lootConversion = processLootDiscovery(adventurer, bag, discovery.itemId);
|
|
507
537
|
if (lootConversion) {
|
|
508
538
|
increaseGold(adventurer, lootConversion.gold);
|
|
509
|
-
goldFound = true;
|
|
510
539
|
}
|
|
511
540
|
else {
|
|
512
541
|
bagMutated = true;
|
|
@@ -533,6 +562,11 @@ export function applyAction(state, action, entropy) {
|
|
|
533
562
|
break;
|
|
534
563
|
if (tillGold && goldFound)
|
|
535
564
|
break;
|
|
565
|
+
// Finding an item ends the explore unconditionally -- `exploration.cairo:259`. This break
|
|
566
|
+
// was missing, so a `till_damage` explore that turned up loot kept going off chain and
|
|
567
|
+
// arrived at a board the chain never reached.
|
|
568
|
+
if (itemFound)
|
|
569
|
+
break;
|
|
536
570
|
}
|
|
537
571
|
// Level up check
|
|
538
572
|
const newLevel = calculateLevel(adventurer.xp);
|
|
@@ -550,10 +584,9 @@ export function applyAction(state, action, entropy) {
|
|
|
550
584
|
};
|
|
551
585
|
const attack = (action) => {
|
|
552
586
|
const storeState = state;
|
|
553
|
-
if (!storeState.adventurer
|
|
587
|
+
if (!storeState.adventurer)
|
|
554
588
|
return [];
|
|
555
589
|
const adventurer = cloneAdventurer(storeState.adventurer);
|
|
556
|
-
const beast = storeState.beast;
|
|
557
590
|
const baseDamageReduction = storeState.gameSettings?.base_damage_reduction ?? 0;
|
|
558
591
|
const gameSeed = storeState.gameSettings?.game_seed ?? 0;
|
|
559
592
|
const randomnessMode = storeState.gameSettings?.randomness_mode ?? RandomnessMode.FULL;
|
|
@@ -562,6 +595,9 @@ export function applyAction(state, action, entropy) {
|
|
|
562
595
|
return [];
|
|
563
596
|
if (adventurer.beast_health <= 0)
|
|
564
597
|
return [];
|
|
598
|
+
const beast = resolveBeast(adventurer);
|
|
599
|
+
if (!beast)
|
|
600
|
+
return [];
|
|
565
601
|
const injectedEntropy = entropy;
|
|
566
602
|
// Combat always rolls live, whatever the mode says.
|
|
567
603
|
const rolls = resolveActionRolls(injectedEntropy, storeState.gameId, adventurer, gameSeed, randomnessMode, true);
|
|
@@ -574,7 +610,7 @@ export function applyAction(state, action, entropy) {
|
|
|
574
610
|
const tillHealth = action.tillHealth ?? 0;
|
|
575
611
|
const tillBeastHealth = action.tillBeastHealth ?? 0;
|
|
576
612
|
// Precompute adventurer damage
|
|
577
|
-
const { normal: normalDamage, crit: critDamage } = calculateAdventurerAttackDamage(adventurer, beast, specialsOverride());
|
|
613
|
+
const { normal: normalDamage, crit: critDamage } = calculateAdventurerAttackDamage(adventurer, beast, storeState.gameId ?? "0", specialsOverride());
|
|
578
614
|
// Battle loop
|
|
579
615
|
let battleCount = 0;
|
|
580
616
|
while (true) {
|
|
@@ -626,7 +662,7 @@ export function applyAction(state, action, entropy) {
|
|
|
626
662
|
attackLocationRnd: round.attackLocationRnd,
|
|
627
663
|
criticalHitRnd: round.beastCritRnd,
|
|
628
664
|
}
|
|
629
|
-
: undefined, specialsOverride());
|
|
665
|
+
: undefined, storeState.gameId ?? "0", specialsOverride());
|
|
630
666
|
decreaseHealth(adventurer, counterAttack.damage);
|
|
631
667
|
events.push({
|
|
632
668
|
type: "beast_attack",
|
|
@@ -655,10 +691,9 @@ export function applyAction(state, action, entropy) {
|
|
|
655
691
|
};
|
|
656
692
|
const flee = (action) => {
|
|
657
693
|
const storeState = state;
|
|
658
|
-
if (!storeState.adventurer
|
|
694
|
+
if (!storeState.adventurer)
|
|
659
695
|
return [];
|
|
660
696
|
const adventurer = cloneAdventurer(storeState.adventurer);
|
|
661
|
-
const beast = storeState.beast;
|
|
662
697
|
const baseDamageReduction = storeState.gameSettings?.base_damage_reduction ?? 0;
|
|
663
698
|
const gameSeed = storeState.gameSettings?.game_seed ?? 0;
|
|
664
699
|
const randomnessMode = storeState.gameSettings?.randomness_mode ?? RandomnessMode.FULL;
|
|
@@ -667,6 +702,9 @@ export function applyAction(state, action, entropy) {
|
|
|
667
702
|
return [];
|
|
668
703
|
if (adventurer.beast_health <= 0)
|
|
669
704
|
return [];
|
|
705
|
+
const beast = resolveBeast(adventurer);
|
|
706
|
+
if (!beast)
|
|
707
|
+
return [];
|
|
670
708
|
const adventurerLevel = calculateLevel(adventurer.xp);
|
|
671
709
|
if (adventurer.stats.dexterity === 0)
|
|
672
710
|
return [];
|
|
@@ -722,7 +760,7 @@ export function applyAction(state, action, entropy) {
|
|
|
722
760
|
attackLocationRnd: round.attackLocationRnd,
|
|
723
761
|
criticalHitRnd: round.beastCritRnd,
|
|
724
762
|
}
|
|
725
|
-
: undefined, specialsOverride());
|
|
763
|
+
: undefined, storeState.gameId ?? "0", specialsOverride());
|
|
726
764
|
decreaseHealth(adventurer, counterAttack.damage);
|
|
727
765
|
events.push({ type: "flee", success: false, rollData: fleeRollData });
|
|
728
766
|
events.push({
|
|
@@ -790,31 +828,57 @@ export function applyAction(state, action, entropy) {
|
|
|
790
828
|
gold -= cost;
|
|
791
829
|
return true;
|
|
792
830
|
};
|
|
831
|
+
const gameId = storeState.gameId ?? "0";
|
|
832
|
+
const owns = (itemId) => Object.values(adventurer.equipment).some((item) => item.id === itemId) ||
|
|
833
|
+
bag.some((item) => item.id === itemId && item.id !== 0);
|
|
834
|
+
// The market a purchase shops in. `_buy_items` derives it from `level_salt` and refuses
|
|
835
|
+
// anything not on it (`Errors::ITEM_DOES_NOT_EXIST`), which the engine did not check at all --
|
|
836
|
+
// so a client bug could commit a purchase that made the run permanently unsettleable.
|
|
837
|
+
const marketSize = storeState.gameSettings?.market_size;
|
|
838
|
+
const onMarket = marketSize === undefined
|
|
839
|
+
? null
|
|
840
|
+
: new Set(getAvailableItems(gameId, getLevelSeed(adventurer.level_salt, gameId), marketSize));
|
|
841
|
+
// ONE loop, as the contract runs it: an item bagged by an earlier purchase is already owned
|
|
842
|
+
// by the time a later one is checked.
|
|
843
|
+
const toEquip = [];
|
|
793
844
|
for (const purchase of itemPurchases) {
|
|
845
|
+
if (onMarket && !onMarket.has(purchase.item_id))
|
|
846
|
+
return [];
|
|
794
847
|
const price = ItemUtils.getItemPrice(ItemUtils.getItemTier(purchase.item_id), adventurer.stats.charisma);
|
|
795
848
|
// Errors::NOT_ENOUGH_GOLD. Settlement would panic here, so the action is refused: an empty
|
|
796
849
|
// event list is what every other rule in this file returns for "the contract said no".
|
|
797
850
|
if (!spend(price))
|
|
798
851
|
return [];
|
|
799
|
-
}
|
|
800
|
-
// Add non-equipped items to bag
|
|
801
|
-
for (const purchase of itemPurchases) {
|
|
802
|
-
if (!purchase.equip) {
|
|
803
|
-
bag.push({ id: purchase.item_id, xp: 0 });
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
|
-
// Equip purchased items (handles displaced items → bag + stat boosts)
|
|
807
|
-
for (const purchase of itemPurchases) {
|
|
808
852
|
if (purchase.equip) {
|
|
809
|
-
|
|
853
|
+
toEquip.push(purchase.item_id);
|
|
854
|
+
}
|
|
855
|
+
else {
|
|
856
|
+
// Errors::ITEM_ALREADY_OWNED, then `ImplBag::add_item`'s 'Bag is full'.
|
|
857
|
+
if (owns(purchase.item_id))
|
|
858
|
+
return [];
|
|
859
|
+
if (bagIsFull(bag))
|
|
860
|
+
return [];
|
|
861
|
+
addToBag(bag, { id: purchase.item_id, xp: 0 });
|
|
810
862
|
}
|
|
811
863
|
}
|
|
864
|
+
// Equip purchased items (handles displaced items → bag + stat boosts). `equip_items` runs
|
|
865
|
+
// after the buying loop with `is_newly_purchased: true`, which asserts ownership per item.
|
|
866
|
+
for (const itemId of toEquip) {
|
|
867
|
+
if (owns(itemId))
|
|
868
|
+
return [];
|
|
869
|
+
equipItem(adventurer, bag, itemId, gameId, specialsOverride());
|
|
870
|
+
}
|
|
812
871
|
// Buy potions
|
|
813
872
|
if (potions > 0) {
|
|
814
873
|
const price = potionPrice(calculateLevel(adventurer.xp), adventurer.stats.charisma);
|
|
815
874
|
if (!spend(price * potions))
|
|
816
875
|
return [];
|
|
817
|
-
|
|
876
|
+
// Errors::HEALTH_FULL -- a purchase may not overshoot the maximum by a whole potion.
|
|
877
|
+
const healing = POTION_HEALTH_AMOUNT * potions;
|
|
878
|
+
if (adventurer.health + healing >= getMaxHealth(adventurer.stats.vitality) + POTION_HEALTH_AMOUNT) {
|
|
879
|
+
return [];
|
|
880
|
+
}
|
|
881
|
+
increaseHealth(adventurer, healing);
|
|
818
882
|
}
|
|
819
883
|
adventurer.gold = gold;
|
|
820
884
|
events.push({ type: "buy_items", potions, items_purchased: itemPurchases });
|
|
@@ -831,8 +895,23 @@ export function applyAction(state, action, entropy) {
|
|
|
831
895
|
// Validate
|
|
832
896
|
if (adventurer.health === 0)
|
|
833
897
|
return [];
|
|
898
|
+
// `StatUpgrades::select_stat_upgrades` asserts `!in_battle` and that the allocation spends
|
|
899
|
+
// EXACTLY the available points (`INSUFFICIENT_STAT_UPGRADES` / `MUST_USE_ALL_STATS`). Neither
|
|
900
|
+
// was checked here, so the engine happily simulated an allocation settlement would panic on.
|
|
901
|
+
if (adventurer.beast_health > 0)
|
|
902
|
+
return [];
|
|
834
903
|
if (adventurer.stat_upgrades_available === 0)
|
|
835
904
|
return [];
|
|
905
|
+
const allocated = stats.strength +
|
|
906
|
+
stats.dexterity +
|
|
907
|
+
stats.vitality +
|
|
908
|
+
stats.intelligence +
|
|
909
|
+
stats.wisdom +
|
|
910
|
+
stats.charisma;
|
|
911
|
+
if (allocated !== adventurer.stat_upgrades_available)
|
|
912
|
+
return [];
|
|
913
|
+
if (stats.luck !== 0)
|
|
914
|
+
return [];
|
|
836
915
|
const events = [];
|
|
837
916
|
// Apply stats
|
|
838
917
|
adventurer.stats.strength += stats.strength;
|
|
@@ -879,7 +958,6 @@ export function applyAction(state, action, entropy) {
|
|
|
879
958
|
// pre-action state instead and must do the move itself -- see `equipmentApplied`.
|
|
880
959
|
const adventurer = cloneAdventurer(storeState.adventurer);
|
|
881
960
|
const bag = storeState.bag.map((item) => ({ ...item }));
|
|
882
|
-
const beast = storeState.beast;
|
|
883
961
|
const baseDamageReduction = storeState.gameSettings?.base_damage_reduction ?? 0;
|
|
884
962
|
// Validate
|
|
885
963
|
if (adventurer.health === 0)
|
|
@@ -893,10 +971,13 @@ export function applyAction(state, action, entropy) {
|
|
|
893
971
|
// moving them after the counter-attack would quietly under-armour every in-battle equip.
|
|
894
972
|
if (storeState.equipmentApplied === false) {
|
|
895
973
|
for (const itemId of items) {
|
|
896
|
-
equipItem(adventurer, bag, itemId, specialsOverride());
|
|
974
|
+
equipItem(adventurer, bag, itemId, storeState.gameId ?? "0", specialsOverride());
|
|
897
975
|
}
|
|
898
976
|
}
|
|
899
|
-
// If in battle, beast counter-attacks (mimics contract: randomness → beast_attack → equip)
|
|
977
|
+
// If in battle, beast counter-attacks (mimics contract: randomness → beast_attack → equip).
|
|
978
|
+
// The beast is DERIVED when the caller has none: `Inventory::equip` rebuilds it from the salt
|
|
979
|
+
// and always swings, so skipping the counterattack here under-damaged an in-battle equip.
|
|
980
|
+
const beast = resolveBeast(adventurer);
|
|
900
981
|
if (adventurer.beast_health > 0 && beast) {
|
|
901
982
|
// replay_equip draws get_battle_randomness(xp, 0, equip_seed) -- battle count ZERO, unlike
|
|
902
983
|
// attack and flee which start at 1 -- and takes rnd3/rnd4 as the beast crit and location.
|
|
@@ -912,7 +993,7 @@ export function applyAction(state, action, entropy) {
|
|
|
912
993
|
attackLocationRnd: round.attackLocationRnd,
|
|
913
994
|
criticalHitRnd: round.beastCritRnd,
|
|
914
995
|
}
|
|
915
|
-
: undefined, specialsOverride());
|
|
996
|
+
: undefined, storeState.gameId ?? "0", specialsOverride());
|
|
916
997
|
decreaseHealth(adventurer, counterAttack.damage);
|
|
917
998
|
events.push({
|
|
918
999
|
type: "beast_attack",
|
|
@@ -945,7 +1026,9 @@ export function applyAction(state, action, entropy) {
|
|
|
945
1026
|
const events = [];
|
|
946
1027
|
// Drop each item
|
|
947
1028
|
for (const itemId of items) {
|
|
948
|
-
dropItem(adventurer, bag, itemId, specialsOverride())
|
|
1029
|
+
if (!dropItem(adventurer, bag, itemId, storeState.gameId ?? "0", specialsOverride())) {
|
|
1030
|
+
return [];
|
|
1031
|
+
}
|
|
949
1032
|
}
|
|
950
1033
|
events.push({ type: "drop", items });
|
|
951
1034
|
events.push({ type: "bag", bag });
|
|
@@ -954,4 +1037,46 @@ export function applyAction(state, action, entropy) {
|
|
|
954
1037
|
};
|
|
955
1038
|
return clientGameAction(action);
|
|
956
1039
|
}
|
|
1040
|
+
/**
|
|
1041
|
+
* Apply one action, with the boost bracket `Replay::step` runs around every dispatch.
|
|
1042
|
+
*
|
|
1043
|
+
* normalise the caller's adventurer to the chain's boost-free convention
|
|
1044
|
+
* -> add_stat_boosts (the rules always see boosted stats, and a derived `luck`)
|
|
1045
|
+
* -> the handler (which may itself add or remove suffix boosts mid-action)
|
|
1046
|
+
* -> remove_stat_boosts (recomputed against the POST-action equipment and bag)
|
|
1047
|
+
* -> convert back to the caller's convention
|
|
1048
|
+
*
|
|
1049
|
+
* The recomputation on the way out is what makes an equip's mid-action `apply_suffix_boost` net
|
|
1050
|
+
* out to nothing. Without it every greatness-15 unlock leaves a permanent offset behind, which is
|
|
1051
|
+
* what the off-chain replayer used to accumulate.
|
|
1052
|
+
*/
|
|
1053
|
+
export function applyAction(state, action, entropy) {
|
|
1054
|
+
const gameId = state.gameId ?? "0";
|
|
1055
|
+
const override = state.startOverride?.specialsOverride ?? 0n;
|
|
1056
|
+
const boosted = state.boostsApplied !== false;
|
|
1057
|
+
let working = state;
|
|
1058
|
+
if (state.adventurer) {
|
|
1059
|
+
const adventurer = cloneAdventurer(state.adventurer);
|
|
1060
|
+
if (boosted)
|
|
1061
|
+
removeStatBoosts(adventurer, state.bag, gameId, override);
|
|
1062
|
+
addStatBoosts(adventurer, state.bag, gameId, override);
|
|
1063
|
+
working = { ...state, adventurer };
|
|
1064
|
+
}
|
|
1065
|
+
const events = runAction(working, action, entropy);
|
|
1066
|
+
// The bag the boosts come off against is the one the action LEFT behind.
|
|
1067
|
+
let bagAfter = working.bag;
|
|
1068
|
+
for (const event of events) {
|
|
1069
|
+
if (event.type === "bag" && event.bag)
|
|
1070
|
+
bagAfter = event.bag;
|
|
1071
|
+
}
|
|
1072
|
+
return events.map((event) => {
|
|
1073
|
+
if (event.type !== "adventurer" || !event.adventurer)
|
|
1074
|
+
return event;
|
|
1075
|
+
const adventurer = cloneAdventurer(event.adventurer);
|
|
1076
|
+
removeStatBoosts(adventurer, bagAfter, gameId, override);
|
|
1077
|
+
if (boosted)
|
|
1078
|
+
addStatBoosts(adventurer, bagAfter, gameId, override);
|
|
1079
|
+
return { ...event, adventurer };
|
|
1080
|
+
});
|
|
1081
|
+
}
|
|
957
1082
|
//# sourceMappingURL=replay.js.map
|
package/dist/replay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../src/replay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Adventurer, Equipment, Item, Stats } from "../types.js";
|
|
2
|
+
/** `ImplAdventurer::jewelry_bonus_luck` -- the silver ring, and nothing else. */
|
|
3
|
+
export declare function jewelryBonusLuck(ring: Item): number;
|
|
4
|
+
/**
|
|
5
|
+
* `Equipment::calculate_luck` -- the adventurer's crit chance, derived from jewellery.
|
|
6
|
+
*
|
|
7
|
+
* Never stored and never accumulated: `add_stat_boosts` ASSIGNS it on every action, and the packed
|
|
8
|
+
* codec drops it. An empty slot still has greatness 1, so a started adventurer always carries at
|
|
9
|
+
* least 2 -- roughly a 2.3% crit chance per attack round, which is why treating luck as zero off
|
|
10
|
+
* chain diverges from the very first fight.
|
|
11
|
+
*/
|
|
12
|
+
export declare function calculateLuck(equipment: Equipment, bag: readonly Item[]): number;
|
|
13
|
+
/**
|
|
14
|
+
* `ImplAdventurer::get_item_specials_seed(salt, adventurer_id)`.
|
|
15
|
+
*
|
|
16
|
+
* NOT the raw `item_specials_salt`. The salt is 14 bits of packed state; the seed every specials
|
|
17
|
+
* lookup actually takes is `poseidon([salt, adventurer_id]) % 2^16`, so the same salt names
|
|
18
|
+
* different specials for different adventurers. Passing the salt where the seed belongs resolves
|
|
19
|
+
* every one of the 101 items to a different suffix.
|
|
20
|
+
*/
|
|
21
|
+
export declare function itemSpecialsSeed(adventurer: Adventurer, adventurerId: string | bigint): number;
|
|
22
|
+
/** The suffix + bag boosts an adventurer's loadout is currently granting. */
|
|
23
|
+
export declare function loadoutBoosts(adventurer: Adventurer, bag: readonly Item[], adventurerId: string | bigint, specialsOverride?: bigint): Stats;
|
|
24
|
+
/**
|
|
25
|
+
* `add_stat_boosts` -- mutates in place, exactly as the Cairo does.
|
|
26
|
+
*
|
|
27
|
+
* `luck` is ASSIGNED rather than added, which is why `remove_stat_boosts` has no matching
|
|
28
|
+
* subtraction for it.
|
|
29
|
+
*/
|
|
30
|
+
export declare function addStatBoosts(adventurer: Adventurer, bag: readonly Item[], adventurerId: string | bigint, specialsOverride?: bigint): Adventurer;
|
|
31
|
+
/**
|
|
32
|
+
* `remove_stat_boosts` -- mutates in place.
|
|
33
|
+
*
|
|
34
|
+
* Computed against the state it is handed, which after an action is the POST-action equipment and
|
|
35
|
+
* bag. That is what makes an equip's mid-action `apply_suffix_boost` net out to nothing.
|
|
36
|
+
* `luck` is deliberately left alone: the codec drops it, so the chain never has to unwind it.
|
|
37
|
+
*/
|
|
38
|
+
export declare function removeStatBoosts(adventurer: Adventurer, bag: readonly Item[], adventurerId: string | bigint, specialsOverride?: bigint): Adventurer;
|
|
39
|
+
//# sourceMappingURL=boosts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boosts.d.ts","sourceRoot":"","sources":["../../src/rules/boosts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA4BtE,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEnD;AAaD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,EAAE,GAAG,MAAM,CAOhF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE9F;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,YAAY,EAAE,MAAM,GAAG,MAAM,EAC7B,gBAAgB,GAAE,MAAW,GAC5B,KAAK,CAEP;AAWD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,YAAY,EAAE,MAAM,GAAG,MAAM,EAC7B,gBAAgB,GAAE,MAAW,GAC5B,UAAU,CAKZ;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,IAAI,EAAE,EACpB,YAAY,EAAE,MAAM,GAAG,MAAM,EAC7B,gBAAgB,GAAE,MAAW,GAC5B,UAAU,CAIZ"}
|