diff --git a/src/module/actor/actions/base.ts b/src/module/actor/actions/base.ts index c1a6e30ea8e..d199833bee1 100644 --- a/src/module/actor/actions/base.ts +++ b/src/module/actor/actions/base.ts @@ -9,6 +9,8 @@ import { ActionVariant, ActionVariantUseOptions, } from "./types.ts"; +import type { ProficiencyRank } from "@item/base/data/index.ts"; +import { PROFICIENCY_RANKS } from "@module/data.ts"; interface BaseActionVariantData { cost?: ActionCost; @@ -23,12 +25,23 @@ interface BaseActionData>; section?: ActionSection; slug?: string | null; traits?: string[]; variants?: ActionVariantDataType | ActionVariantDataType[]; } +function labelSampleTasks(sampleTasks: Partial>): { label: string; text: string }[] { + const unlabeled: { rank: ProficiencyRank; text: string }[] = []; + let rank: keyof typeof sampleTasks; + for (rank in sampleTasks) { + unlabeled.push({ rank, text: sampleTasks[rank]! }); + } + unlabeled.sort((t1, t2) => PROFICIENCY_RANKS.indexOf(t1.rank) - PROFICIENCY_RANKS.indexOf(t2.rank)); + return unlabeled.map((task) => ({ label: CONFIG.PF2E.proficiencyRanks[task.rank], text: task.text })); +} + abstract class BaseActionVariant implements ActionVariant { readonly #action: BaseAction; readonly #cost?: ActionCost; @@ -73,6 +86,7 @@ abstract class BaseActionVariant implements ActionVariant { const name = this.name ? `${game.i18n.localize(this.#action.name)} - ${game.i18n.localize(this.name)}` : game.i18n.localize(this.#action.name); + const sampleTasks = this.#action.sampleTasks ? labelSampleTasks(this.#action.sampleTasks) : undefined; const traitLabels: Record = CONFIG.PF2E.actionTraits; const traitDescriptions: Record = CONFIG.PF2E.traitsDescriptions; const traits = this.traits.map((trait) => ({ @@ -84,6 +98,7 @@ abstract class BaseActionVariant implements ActionVariant { description, glyph: this.glyph, name, + sampleTasks, traits, }); return ChatMessagePF2e.create({ @@ -101,6 +116,7 @@ abstract class BaseAction>; readonly section?: ActionSection; readonly slug: string; readonly traits: string[]; @@ -111,6 +127,7 @@ abstract class BaseAction>; section?: ActionSection; slug: string; traits: string[]; diff --git a/src/module/system/action-macros/acrobatics/balance.ts b/src/module/system/action-macros/acrobatics/balance.ts index 309854e9227..835055811d9 100644 --- a/src/module/system/action-macros/acrobatics/balance.ts +++ b/src/module/system/action-macros/acrobatics/balance.ts @@ -39,6 +39,13 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], rollOptions: ["action:balance"], + sampleTasks: { + untrained: `${PREFIX}.SampleTasks.Untrained`, + trained: `${PREFIX}.SampleTasks.Trained`, + expert: `${PREFIX}.SampleTasks.Expert`, + master: `${PREFIX}.SampleTasks.Master`, + legendary: `${PREFIX}.SampleTasks.Legendary`, + }, section: "skill", slug: "balance", statistic: "acrobatics", diff --git a/src/module/system/action-macros/acrobatics/maneuver-in-flight.ts b/src/module/system/action-macros/acrobatics/maneuver-in-flight.ts index 51aec51f7e7..a6881ac7941 100644 --- a/src/module/system/action-macros/acrobatics/maneuver-in-flight.ts +++ b/src/module/system/action-macros/acrobatics/maneuver-in-flight.ts @@ -38,6 +38,12 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], rollOptions: ["action:maneuver-in-flight"], + sampleTasks: { + trained: `${PREFIX}.SampleTasks.Trained`, + expert: `${PREFIX}.SampleTasks.Expert`, + master: `${PREFIX}.SampleTasks.Master`, + legendary: `${PREFIX}.SampleTasks.Legendary`, + }, section: "skill", slug: "maneuver-in-flight", statistic: "acrobatics", diff --git a/src/module/system/action-macros/acrobatics/squeeze.ts b/src/module/system/action-macros/acrobatics/squeeze.ts index 918e5229639..fb11bf3429e 100644 --- a/src/module/system/action-macros/acrobatics/squeeze.ts +++ b/src/module/system/action-macros/acrobatics/squeeze.ts @@ -36,6 +36,10 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], rollOptions: ["action:squeeze"], + sampleTasks: { + trained: `${PREFIX}.SampleTasks.Trained`, + master: `${PREFIX}.SampleTasks.Master`, + }, section: "skill", slug: "squeeze", statistic: "acrobatics", diff --git a/src/module/system/action-macros/athletics/climb.ts b/src/module/system/action-macros/athletics/climb.ts index b2687d5e26b..110773fa876 100644 --- a/src/module/system/action-macros/athletics/climb.ts +++ b/src/module/system/action-macros/athletics/climb.ts @@ -37,6 +37,13 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], rollOptions: ["action:climb"], + sampleTasks: { + untrained: `${PREFIX}.SampleTasks.Untrained`, + trained: `${PREFIX}.SampleTasks.Trained`, + expert: `${PREFIX}.SampleTasks.Expert`, + master: `${PREFIX}.SampleTasks.Master`, + legendary: `${PREFIX}.SampleTasks.Legendary`, + }, section: "skill", slug: "climb", statistic: "athletics", diff --git a/src/module/system/action-macros/athletics/force-open.ts b/src/module/system/action-macros/athletics/force-open.ts index f8d269d930e..a624652d617 100644 --- a/src/module/system/action-macros/athletics/force-open.ts +++ b/src/module/system/action-macros/athletics/force-open.ts @@ -37,6 +37,13 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], rollOptions: ["action:force-open"], + sampleTasks: { + untrained: `${PREFIX}.SampleTasks.Untrained`, + trained: `${PREFIX}.SampleTasks.Trained`, + expert: `${PREFIX}.SampleTasks.Expert`, + master: `${PREFIX}.SampleTasks.Master`, + legendary: `${PREFIX}.SampleTasks.Legendary`, + }, section: "skill", slug: "force-open", statistic: "athletics", diff --git a/src/module/system/action-macros/athletics/swim.ts b/src/module/system/action-macros/athletics/swim.ts index 7f523974186..6e0ba12dc5e 100644 --- a/src/module/system/action-macros/athletics/swim.ts +++ b/src/module/system/action-macros/athletics/swim.ts @@ -37,6 +37,13 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], rollOptions: ["action:swim"], + sampleTasks: { + untrained: `${PREFIX}.SampleTasks.Untrained`, + trained: `${PREFIX}.SampleTasks.Trained`, + expert: `${PREFIX}.SampleTasks.Expert`, + master: `${PREFIX}.SampleTasks.Master`, + legendary: `${PREFIX}.SampleTasks.Legendary`, + }, section: "skill", slug: "swim", statistic: "athletics", diff --git a/src/module/system/action-macros/diplomacy/gather-information.ts b/src/module/system/action-macros/diplomacy/gather-information.ts index 32371a80610..728754a7f26 100644 --- a/src/module/system/action-macros/diplomacy/gather-information.ts +++ b/src/module/system/action-macros/diplomacy/gather-information.ts @@ -34,6 +34,13 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], rollOptions: ["action:gather-information"], + sampleTasks: { + untrained: `${PREFIX}.SampleTasks.Untrained`, + trained: `${PREFIX}.SampleTasks.Trained`, + expert: `${PREFIX}.SampleTasks.Expert`, + master: `${PREFIX}.SampleTasks.Master`, + legendary: `${PREFIX}.SampleTasks.Legendary`, + }, section: "skill", slug: "gather-information", statistic: "diplomacy", diff --git a/src/module/system/action-macros/exploration/sense-direction.ts b/src/module/system/action-macros/exploration/sense-direction.ts index e9f87626e04..21d508ed6f9 100644 --- a/src/module/system/action-macros/exploration/sense-direction.ts +++ b/src/module/system/action-macros/exploration/sense-direction.ts @@ -48,6 +48,13 @@ const action = new SingleCheckAction({ { outcome: ["success"], text: "PF2E.Actions.SenseDirection.Notes.success" }, ], rollOptions: ["action:sense-direction"], + sampleTasks: { + untrained: "PF2E.Actions.SenseDirection.SampleTasks.Untrained", + trained: "PF2E.Actions.SenseDirection.SampleTasks.Trained", + expert: "PF2E.Actions.SenseDirection.SampleTasks.Expert", + master: "PF2E.Actions.SenseDirection.SampleTasks.Master", + legendary: "PF2E.Actions.SenseDirection.SampleTasks.Legendary", + }, slug: "sense-direction", statistic: "survival", traits: ["exploration", "secret"], diff --git a/src/module/system/action-macros/exploration/track.ts b/src/module/system/action-macros/exploration/track.ts index 8d10a7a9666..88a0ac20657 100644 --- a/src/module/system/action-macros/exploration/track.ts +++ b/src/module/system/action-macros/exploration/track.ts @@ -34,6 +34,13 @@ const action = new SingleCheckAction({ { outcome: ["criticalFailure"], text: "PF2E.Actions.Track.Notes.criticalFailure" }, ], rollOptions: ["action:track"], + sampleTasks: { + untrained: "PF2E.Actions.Track.SampleTasks.Untrained", + trained: "PF2E.Actions.Track.SampleTasks.Trained", + expert: "PF2E.Actions.Track.SampleTasks.Expert", + master: "PF2E.Actions.Track.SampleTasks.Master", + legendary: "PF2E.Actions.Track.SampleTasks.Legendary", + }, slug: "track", statistic: "survival", traits: ["concentrate", "exploration", "move"], diff --git a/src/module/system/action-macros/general/decipher-writing.ts b/src/module/system/action-macros/general/decipher-writing.ts index 928618f758f..a9edfa6dcd3 100644 --- a/src/module/system/action-macros/general/decipher-writing.ts +++ b/src/module/system/action-macros/general/decipher-writing.ts @@ -64,6 +64,12 @@ class DecipherWritingAction extends SingleCheckAction { { outcome: ["criticalFailure"], text: "PF2E.Actions.DecipherWriting.Notes.criticalFailure" }, ], rollOptions: ["action:decipher-writing"], + sampleTasks: { + trained: "PF2E.Actions.DecipherWriting.SampleTasks.Trained", + expert: "PF2E.Actions.DecipherWriting.SampleTasks.Expert", + master: "PF2E.Actions.DecipherWriting.SampleTasks.Master", + legendary: "PF2E.Actions.DecipherWriting.SampleTasks.Legendary", + }, section: "skill", slug: "decipher-writing", statistic: "", diff --git a/src/module/system/action-macros/general/subsist.ts b/src/module/system/action-macros/general/subsist.ts index 3170f2d7323..bc330da9d71 100644 --- a/src/module/system/action-macros/general/subsist.ts +++ b/src/module/system/action-macros/general/subsist.ts @@ -76,6 +76,13 @@ class SubsistAction extends SingleCheckAction { { outcome: ["criticalFailure"], text: "PF2E.Actions.Subsist.Notes.criticalFailure" }, ], rollOptions: ["action:subsist"], + sampleTasks: { + untrained: "PF2E.Actions.Subsist.SampleTasks.Untrained", + trained: "PF2E.Actions.Subsist.SampleTasks.Trained", + expert: "PF2E.Actions.Subsist.SampleTasks.Expert", + master: "PF2E.Actions.Subsist.SampleTasks.Master", + legendary: "PF2E.Actions.Subsist.SampleTasks.Legendary", + }, section: "skill", slug: "subsist", statistic: "", diff --git a/src/module/system/action-macros/performance/perform.ts b/src/module/system/action-macros/performance/perform.ts index f0f1e660d9d..8d1ce27efaf 100644 --- a/src/module/system/action-macros/performance/perform.ts +++ b/src/module/system/action-macros/performance/perform.ts @@ -59,6 +59,13 @@ const action = new SingleCheckAction({ { outcome: ["failure"], text: `${PREFIX}.Notes.failure` }, { outcome: ["criticalFailure"], text: `${PREFIX}.Notes.criticalFailure` }, ], + sampleTasks: { + untrained: `${PREFIX}.SampleTasks.Untrained`, + trained: `${PREFIX}.SampleTasks.Trained`, + expert: `${PREFIX}.SampleTasks.Expert`, + master: `${PREFIX}.SampleTasks.Master`, + legendary: `${PREFIX}.SampleTasks.Legendary`, + }, section: "skill", slug: "perform", statistic: "performance", diff --git a/src/scripts/config/index.ts b/src/scripts/config/index.ts index 09a6fcfc921..d399559aafe 100644 --- a/src/scripts/config/index.ts +++ b/src/scripts/config/index.ts @@ -813,6 +813,14 @@ export const PF2ECONFIG = { "PF2E.ProficiencyLevel4", // legendary ] as const, + proficiencyRanks: { + untrained: "PF2E.ProficiencyLevel0", + trained: "PF2E.ProficiencyLevel1", + expert: "PF2E.ProficiencyLevel2", + master: "PF2E.ProficiencyLevel3", + legendary: "PF2E.ProficiencyLevel4", + } as const, + actorSizes: sizeTypes, actorTypes, diff --git a/static/lang/action-en.json b/static/lang/action-en.json index 123f97f3bbe..08417a43819 100644 --- a/static/lang/action-en.json +++ b/static/lang/action-en.json @@ -82,13 +82,20 @@ "Title": "Avoid Notice" }, "Balance": { - "Description": "

You move across a narrow surface or uneven ground, attempting an Acrobatics check against its Balance DC. You are off-guard while on a narrow surface or uneven ground.

Critical Success You move up to your Speed.
Success You move up to your Speed, treating it as difficult terrain (every 5 feet costs 10 feet of movement).
Failure You must remain stationary to keep your balance (wasting the action) or you fall. If you fall, your turn ends.
Critical Failure You fall and your turn ends.

Sample Balance Tasks

Untrained tangled roots, uneven cobblestones

Trained wooden beam

Expert deep, loose gravel

Master tightrope, smooth sheet of ice

Legendary razor's edge, chunks of floor falling in midair

", + "Description": "

You move across a narrow surface or uneven ground, attempting an Acrobatics check against its Balance DC. You are off-guard while on a narrow surface or uneven ground.

Critical Success You move up to your Speed.
Success You move up to your Speed, treating it as difficult terrain (every 5 feet costs 10 feet of movement).
Failure You must remain stationary to keep your balance (wasting the action) or you fall. If you fall, your turn ends.
Critical Failure You fall and your turn ends.

", "Notes": { "criticalFailure": "Critical Failure You fall and your turn ends.", "criticalSuccess": "Critical Success You move up to your Speed.", "failure": "Failure You must remain stationary to keep your balance (wasting the action) or you fall. If you fall, your turn ends.", "success": "Success You move up to your Speed, treating it as difficult terrain (every 5 feet costs 10 feet of movement)." }, + "SampleTasks": { + "Untrained": "tangled roots, uneven cobblestones", + "Trained": "wooden beam", + "Expert": "deep, loose gravel", + "Master": "tightrope, smooth sheet of ice", + "Legendary": "razor's edge, chunks of floor falling in midair" + }, "Title": "Balance" }, "BonMot": { @@ -104,12 +111,19 @@ "Title": "Burrow" }, "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}.

Sample Climb Tasks

Untrained ladder, steep slope, low-branched tree

Trained rigging, rope, typical tree

Expert wall with small handholds and footholds

Master ceiling with handholds and footholds, rock wall

Legendary smooth surface

", + "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}.

", "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.", "success": "Success You move along the incline." }, + "SampleTasks": { + "Untrained": "ladder, steep slope, low-branched tree", + "Trained": "rigging, rope, typical tree", + "Expert": "wall with small handholds and footholds", + "Master": "ceiling with handholds and footholds, rock wall", + "Legendary": "smooth surface" + }, "Title": "Climb" }, "Coerce": { @@ -227,13 +241,19 @@ "UnspecificHandwriting": "Unspecific Handwriting" }, "DecipherWriting": { - "Description": "

You attempt to decipher complicated writing or literature on an obscure topic. This usually takes 1 minute per page of text, but might take longer (typically an hour per page for decrypting ciphers or the like). The text must be in a language you can read, though the GM might allow you to attempt to decipher text written in an unfamiliar language using Society instead.

The DC is determined by the GM based on the state or complexity of the document. The GM might have you roll one check for a short text or a check for each section of a larger text.

Critical Success You understand the true meaning of the text.

Success You understand the true meaning of the text. If it was a coded document, you know the general meaning but might not have a word-for-word translation.

Failure You can't understand the text and take a –2 circumstance penalty to further checks to decipher it.

Critical Failure You believe you understand the text on that page, but you have in fact misconstrued its message.

Sample Decipher Tasks

Trained entry-level philosophy treatise

Expert complex code, such as a cipher

Master spymaster's code or advanced research notes

Legendary esoteric planar text written in metaphor by an ancient celestial

", + "Description": "

You attempt to decipher complicated writing or literature on an obscure topic. This usually takes 1 minute per page of text, but might take longer (typically an hour per page for decrypting ciphers or the like). The text must be in a language you can read, though the GM might allow you to attempt to decipher text written in an unfamiliar language using Society instead.

The DC is determined by the GM based on the state or complexity of the document. The GM might have you roll one check for a short text or a check for each section of a larger text.

Critical Success You understand the true meaning of the text.

Success You understand the true meaning of the text. If it was a coded document, you know the general meaning but might not have a word-for-word translation.

Failure You can't understand the text and take a –2 circumstance penalty to further checks to decipher it.

Critical Failure You believe you understand the text on that page, but you have in fact misconstrued its message.

", "Notes": { "criticalFailure": "Critical Failure You believe you understand the text on that page, but you have in fact misconstrued its message.", "criticalSuccess": "Critical Success You understand the true meaning of the text.", "failure": "Failure You can't understand the text and take a –2 circumstance penalty to further checks to decipher it.", "success": "Success You understand the true meaning of the text. If it was a coded document, you know the general meaning but might not have a word-for-word translation." }, + "SampleTasks": { + "Trained": "entry-level philosophy treatise", + "Expert": "complex code, such as a cipher", + "Master": "spymaster's code or advanced research notes", + "Legendary": "esoteric planar text written in metaphor by an ancient celestial" + }, "Title": "Decipher Writing", "Warning": { "NoSkill": "The Decipher Writing action can be used with different skills, and no skill was specified. The skills used for Deciphering Writing and the types of texts they usually decipher are: Arcana for writing about magic or science, Occultism for esoteric texts about mysteries and philosophy, Religion for scripture, or Society for coded messages or archaic documents." @@ -279,13 +299,20 @@ "Title": "Drop Prone" }, "EarnIncome": { - "Description": "

You use one of your skills to make money during downtime. The GM assigns a task level representing the most lucrative job available. You can search for lower-level tasks, with the GM determining whether you find any. Sometimes you can attempt to find better work than the initial offerings, though this takes time and requires using the Diplomacy skill to Gather Information, doing some research, or socializing.

When you take on a job, the GM secretly sets the DC of your skill check. After your first day of work, you roll to determine your earnings. You gain an amount of income based on your result, the task's level, and your proficiency rank (as listed on the Income Earned table).

You can continue working at the task on subsequent days without needing to roll again. For each day you spend after the first, you earn the same amount as the first day, up until the task's completion. The GM determines how long you can work at the task. Most tasks last a week or two, though some can take months or even years.

Critical Success You do outstanding work. Gain the amount of currency listed for the task level + 1 and your proficiency rank.

Success You do competent work. Gain the amount of currency listed for the task level and your proficiency rank.

Failure You do shoddy work and get paid the bare minimum for your time. Gain the amount of currency listed in the failure column for the task level. The GM will likely reduce how long you can continue at the task.

Critical Failure You earn nothing for your work and are fired immediately. You can't continue at the task. Your reputation suffers, potentially making it difficult for you to find rewarding jobs in that community in the future.

Sample Earn Income Tasks

These examples use Alcohol Lore to work in a bar or Legal Lore to perform legal work.

Trained bartend, do legal research

Expert curate drink selection, present minor court cases

Master run a large brewery, present important court cases

Legendary run an international brewing franchise, present a case in Hell's courts

", + "Description": "

You use one of your skills to make money during downtime. The GM assigns a task level representing the most lucrative job available. You can search for lower-level tasks, with the GM determining whether you find any. Sometimes you can attempt to find better work than the initial offerings, though this takes time and requires using the Diplomacy skill to Gather Information, doing some research, or socializing.

When you take on a job, the GM secretly sets the DC of your skill check. After your first day of work, you roll to determine your earnings. You gain an amount of income based on your result, the task's level, and your proficiency rank (as listed on the Income Earned table).

You can continue working at the task on subsequent days without needing to roll again. For each day you spend after the first, you earn the same amount as the first day, up until the task's completion. The GM determines how long you can work at the task. Most tasks last a week or two, though some can take months or even years.

Critical Success You do outstanding work. Gain the amount of currency listed for the task level + 1 and your proficiency rank.

Success You do competent work. Gain the amount of currency listed for the task level and your proficiency rank.

Failure You do shoddy work and get paid the bare minimum for your time. Gain the amount of currency listed in the failure column for the task level. The GM will likely reduce how long you can continue at the task.

Critical Failure You earn nothing for your work and are fired immediately. You can't continue at the task. Your reputation suffers, potentially making it difficult for you to find rewarding jobs in that community in the future.

", "Notes": { "criticalFailure": "Critical Failure You earn nothing for your work and are fired immediately. You can't continue at the task. Your reputation suffers, potentially making it difficult for you to find rewarding jobs in that community in the future.", "criticalSuccess": "Critical Success You do outstanding work. Gain the amount of currency listed for the task level + 1 and your proficiency rank.", "failure": "Failure You do shoddy work and get paid the bare minimum for your time. Gain the amount of currency listed in the failure column for the task level. The GM will likely reduce how long you can continue at the task.", "success": "Success You do competent work. Gain the amount of currency listed for the task level and your proficiency rank." }, + "SampleTasks": { + "Caption": "These examples use Alcohol Lore to work in a bar or Legal Lore to perform legal work.", + "Trained": "bartend, do legal research", + "Expert": "curate drink selection, present minor court cases", + "Master": "run a large brewery, present important court cases", + "Legendary": "run an international brewing franchise, present a case in Hell's courts" + }, "Title": "Earn Income" }, "EncouragingWords": { @@ -339,21 +366,35 @@ "Title": "Fly" }, "ForceOpen": { - "Description": "

Using your body, a lever, or some other tool, you attempt to forcefully open a door, window, container or heavy gate. With a high enough result, you can even smash through walls. Without a crowbar, prying something open takes a -2 item penalty to the Athletics check to Force Open.

Critical Success You open the door, window, container, or gate and can avoid damaging it in the process.
Success You break the door, window, container, or gate open, and it gains the @UUID[Compendium.pf2e.conditionitems.Item.6dNUvdb1dhToNDj3]{broken} condition. If it's especially sturdy, the GM might have it take damage but not be broken.
Critical Failure Your attempt jams the door, window, container, or gate shut, imposing a –2 circumstance penalty on future attempts to Force it Open.

Sample Force Open Tasks

Untrained fabric, flimsy glass

Trained ice, sturdy glass

Expert flimsy wooden door, wooden portcullis

Master sturdy wooden door, iron portcullis, metal bar

Legendary stone or iron door

", + "Description": "

Using your body, a lever, or some other tool, you attempt to forcefully open a door, window, container or heavy gate. With a high enough result, you can even smash through walls. Without a crowbar, prying something open takes a -2 item penalty to the Athletics check to Force Open.

Critical Success You open the door, window, container, or gate and can avoid damaging it in the process.
Success You break the door, window, container, or gate open, and it gains the @UUID[Compendium.pf2e.conditionitems.Item.6dNUvdb1dhToNDj3]{broken} condition. If it's especially sturdy, the GM might have it take damage but not be broken.
Critical Failure Your attempt jams the door, window, container, or gate shut, imposing a –2 circumstance penalty on future attempts to Force it Open.

", "NoCrowbarPenalty": "No Crowbar", "Notes": { "criticalFailure": "Critical Failure Your attempt jams the door, window, container, or gate shut, imposing a -2 circumstance penalty on future attempts to Force it Open.", "criticalSuccess": "Critical Success You open the door, window, container, or gate and can avoid damaging it in the process.", "success": "Success You break the door, window, container, or gate open, and it gains the @UUID[Compendium.pf2e.conditionitems.Item.6dNUvdb1dhToNDj3]{broken} condition. If it's especially sturdy, the GM might have it take damage but not be broken." }, + "SampleTasks": { + "Untrained": "fabric, flimsy glass", + "Trained": "ice, sturdy glass", + "Expert": "flimsy wooden door, wooden portcullis", + "Master": "sturdy wooden door, iron portcullis, metal bar", + "Legendary": "stone or iron door" + }, "Title": "Force Open" }, "GatherInformation": { - "Description": "

You canvass local markets, taverns, and gathering places in an attempt to learn about a specific individual or topic. The GM determines the DC of the check and the amount of time it takes (typically 2 hours, but sometimes more), along with any benefit you might be able to gain by spending coin on bribes, drinks, or gifts.

Success You collect information about the individual or topic. The GM determines the specifics.
Critical Failure You collect incorrect information about the individual or topic.

Sample Gather Information Tasks

Untrained talk of the town

Trained common rumor

Expert obscure rumor, poorly guarded secret

Master well-guarded or esoteric information

Legendary information known only to an incredibly select few, or only to extraordinary beings

", + "Description": "

You canvass local markets, taverns, and gathering places in an attempt to learn about a specific individual or topic. The GM determines the DC of the check and the amount of time it takes (typically 2 hours, but sometimes more), along with any benefit you might be able to gain by spending coin on bribes, drinks, or gifts.

Success You collect information about the individual or topic. The GM determines the specifics.
Critical Failure You collect incorrect information about the individual or topic.

", "Notes": { "criticalFailure": "Critical Failure You collect incorrect information about the individual or topic.", "success": "Success You collect information about the individual or topic. The GM determines the specifics." }, + "SampleTasks": { + "Untrained": "talk of the town", + "Trained": "common rumor", + "Expert": "obscure rumor, poorly guarded secret", + "Master": "well-guarded or esoteric information", + "Legendary": "information known only to an incredibly select few, or only to extraordinary beings" + }, "Title": "Gather Information" }, "GrabAnEdge": { @@ -498,12 +539,18 @@ "Title": "Make an Impression" }, "ManeuverInFlight": { - "Description": "

You try a difficult maneuver while flying. Attempt an Acrobatics check. The GM determines what maneuvers are possible, but they rarely allow you to move farther than your fly Speed.

Success You succeed at the maneuver.
Failure Your maneuver fails. The GM chooses if you simply can't move or if some other detrimental effect happens. The outcome should be appropriate for the maneuver you attempted (for instance, being blown off course if you were trying to fly against a strong wind).
Critical Failure As failure, but the consequence is more dire.

Sample Maneuver in Flight Tasks

Trained steep ascent or descent

Expert fly against the wind, hover midair

Master reverse direction

Legendary fly through gale force winds

", + "Description": "

You try a difficult maneuver while flying. Attempt an Acrobatics check. The GM determines what maneuvers are possible, but they rarely allow you to move farther than your fly Speed.

Success You succeed at the maneuver.
Failure Your maneuver fails. The GM chooses if you simply can't move or if some other detrimental effect happens. The outcome should be appropriate for the maneuver you attempted (for instance, being blown off course if you were trying to fly against a strong wind).
Critical Failure As failure, but the consequence is more dire.

", "Notes": { "criticalFailure": "Critical Failure As failure, but the consequence is more dire.", "failure": "Failure Your maneuver fails. The GM chooses if you simply can't move or if some other detrimental effect happens. The outcome should be appropriate for the maneuver you attempted (for instance, being blown off course if you were trying to fly against a strong wind).", "success": "Success You succeed at the maneuver." }, + "SampleTasks": { + "Trained": "steep ascent or descent", + "Expert": "fly against the wind, hover midair", + "Master": "reverse direction", + "Legendary": "fly through gale force winds" + }, "Title": "Maneuver in Flight" }, "Mount": { @@ -519,13 +566,20 @@ "Title": "Palm an Object" }, "Perform": { - "Description": "

When making a brief performance - one song, a quick dance, or a few jokes - you use the Perform action. This action is most useful when you want to prove your capability or impress someone quickly. Performing rarely has an impact on its own, but it might influence the DCs of subsequent Diplomacy checks against the observers, or even change their attitudes if the GM sees fit.

Critical Success Your performance impresses the observers, and they're likely to share stories of your ability.
Success You prove yourself, and observers appreciate the quality of your performance.
Failure Your performance falls flat.
Critical Failure You demonstrate only incompetence.

Sample Perform Tasks

Untrained audience of commoners

Trained audience of artisans

Expert audience of merchants or minor nobles

Master audience of high nobility or minor royalty

Legendary audience of major royalty or otherworldly beings

", + "Description": "

When making a brief performance - one song, a quick dance, or a few jokes - you use the Perform action. This action is most useful when you want to prove your capability or impress someone quickly. Performing rarely has an impact on its own, but it might influence the DCs of subsequent Diplomacy checks against the observers, or even change their attitudes if the GM sees fit.

Critical Success Your performance impresses the observers, and they're likely to share stories of your ability.
Success You prove yourself, and observers appreciate the quality of your performance.
Failure Your performance falls flat.
Critical Failure You demonstrate only incompetence.

", "Notes": { "criticalFailure": "Critical Failure You demonstrate only incompetence.", "criticalSuccess": "Critical Success Your performance impresses the observers, and they're likely to share stories of your ability.", "failure": "Failure Your performance falls flat.", "success": "Success You prove yourself, and observers appreciate the quality of your performance." }, + "SampleTasks": { + "Untrained": "audience of commoners", + "Trained": "audience of artisans", + "Expert": "audience of merchants or minor nobles", + "Master": "audience of high nobility or minor royalty", + "Legendary": "audience of major royalty or otherworldly beings" + }, "Acting": { "Title": "Acting" }, @@ -659,7 +713,7 @@ "Title": "Seek" }, "SenseDirection": { - "Description": "

Using the stars, the position of the sun, traits of the geography or flora, or the behavior of fauna, you can stay oriented in the wild. Typically, you attempt a Survival check only once per day, but some environments or changes might necessitate rolling more often. The GM determines the DC and how long this activity takes (usually just a minute or so). More unusual locales or those you're unfamiliar with might require you to have a minimum proficiency rank to Sense Direction. Without a compass, you take a –2 item penalty to checks to Sense Direction.


Critical Success You get an excellent sense of where you are. If you are in an environment with cardinal directions, you know them exactly.

Success You gain enough orientation to avoid becoming hopelessly lost. If you are in an environment with cardinal directions, you have a sense of those directions.

Sense Direction Tasks

>Untrained determine a cardinal direction using the sun

Trained find an overgrown path in a forest

Expert navigate a hedge maze

Master navigate a byzantine labyrinth or relatively featureless desert

Legendary navigate an ever-changing dream realm

", + "Description": "

Using the stars, the position of the sun, traits of the geography or flora, or the behavior of fauna, you can stay oriented in the wild. Typically, you attempt a Survival check only once per day, but some environments or changes might necessitate rolling more often. The GM determines the DC and how long this activity takes (usually just a minute or so). More unusual locales or those you're unfamiliar with might require you to have a minimum proficiency rank to Sense Direction. Without a compass, you take a –2 item penalty to checks to Sense Direction.

Critical Success You get an excellent sense of where you are. If you are in an environment with cardinal directions, you know them exactly.

Success You gain enough orientation to avoid becoming hopelessly lost. If you are in an environment with cardinal directions, you have a sense of those directions.

", "Modifier": { "NoCompass": "No Compass" }, @@ -667,6 +721,13 @@ "criticalSuccess": "Critical Success You get an excellent sense of where you are. If you are in an environment with cardinal directions, you know them exactly.", "success": "Success You gain enough orientation to avoid becoming hopelessly lost. If you are in an environment with cardinal directions, you have a sense of those directions." }, + "SampleTasks": { + "Untrained": "determine a cardinal direction using the sun", + "Trained": "find an overgrown path in a forest", + "Expert": "navigate a hedge maze", + "Master": "navigate a byzantine labyrinth or relatively featureless desert", + "Legendary": "navigate an ever-changing dream realm" + }, "Title": "Sense Direction" }, "SenseMotive": { @@ -701,12 +762,16 @@ "Title": "Sneak" }, "Squeeze": { - "Description": "

You contort yourself to squeeze through a space so small you can barely fit through. This action is for exceptionally small spaces; many tight spaces are difficult terrain that you can move through more quickly and without a check.

Critical Success You squeeze through the tight space in 1 minute per 10 feet of squeezing.
Success You squeeze through in 1 minute per 5 feet.
Critical Failure You become stuck in the tight space. While you're stuck, you can spend 1 minute attempting another Acrobatics check at the same DC. Any result on that check other than a critical failure causes you to become unstuck.

Sample Squeeze Tasks

Trained space barely fitting your shoulders

Master space barely fitting your head

", + "Description": "

You contort yourself to squeeze through a space so small you can barely fit through. This action is for exceptionally small spaces; many tight spaces are difficult terrain that you can move through more quickly and without a check.

Critical Success You squeeze through the tight space in 1 minute per 10 feet of squeezing.
Success You squeeze through in 1 minute per 5 feet.
Critical Failure You become stuck in the tight space. While you're stuck, you can spend 1 minute attempting another Acrobatics check at the same DC. Any result on that check other than a critical failure causes you to become unstuck.

", "Notes": { "criticalFailure": "Critical Failure You become stuck in the tight space. While you're stuck, you can spend 1 minute attempting another Acrobatics check at the same DC. Any result on that check other than a critical failure causes you to become unstuck.", "criticalSuccess": "Critical Success You squeeze through the tight space in 1 minute per 10 feet of squeezing.", "success": "Success You squeeze through in 1 minute per 5 feet." }, + "SampleTasks": { + "Trained": "space barely fitting your shoulders", + "Master": "space barely fitting your head" + }, "Title": "Squeeze" }, "Stand": { @@ -748,13 +813,20 @@ }, "Subsist": { "AfterExplorationPenalty": "After Exploration", - "Description": "

You try to provide food and shelter for yourself, and possibly others as well, with a standard of living. This typically uses Society if you’re in a settlement or Survival if you’re in the wild. The GM determines the DC based on the nature of the place where you're trying to Subsist. You might need a minimum proficiency rank to Subsist in particularly strange environments. Unlike most downtime activities, you can Subsist after 8 hours or less of exploration, but if you do, you take a –5 penalty.

Sample Subsist Tasks

Untrained a lush forest with calm weather or a large city with plentiful resources

Trained typical hillside or village

Expert typical mountains or insular hamlet

Master typical desert or city under siege

Legendary barren wasteland or city of undead


Critical Success You either provide a subsistence living for yourself and one additional creature, or you improve your own food and shelter, granting yourself a comfortable living.

Success You find enough food and shelter with basic protection from the elements to provide you a subsistence living.

Failure You're exposed to the elements and don't get enough food, becoming @UUID[Compendium.pf2e.conditionitems.Item.HL2l2VRSaQHu9lUw]{Fatigued} until you attain sufficient food and shelter.

Critical Failure You attract trouble, eat something you shouldn't, or otherwise worsen your situation. You take a –2 circumstance penalty to checks to Subsist for 1 week. You don't find any food at all; if you don't have any stored up, you're in danger of starving or dying of thirst if you continue failing.

", + "Description": "

You try to provide food and shelter for yourself, and possibly others as well, with a standard of living. This typically uses Society if you’re in a settlement or Survival if you’re in the wild. The GM determines the DC based on the nature of the place where you're trying to Subsist. You might need a minimum proficiency rank to Subsist in particularly strange environments. Unlike most downtime activities, you can Subsist after 8 hours or less of exploration, but if you do, you take a –5 penalty.

Critical Success You either provide a subsistence living for yourself and one additional creature, or you improve your own food and shelter, granting yourself a comfortable living.

Success You find enough food and shelter with basic protection from the elements to provide you a subsistence living.

Failure You're exposed to the elements and don't get enough food, becoming @UUID[Compendium.pf2e.conditionitems.Item.HL2l2VRSaQHu9lUw]{Fatigued} until you attain sufficient food and shelter.

Critical Failure You attract trouble, eat something you shouldn't, or otherwise worsen your situation. You take a –2 circumstance penalty to checks to Subsist for 1 week. You don't find any food at all; if you don't have any stored up, you're in danger of starving or dying of thirst if you continue failing.

", "Notes": { "criticalFailure": "Critical Failure You attract trouble, eat something you shouldn't, or otherwise worsen your situation. You take a –2 circumstance penalty to checks to Subsist for 1 week. You don't find any food at all; if you don't have any stored up, you're in danger of starving or dying of thirst if you continue failing. @UUID[Compendium.pf2e.other-effects.Item.wHWWHkjDXmJl4Ia6]{Effect: Adverse Subsist Situation}", "criticalSuccess": "Critical Success You either provide a subsistence living for yourself and one additional creature, or you improve your own food and shelter, granting yourself a comfortable living.", "failure": "Failure You're exposed to the elements and don't get enough food, becoming fatigued until you attain sufficient food and shelter.", "success": "Success You find enough food and shelter with basic protection from the elements to provide you a subsistence living." }, + "SampleTasks": { + "Untrained": "a lush forest with calm weather or a large city with plentiful resources", + "Trained": "typical hillside or village", + "Expert": "typical mountains or insular hamlet", + "Master": "typical desert or city under siege", + "Legendary": "barren wasteland or city of undead" + }, "Title": "Subsist", "Warning": { "NoSkill": "The Subsist action can be used with different skills, and no skill was specified. This typically uses Society if you're in a settlement or Survival if you're in the wild." @@ -765,12 +837,19 @@ "Title": "Sustain" }, "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.

Sample Swim Tasks

Untrained lake or other still water

Trained flowing water, like a river

Expert swiftly flowing river

Master stormy sea

Legendary maelstrom, waterfall

", + "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.

", "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.", "success": "Success You move through the water." }, + "SampleTasks": { + "Untrained": "lake or other still water", + "Trained": "flowing water, like a river", + "Expert": "swiftly flowing river", + "Master": "stormy sea", + "Legendary": "maelstrom, waterfall" + }, "Title": "Swim" }, "TakeCover": { @@ -790,12 +869,19 @@ "Title": "Tamper" }, "Track": { - "Description": "

You follow tracks, moving at up to half your travel Speed, using the @UUID[Compendium.pf2e.journals.JournalEntry.S55aqwWIzpQRFhcq.JournalEntryPage.YVLMgNxXTUQuDJgp]{Travel Speed} rules. After a successful check to Track, you can continue following the tracks at half your Speed without attempting additional checks for up to 1 hour.

In some cases, you might Track in an encounter. In this case, Track is a single action and doesn't have the exploration trait, but you might need to roll more often because you're in a tense situation. The GM determines how often you must attempt this check.

You attempt your Survival check when you start Tracking, once every hour you continue tracking, and any time something significant changes in the trail. The GM determines the DCs for such checks, depending on the freshness of the trail, the weather, and the type of ground.

Sample Track Tasks

Untrained the path of a large army following a road

Trained relatively fresh tracks of a rampaging bear through the plains

Expert a nimble panther's tracks through a jungle, tracks obscured by rainfall

Master tracks obscured by winter snow, tracks of a mouse or smaller creature, tracks left on surfaces that can't hold prints like bare rock

Legendary old tracks through a windy desert's sands, tracks obscured by a major blizzard or hurricane

Success You find the trail or continue to follow the one you're already following.

Failure You lose the trail but can try again after a 1-hour delay.

Critical Failure You lose the trail and can't try again for 24 hours.

", + "Description": "

You follow tracks, moving at up to half your travel Speed, using the @UUID[Compendium.pf2e.journals.JournalEntry.S55aqwWIzpQRFhcq.JournalEntryPage.YVLMgNxXTUQuDJgp]{Travel Speed} rules. After a successful check to Track, you can continue following the tracks at half your Speed without attempting additional checks for up to 1 hour.

In some cases, you might Track in an encounter. In this case, Track is a single action and doesn't have the exploration trait, but you might need to roll more often because you're in a tense situation. The GM determines how often you must attempt this check.

You attempt your Survival check when you start Tracking, once every hour you continue tracking, and any time something significant changes in the trail. The GM determines the DCs for such checks, depending on the freshness of the trail, the weather, and the type of ground.

Success You find the trail or continue to follow the one you're already following.

Failure You lose the trail but can try again after a 1-hour delay.

Critical Failure You lose the trail and can't try again for 24 hours.

", "Notes": { "criticalFailure": "Critical Failure You lose the trail and can't try again for 24 hours.", "failure": "Failure You lose the trail but can try again after a 1-hour delay.", "success": "Success You find the trail or continue to follow the one you're already following." }, + "SampleTasks": { + "Untrained": "the path of a large army following a road", + "Trained": "relatively fresh tracks of a rampaging bear through the plains", + "Expert": "a nimble panther's tracks through a jungle, tracks obscured by rainfall", + "Master": "tracks obscured by winter snow, tracks of a mouse or smaller creature, tracks left on surfaces that can't hold prints like bare rock", + "Legendary": "old tracks through a windy desert's sands, tracks obscured by a major blizzard or hurricane" + }, "Title": "Track" }, "TreatDisease": { @@ -888,6 +974,9 @@ "x": "{type} Check", "x-attack-roll": "{type} Attack Roll" }, + "ActionsSampleTasks": { + "Title": "Sample {action} Tasks" + }, "ActionsWarning": { "NoActor": "Select at least one token before rolling, or assign a default character.", "NoStatistic": "Actor {name} ({id}) does not have a statistic for {statistic}.", diff --git a/static/templates/actors/actions/base/chat-message-content.hbs b/static/templates/actors/actions/base/chat-message-content.hbs index a155797dbac..49ae41aab29 100644 --- a/static/templates/actors/actions/base/chat-message-content.hbs +++ b/static/templates/actors/actions/base/chat-message-content.hbs @@ -4,12 +4,21 @@ {{glyph}} {{/if}} +
{{#each traits as |trait|}} {{localize trait.label}} {{/each}}
{{#if description}} -
{{{localize description}}} {{/if}} +{{#if sampleTasks}} +
+
+

{{localize "PF2E.ActionsSampleTasks.Title" action=(localize name)}}

+ {{#each sampleTasks as |task|}} +

{{localize task.label}} {{localize task.text}}

+ {{/each}} +
+{{/if}}