diff --git a/src/module/system/action-macros/athletics/climb.ts b/src/module/system/action-macros/athletics/climb.ts index b532e145e0f..68eec090112 100644 --- a/src/module/system/action-macros/athletics/climb.ts +++ b/src/module/system/action-macros/athletics/climb.ts @@ -1,12 +1,21 @@ import { ActionMacroHelpers, SkillActionOptions } from "../index.ts"; import { SingleCheckAction } from "@actor/actions/index.ts"; +import { ModifierPF2e } from "@actor/modifiers.ts"; const PREFIX = "PF2E.Actions.Climb"; function climb(options: SkillActionOptions): void { const slug = options?.skill ?? "athletics"; const rollOptions = ["action:climb"]; - const modifiers = options?.modifiers; + const modifiers = (options?.modifiers ?? []).concat( + new ModifierPF2e({ + slug: "climb-speed", + label: `${PREFIX}.Modifier.ClimbSpeed`, + modifier: 4, + type: "circumstance", + predicate: ["speed:climb"], + }), + ); ActionMacroHelpers.simpleRollActionCheck({ actors: options.actors, actionGlyph: options.glyph ?? "A", @@ -31,6 +40,15 @@ const action = new SingleCheckAction({ cost: 1, description: `${PREFIX}.Description`, img: "icons/skills/movement/arrow-upward-blue.webp", + modifiers: [ + { + slug: "climb-speed", + label: `${PREFIX}.Modifier.ClimbSpeed`, + modifier: 4, + type: "circumstance", + predicate: ["speed:climb"], + }, + ], name: `${PREFIX}.Title`, notes: [ { outcome: ["criticalSuccess"], text: `${PREFIX}.Notes.criticalSuccess` }, diff --git a/src/module/system/action-macros/athletics/swim.ts b/src/module/system/action-macros/athletics/swim.ts index e39e49d5f65..176d504704b 100644 --- a/src/module/system/action-macros/athletics/swim.ts +++ b/src/module/system/action-macros/athletics/swim.ts @@ -1,12 +1,21 @@ import { ActionMacroHelpers, SkillActionOptions } from "../index.ts"; import { SingleCheckAction } from "@actor/actions/index.ts"; +import { ModifierPF2e } from "@actor/modifiers.ts"; const PREFIX = "PF2E.Actions.Swim"; function swim(options: SkillActionOptions): void { const slug = options?.skill ?? "athletics"; const rollOptions = ["action:swim"]; - const modifiers = options?.modifiers; + const modifiers = (options?.modifiers ?? []).concat( + new ModifierPF2e({ + slug: "swim-speed", + label: `${PREFIX}.Modifier.SwimSpeed`, + modifier: 4, + type: "circumstance", + predicate: ["speed:swim"], + }), + ); ActionMacroHelpers.simpleRollActionCheck({ actors: options.actors, actionGlyph: options.glyph ?? "A", @@ -31,6 +40,15 @@ const action = new SingleCheckAction({ cost: 1, description: `${PREFIX}.Description`, img: "icons/skills/movement/figure-running-gray.webp", + modifiers: [ + { + slug: "swim-speed", + label: `${PREFIX}.Modifier.SwimSpeed`, + modifier: 4, + type: "circumstance", + predicate: ["speed:swim"], + }, + ], name: `${PREFIX}.Title`, notes: [ { outcome: ["criticalSuccess"], text: `${PREFIX}.Notes.criticalSuccess` }, diff --git a/static/lang/action-en.json b/static/lang/action-en.json index 4457c3a6a75..99a90d2b473 100644 --- a/static/lang/action-en.json +++ b/static/lang/action-en.json @@ -116,6 +116,9 @@ }, "Climb": { "Description": "

Requirements You have two hands free.


You attempt an Athletics check to move a maximum distance of 5 feet up, down, or across an incline. You're @UUID[Compendium.pf2e.conditionitems.Item.AJh5ex99aV6VTggg]{Off-Guard} while climbing unless you have a climb Speed. The GM determines the DC based on the nature of the incline and environmental circumstances; you might get an automatic critical success on an incline that's trivial to climb. If your land Speed is 40 feet or higher, increase the maximum distance by 5 feet for every 20 feet of Speed above 20 feet.

Critical Success You move along the incline, increasing the maximum distance by 5 feet.
Success You move along the incline.
Critical Failure You fall. If you began the climb on stable ground, you fall and land @UUID[Compendium.pf2e.conditionitems.Item.j91X7x0XSomq8d60]{Prone}.

", + "Modifier": { + "ClimbSpeed": "Climb Speed" + }, "Notes": { "criticalFailure": "Critical Failure You fall. If you began the climb on stable ground, you fall and land @UUID[Compendium.pf2e.conditionitems.Item.j91X7x0XSomq8d60]{Prone}.", "criticalSuccess": "Critical Success You move along the incline, increasing the maximum distance by 5 feet.", @@ -880,6 +883,9 @@ }, "Swim": { "Description": "

You attempt an Athletics check to move a maximum distance of 10 feet through water. The GM determines the DC based on the turbulence or danger of the water; in most instances of calm water, you get an automatic critical success. If your land Speed is 40 feet or higher, increase the maximum possible distance by 5 feet for every 20 feet of Speed above 20 feet.

If you end your turn in water and haven't succeeded at a Swim action that turn, you sink 10 feet or get moved by the current, as determined by the GM. This doesn't apply if your last action on your turn was to enter the water.

Critical Success You move through the water, increasing the maximum distance by 5 feet.
Success You move through the water.
Critical Failure You make no progress. If you're holding your breath, you lose 1 round of air.

", + "Modifier": { + "SwimSpeed": "Swim Speed" + }, "Notes": { "criticalFailure": "Critical Failure You make no progress. If you're holding your breath, you lose 1 round of air.", "criticalSuccess": "Critical Success You move through the water, increasing the maximum distance by 5 feet.",