Add shared bandit effect hooks

This commit is contained in:
2026-06-22 16:08:05 +09:00
parent ba450f16b0
commit 24a79a309f
11 changed files with 343 additions and 158 deletions

View File

@@ -914,3 +914,38 @@ test("simulateCombat: damagePerCardDrawnThisCombat scales murder", () => {
assert.equal(r.win, true);
assert.ok(stats.Murder.damage > 1);
});
test("simulateCombat: shiv damage bonuses stack and first Shiv bonus applies once per turn", () => {
const data = {
cards: {
Accuracy: { name: "Accuracy", cost: 1, kind: "Power", shivDamageBonus: 2 },
PhantomBlades: { name: "PhantomBlades", cost: 1, kind: "Power", firstShivDamageBonus: 3 },
Shiv: { name: "Shiv", cost: 0, kind: "Attack", class: "shiv", damage: 1 },
},
starterDeck: ["Accuracy", "PhantomBlades", "Shiv"],
monsters: [{ name: "Dummy", maxHp: 6, intents: [{ kind: "Attack", value: 0 }] }],
};
const r = simulateCombat(data, () => 0.999999);
assert.equal(r.win, true);
assert.equal(r.turns, 1);
});
test("simulateCombat: shivAoe makes Shivs hit all enemies", () => {
const data = {
cards: {
FanOfKnives: { name: "FanOfKnives", cost: 2, kind: "Skill", addShiv: 2, shivAoe: true },
Accuracy: { name: "Accuracy", cost: 1, kind: "Power", shivDamageBonus: 2 },
Shiv: { name: "Shiv", cost: 0, kind: "Attack", class: "shiv", damage: 1 },
Pass: { name: "Pass", cost: 99, kind: "Skill" },
},
starterDeck: ["Accuracy", "FanOfKnives", "Pass"],
monsters: [
{ name: "A", maxHp: 3, intents: [{ kind: "Attack", value: 0 }] },
{ name: "B", maxHp: 3, intents: [{ kind: "Attack", value: 0 }] },
{ name: "C", maxHp: 3, intents: [{ kind: "Attack", value: 0 }] },
],
};
const r = simulateCombat(data, () => 0.999999);
assert.equal(r.win, true);
assert.equal(r.turns, 1);
});