/** * Shield types based on Prism RPG rules * Shields prevent damage equal to their Shield Rating (SR) * Each shield has a Block APC and a Block Augment passive ability */ export const TYPE = Object.freeze({ buckler: { id: "buckler", label: "PRISMRPG.Shield.Type.buckler", apc: 1, sr: "1d4", blockAugment: "PRISMRPG.Shield.BlockAugment.buckler", blockAugmentDescription: "PRISMRPG.Shield.BlockAugmentDescription.buckler" }, light: { id: "light", label: "PRISMRPG.Shield.Type.light", apc: 2, sr: "1d8", blockAugment: "PRISMRPG.Shield.BlockAugment.light", blockAugmentDescription: "PRISMRPG.Shield.BlockAugmentDescription.light" }, heavy: { id: "heavy", label: "PRISMRPG.Shield.Type.heavy", apc: 3, sr: "1d12", blockAugment: "PRISMRPG.Shield.BlockAugment.heavy", blockAugmentDescription: "PRISMRPG.Shield.BlockAugmentDescription.heavy" }, tower: { id: "tower", label: "PRISMRPG.Shield.Type.tower", apc: 4, sr: "3d6", blockAugment: "PRISMRPG.Shield.BlockAugment.tower", blockAugmentDescription: "PRISMRPG.Shield.BlockAugmentDescription.tower" } }); /** * Simplified Shield Types object for form choices (label-only format) */ export const TYPE_CHOICES = Object.freeze( Object.fromEntries( Object.entries(TYPE).map(([key, value]) => [key, value.label]) ) ); /** * Block augment descriptions for reference * These are activated when using the Block action with the shield */ export const BLOCK_AUGMENTS = Object.freeze({ buckler: "If the character should successfully block damage with this shield, the character reduces the cost of the next Parry action by an amount equal to their Prowess.", light: "If the character would successfully block damage with this shield, the character may move an amount equal to their movement rating.", heavy: "If the character would successfully block damage with this shield, they reduce the APC of the next attack they make by an amount equal to their Vigor or Prowess.", tower: "If the character would successfully block damage with this shield, for 1 round they are considered cover for themselves and allies that are adjacent to them." });