Files
2025-11-06 23:30:37 +01:00

60 lines
2.2 KiB
JavaScript

/**
* 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."
});