diff --git a/packages/chess/src/modifiers/custom/recipes.ts b/packages/chess/src/modifiers/custom/recipes.ts index 40c8b50..15907ed 100644 --- a/packages/chess/src/modifiers/custom/recipes.ts +++ b/packages/chess/src/modifiers/custom/recipes.ts @@ -129,29 +129,102 @@ export const CUSTOM_MODIFIER_RECIPES: readonly CustomModifierRecipe[] = [ ], ), }, - { - id: "recipe-low-hp-fortress", - title: "Low-HP Fortress (invulnerable when HP<2)", - summary: - "conditional: when Hp < 2, sets CANNOT_BE_CAPTURED. A last-stand trigger that keeps a wounded piece alive.", - descriptor: descriptorForRecipe( - "recipe-low-hp-fortress", - "Low-HP Fortress", - "Becomes untargetable when HP drops below 2.", - [ - { - kind: "conditional", - params: { - condition: { type: "attr-lt", attr: "Hp", value: 2 }, - then: [ - { - kind: "set-capture-flag", - params: { flag: 2 }, - }, - ], - }, - }, - ], - ), - }, + { + id: "recipe-low-hp-fortress", + title: "Low-HP Fortress (invulnerable when HP<2)", + summary: + "conditional: when Hp < 2, sets CANNOT_BE_CAPTURED. A last-stand trigger that keeps a wounded piece alive.", + descriptor: descriptorForRecipe( + "recipe-low-hp-fortress", + "Low-HP Fortress", + "Becomes untargetable when HP drops below 2.", + [ + { + kind: "conditional", + params: { + condition: { type: "attr-lt", attr: "Hp", value: 2 }, + then: [ + { + kind: "set-capture-flag", + params: { flag: 2 }, + }, + ], + }, + }, + ], + ), + }, + { + id: "recipe-kamikaze-knight", + title: "Kamikaze Knight (-2 HP to attacker)", + summary: + "on-captured wrapping add-to-attribute with target: 'attacker'. When captured, this piece deals 2 damage back to its slayer.", + descriptor: descriptorForRecipe( + "recipe-kamikaze-knight", + "Kamikaze Knight", + "Damages the attacker for 2 HP when captured, creating mutual wounds in exchanges.", + [ + { + kind: "on-captured", + params: { + target: "attacker", + primitives: [ + { + kind: "add-to-attribute", + params: { attr: "Hp", delta: -2 }, + }, + ], + }, + }, + ], + ), + }, + { + id: "recipe-berserker-pawn", + title: "Berserker Pawn (+1 Attack per move)", + summary: + "on-move wrapping add-to-attribute AttackBonus +1. Gains +1 attack power every move, stacking into an unstoppable force.", + descriptor: descriptorForRecipe( + "recipe-berserker-pawn", + "Berserker Pawn", + "Gains +1 AttackBonus each move, creating an escalating threat the longer it advances.", + [ + { + kind: "on-move", + params: { + primitives: [ + { + kind: "add-to-attribute", + params: { attr: "AttackBonus", delta: 1 }, + }, + ], + }, + }, + ], + ), + }, + { + id: "recipe-promotion-feast", + title: "Promotion Feast (+5 HP on promotion)", + summary: + "on-promotion wrapping seed-attribute for Hp 5. When this pawn promotes, it immediately gains 5 bonus HP as a reward.", + descriptor: descriptorForRecipe( + "recipe-promotion-feast", + "Promotion Feast", + "Seeds 5 HP when pawn promotes, rewarding safe advancement across the board.", + [ + { + kind: "on-promotion", + params: { + primitives: [ + { + kind: "seed-attribute", + params: { attr: "Hp", value: 5 }, + }, + ], + }, + }, + ], + ), + }, ];