Prefactor
This commit is contained in:
@@ -1,86 +0,0 @@
|
|||||||
---
|
|
||||||
title: Anatomy of a Player Character
|
|
||||||
path: awq
|
|
||||||
cover:
|
|
||||||
showInHeader: false
|
|
||||||
meta:
|
|
||||||
publicationDate: 2025-10-08T08:43:00.000Z
|
|
||||||
status: draft
|
|
||||||
isFeatured: false
|
|
||||||
tags: []
|
|
||||||
seo:
|
|
||||||
noIndex: false
|
|
||||||
---
|
|
||||||
Every model shares some common abilities
|
|
||||||
|
|
||||||
## Main Characteristics
|
|
||||||
Characteristics define the innate abilities of a model, and each characteristic has two skills associated with it
|
|
||||||
- **Weapon Skill (WS):** Aptitude in landing and avoiding blows in close combat; governs _Melee_ and _Defence_
|
|
||||||
- **Ballistic Skill (BS):** Capability of Hand-Eye-Coordination; governs _Skirmish_ and _Evasion_
|
|
||||||
- **Strength (S):** Used for brute force, stamina and might; governs _Brawn_ and _Toil_
|
|
||||||
- **Toughness (T):** Resistance to physical Trauma; governs _Consume Alcohol_ and _Endurance_
|
|
||||||
- **Initiative(I):** Reflects speed of thought and perception; governs _Perception_ and _Outdoor Survival_
|
|
||||||
- **Dexterity (Dex):** Affinity for performing fine and delicate manual tasks; governs _Skullduggery_ and _Tradecraft_
|
|
||||||
- **Agility (Ag):** Physical coordination and natural athleticism; governs _Stealth_ and _Athletics_
|
|
||||||
- **Intelligence (Int):** Power of thought, analysis, and understanding; governs _Intuition_ and _Education_
|
|
||||||
- **Willpower (WP):** General strength if mind; governs _Cool_ and _Animal Handling_
|
|
||||||
- **Fellowship (Fel):** Ability to get on with people; governs _Leadership_ and _Charm_
|
|
||||||
|
|
||||||
## Secondary Characteristics
|
|
||||||
- **Corruption Threshold (CT):[^*]** Ability to withstand _Mutation_
|
|
||||||
- **Insanity Threshold (IT):[^*]** Ability to withstand _Insanity_
|
|
||||||
- **Wounds (W):** Number of wounds a model can endure before _out of play_
|
|
||||||
- **Movement (M):** Indicator of how far a model can move under normal conditionsA
|
|
||||||
- **Fate Points (FP):[^*]** Can be used to avoid certain death and dark fates
|
|
||||||
- **Luck Points (LP):[^*]** Used for Re-rolls
|
|
||||||
- **Attacks (A):** Indicator of the numbers of attacks a character can make in a single round
|
|
||||||
- **Magic (Mag):** Denotes the Model's Wizard Level
|
|
||||||
|
|
||||||
## Skills
|
|
||||||
Used in _Checks_
|
|
||||||
- **Melee (WS):** Used to make _Melee Attack_ actions
|
|
||||||
- **Defense (WS):** Used to defend against a model's _Melee Attack_ action
|
|
||||||
- **Shooting (BS):** Used to make _Ranged Attack_ actions with _Missile_ weapons
|
|
||||||
- **Throwing (BS):** Used to make _Ranged Attack_ actions with _Throwing_ weapons
|
|
||||||
- **Brawn (S):** Used for immediate feats of strength
|
|
||||||
- **Toil (T):** Used for prolonged manual labor
|
|
||||||
- **Consume Alcohol (T):** Used for resisting short-term hazards like alcohol and poison
|
|
||||||
- **Endurance (T):** Used to endure hardship, withstand deprivation, and survive harsh environments
|
|
||||||
- **Perception (I):** Used to notice things
|
|
||||||
- **Dodge (I):** Used to evade attacks and immediate hazards, e.g. Traps
|
|
||||||
- **Stealth (Ag):** Used for moving quietly and concealing
|
|
||||||
- **Athletics (Ag):** Used for running, jumping, climbing, and swimming
|
|
||||||
- **Streetwise (Dex):** Used for picking locks or pockets, disarming traps and other feats of Sleight of Hand
|
|
||||||
- **Crafting (Dex):** Used when crafting trappings
|
|
||||||
- **Intuition (Int):** Used for detecting subterfuge and determining value of objects
|
|
||||||
- **Education (Int):** Used for recalling relevant information
|
|
||||||
- **Cool (WP):** Used to remain calm under stress, resisting fear, and psychological coercion
|
|
||||||
- **Animal Handling (WP):** Used to charm, train, and care for animals
|
|
||||||
- **Leadership (Fel):** Used for intimidation, command, and coercing obedience; often resisted by _Discipline_
|
|
||||||
- **Charm (Fel):** Used for deceiving, blathering, haggling, gossiping; usually resisted by _Intuition_
|
|
||||||
|
|
||||||
## Traits
|
|
||||||
Inherent abilities often based on Species, examples include Flier (for flying Monsters), Dark Vision, Mutation, and so on
|
|
||||||
|
|
||||||
## Lore[^*]
|
|
||||||
Define what a character knows and specialist skills and come in the following categories
|
|
||||||
- _Academic:_ Represent various academic fields like Accountancy, Anatomy, History and Law
|
|
||||||
- _Cultural:_ Represent the knowledge of social groups and language
|
|
||||||
- _Enemy:_ Represent the knowledge of adversaries and how to effectively combat them
|
|
||||||
- _Environment:_ Represent the knowledge of surviving in various hazardous environment
|
|
||||||
- _Magic Lores:_ Represent the knowledge of the various forms of magic and enables casting spells from them+
|
|
||||||
- _Specialist Weapon Groups:_ Represent training with special weapons like Polearms, Two-Handed Swords, Blackpowder Guns
|
|
||||||
- _Trade Lores:_ Represent the knowledge and ability to create certain trappings or work in certain fields, example Blacksmith, Weaver, Engineer, Artist
|
|
||||||
- _Vehicle Lores:_ Represent knowledge in operating vehicles and mounts
|
|
||||||
|
|
||||||
## Talents[^*]
|
|
||||||
Represent certain knacks, tricks and innate abilities a character has, examples would be Ambidextrous, Aetheric Attunement, Menacing or Acute Senses
|
|
||||||
|
|
||||||
## Maneuvers[^*]
|
|
||||||
Represent special combat actions and tactics a character can employ during combat, examples include Formation Fighting, Disarm, and Shield Bash
|
|
||||||
|
|
||||||
## Careers[^*]
|
|
||||||
Represent building blocks of a character, that provide certain skills, lores, talents, maneuvers, etc.
|
|
||||||
|
|
||||||
|
|
||||||
[^*]: Only applicable for _Player Characters_
|
|
||||||
88
content/awq/articles/checks.mdoc
Normal file
88
content/awq/articles/checks.mdoc
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
title: Checks
|
||||||
|
summary: How we roll dice and why
|
||||||
|
path: rules/general
|
||||||
|
cover:
|
||||||
|
showInHeader: false
|
||||||
|
meta:
|
||||||
|
publicationDate: 2025-10-19T22:16:00.000Z
|
||||||
|
status: draft
|
||||||
|
isFeatured: false
|
||||||
|
tags:
|
||||||
|
- crunch
|
||||||
|
- how-and-what
|
||||||
|
author: dave-damage
|
||||||
|
seo:
|
||||||
|
noIndex: false
|
||||||
|
---
|
||||||
|
- Determine the outcome of an action
|
||||||
|
- Use a **Obstacle (Ob.)** to determine **Outcome**
|
||||||
|
- **AWQ** exclusively uses **D6** for checks
|
||||||
|
|
||||||
|
## Outcomes{% Sidenote #outcome-fallbacks marker="§" content="Not all actions ship with the complete set of outcomes, so if a specific outcome is missing, use the following fallbacks: **Boons** become **Failures**, **Complications** become **Successes**, and a missing **Boon** is considered a **Success**" type="crunch" /%}
|
||||||
|
|
||||||
|
- **Bane(⊗):** Action fails spectacular
|
||||||
|
- **Failure(⊖):** Action simply fails
|
||||||
|
- **Complications(⊜):** Action succeeds but with a *Twist*
|
||||||
|
- **Success(⊕):** Actions succeeds
|
||||||
|
- **Boon(⊛):** Actions succeeds with additional benefits
|
||||||
|
|
||||||
|
## Check Modifiers
|
||||||
|
|
||||||
|
### Favour & Peril
|
||||||
|
|
||||||
|
- **Favour (⥣):** Increase chance of success
|
||||||
|
- **Peril (⥥):** Increase chance of failure
|
||||||
|
- **Resolution:** Multiple instances cancel each other
|
||||||
|
- `Peril > Favour`: Roll is *perilous*
|
||||||
|
- `Peril = Favour`: Normal roll
|
||||||
|
- `Favour > Peril`: Roll is *favourable*
|
||||||
|
|
||||||
|
### Re-Rolls(⧆)
|
||||||
|
|
||||||
|
- Re-rolled result is always final result
|
||||||
|
- One attempt per check (Exception: *Dark Deals*)
|
||||||
|
- **Sources:**
|
||||||
|
- *Luck Points:* Spend 1 **LP**
|
||||||
|
- *Dark Deals:* Suffer 1 **Corruption**
|
||||||
|
- *Pushing:* Suffer 1 **Fatigue** or **Stress**
|
||||||
|
|
||||||
|
#### Pushing
|
||||||
|
|
||||||
|
- If initial roll was a *Bane* and succeeds after the *pushing*, the outcome becomes a *Complication*
|
||||||
|
- Cost of a *Push,* depends on the check's **Characteristic**{% Sidenote #push-cost marker="" content="**Fatigue:** **WS**, **BS**, **S**, **T**, **Ag**<br/>\n**Stress:** **I**, **Dex**, **Int**, **WP**, **Fel**" type="crunch" /%}
|
||||||
|
|
||||||
|
## Anatomy
|
||||||
|
|
||||||
|
### Reference Value (RV)
|
||||||
|
Denotes the **Skill** or **Characteristic** used for calculating the **Obtacle**
|
||||||
|
|
||||||
|
### Check Type
|
||||||
|
Denotes the roll-type
|
||||||
|
- **Basic**
|
||||||
|
- **Complex**
|
||||||
|
- **Extended**
|
||||||
|
|
||||||
|
### Check Mode
|
||||||
|
- **Unopposed[⥤]:** RV based on _Self_
|
||||||
|
- **Opposed[]** RV based on _Target_
|
||||||
|
|
||||||
|
### Difficulty
|
||||||
|
Always modifies _RV,_ never _Ob._
|
||||||
|
- Very Easy [○]
|
||||||
|
- Easy [◔ ]
|
||||||
|
- Routine [◑]
|
||||||
|
- Challenging [●]
|
||||||
|
- Difficult [∶]
|
||||||
|
- Hard [∵]
|
||||||
|
- Very Hard [∷]
|
||||||
|
- Impossible [∺]
|
||||||
|
|
||||||
|
### Notation Format
|
||||||
|
`[Check Type] [Check Difficulty] [Check Mode]`
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `Basic[∶] Cool` (unopposed marker usually omitted)
|
||||||
|
- `Extended[∶] Charm Perception`
|
||||||
|
|
||||||
|
|
||||||
17
content/awq/articles/general.mdoc
Normal file
17
content/awq/articles/general.mdoc
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
title: General Crunch
|
||||||
|
path: rules
|
||||||
|
cover:
|
||||||
|
showInHeader: false
|
||||||
|
meta:
|
||||||
|
publicationDate: 2025-10-19T22:14:00.000Z
|
||||||
|
status: draft
|
||||||
|
isFeatured: false
|
||||||
|
tags:
|
||||||
|
- how-and-what
|
||||||
|
- crunch
|
||||||
|
author: dave-damage
|
||||||
|
seo:
|
||||||
|
noIndex: false
|
||||||
|
---
|
||||||
|
Rules that apply in EVERY situation, maybe add some test you lazy bastard
|
||||||
823
content/awq/articles/rules-summary.md
Normal file
823
content/awq/articles/rules-summary.md
Normal file
@@ -0,0 +1,823 @@
|
|||||||
|
## Core Concepts
|
||||||
|
|
||||||
|
### Roles
|
||||||
|
|
||||||
|
**Players**
|
||||||
|
Every natural person playing the game.
|
||||||
|
|
||||||
|
**Adventurers**
|
||||||
|
|
||||||
|
- Players who undergo Expeditions
|
||||||
|
- Have access to Momentum [✠]
|
||||||
|
- Optional roles: Cartographer, Quartermaster, Archivist, Shotcaller, Marshall, Torchbearer
|
||||||
|
|
||||||
|
**Dungeon Master/Mistress (DM)**
|
||||||
|
|
||||||
|
- Controls Adversaries and Hazards
|
||||||
|
- Has access to Threat [✦]
|
||||||
|
|
||||||
|
**Models**
|
||||||
|
Any entity on the Game Board controlled by a Player, represented by a miniature.
|
||||||
|
|
||||||
|
### Model Types
|
||||||
|
|
||||||
|
**Party Models** (controlled by Adventurers)
|
||||||
|
|
||||||
|
- Characters: One per Adventurer; access to most Activities; evolve via Advances
|
||||||
|
- Followers: Follow a single Character; use Obedience to track loyalty
|
||||||
|
- Henchmen: Specialized hired help; use Morale to track loyalty
|
||||||
|
|
||||||
|
**Adversaries** (controlled by DM)
|
||||||
|
|
||||||
|
- Minion [⁎]: Basic Activities
|
||||||
|
- Elite [⁑]: Situational Activities
|
||||||
|
- Champion [⁂]: Wide array of Activities; can use Threat directly; can become Nemesis
|
||||||
|
- Nemesis [⋇]: Returning adversary; evolves like Characters
|
||||||
|
|
||||||
|
**Non-Player Characters (NPCs)**
|
||||||
|
|
||||||
|
- Spawned by Events, Hazards, or Scenarios
|
||||||
|
- Represent neutral parties or quest objectives
|
||||||
|
|
||||||
|
### Resources
|
||||||
|
|
||||||
|
**Character Resources**
|
||||||
|
|
||||||
|
- Luck Points: Re-roll checks
|
||||||
|
- Fate Points: Escape certain death
|
||||||
|
|
||||||
|
**Party Resources**
|
||||||
|
|
||||||
|
- Momentum [✠]: Used during Encounters; fuels Manoeuvres and tactical options; fluctuates throughout combat
|
||||||
|
|
||||||
|
**DM Resources**
|
||||||
|
|
||||||
|
- Threat [✦]: Used during Expeditions and Encounters; powers Adversary abilities and escalates Encounters
|
||||||
|
|
||||||
|
**Momentum Uses**
|
||||||
|
|
||||||
|
- Varies: Perform an Action
|
||||||
|
- 1pt: Decrease Check Difficulty by 2
|
||||||
|
- 1pt: Automatically perform Change Place Manoeuvre
|
||||||
|
- 2pt: Automatically perform Disengage Manoeuvre
|
||||||
|
- 2pt: Activate Weapon Quality requiring Critical Hit
|
||||||
|
- 2pt: Gain 1 additional Reaction until start of next Model's activation
|
||||||
|
- 4pt: Increase Attacks by 1 for next Action
|
||||||
|
|
||||||
|
### Time Structure
|
||||||
|
|
||||||
|
Nested scales from largest to smallest:
|
||||||
|
|
||||||
|
**Season**
|
||||||
|
|
||||||
|
- Consumed by Endeavours and Expeditions
|
||||||
|
- Represents weeks of activity
|
||||||
|
|
||||||
|
**Event**
|
||||||
|
|
||||||
|
- Immediately resolved incident
|
||||||
|
|
||||||
|
**Endeavour**
|
||||||
|
|
||||||
|
- Downtime activity characters undertake
|
||||||
|
|
||||||
|
**Expedition**
|
||||||
|
|
||||||
|
- Single delve into a Dungeon
|
||||||
|
- Contains one or more Encounters
|
||||||
|
|
||||||
|
**Encounter**
|
||||||
|
|
||||||
|
- Isolated interaction with Adversaries or Hazards
|
||||||
|
- Consists of one or more Rounds
|
||||||
|
|
||||||
|
**Round**
|
||||||
|
|
||||||
|
- Each Model acts once
|
||||||
|
- Consists of structured phases
|
||||||
|
|
||||||
|
**Activity**
|
||||||
|
|
||||||
|
- Single action taken by Model
|
||||||
|
- Interaction with location, Hazard, or other Models
|
||||||
|
|
||||||
|
### Locations
|
||||||
|
|
||||||
|
**Dungeon Structure**
|
||||||
|
|
||||||
|
- Dungeon: Confined locality where Expeditions take place; can have multiple Dungeon Levels
|
||||||
|
- Dungeon Level: Single floor/area; represented by Game Board; danger increases with depth
|
||||||
|
- Board Section: Physical tiles representing rooms and corridors
|
||||||
|
|
||||||
|
**Overland Locations**
|
||||||
|
|
||||||
|
- Region: Large area containing multiple location types
|
||||||
|
- Settlement: Safe haven for trading and Endeavours
|
||||||
|
- Wilderness: Dangerous areas connecting Settlements and Dungeons; contains Encounters and Hazards
|
||||||
|
|
||||||
|
**Hazards**
|
||||||
|
Catch-all term for interactive environmental dangers and obstacles.
|
||||||
|
|
||||||
|
**Keywords**
|
||||||
|
Used to signify synergies and antipodes; multiple occurrences usually beneficial for cost or outcome.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Checks System
|
||||||
|
|
||||||
|
### Overview
|
||||||
|
|
||||||
|
- Always use D6
|
||||||
|
- Determines outcome of activities
|
||||||
|
- Rolled against Obstacle (Ob.)
|
||||||
|
- Three check types: Basic, Complex, Extended
|
||||||
|
|
||||||
|
### Check Components
|
||||||
|
|
||||||
|
**Reference Value**
|
||||||
|
Denotes the Skill or Characteristic used for calculating Target Number.
|
||||||
|
|
||||||
|
**Check Mode**
|
||||||
|
|
||||||
|
- Unopposed [⥤]: Reference Value based on Model's Skill
|
||||||
|
- Opposed [⇌]: Reference Value based on Target's skill
|
||||||
|
|
||||||
|
**Difficulty**
|
||||||
|
Always modifies Reference Value, never Obstacle:
|
||||||
|
|
||||||
|
- Very Easy [○]
|
||||||
|
- Easy [◔]
|
||||||
|
- Routine [◑]
|
||||||
|
- Challenging [●]
|
||||||
|
- Difficult [∶]
|
||||||
|
- Hard [∵]
|
||||||
|
- Very Hard [∷]
|
||||||
|
- Impossible [∺]
|
||||||
|
|
||||||
|
**Notation Format**
|
||||||
|
`[Check Type] [Check Difficulty] [Check Mode]`
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
- `Basic[∶] Cool` (unopposed marker usually omitted)
|
||||||
|
- `Extended[∷] Charm⇌Perception`
|
||||||
|
|
||||||
|
### Check Outcomes
|
||||||
|
|
||||||
|
**Bane [⊗]**
|
||||||
|
Check fails with dire consequences. If not specified, treat as Failure.
|
||||||
|
|
||||||
|
**Failure [⊖]**
|
||||||
|
Check simply fails.
|
||||||
|
|
||||||
|
**Complication [⊜]**
|
||||||
|
Check succeeds but with consequences. If not specified, treat as Success.
|
||||||
|
|
||||||
|
**Success [⊕]**
|
||||||
|
Check succeeds as intended.
|
||||||
|
|
||||||
|
**Boon [⊛]**
|
||||||
|
Check succeeds with additional benefits. If not specified, treat as Success.
|
||||||
|
|
||||||
|
### Favour & Peril
|
||||||
|
|
||||||
|
**Favour [⥣]**
|
||||||
|
Increases chances of success.
|
||||||
|
|
||||||
|
**Peril [⥥]**
|
||||||
|
Reduces chances of success.
|
||||||
|
|
||||||
|
**Resolution**
|
||||||
|
Multiple instances cancel each other:
|
||||||
|
|
||||||
|
- Peril > Favour: Roll is perilous
|
||||||
|
- Peril = Favour: Normal roll
|
||||||
|
- Favour > Peril: Roll is favourable
|
||||||
|
|
||||||
|
### Re-Rolls
|
||||||
|
|
||||||
|
**Limitation**
|
||||||
|
One attempt per check (except Dark Deal).
|
||||||
|
Re-rolled result is always final.
|
||||||
|
|
||||||
|
**Sources**
|
||||||
|
|
||||||
|
- Luck Points: Spend 1 LP
|
||||||
|
- Dark Deal: Suffer 1 Corruption
|
||||||
|
- Push: Suffer 1 Stress or Fatigue
|
||||||
|
|
||||||
|
### Basic Checks
|
||||||
|
|
||||||
|
**Procedure**
|
||||||
|
Single D6 roll against Obstacle.
|
||||||
|
|
||||||
|
**Outcomes**
|
||||||
|
|
||||||
|
- Bane: Roll = 1
|
||||||
|
- Failure: Roll < Obstacle
|
||||||
|
- Complication: Roll = Obstacle
|
||||||
|
- Success: Roll > Obstacle
|
||||||
|
- Boon: Roll = 6
|
||||||
|
|
||||||
|
**Note**
|
||||||
|
For Obstacle ≥6, Boon requires confirmation by rolling success again.
|
||||||
|
|
||||||
|
### Complex Checks
|
||||||
|
|
||||||
|
**Procedure**
|
||||||
|
Roll multiple D6 (number equals Reference Value).
|
||||||
|
Each die ≥ Target generates one Mark.
|
||||||
|
|
||||||
|
**Evaluation**
|
||||||
|
|
||||||
|
- Rolling 1: -1 Mark
|
||||||
|
- Rolling 6: Roll again for bonus Mark
|
||||||
|
|
||||||
|
**Resolution**
|
||||||
|
Compare total Marks to Obstacle for Outcome.
|
||||||
|
|
||||||
|
**Obstacle Determination**
|
||||||
|
|
||||||
|
- Unopposed: Fixed number (1-10)
|
||||||
|
- Opposed: Target's Reference Value
|
||||||
|
|
||||||
|
### Extended Checks
|
||||||
|
|
||||||
|
**Procedure**
|
||||||
|
Use Complex Check rules.
|
||||||
|
Multiple rolls allowed until Obstacle reached.
|
||||||
|
|
||||||
|
**Time Cost**
|
||||||
|
Each roll consumes 1 unit of Time.
|
||||||
|
|
||||||
|
**Failure Condition**
|
||||||
|
If Marks reach 0 or below, Check ends as Bane.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Abilities
|
||||||
|
|
||||||
|
### Main Characteristics
|
||||||
|
|
||||||
|
Innate abilities of a Model. Each has 2 associated Skills.
|
||||||
|
|
||||||
|
**Weapon Skill (WS)**
|
||||||
|
Close combat aptitude. Governs Melee and Defense.
|
||||||
|
|
||||||
|
**Ballistic Skill (BS)**
|
||||||
|
Hand-eye coordination. Governs Shooting and Throwing.
|
||||||
|
|
||||||
|
**Strength (S)**
|
||||||
|
Brute force and stamina. Governs Brawn and Toil.
|
||||||
|
|
||||||
|
**Toughness (T)**
|
||||||
|
Physical resistance. Governs Consume Alcohol and Endurance.
|
||||||
|
|
||||||
|
**Initiative (I)**
|
||||||
|
Speed of thought and perception. Governs Perception and Dodge.
|
||||||
|
|
||||||
|
**Dexterity (Dex)**
|
||||||
|
Fine manual tasks. Governs Streetwise and Crafting.
|
||||||
|
|
||||||
|
**Agility (Ag)**
|
||||||
|
Physical coordination and athleticism. Governs Stealth and Athletics.
|
||||||
|
|
||||||
|
**Intelligence (Int)**
|
||||||
|
Analytical thinking. Governs Intuition and Education.
|
||||||
|
|
||||||
|
**Willpower (WP)**
|
||||||
|
Mental strength. Governs Cool and Animal Handling.
|
||||||
|
|
||||||
|
**Fellowship (Fel)**
|
||||||
|
Social aptitude. Governs Leadership and Charm.
|
||||||
|
|
||||||
|
### Secondary Characteristics
|
||||||
|
|
||||||
|
**Wounds (W)**
|
||||||
|
Number of Wounds before knocked out.
|
||||||
|
|
||||||
|
**Movement (M)**
|
||||||
|
Movement distance under normal conditions.
|
||||||
|
|
||||||
|
**Attacks (A)**
|
||||||
|
Number of attacks per round.
|
||||||
|
|
||||||
|
**Magic (Mag)**
|
||||||
|
Wizard level; determines Magic Pool for spellcasting.
|
||||||
|
|
||||||
|
**Corruption Threshold (CT)**
|
||||||
|
Ability to resist Corruption.
|
||||||
|
|
||||||
|
**Insanity Threshold (IT)**
|
||||||
|
Ability to resist Insanity.
|
||||||
|
|
||||||
|
**Fate Points (FP)**
|
||||||
|
Used to avoid death and dark fates.
|
||||||
|
|
||||||
|
**Luck Points (LP)**
|
||||||
|
Used for re-rolls.
|
||||||
|
|
||||||
|
### Skills
|
||||||
|
|
||||||
|
Skills are used in Checks. Each associated with a Main Characteristic.
|
||||||
|
|
||||||
|
**Melee (WS)**
|
||||||
|
Make Melee Attack actions.
|
||||||
|
|
||||||
|
**Defense (WS)**
|
||||||
|
Defend against Melee Attack actions.
|
||||||
|
|
||||||
|
**Shooting (BS)**
|
||||||
|
Make Ranged Attack actions with Missile weapons.
|
||||||
|
|
||||||
|
**Throwing (BS)**
|
||||||
|
Make Ranged Attack actions with Throwing weapons.
|
||||||
|
|
||||||
|
**Brawn (S)**
|
||||||
|
Immediate feats of strength.
|
||||||
|
|
||||||
|
**Toil (S)**
|
||||||
|
Prolonged manual labor.
|
||||||
|
|
||||||
|
**Consume Alcohol (T)**
|
||||||
|
Resist short-term hazards like alcohol and poison.
|
||||||
|
|
||||||
|
**Endurance (T)**
|
||||||
|
Endure hardship, withstand deprivation, survive harsh environments.
|
||||||
|
|
||||||
|
**Perception (I)**
|
||||||
|
Notice things.
|
||||||
|
|
||||||
|
**Dodge (I)**
|
||||||
|
Evade attacks and immediate hazards like traps.
|
||||||
|
|
||||||
|
**Stealth (Ag)**
|
||||||
|
Move quietly and conceal.
|
||||||
|
|
||||||
|
**Athletics (Ag)**
|
||||||
|
Running, jumping, climbing, swimming.
|
||||||
|
|
||||||
|
**Streetwise (Dex)**
|
||||||
|
Lockpicking, pickpocketing, disarming traps, sleight of hand.
|
||||||
|
|
||||||
|
**Crafting (Dex)**
|
||||||
|
Create trappings.
|
||||||
|
|
||||||
|
**Intuition (Int)**
|
||||||
|
Detect subterfuge and determine value of objects.
|
||||||
|
|
||||||
|
**Education (Int)**
|
||||||
|
Recall relevant information.
|
||||||
|
|
||||||
|
**Cool (WP)**
|
||||||
|
Remain calm under stress, resist fear and psychological coercion.
|
||||||
|
|
||||||
|
**Animal Handling (WP)**
|
||||||
|
Charm, train, and care for animals.
|
||||||
|
|
||||||
|
**Leadership (Fel)**
|
||||||
|
Intimidation, command, coerce obedience. Often resisted by Discipline.
|
||||||
|
|
||||||
|
**Charm (Fel)**
|
||||||
|
Deceiving, blathering, haggling, gossiping. Usually resisted by Intuition.
|
||||||
|
|
||||||
|
### Traits
|
||||||
|
|
||||||
|
Inherent abilities based on Species.
|
||||||
|
Examples: Flier, Dark Vision, Mutation.
|
||||||
|
|
||||||
|
### Lores
|
||||||
|
|
||||||
|
Define what a character knows and specialist skills.
|
||||||
|
|
||||||
|
**Categories**
|
||||||
|
|
||||||
|
- Academic: Various fields like Accountancy, Anatomy, History, Law
|
||||||
|
- Cultural: Knowledge of social groups and languages
|
||||||
|
- Enemy: Knowledge of adversaries and combat tactics against them
|
||||||
|
- Environment: Surviving in hazardous environments
|
||||||
|
- Magic Lores: Knowledge of magic forms; enables spell casting
|
||||||
|
- Specialist Weapon Groups: Training with special weapons (Polearms, Two-Handed Swords, Blackpowder Guns)
|
||||||
|
- Trade Lores: Knowledge to create trappings or work in fields (Blacksmith, Weaver, Engineer, Artist)
|
||||||
|
- Vehicle Lores: Operating vehicles and mounts
|
||||||
|
|
||||||
|
### Talents
|
||||||
|
|
||||||
|
Represent knacks, tricks, and innate abilities.
|
||||||
|
Examples: Ambidextrous, Aetheric Attunement, Menacing, Acute Senses.
|
||||||
|
|
||||||
|
### Manoeuvres
|
||||||
|
|
||||||
|
Special combat actions and tactics.
|
||||||
|
Examples: Formation Fighting, Disarm, Shield Bash.
|
||||||
|
|
||||||
|
### Careers
|
||||||
|
|
||||||
|
Building blocks of a character providing Skills, Lores, Talents, Manoeuvres, etc.
|
||||||
|
Only applicable for Player Characters.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Encounters & Combat
|
||||||
|
|
||||||
|
### Overview
|
||||||
|
|
||||||
|
Encounter is a conflict between Adventurers and Adversaries.
|
||||||
|
Triggered by Event or Location.
|
||||||
|
|
||||||
|
### Turn Sequence
|
||||||
|
|
||||||
|
**1. Encounter Setup (First Round Only)**
|
||||||
|
|
||||||
|
_I. Determine Encounter Parameters_
|
||||||
|
|
||||||
|
- Encounters may have specific Effects
|
||||||
|
- DM spends Threat to modify duration/severity or buy additional Effects
|
||||||
|
|
||||||
|
_II. Determine Surprise_
|
||||||
|
|
||||||
|
Company Surprised:
|
||||||
|
|
||||||
|
- No Momentum in first round
|
||||||
|
- Henchmen and Followers receive no Activation
|
||||||
|
- Declare all actions before Adversaries
|
||||||
|
|
||||||
|
Adversaries Surprised:
|
||||||
|
|
||||||
|
- No Adversary Pool in first round
|
||||||
|
- Common Adversaries lose Activation
|
||||||
|
- Elite and Champion Adversaries use Basic Actions only
|
||||||
|
- Declare all actions after Company
|
||||||
|
|
||||||
|
_III. Calculate Initial Momentum_
|
||||||
|
Starting Momentum equals Company's current Fortune Pool.
|
||||||
|
|
||||||
|
_IV. Prepare Adversaries_
|
||||||
|
|
||||||
|
- DM selects Adversary Group and Models
|
||||||
|
- Spend Threat for Talents, better models, or additional Pool values
|
||||||
|
- Prepare Adversary Pool by summing A/C/E values of each Model
|
||||||
|
- Position Adversary Models on board
|
||||||
|
|
||||||
|
**2. Determine Winds of Magic**
|
||||||
|
See Magic Systems section.
|
||||||
|
|
||||||
|
**3. Declare Actions**
|
||||||
|
|
||||||
|
- Roll D6: Even = Explorers declare first, Odd = DM declares first
|
||||||
|
- Alternate declaring actions
|
||||||
|
- DM declares Adversary actions in Groups
|
||||||
|
|
||||||
|
**4. Determine Initiative**
|
||||||
|
Roll 1D6 + Initiative Characteristic - Action modifier
|
||||||
|
Resolve in descending order (highest first).
|
||||||
|
|
||||||
|
**5. Resolve Actions**
|
||||||
|
Each Model receives Activation in Initiative order.
|
||||||
|
|
||||||
|
**6. Bookkeeping**
|
||||||
|
|
||||||
|
_Update Momentum_
|
||||||
|
|
||||||
|
1. Torchbearer modifies Pool:
|
||||||
|
- +1 per Elite Adversary defeated
|
||||||
|
- +2 per Champion Adversary defeated
|
||||||
|
- +5 Nemesis Adversary defeated
|
||||||
|
- +2 if Company outnumbers Adversaries
|
||||||
|
- Varies for Action/Talent effects
|
||||||
|
2. Subtract Action costs from Pool
|
||||||
|
3. Result is Momentum Pool for next turn
|
||||||
|
4. If below 0: All Company Models gain Banes equal to deficit; set Pool to 0
|
||||||
|
|
||||||
|
_Refresh Adversary Pool_
|
||||||
|
Sum A/C/E values of remaining non-routed Adversaries.
|
||||||
|
|
||||||
|
_Apply Global Effects_
|
||||||
|
Resolve effects discreetly.
|
||||||
|
Reduce Duration trackers by 1.
|
||||||
|
Remove effects with Duration 0 after applying.
|
||||||
|
|
||||||
|
_Check Morale_
|
||||||
|
See Psychology & Leadership rules.
|
||||||
|
|
||||||
|
_End Condition_
|
||||||
|
Combat ends when no Adversaries remain on Board Section.
|
||||||
|
|
||||||
|
### Activation
|
||||||
|
|
||||||
|
**Structure**
|
||||||
|
Each Model receives one discrete Activation per Round.
|
||||||
|
Activation must finish before next begins.
|
||||||
|
|
||||||
|
**Exception**
|
||||||
|
Interrupts can occur during another Activation.
|
||||||
|
|
||||||
|
**Activation Sequence**
|
||||||
|
|
||||||
|
_1. Start Phase_
|
||||||
|
Apply condition effects.
|
||||||
|
|
||||||
|
_2. Action Phase_
|
||||||
|
|
||||||
|
- Perform one Major Action OR gain 2 free Minor Actions
|
||||||
|
- Perform one free Minor Action (before or after Major Action)
|
||||||
|
- Main Characters: Additional Minor Actions cost 1 Fatigue each
|
||||||
|
|
||||||
|
_3. End Phase_
|
||||||
|
|
||||||
|
- Reduce condition tracker by 1 (remove if zero)
|
||||||
|
- Gain Interrupts equal to Attacks Characteristic
|
||||||
|
|
||||||
|
### Actions
|
||||||
|
|
||||||
|
**Minor Actions [◇]**
|
||||||
|
Standard activities like Movement.
|
||||||
|
|
||||||
|
**Major Actions [⬡]**
|
||||||
|
Complex combat actions like Attacks and Spell Casting.
|
||||||
|
|
||||||
|
**Reactions [▽]**
|
||||||
|
Reactive activities that break normal turn order.
|
||||||
|
|
||||||
|
### Minor Actions
|
||||||
|
|
||||||
|
**Assist**
|
||||||
|
Aid another Model.
|
||||||
|
|
||||||
|
**Interact**
|
||||||
|
Open doors, grab items, use hazards/trappings.
|
||||||
|
|
||||||
|
**Movement**
|
||||||
|
|
||||||
|
- Advance: Move up to Movement (M)
|
||||||
|
- Drag: Move adjacent prone Model up to ½M
|
||||||
|
- Disengage: Challenging Opposed Athletics vs WS to leave enemy Danger Zone
|
||||||
|
- Change Place: Challenging Opposed Athletics vs WS to swap with adjacent engaged ally
|
||||||
|
- Reposition: Move to adjacent square within enemy Danger Zone
|
||||||
|
|
||||||
|
**Manage Equipment**
|
||||||
|
Switch weapon, sling/unsling shield, drink potion, draw from container.
|
||||||
|
|
||||||
|
**Recuperate**
|
||||||
|
|
||||||
|
- Recover Stress: Challenging Cool check to recover 1 Stress
|
||||||
|
- Recover Fatigue: Challenging Endurance check to recover 1 Fatigue
|
||||||
|
|
||||||
|
**Mount/Dismount**
|
||||||
|
Mount or dismount vehicle/creature.
|
||||||
|
|
||||||
|
**Prepare**
|
||||||
|
Reduce single check Difficulty by 1.
|
||||||
|
|
||||||
|
**Use a Skill**
|
||||||
|
Apply relevant skill to situation.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Combat - Attacks
|
||||||
|
|
||||||
|
### Melee Attacks
|
||||||
|
|
||||||
|
**Overview**
|
||||||
|
Made with Melee Weapons against targets in Danger Zone (DZ).
|
||||||
|
Usually Opposed Simple Checks.
|
||||||
|
|
||||||
|
**Danger Zone**
|
||||||
|
Area controlled by weapon's Reach rating:
|
||||||
|
|
||||||
|
- Reach M: Ring of fields directly adjacent to Model
|
||||||
|
- Reach P: Squares directly front, back, left, right of Model
|
||||||
|
- Reach R: Reach M plus additional adjacent ring
|
||||||
|
|
||||||
|
**Engaged**
|
||||||
|
Models in enemy's Danger Zone.
|
||||||
|
Model stops when entering enemy DZ regardless of remaining Movement.
|
||||||
|
|
||||||
|
**Movement Restrictions**
|
||||||
|
Only Disengage, Change Place, or Reposition allowed in DZ.
|
||||||
|
Other Manoeuvres trigger Interrupts.
|
||||||
|
|
||||||
|
**Interrupts**
|
||||||
|
Actions with Interrupt keyword.
|
||||||
|
Performed during another Model's Activation by spending a Reaction.
|
||||||
|
Resolved before interrupted action.
|
||||||
|
|
||||||
|
**Two-Weapon Fighting**
|
||||||
|
|
||||||
|
- Use 1-H Melee Weapon, Shield, or Pistol in off-hand
|
||||||
|
- Off-hand actions: Difficulty +2
|
||||||
|
- Gain +1 additional Interrupt
|
||||||
|
|
||||||
|
### Ranged Attacks
|
||||||
|
|
||||||
|
**Overview**
|
||||||
|
Made with Ranged Weapons against targets in Line of Sight.
|
||||||
|
Usually Unopposed Simple Checks.
|
||||||
|
|
||||||
|
**Exceptions to Unopposed**
|
||||||
|
Opposed if target has Shield Rating 2+ or is in Point Blank Range.
|
||||||
|
|
||||||
|
**Engagement Restriction**
|
||||||
|
Cannot attack when Engaged unless weapon has Pistol Quality.
|
||||||
|
|
||||||
|
**Line of Sight**
|
||||||
|
Draw line from center of attacker's square to any point of target square.
|
||||||
|
Line must not cross walls, obstacles, or models.
|
||||||
|
|
||||||
|
**Shooting into Melee**
|
||||||
|
Each Model target is engaged with: Difficulty +1.
|
||||||
|
On miss: Randomly determine hit model.
|
||||||
|
|
||||||
|
**Size Modifiers (Attack Difficulty)**
|
||||||
|
|
||||||
|
- Tiny: +3
|
||||||
|
- Little: +2
|
||||||
|
- Small: +1
|
||||||
|
- Average: 0
|
||||||
|
- Large: -1
|
||||||
|
- Enormous: -2
|
||||||
|
- Monstrous: -3
|
||||||
|
|
||||||
|
**Template Attacks**
|
||||||
|
All Models in template affected unless specified otherwise.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Wounds & Healing
|
||||||
|
|
||||||
|
### Damage Resolution
|
||||||
|
|
||||||
|
**Dealing Damage**
|
||||||
|
Opposed Damage vs Toughness check to cause a Wound.
|
||||||
|
Armor increases Toughness value.
|
||||||
|
|
||||||
|
**Wound Effects**
|
||||||
|
When Wound caused, draw Injury card with Severity rating and effects.
|
||||||
|
|
||||||
|
- Severity = Obstacle for healing
|
||||||
|
- Wounds < 0 = Death
|
||||||
|
- Wounds = 0 = Out-of-play
|
||||||
|
|
||||||
|
**Out-of-Play**
|
||||||
|
|
||||||
|
- Adversaries: Removed from board
|
||||||
|
- Characters: Must be dragged or abandoned (dire consequences)
|
||||||
|
|
||||||
|
### Soak Mechanic
|
||||||
|
|
||||||
|
Certain actions/armor provide Soak.
|
||||||
|
Soak cancels Wound before dealt (no Injury drawn).
|
||||||
|
Using Soak damages armor.
|
||||||
|
|
||||||
|
### Healing
|
||||||
|
|
||||||
|
Healing uses Extended Toughness check.
|
||||||
|
Usually performed as Endeavour in settlements.
|
||||||
|
|
||||||
|
### Additional Conditions
|
||||||
|
|
||||||
|
**Injuries**
|
||||||
|
Can become permanent.
|
||||||
|
|
||||||
|
**Disease/Poison**
|
||||||
|
Work similarly to Injuries with Severity rating.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Conditions & Effects
|
||||||
|
|
||||||
|
### Duration Types
|
||||||
|
|
||||||
|
**Fleeting**
|
||||||
|
Ends at character's next End Phase.
|
||||||
|
|
||||||
|
**Persistent**
|
||||||
|
Has X counters.
|
||||||
|
Reduce by 1 each End Phase.
|
||||||
|
X = number of tokens/stacks.
|
||||||
|
|
||||||
|
**Ongoing**
|
||||||
|
Lasts until specific condition met.
|
||||||
|
|
||||||
|
### Common Conditions
|
||||||
|
|
||||||
|
**Staggered (Fleeting)**
|
||||||
|
Cannot perform Manoeuvres.
|
||||||
|
If X > 1: Limited actions.
|
||||||
|
|
||||||
|
**Hidden (Ongoing)**
|
||||||
|
Movement: ½M
|
||||||
|
Attacks vs ▷Hidden Model: Attacker treated as [*Blinded*]
|
||||||
|
[▷Hidden attacks] ⇒ Remove *Hidden* @End Phase
|
||||||
|
|
||||||
|
**Stunned (Fleeting)**
|
||||||
|
Miss next Activation.
|
||||||
|
|
||||||
|
**Surprised (Fleeting)**
|
||||||
|
Miss next Activation.
|
||||||
|
|
||||||
|
**Bleeding (Persistent)**
|
||||||
|
Start Phase: Automatic S[X] hit.
|
||||||
|
|
||||||
|
**Prone (Ongoing)**
|
||||||
|
Melee attacks against: Favour.
|
||||||
|
Ranged attacks against: Peril.
|
||||||
|
Remove: Spend Major Action to stand.
|
||||||
|
|
||||||
|
**Engaged (Ongoing)**
|
||||||
|
Cannot use Ranged actions.
|
||||||
|
Remove: Leave Danger Zone.
|
||||||
|
|
||||||
|
**Entangled (Ongoing)**
|
||||||
|
Movement -X.
|
||||||
|
Remove: Athletics check [X].
|
||||||
|
|
||||||
|
**Ablaze (Ongoing)**
|
||||||
|
Start Phase: Automatic S[varies] hit.
|
||||||
|
|
||||||
|
**Broken (Ongoing)**
|
||||||
|
Move away from enemies.
|
||||||
|
Cannot use Actions.
|
||||||
|
|
||||||
|
**Blinded (Ongoing)**
|
||||||
|
All checks: Peril.
|
||||||
|
Cannot use Ranged actions.
|
||||||
|
|
||||||
|
**Frenzied (Ongoing)**
|
||||||
|
Attacks ×2.
|
||||||
|
Attack nearest Model.
|
||||||
|
Only Melee Strike actions and Advance manoeuvres.
|
||||||
|
Immune to Psychology.
|
||||||
|
After removal: Fatigue [X].
|
||||||
|
|
||||||
|
**Hatred (Ongoing)**
|
||||||
|
Against specified target: Favour on Opposed checks.
|
||||||
|
Immunity to Fear of target.
|
||||||
|
|
||||||
|
**Distressed (Ongoing)**
|
||||||
|
Mental checks: Peril.
|
||||||
|
|
||||||
|
**Drained (Ongoing)**
|
||||||
|
Physical checks: Peril.
|
||||||
|
|
||||||
|
**Strained (Ongoing)**
|
||||||
|
All checks: Peril.
|
||||||
|
Start Phase: Cool check or gain Broken.
|
||||||
|
|
||||||
|
**Animosity (Ongoing)**
|
||||||
|
Against specified target: Cannot use Teamwork actions.
|
||||||
|
Social actions: +1 Difficulty.
|
||||||
|
|
||||||
|
**Deafened (Ongoing)**
|
||||||
|
Immune to Social actions.
|
||||||
|
|
||||||
|
**Weakened (Persistent)**
|
||||||
|
Strength -[X].
|
||||||
|
|
||||||
|
**Inspired (Persistent)**
|
||||||
|
All checks: -[X] Difficulty.
|
||||||
|
|
||||||
|
**Demoralized (Persistent)**
|
||||||
|
All checks: +[X] Difficulty.
|
||||||
|
|
||||||
|
**Cowed (Persistent)**
|
||||||
|
Against specified source: Opposed checks +[X] Difficulty.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Magic Systems
|
||||||
|
|
||||||
|
### Arcane Magic
|
||||||
|
|
||||||
|
**Casting Procedure**
|
||||||
|
Extended Check using Magic Pool.
|
||||||
|
Magic Pool = number of dice equal to Mag attribute.
|
||||||
|
|
||||||
|
**Obstacle**
|
||||||
|
Casting Number of spell.
|
||||||
|
|
||||||
|
**Miscasts**
|
||||||
|
Count total 1s rolled across all attempts = Miscast Number.
|
||||||
|
|
||||||
|
**Miscast Severity**
|
||||||
|
|
||||||
|
- Miscast Number = Mag: Minor Miscast
|
||||||
|
- Miscast Number > Mag: Major Miscast
|
||||||
|
- Miscast Number ≥ Mag×2: Catastrophic Miscast
|
||||||
|
|
||||||
|
### Divine Magic
|
||||||
|
|
||||||
|
Handled as Manoeuvres.
|
||||||
|
Specific mechanics vary by deity and prayer.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keywords & Synergies
|
||||||
|
|
||||||
|
Keywords signify synergies and antipodes.
|
||||||
|
Multiple occurrences of same keyword usually beneficial for cost or outcome.
|
||||||
|
Used throughout Activities, Traits, Equipment, and Effects.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_End of Rules Reference Document_
|
||||||
16
content/awq/articles/rules.mdoc
Normal file
16
content/awq/articles/rules.mdoc
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
title: The Crunch
|
||||||
|
cover:
|
||||||
|
showInHeader: false
|
||||||
|
meta:
|
||||||
|
publicationDate: 2025-10-19T22:12:00.000Z
|
||||||
|
status: draft
|
||||||
|
isFeatured: false
|
||||||
|
tags:
|
||||||
|
- how-and-what
|
||||||
|
- crunch
|
||||||
|
author: dave-damage
|
||||||
|
seo:
|
||||||
|
noIndex: false
|
||||||
|
---
|
||||||
|
General Rules and Game Terms Definitions should come here
|
||||||
258
content/awq/articles/simple.mdoc
Normal file
258
content/awq/articles/simple.mdoc
Normal file
@@ -0,0 +1,258 @@
|
|||||||
|
---
|
||||||
|
title: Simple Checks
|
||||||
|
path: rules/general/checks
|
||||||
|
cover:
|
||||||
|
showInHeader: false
|
||||||
|
meta:
|
||||||
|
publicationDate: 2025-11-06T09:12:00.000Z
|
||||||
|
status: draft
|
||||||
|
isFeatured: false
|
||||||
|
tags:
|
||||||
|
- crunch
|
||||||
|
- how-and-what
|
||||||
|
author: dave-damage
|
||||||
|
seo:
|
||||||
|
noIndex: false
|
||||||
|
---
|
||||||
|
## Anatomy
|
||||||
|
|
||||||
|
- Uses a single D6
|
||||||
|
- Used when a simple *Yes* or *No* is required
|
||||||
|
- Mainly used during **Encounters**
|
||||||
|
- **Result** of roll is compared to the *Obstacle:*
|
||||||
|
- `Result === 1 [⚀]` => *Bane*
|
||||||
|
- `Result < Ob.` => *Failure*
|
||||||
|
- `Result = Ob.` => *Complication*
|
||||||
|
- `Result > Ob.` => *Success*
|
||||||
|
- `Result === 6 [⚅]` => *Boon*
|
||||||
|
|
||||||
|
## Favour & Peril
|
||||||
|
|
||||||
|
- **Favoured:** Add an additional die to the roll and take the higher result
|
||||||
|
- **Perilous:** Add an additional die to the roll and take the lower result
|
||||||
|
|
||||||
|
## Obstacle
|
||||||
|
|
||||||
|
- Always calculate on the basis of a skill or characteristic
|
||||||
|
- Depends on the check's *Mode*
|
||||||
|
|
||||||
|
**Note**
|
||||||
|
For Obstacle > 6, *Boon_ requires confirmation by rolling success again
|
||||||
|
|
||||||
|
### Unopposed Checks
|
||||||
|
|
||||||
|
*Unopposed checks* use the following table to calculate *Ob.*
|
||||||
|
|
||||||
|
{% table %}
|
||||||
|
- RV
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 5
|
||||||
|
- 6
|
||||||
|
- 7
|
||||||
|
- 8
|
||||||
|
- 9
|
||||||
|
- 10
|
||||||
|
---
|
||||||
|
- **OB.**
|
||||||
|
- 6+
|
||||||
|
- 5+
|
||||||
|
- 4+
|
||||||
|
- 3+
|
||||||
|
- 2+
|
||||||
|
- 2+
|
||||||
|
- 2+
|
||||||
|
- 2+
|
||||||
|
- 2+
|
||||||
|
- 2+
|
||||||
|
{% /table %}
|
||||||
|
|
||||||
|
{% Callout type="option" title="More gradual table" %}
|
||||||
|
Groups with a greater appetite for granulation my use the following table:
|
||||||
|
|
||||||
|
{% table %}
|
||||||
|
- RV
|
||||||
|
- -4
|
||||||
|
- -3
|
||||||
|
- -2
|
||||||
|
- -1
|
||||||
|
- 0
|
||||||
|
- 1
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 5
|
||||||
|
- 6
|
||||||
|
- 7
|
||||||
|
- 8
|
||||||
|
- 9
|
||||||
|
- 10
|
||||||
|
---
|
||||||
|
- Ob.
|
||||||
|
- Impossible
|
||||||
|
- 9
|
||||||
|
- 8
|
||||||
|
- 7
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
- 5
|
||||||
|
- 4
|
||||||
|
- 3
|
||||||
|
- 2
|
||||||
|
- 2/6
|
||||||
|
- 2/5
|
||||||
|
- 2/4
|
||||||
|
- 2/3
|
||||||
|
- 2/2
|
||||||
|
{% /table %}
|
||||||
|
|
||||||
|
- **Ob. 9+** requires a result of 6, followed by a 6
|
||||||
|
- **Ob. 8+** requires a result of 6, followed by a 5 or 6
|
||||||
|
- **Ob. 7+** requires a result of 6, followed by a 4,5 or 6
|
||||||
|
- **2/x** means that on a *Failure,* the model may re-roll for free and achieve a *Success* (not a *Boon*) using the second Ob.
|
||||||
|
|
||||||
|
Note that this option can slow the game significantly down, and the core rules assume that the simpler table is used
|
||||||
|
{% /Callout %}
|
||||||
|
|
||||||
|
### Opposed Checks
|
||||||
|
|
||||||
|
- **Instigator (T)** is the model attempting the action (row)
|
||||||
|
- **Target (T)** is the model targeted by the action
|
||||||
|
- Determine **TN** by looking for the Instigator's modifed value and the column for the target's value
|
||||||
|
|
||||||
|
{% table %}
|
||||||
|
- **I/T**
|
||||||
|
- **1**
|
||||||
|
- **2**
|
||||||
|
- **3**
|
||||||
|
- **4**
|
||||||
|
- **5**
|
||||||
|
- **6**
|
||||||
|
- **7**
|
||||||
|
- **8**
|
||||||
|
- **9**
|
||||||
|
- **10**
|
||||||
|
---
|
||||||
|
- **1**
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 5
|
||||||
|
- 5
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
---
|
||||||
|
- **2**
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 5
|
||||||
|
- 5
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
---
|
||||||
|
- **3**
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 5
|
||||||
|
- 5
|
||||||
|
- 6
|
||||||
|
- 6
|
||||||
|
---
|
||||||
|
- **4**
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 5
|
||||||
|
- 5
|
||||||
|
---
|
||||||
|
- **5**
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
---
|
||||||
|
- **6**
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
---
|
||||||
|
- **7**
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
---
|
||||||
|
- **8**
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
---
|
||||||
|
- **9**
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
- 4
|
||||||
|
---
|
||||||
|
- **10**
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 2
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 3
|
||||||
|
- 4
|
||||||
|
{% /table %}
|
||||||
|
|
||||||
694
content/awq/articles/styleguide.md
Normal file
694
content/awq/articles/styleguide.md
Normal file
@@ -0,0 +1,694 @@
|
|||||||
|
---
|
||||||
|
title: AWQ Style Guide & Notation Reference
|
||||||
|
description: Formatting standards, symbols, and notation conventions for Advanced Warhammer Quest documentation
|
||||||
|
version: 1.1
|
||||||
|
date: 2025-10-18
|
||||||
|
purpose: Machine-readable reference for consistent rule documentation
|
||||||
|
---
|
||||||
|
|
||||||
|
# AWQ Style Guide & Notation Reference
|
||||||
|
|
||||||
|
## Text Formatting Standards
|
||||||
|
|
||||||
|
### Bold Text
|
||||||
|
**Annotation:** `**bold**`
|
||||||
|
**Usage:** Major gameplay mechanics and important terms
|
||||||
|
**Examples:** Momentum, Character, Expedition, Dungeon, Encounter, Party, Magic Pool, Wounds, Stress, Threat
|
||||||
|
|
||||||
|
### Italic Text
|
||||||
|
**Annotation:** `*italics*`
|
||||||
|
**Usage:** Individual skills, conditions, check types, and game states
|
||||||
|
**Examples:** Melee, Poisoned, Basic Check, Out of Action, Engaged, Stunned, Blinded, Hidden
|
||||||
|
|
||||||
|
### Code Text
|
||||||
|
**Annotation:** `` `code` ``
|
||||||
|
**Usage:** Dice notation, calculations, and specific values
|
||||||
|
**Examples:** `2d6+3`, `TN 12`, `3W`, `[Movement]`, `D3`, `D6`
|
||||||
|
|
||||||
|
### Pipes
|
||||||
|
**Annotation:** `|`
|
||||||
|
**Usage:** Separates inline information and alternatives
|
||||||
|
**Examples:** Roll *Defense* | *Dodge* | Choose one option | Another option
|
||||||
|
|
||||||
|
### Double Pipes
|
||||||
|
**Annotation:** `||`
|
||||||
|
**Usage:** Logical OR - one or the other, not both
|
||||||
|
**Examples:** `WP → Career Characteristic || [WP = Career] ⇒ Advance Cost -1`
|
||||||
|
|
||||||
|
### Brackets
|
||||||
|
**Annotation:** `[optional information]`
|
||||||
|
**Usage:** Indicate optional elements and situational information
|
||||||
|
**Examples:** Move up to `[Movement]` and make attack | Gain `[X]` Wounds
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Visual Symbols Reference
|
||||||
|
|
||||||
|
### Dice Results
|
||||||
|
|
||||||
|
| Roll Result | Symbol |
|
||||||
|
|-------------|--------|
|
||||||
|
| 1 | ⚀ |
|
||||||
|
| 2 | ⚁ |
|
||||||
|
| 3 | ⚂ |
|
||||||
|
| 4 | ⚃ |
|
||||||
|
| 5 | ⚄ |
|
||||||
|
| 6 | ⚅ |
|
||||||
|
| Re-roll | ⧆ |
|
||||||
|
|
||||||
|
### Check Outcomes
|
||||||
|
|
||||||
|
| Outcome | Symbol |
|
||||||
|
|--------------|--------|
|
||||||
|
| Bane | ⊗ |
|
||||||
|
| Failure | ⊖ |
|
||||||
|
| Complication | ⊜ |
|
||||||
|
| Success | ⊕ |
|
||||||
|
| Boon | ⊛ |
|
||||||
|
|
||||||
|
### Check Difficulty
|
||||||
|
|
||||||
|
| Difficulty | Symbol |
|
||||||
|
|--------------|--------|
|
||||||
|
| Very Easy | ○ |
|
||||||
|
| Easy | ◔ |
|
||||||
|
| Routine | ◑ |
|
||||||
|
| Challenging | ● |
|
||||||
|
| Difficult | ∶ |
|
||||||
|
| Hard | ∵ |
|
||||||
|
| Very Hard | ∷ |
|
||||||
|
| Impossible | ∺ |
|
||||||
|
| Favour | ⇑ |
|
||||||
|
| Peril | ⇓ |
|
||||||
|
|
||||||
|
### Check Modes
|
||||||
|
|
||||||
|
| Mode | Symbol |
|
||||||
|
|------------|--------|
|
||||||
|
| Unopposed | ⥤ |
|
||||||
|
| Opposed | ⇌ |
|
||||||
|
|
||||||
|
### Enemy Tiers
|
||||||
|
|
||||||
|
| Tier | Symbol |
|
||||||
|
|----------|--------|
|
||||||
|
| Minion | ⁎ |
|
||||||
|
| Elite | ⁑ |
|
||||||
|
| Champion | ⁂ |
|
||||||
|
| Nemesis | ⋇ |
|
||||||
|
|
||||||
|
### Skill Ranks
|
||||||
|
|
||||||
|
| Rank | Symbol |
|
||||||
|
|-----------|--------|
|
||||||
|
| Untrained | — |
|
||||||
|
| Trained | ⁎ |
|
||||||
|
| Expertise | ⁑ |
|
||||||
|
| Mastery | ⁂ |
|
||||||
|
|
||||||
|
### Action Types
|
||||||
|
|
||||||
|
| Action Type | Symbol |
|
||||||
|
|--------------|--------|
|
||||||
|
| Minor Action | ◇ |
|
||||||
|
| Major Action | ⬡ |
|
||||||
|
| Reaction | ▽ |
|
||||||
|
|
||||||
|
### Resources
|
||||||
|
|
||||||
|
| Resource | Symbol |
|
||||||
|
|------------|--------|
|
||||||
|
| Threat | ✦ |
|
||||||
|
| Momentum | ✠ |
|
||||||
|
| Fatigue | ✱ |
|
||||||
|
| Stress | ❖ |
|
||||||
|
| Corruption | 🞼 |
|
||||||
|
| Wounds | ❡ |
|
||||||
|
|
||||||
|
### Area Effects
|
||||||
|
|
||||||
|
| Effect | Symbol |
|
||||||
|
|---------------|--------|
|
||||||
|
| Radius | ⌀ |
|
||||||
|
| Cone | ∢ |
|
||||||
|
| Line | ⋮ |
|
||||||
|
| Board Section | ▩ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notation Conventions
|
||||||
|
|
||||||
|
### Conditional Notation
|
||||||
|
|
||||||
|
**If/Then Conditions**
|
||||||
|
```
|
||||||
|
[Condition] ⇒ Effect
|
||||||
|
```
|
||||||
|
**Usage:** Express conditional relationships where condition must be true for effect to occur.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `[*Engaged*] ⇒ Cannot use Ranged actions`
|
||||||
|
- `[Wounds < 0] ⇒ Death`
|
||||||
|
- `[Rolling 6] ⇒ Roll again for bonus Mark`
|
||||||
|
- `[Two weapons] ⇒ **Attacks**: +1`
|
||||||
|
|
||||||
|
**Trigger Events**
|
||||||
|
```
|
||||||
|
@Event: Effect
|
||||||
|
```
|
||||||
|
**Usage:** Express effects that occur when specific game events happen.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `@Start Phase: Apply condition effects`
|
||||||
|
- `@End Phase: Reduce condition tracker by 1`
|
||||||
|
- `@Entering DZ: Model stops movement`
|
||||||
|
- `@Successful *Dispel* ⇒ **Magic Pool** +[Rank]`
|
||||||
|
- `@Combat start ⇒ 1 ▽ → Free attack`
|
||||||
|
- `@After Initiative ⇒ Move [Rank] positions`
|
||||||
|
- `@Assisted ally hits ⇒ Free *Melee* vs target`
|
||||||
|
- `@Enemy forces movement [Push | Drag | Knock back] ⇒ Free *Melee* vs ◁Enemy (before moving)`
|
||||||
|
- `@First NPC meeting ⇒ **Disposition** +1`
|
||||||
|
- `@End Round [*Frenzied*] ⇒ *Cool* check: [Success] ⇒ Remove [*Frenzied*]`
|
||||||
|
|
||||||
|
**Requirements/Costs**
|
||||||
|
```
|
||||||
|
Cost → Action/Effect
|
||||||
|
```
|
||||||
|
**Usage:** Express costs or requirements needed to perform action or gain effect.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `1 **Fatigue** [✱] → Additional Minor Action`
|
||||||
|
- `2 **Momentum** [✠] → Automatic Disengage`
|
||||||
|
- `Challenging *Cool* check → Recover 1 **Stress**`
|
||||||
|
- `1 ▽ → Pet: +1 action`
|
||||||
|
- `1 LP → Cancel **Threat**`
|
||||||
|
|
||||||
|
### Model Role Notation
|
||||||
|
|
||||||
|
**Target (Receiving Action)**
|
||||||
|
```
|
||||||
|
◁ Model
|
||||||
|
```
|
||||||
|
**Usage:** Indicates model receiving action, effect, or being targeted.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `Melee Attack vs ◁Enemy`
|
||||||
|
- `Damage check vs ◁Target's **Toughness**`
|
||||||
|
- `Apply condition to ◁Model`
|
||||||
|
- `◁Attacker: ⇓`
|
||||||
|
- `◁Listeners: ⇓ on *Intuition*`
|
||||||
|
|
||||||
|
**Instigator (Performing Action)**
|
||||||
|
```
|
||||||
|
▷ Model
|
||||||
|
```
|
||||||
|
**Usage:** Indicates model performing action or originating effect.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `▷Attacker makes WS check`
|
||||||
|
- `▷Character rolls **Initiative**`
|
||||||
|
- `▷Caster uses **Magic Pool**`
|
||||||
|
- `▷Self: Free *Melee* vs target`
|
||||||
|
- `▷Caster: S3 DMG ⇒ **Magic Pool** +1`
|
||||||
|
|
||||||
|
**Combined Notation**
|
||||||
|
```
|
||||||
|
▷Model: Action ⇌ ◁Model
|
||||||
|
```
|
||||||
|
**Usage:** Express opposed actions clearly showing both parties.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `▷Attacker: *Melee* ⇌ ◁Defender: *Defense*`
|
||||||
|
- `▷Character: *Charm* ⇌ ◁Target: *Intuition*`
|
||||||
|
- `▷Model: *Athletics* ⇌ ◁Enemy: WS`
|
||||||
|
|
||||||
|
### Value Placeholders
|
||||||
|
|
||||||
|
**Variable Values**
|
||||||
|
```
|
||||||
|
[X]
|
||||||
|
```
|
||||||
|
**Usage:** Indicates value varies by circumstance, specified elsewhere, or scales.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `**Bleeding** [X]: Automatic S[X] hit`
|
||||||
|
- `**Entangled**: **Movement** -[X]`
|
||||||
|
- `**Inspired**: All checks -[X] **Difficulty**`
|
||||||
|
|
||||||
|
**Rank-Based Scaling**
|
||||||
|
```
|
||||||
|
[Rank]
|
||||||
|
```
|
||||||
|
**Usage:** References talent rank for scaling effects.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `**Attacks**: +1/[Rank]`
|
||||||
|
- `**Miscast Number**: -1/[Rank]`
|
||||||
|
- `DMG +[Rank]`
|
||||||
|
- `**Disease Severity**: -1/[Rank]`
|
||||||
|
|
||||||
|
**Characteristic/Stat Reference**
|
||||||
|
```
|
||||||
|
[Characteristic Name]
|
||||||
|
```
|
||||||
|
**Usage:** References model's characteristic or stat value.
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `Move up to [Movement]`
|
||||||
|
- `Roll [Initiative] for turn order`
|
||||||
|
- `**Magic Pool** = [Mag]`
|
||||||
|
|
||||||
|
### Range Notation
|
||||||
|
|
||||||
|
**Comparison Operators**
|
||||||
|
```
|
||||||
|
= (equals)
|
||||||
|
< (less than)
|
||||||
|
> (greater than)
|
||||||
|
≤ (less than or equal)
|
||||||
|
≥ (greater than or equal)
|
||||||
|
± (plus or minus, up or down)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `Roll = 1 ⇒ Bane`
|
||||||
|
- `Roll > Obstacle ⇒ Success`
|
||||||
|
- `**Miscast Number** ≥ Mag×2 ⇒ Catastrophic Miscast`
|
||||||
|
- `[CN ≤ 3] ⇒ Does not count toward **Memory Limit**`
|
||||||
|
- `Adjust position: ±[Rank] in order`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Talent/Ability Notation Patterns
|
||||||
|
|
||||||
|
### Bracket Types for Different Contexts
|
||||||
|
|
||||||
|
**Square Brackets `[X]`:**
|
||||||
|
- Conditions: `[*Blinded*]`, `[*Hidden*]`, `[*Frenzied*]`, `[*Engaged*]`
|
||||||
|
- Keywords: `[Urban]`, `[Gunpowder]`, `[Touch]`, `[Chaos]`, `[Blessing]`, `[Psychological]`
|
||||||
|
- Variable values: `[Rank]`, `[X]`
|
||||||
|
- Comparisons: `[CN ≤ 3]`, `[X > 1]`
|
||||||
|
- Target types: `[Origin | Faction | Region]`
|
||||||
|
- Conditions for effects: `[Off-hand]`, `[Would gain *Stunned*]`, `[Two weapons]`
|
||||||
|
|
||||||
|
**Curly Braces `{X}`:**
|
||||||
|
- Equipment qualities: `{Brawling}`, `{Undamaging}`, `{Improvised}`, `{Grappling}`
|
||||||
|
- Special weapon properties
|
||||||
|
|
||||||
|
### Skill/Characteristic References
|
||||||
|
|
||||||
|
**With Rank:**
|
||||||
|
```
|
||||||
|
Skill[Rank Symbol]
|
||||||
|
```
|
||||||
|
Examples: `*Melee*[⁑]`, `*Charm*[⁎]`, `*Endurance*[⁂]`
|
||||||
|
|
||||||
|
**Minimum Value:**
|
||||||
|
```
|
||||||
|
Characteristic: Value+
|
||||||
|
```
|
||||||
|
Examples: `**Magic**: 2+`, `**Willpower**: 5+`, `**Initiative**: 4+`
|
||||||
|
|
||||||
|
### Per-Rank Scaling
|
||||||
|
```
|
||||||
|
Effect: +X/[Rank]
|
||||||
|
Effect: -X/[Rank]
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `**Attacks**: +1/[Rank]`
|
||||||
|
- `**Movement**: +1/[Rank]`
|
||||||
|
- `**Miscast Number**: -1/[Rank]`
|
||||||
|
- `**Disease Severity**: -1/[Rank]`
|
||||||
|
- `**Reload**: -1/[Rank]`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Common Effect Patterns
|
||||||
|
|
||||||
|
### Skill Bonus
|
||||||
|
```
|
||||||
|
*Skill*: +X ⇑
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `*Charm*: +1 ⇑`
|
||||||
|
- `*Perception*: +1 ⇑`
|
||||||
|
|
||||||
|
### Resource Cost to Benefit
|
||||||
|
```
|
||||||
|
X Resource [Symbol] → Effect
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `1 ❖ → Cast as ◇`
|
||||||
|
- `1 LP → Cancel **Threat**`
|
||||||
|
- `2 ✠ → **Critical Hit**`
|
||||||
|
- `1 ▽ → Pet: +1 action`
|
||||||
|
- `1 🞼 → **Magic Pool** +1`
|
||||||
|
|
||||||
|
### Location-Based Effects
|
||||||
|
```
|
||||||
|
[Location Type] ⇒ Effect
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[Urban] ⇒ [*Hidden*] ⇒ **Movement** (no penalty)`
|
||||||
|
- `[Subterranean] ⇒ [*Hidden*] ⇒ **Movement** (no penalty)`
|
||||||
|
- `[Wilderness] ⇒ [*Hidden*] ⇒ **Movement** (no penalty)`
|
||||||
|
- `[Rural] ⇒ [*Hidden*] ⇒ **Movement** (no penalty)`
|
||||||
|
|
||||||
|
### Weapon/Item Quality Effects
|
||||||
|
```
|
||||||
|
[Quality] ⇒ Effect
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[Gunpowder] weapons ⇒ -1 **Reload**/[Rank]`
|
||||||
|
- `[Touch] spells ⇒ +1 ⇑`
|
||||||
|
- `[Brawling | Unarmed | Improvised] ⇒ Remove {Undamaging}`
|
||||||
|
- `[Missile] weapons ⇒ -1 **Reload**/[Rank]`
|
||||||
|
|
||||||
|
### Action Trigger Effects
|
||||||
|
```
|
||||||
|
@Action/Event ⇒ Effect
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `@Successful **Dispel Manoeuvre** ⇒ **Magic Pool** +[Rank]`
|
||||||
|
- `@Successful *Disengage* ⇒ Free *Advance*`
|
||||||
|
- `@Combat start (before Initiative) ⇒ 1 ▽ → Free attack`
|
||||||
|
- `@After Initiative determined ⇒ Move [Rank] positions`
|
||||||
|
- `@Assisted ally hits ⇒ Free *Melee* vs target`
|
||||||
|
- `@Enemy forces movement [Push | Drag | Knock back] ⇒ Free *Melee* vs ◁Enemy (before moving)`
|
||||||
|
- `@First NPC meeting ⇒ **Disposition** +1`
|
||||||
|
- `@Successful **Melee** hit ⇒ 1 ✠ → +[Rank] DMG`
|
||||||
|
- `@Successful *Defense* ⇒ Recover 1 ❖ | 1 ✱`
|
||||||
|
- `@*Prepare* ◇ ⇒ **Stress** -1`
|
||||||
|
|
||||||
|
### Conditional State Changes
|
||||||
|
```
|
||||||
|
[State] ⇒ Modified Effect
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[*Broken*] ⇒ +1 **Movement**`
|
||||||
|
- `[*Blinded*] ⇒ *Perception*: +1 ⇑`
|
||||||
|
- `[*Frenzied*] @End Round ⇒ *Cool* check: [Success] ⇒ Remove [*Frenzied*]`
|
||||||
|
- `[Psychological] **Conditions** (▷Self | Adjacent allies)`
|
||||||
|
- `[*Hatred*] enemies ⇒ Offensive [Blessing]: +[Rank] DMG`
|
||||||
|
|
||||||
|
### Cost Reduction
|
||||||
|
```
|
||||||
|
Effect cost: Original → New
|
||||||
|
Action: Cost (instead of Original Cost)
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `Stand from [*Prone*]: ⬡ → ◇`
|
||||||
|
- `Command pet attack: ⬡ → ◇`
|
||||||
|
- `**Attacks** +1 via ✠: Cost 3 (instead of 4)`
|
||||||
|
|
||||||
|
### Immunity/Negation
|
||||||
|
```
|
||||||
|
[Condition/Effect]: Immune
|
||||||
|
[Quality/Penalty] ⇒ Negated/Removed/0
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[*Broken*]: Immune`
|
||||||
|
- `[*Surprised*]: Immune`
|
||||||
|
- `[Distance | Size] penalties ⇒ 0`
|
||||||
|
- `**Armor** ⇒ No **Movement** penalty`
|
||||||
|
- `{Undamaging} ⇒ Removed`
|
||||||
|
- `[Dim Light | Darkness] ⇒ No penalty`
|
||||||
|
|
||||||
|
### Substitution
|
||||||
|
```
|
||||||
|
[Condition] ⇒ May substitute *Skill A* for *Skill B*
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[Relevant academic knowledge] ⇒ May substitute *Education* for *Int*/*WP* skills`
|
||||||
|
- `[Intimidate] ⇒ May substitute with **Strength**`
|
||||||
|
|
||||||
|
### Persistent Conditions
|
||||||
|
```
|
||||||
|
**Condition** (Persistent)
|
||||||
|
Stacks: [X]
|
||||||
|
```
|
||||||
|
Note: Stacks represent both duration and severity. Reduced by 1 each End Phase.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- `**Bleeding** [3]: @Start Phase: S3 hit | @End Phase: -1 Stack`
|
||||||
|
- `**Persistent**: -1 Stack (min 1)`
|
||||||
|
- `**Entangled** +[Rank] **Severity**`
|
||||||
|
- `[Psychological **Persistent**] ⇒ -1 Stack`
|
||||||
|
|
||||||
|
### Automatic Success
|
||||||
|
```
|
||||||
|
Effect: Auto-success
|
||||||
|
[Condition] ⇒ Automatic
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `**Recuperate** (*Stress*) ⇒ Auto-success`
|
||||||
|
- `Standard doors/locks ⇒ Auto-success (no check)`
|
||||||
|
|
||||||
|
### Multiple Targets/Effects
|
||||||
|
```
|
||||||
|
Effect (▷Self | Allies | Enemies)
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `**Conditions** (▷Self | Adjacent allies)`
|
||||||
|
- `[Blessing] (▷Self | Allies) ⇒ +1 Round duration`
|
||||||
|
- `[*Charm* to lie] ⇒ ◁Listeners: ⇓ on *Intuition*`
|
||||||
|
|
||||||
|
### Replacement/Instead Of
|
||||||
|
```
|
||||||
|
Original → New
|
||||||
|
Effect: New (instead of Original)
|
||||||
|
[Condition] ⇒ Replace with [New Condition]
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[*Stunned*] incoming ⇒ *Endurance* check: [Success] ⇒ [*Staggered*] instead`
|
||||||
|
- `Command pet attack: ⬡ → ◇`
|
||||||
|
- `Treat **Terror** as **Fear**`
|
||||||
|
|
||||||
|
### Free Actions
|
||||||
|
```
|
||||||
|
Free Action
|
||||||
|
+X Free Action (per Y)
|
||||||
|
Action: 0 cost
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `Free *Manage Equipment*`
|
||||||
|
- `+1 Free *Parry* **Reaction** per **Activation**`
|
||||||
|
- `Free *Melee* vs target`
|
||||||
|
- `Free attack (before moving)`
|
||||||
|
- `@Assisted ally hits ⇒ Free *Melee* vs target`
|
||||||
|
|
||||||
|
### Permanent Effects
|
||||||
|
```
|
||||||
|
Permanent [Condition]
|
||||||
|
[Condition] (cannot be removed)
|
||||||
|
[Condition] (Permanent) vs [Target]
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `Permanent [*Hatred*] vs chosen [Origin | Faction | Region]`
|
||||||
|
|
||||||
|
### Does Not Count Toward Limits
|
||||||
|
```
|
||||||
|
[Condition] ⇒ Does not count toward [Limit]
|
||||||
|
[Condition] ⇒ Exempt from [Limit]
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[CN ≤ 2] ⇒ Does not count toward **Memory Limit**`
|
||||||
|
- `[CN ≤ 3] ⇒ Does not count toward **Memory Limit**`
|
||||||
|
|
||||||
|
### Duration Extension
|
||||||
|
```
|
||||||
|
Effect: +X Round/Turn duration
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `[Blessing] (▷Self | Allies) when fighting [*Hatred*] ⇒ +1 Round duration`
|
||||||
|
|
||||||
|
### Enable/Can Use
|
||||||
|
```
|
||||||
|
Can [Action/Spell Type]
|
||||||
|
Enables [Action/Spell Type]
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `Can cast [Blessing] spells`
|
||||||
|
- `Can use *Skirmish*`
|
||||||
|
|
||||||
|
### Advance/XP Cost Modification
|
||||||
|
```
|
||||||
|
Effect ⇒ **Advance Cost** ±X
|
||||||
|
Lore Type ⇒ -X **Advance Cost**
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `**Cultural Lores** ⇒ -1 **Advance Cost**`
|
||||||
|
- `[WP = Career] ⇒ **Advance Cost** -1`
|
||||||
|
|
||||||
|
### Character Creation Effects
|
||||||
|
```
|
||||||
|
@Character creation ⇒ Effect
|
||||||
|
```
|
||||||
|
Examples:
|
||||||
|
- `@Character creation ⇒ Roll **Dooming Table**: [Location | Enemy | Circumstance]`
|
||||||
|
- `@Death ⇒ Replacement **Advances**: 0/1/4/1/2/3/4 (per match)`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Writing Guidelines
|
||||||
|
|
||||||
|
### Capitalization Rules
|
||||||
|
|
||||||
|
**Always Capitalize:**
|
||||||
|
- Major game terms: Character, Party, Dungeon, Encounter, Expedition, Settlement, Round, Turn, Phase, Activation
|
||||||
|
- Model types: Adventurer, Adversary, Minion, Elite, Champion, Nemesis, Caster, Pet, Companion, NPC
|
||||||
|
- Resources: Momentum, Threat, Fate Points, Luck Points, Stress, Fatigue, Corruption, Wounds, Magic Pool
|
||||||
|
- Game mechanics: Attacks, Movement, Magic, Initiative, Difficulty, Severity, Disposition, Obedience, Morale, Reload, Miscast Number, Casting Number, Marks
|
||||||
|
- Locations: Dungeon Level, Board Section, Wilderness, Region, Zone, Danger Zone, DZ
|
||||||
|
- Important terms: Instigator, Target, Critical Hit, Memory Limit, Advance Cost, Career Characteristic, Encumbrance, Dooming Table
|
||||||
|
- Specific tables/systems: Dooming Table
|
||||||
|
|
||||||
|
**Never Capitalize:**
|
||||||
|
- General actions: attack, move, roll, cast
|
||||||
|
- Conditions (use italics): *engaged*, *prone*, *stunned*, *hidden*, *frenzied*, *bleeding*, *blinded*, *broken*
|
||||||
|
- Skills (use italics): *melee*, *perception*, *cool*, *charm*, *athletics*, *defense*, *education*, *intuition*
|
||||||
|
- Check types (use italics): *Basic Check*, *Complex Check*, *Extended Check*
|
||||||
|
- Manoeuvres (use italics): *Disengage*, *Advance*, *Prepare*, *Assist*, *Dispel*, *Parry*
|
||||||
|
|
||||||
|
### Dice Notation
|
||||||
|
|
||||||
|
**Standard Format:** `XdY+Z` or `DX`
|
||||||
|
- X = number of dice
|
||||||
|
- Y = die type (always 6 for AWQ)
|
||||||
|
- Z = modifier (optional)
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- `1d6` (single die)
|
||||||
|
- `2d6` (two dice)
|
||||||
|
- `1d6+2` (single die plus two)
|
||||||
|
- `3d6-1` (three dice minus one)
|
||||||
|
- `D3` (single d3)
|
||||||
|
- `D6` (single d6)
|
||||||
|
|
||||||
|
### Consistency Requirements
|
||||||
|
|
||||||
|
1. Use established symbols consistently throughout documentation
|
||||||
|
2. Always provide text alternative after symbol on first use in section
|
||||||
|
3. Maintain consistent terminology for same concepts
|
||||||
|
4. Link to definitions on first mention in document
|
||||||
|
5. Use same notation patterns for similar mechanical structures
|
||||||
|
6. Bold major game mechanics and resources
|
||||||
|
7. Italicize skills, conditions, and manoeuvres
|
||||||
|
8. Use code formatting for dice notation and specific values
|
||||||
|
|
||||||
|
### Accessibility Standards
|
||||||
|
|
||||||
|
1. Symbols enhance but do not replace clear writing
|
||||||
|
2. Provide text alternatives when needed for clarity
|
||||||
|
3. Use descriptive language alongside notation
|
||||||
|
4. Maintain reading flow - notation should clarify, not obscure
|
||||||
|
5. Consider screen reader compatibility
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notation Examples in Context
|
||||||
|
|
||||||
|
### Simple Action
|
||||||
|
```
|
||||||
|
◇ *Advance*: ▷Model moves up to [Movement]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Opposed Check
|
||||||
|
```
|
||||||
|
⬡ **Melee Attack:** ▷Attacker: *Melee* ⇌ ◁Defender: *Defense*
|
||||||
|
[Success] ⇒ Roll Damage vs ◁Defender's **Toughness**
|
||||||
|
```
|
||||||
|
|
||||||
|
### Conditional Effect
|
||||||
|
```
|
||||||
|
**Frenzied** (Ongoing):
|
||||||
|
- **Attacks** ×2
|
||||||
|
- [Nearest enemy in range] ⇒ Must attack that enemy
|
||||||
|
- @Removal: Gain ✱[X]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Extended Process
|
||||||
|
```
|
||||||
|
**Arcane Casting:**
|
||||||
|
1. ▷Caster: Extended Check using **Magic Pool** ([Mag] dice)
|
||||||
|
2. @Each roll: Count 1s = **Miscast Number**
|
||||||
|
3. [**Miscast Number** ≥ Mag×2] ⇒ Catastrophic Miscast
|
||||||
|
4. [Total **Marks** ≥ **Casting Number**] ⇒ Spell succeeds
|
||||||
|
```
|
||||||
|
|
||||||
|
### Resource Expenditure
|
||||||
|
```
|
||||||
|
**Momentum Spending:**
|
||||||
|
- 1 ✠ → Reduce Check **Difficulty** by 2
|
||||||
|
- 2 ✠ → Automatic Disengage
|
||||||
|
- 4 ✠ → **Attacks** +1 for next action
|
||||||
|
```
|
||||||
|
|
||||||
|
### Complex Talent
|
||||||
|
```
|
||||||
|
**Longbeard:**
|
||||||
|
[Psychological] **Conditions** (▷Self | Adjacent allies):
|
||||||
|
- **Persistent**: -1 Stack (min 1)
|
||||||
|
- **Ongoing**: ⇑ removal
|
||||||
|
```
|
||||||
|
|
||||||
|
### Reaction Trigger
|
||||||
|
```
|
||||||
|
**Intercept:**
|
||||||
|
@Ally charged (in Zone) ⇒ ▽: ◁Attacker: ⇓ on attack
|
||||||
|
```
|
||||||
|
|
||||||
|
### Multi-Effect Talent
|
||||||
|
```
|
||||||
|
**Holy Hatred:**
|
||||||
|
vs [*Hatred*] enemies:
|
||||||
|
- Offensive [Blessing]: +[Rank] DMG
|
||||||
|
- Friendly [Blessing]: +1 Round duration
|
||||||
|
```
|
||||||
|
|
||||||
|
### Characteristic Bonus
|
||||||
|
```
|
||||||
|
**Resolute:**
|
||||||
|
**Willpower**: +1 Max, Career Characteristic || [Already Career] ⇒ **Advance Cost** -1
|
||||||
|
```
|
||||||
|
|
||||||
|
### Complex Condition Talent
|
||||||
|
```
|
||||||
|
**Unyielding:**
|
||||||
|
[*Stunned*] incoming ⇒ *Endurance* check: [Success] ⇒ [*Staggered*] instead
|
||||||
|
```
|
||||||
|
|
||||||
|
### Free Attack Trigger
|
||||||
|
```
|
||||||
|
**Resolute:**
|
||||||
|
@Enemy forces movement [Push | Drag | Knock back] ⇒ Free *Melee* vs ◁Enemy (before moving)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
|
||||||
|
**v1.1 (2025-10-18)**
|
||||||
|
- Added Skill Ranks notation (Trained/Expertise/Mastery)
|
||||||
|
- Added Persistent Condition Stacks concept
|
||||||
|
- Expanded talent notation patterns significantly
|
||||||
|
- Added examples for: free actions, permanent effects, immunity, substitution
|
||||||
|
- Added double pipe (||) for logical OR
|
||||||
|
- Clarified bold formatting for major game mechanics and resources
|
||||||
|
- Added comprehensive trigger event patterns (@)
|
||||||
|
- Added examples for cost reduction, duration extension, and limit exemptions
|
||||||
|
- Refined model role notation with more examples
|
||||||
|
- Added patterns for multiple targets and conditional replacements
|
||||||
|
- Added advance/XP cost modification patterns
|
||||||
|
- Added character creation effect patterns
|
||||||
|
|
||||||
|
**v1.0 (2025-10-14)**
|
||||||
|
- Initial style guide creation
|
||||||
|
- Added conditional notation (⇒, @, →)
|
||||||
|
- Added model role notation (◁, ▷)
|
||||||
|
- Established symbol reference tables
|
||||||
|
- Defined formatting standards
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*This style guide is a living document and will be updated as notation conventions evolve.*
|
||||||
17
content/awq/articles/styleguide.mdoc
Normal file
17
content/awq/articles/styleguide.mdoc
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
title: The Styleguide
|
||||||
|
cover:
|
||||||
|
src: /images/covers/awq/articles/styleguide/cover/src.jpg
|
||||||
|
alt: Black and White Geometric Logo
|
||||||
|
showInHeader: true
|
||||||
|
meta:
|
||||||
|
publicationDate: 2025-10-18T21:21:00.000Z
|
||||||
|
status: draft
|
||||||
|
isFeatured: false
|
||||||
|
tags:
|
||||||
|
- how-and-what
|
||||||
|
author: dave-damage
|
||||||
|
seo:
|
||||||
|
noIndex: false
|
||||||
|
---
|
||||||
|
Maybe some day, I will write a proper styleguide but today is not the day
|
||||||
7
content/taxonomy/tags/crunch.json
Normal file
7
content/taxonomy/tags/crunch.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name": "Crunch",
|
||||||
|
"icon": {
|
||||||
|
"discriminant": "glyph",
|
||||||
|
"value": "§"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
public/images/covers/awq/articles/styleguide/cover/src.jpg
Normal file
BIN
public/images/covers/awq/articles/styleguide/cover/src.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 218 KiB |
62
src/app/(site)/awq/[...slug]/page.tsx
Normal file
62
src/app/(site)/awq/[...slug]/page.tsx
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
import { Metadata } from 'next';
|
||||||
|
import { notFound } from 'next/navigation';
|
||||||
|
|
||||||
|
import Article from '@/components/Article';
|
||||||
|
import {
|
||||||
|
collectAWQContent,
|
||||||
|
getAWQContentByPath,
|
||||||
|
} from '@/lib/readers/awq/collector';
|
||||||
|
import generatePageMetaData from '@/lib/next/generatePageMetaData';
|
||||||
|
import { getAuthorBySlug } from '@/lib/readers/taxonomy/authors';
|
||||||
|
import { getTagBySlug } from '@/lib/readers/taxonomy/tags';
|
||||||
|
|
||||||
|
export async function generateMetaData({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{ slug: string[] }>;
|
||||||
|
}): Promise<Metadata> {
|
||||||
|
const { slug } = await params;
|
||||||
|
console.log(slug);
|
||||||
|
const article = await getAWQContentByPath(slug.join('/'));
|
||||||
|
|
||||||
|
if (!article) return { title: 'Not Found' };
|
||||||
|
|
||||||
|
return generatePageMetaData(article);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function generateStaticParams() {
|
||||||
|
const allContent = await collectAWQContent();
|
||||||
|
|
||||||
|
return allContent.map((item) => ({
|
||||||
|
slug: item.fullPath.split('/'),
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function AWQPage({
|
||||||
|
params,
|
||||||
|
}: {
|
||||||
|
params: Promise<{ slug: string[] }>;
|
||||||
|
}) {
|
||||||
|
const { slug } = await params;
|
||||||
|
const breadcrumbs = ['awq', ...slug];
|
||||||
|
const path = slug.join('/');
|
||||||
|
const article = await getAWQContentByPath(path);
|
||||||
|
|
||||||
|
const author = await getAuthorBySlug(article?.meta.author);
|
||||||
|
const tags = await Promise.all(
|
||||||
|
(article?.meta.tags || []).map((slug: string) => getTagBySlug(slug))
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!article) {
|
||||||
|
notFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Article
|
||||||
|
article={article}
|
||||||
|
tags={tags}
|
||||||
|
author={author}
|
||||||
|
breadcrumbs={breadcrumbs}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -3,7 +3,14 @@ import React from 'react';
|
|||||||
import styles from './Callout.module.css';
|
import styles from './Callout.module.css';
|
||||||
|
|
||||||
interface CalloutProps {
|
interface CalloutProps {
|
||||||
type: 'default' | 'example' | 'info' | 'warning' | 'tip' | 'spoiler';
|
type:
|
||||||
|
| 'default'
|
||||||
|
| 'option'
|
||||||
|
| 'example'
|
||||||
|
| 'info'
|
||||||
|
| 'warning'
|
||||||
|
| 'tip'
|
||||||
|
| 'spoiler';
|
||||||
title?: string;
|
title?: string;
|
||||||
children: React.ReactNode;
|
children: React.ReactNode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ const calloutComponent = {
|
|||||||
label: 'Default',
|
label: 'Default',
|
||||||
value: 'default',
|
value: 'default',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Option',
|
||||||
|
value: 'option',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: 'Example',
|
label: 'Example',
|
||||||
value: 'example',
|
value: 'example',
|
||||||
|
|||||||
37
src/lib/readers/awq/collector.ts
Normal file
37
src/lib/readers/awq/collector.ts
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import { cache } from 'react';
|
||||||
|
|
||||||
|
import { AWQContent } from '@/lib/types/awq';
|
||||||
|
import { getAWQPosts } from '@/lib/readers/awq/posts';
|
||||||
|
|
||||||
|
type MappedAWQContent = AWQContent & {
|
||||||
|
slug: string;
|
||||||
|
type: 'post';
|
||||||
|
fullPath: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const collectAWQContent = cache(
|
||||||
|
async (): Promise<MappedAWQContent[]> => {
|
||||||
|
const [posts] = await Promise.all([getAWQPosts()]);
|
||||||
|
|
||||||
|
return [
|
||||||
|
...posts.map((item) => ({
|
||||||
|
...item.entry,
|
||||||
|
slug: item.slug,
|
||||||
|
type: 'post' as const,
|
||||||
|
fullPath:
|
||||||
|
item.slug === 'index'
|
||||||
|
? item.entry.path
|
||||||
|
: item.entry.path
|
||||||
|
? `${item.entry.path}/${item.slug}`
|
||||||
|
: item.slug,
|
||||||
|
})),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
export const getAWQContentByPath = cache(
|
||||||
|
async (path: string): Promise<MappedAWQContent | undefined> => {
|
||||||
|
const allContent = await collectAWQContent();
|
||||||
|
return allContent.find((item) => item.fullPath === path);
|
||||||
|
}
|
||||||
|
);
|
||||||
9
src/lib/readers/awq/posts.ts
Normal file
9
src/lib/readers/awq/posts.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { cache, reader } from '@/lib/readers/base';
|
||||||
|
|
||||||
|
export const getAWQPosts = cache(async () =>
|
||||||
|
reader.collections['awq_posts'].all()
|
||||||
|
);
|
||||||
|
|
||||||
|
export const getAWQPostsBySlug = cache(async (slug: string) =>
|
||||||
|
reader.collections['awq_posts'].read(slug)
|
||||||
|
);
|
||||||
6
src/lib/types/awq.ts
Normal file
6
src/lib/types/awq.ts
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import { Entry } from '@keystatic/core/reader';
|
||||||
|
import keystaticConfig from '~/keystatic.config';
|
||||||
|
|
||||||
|
export type AWQPost = Entry<(typeof keystaticConfig.collections)['awq_posts']>;
|
||||||
|
|
||||||
|
export type AWQContent = AWQPost;
|
||||||
@@ -19,15 +19,15 @@
|
|||||||
& + ul,
|
& + ul,
|
||||||
& + ol,
|
& + ol,
|
||||||
& + blockquote {
|
& + blockquote {
|
||||||
margin-block:
|
margin-block: calc(
|
||||||
calc(1em * var(--typo-leading-normal) * var(--vspace-tight))
|
1em * var(--typo-leading-normal) * var(--vspace-tight)
|
||||||
calc(1em * var(--typo-leading-normal) * var(--vspace-snug));
|
)
|
||||||
|
calc(1em * var(--typo-leading-normal) * var(--vspace-snug));
|
||||||
}
|
}
|
||||||
|
|
||||||
& + h2 {
|
& + h2 {
|
||||||
margin-block:
|
margin-block: calc(1em * var(--el-h1-line-height) * var(--vspace-snug))
|
||||||
calc(1em * var(--el-h1-line-height) * var(--vspace-snug))
|
calc(1em * var(--el-h1-line-height) * var(--vspace-normal));
|
||||||
calc(1em * var(--el-h1-line-height) * var(--vspace-normal));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,15 +48,17 @@
|
|||||||
& + ul,
|
& + ul,
|
||||||
& + ol,
|
& + ol,
|
||||||
& + blockquote {
|
& + blockquote {
|
||||||
margin-block:
|
margin-block: calc(
|
||||||
calc(1em * var(--typo-leading-normal) * var(--vspace-tight))
|
1em * var(--typo-leading-normal) * var(--vspace-tight)
|
||||||
calc(1em * var(--typo-leading-normal) * var(--vspace-snug));
|
)
|
||||||
|
calc(1em * var(--typo-leading-normal) * var(--vspace-snug));
|
||||||
}
|
}
|
||||||
|
|
||||||
& + h3 {
|
& + h3 {
|
||||||
margin-block:
|
margin-block: calc(
|
||||||
calc(1em * var(--el-h1-line-height) * var(--vspace-compressed))
|
1em * var(--el-h1-line-height) * var(--vspace-compressed)
|
||||||
calc(1em * var(--el-h1-line-height) * var(--vspace-snug));
|
)
|
||||||
|
calc(1em * var(--el-h1-line-height) * var(--vspace-snug));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,8 +80,8 @@
|
|||||||
& h4 {
|
& h4 {
|
||||||
margin-block: var(--el-h4-vspace-top) var(--el-h4-vspace-bottom);
|
margin-block: var(--el-h4-vspace-top) var(--el-h4-vspace-bottom);
|
||||||
padding: var(--spacing-tight) var(--spacing-snug);
|
padding: var(--spacing-tight) var(--spacing-snug);
|
||||||
border-top: var(--size-3 ) solid var(--el-h4-color);
|
border-top: var(--size-3) solid var(--el-h4-color);
|
||||||
border-bottom: var(--size-3 ) solid var(--el-h4-color);
|
border-bottom: var(--size-3) solid var(--el-h4-color);
|
||||||
|
|
||||||
font-family: var(--el-h4-font-family), serif;
|
font-family: var(--el-h4-font-family), serif;
|
||||||
font-size: var(--el-h4-font-size);
|
font-size: var(--el-h4-font-size);
|
||||||
@@ -103,17 +105,17 @@
|
|||||||
|
|
||||||
&::before,
|
&::before,
|
||||||
&::after {
|
&::after {
|
||||||
content: "";
|
content: '';
|
||||||
padding-right: var(--spacing-tight);
|
padding-right: var(--spacing-tight);
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: "❭";
|
content: '❭';
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
content: "";
|
content: '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,9 +139,10 @@
|
|||||||
& + ul,
|
& + ul,
|
||||||
& + ol,
|
& + ol,
|
||||||
& + blockquote {
|
& + blockquote {
|
||||||
margin-block:
|
margin-block: calc(
|
||||||
calc(1em * var(--typo-leading-normal) * var(--vspace-compressed))
|
1em * var(--typo-leading-normal) * var(--vspace-compressed)
|
||||||
calc(1em * var(--typo-leading-normal) * var(--vspace-snug));
|
)
|
||||||
|
calc(1em * var(--typo-leading-normal) * var(--vspace-snug));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,7 +159,8 @@
|
|||||||
|
|
||||||
& blockquote {
|
& blockquote {
|
||||||
margin-block: var(--el-p-vspace-top) var(--el-p-vspace-bottom);
|
margin-block: var(--el-p-vspace-top) var(--el-p-vspace-bottom);
|
||||||
padding: var(--spacing-snug) 0 var(--spacing-snug) var(--spacing-comfortable);
|
padding: var(--spacing-snug) 0 var(--spacing-snug)
|
||||||
|
var(--spacing-comfortable);
|
||||||
border-left: var(--size-4) solid var(--color-text-tertiary);
|
border-left: var(--size-4) solid var(--color-text-tertiary);
|
||||||
|
|
||||||
font-family: var(--el-blockquote-font-family), serif;
|
font-family: var(--el-blockquote-font-family), serif;
|
||||||
@@ -188,7 +192,8 @@
|
|||||||
|
|
||||||
& ul,
|
& ul,
|
||||||
& ol {
|
& ol {
|
||||||
margin-block: var(--el-list-nested-vspace-top) var(--el-list-nested-vspace-bottom);
|
margin-block: var(--el-list-nested-vspace-top)
|
||||||
|
var(--el-list-nested-vspace-bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
& li {
|
& li {
|
||||||
@@ -196,7 +201,8 @@
|
|||||||
list-style-position: outside;
|
list-style-position: outside;
|
||||||
|
|
||||||
& li {
|
& li {
|
||||||
margin-block: var(--el-li-nested-vspace-top) var(--el-li-nested-vspace-bottom);
|
margin-block: var(--el-li-nested-vspace-top)
|
||||||
|
var(--el-li-nested-vspace-bottom);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -257,7 +263,8 @@
|
|||||||
padding-left: var(--el-ol-item-padding);
|
padding-left: var(--el-ol-item-padding);
|
||||||
|
|
||||||
&::marker {
|
&::marker {
|
||||||
content: var(--el-ol-prefix-l1) counter(ol-l1, var(--el-ol-style-l1)) var(--el-ol-suffix-l1);
|
content: var(--el-ol-prefix-l1) counter(ol-l1, var(--el-ol-style-l1))
|
||||||
|
var(--el-ol-suffix-l1);
|
||||||
color: var(--el-ol-marker-color-l1);
|
color: var(--el-ol-marker-color-l1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -270,7 +277,8 @@
|
|||||||
margin-left: var(--el-ol-item-indent-l2);
|
margin-left: var(--el-ol-item-indent-l2);
|
||||||
|
|
||||||
&::marker {
|
&::marker {
|
||||||
content: var(--el-ol-prefix-l2) counter(ol-l2, var(--el-ol-style-l2)) var(--el-ol-suffix-l2);
|
content: var(--el-ol-prefix-l2)
|
||||||
|
counter(ol-l2, var(--el-ol-style-l2)) var(--el-ol-suffix-l2);
|
||||||
color: var(--el-ol-marker-color-l2);
|
color: var(--el-ol-marker-color-l2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,7 +291,8 @@
|
|||||||
counter-increment: ol-l3;
|
counter-increment: ol-l3;
|
||||||
|
|
||||||
&::marker {
|
&::marker {
|
||||||
content: var(--el-ol-prefix-l3) counter(ol-l3, var(--el-ol-style-l3)) var(--el-ol-suffix-l3);
|
content: var(--el-ol-prefix-l3)
|
||||||
|
counter(ol-l3, var(--el-ol-style-l3)) var(--el-ol-suffix-l3);
|
||||||
color: var(--el-ol-marker-color-l3);
|
color: var(--el-ol-marker-color-l3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +305,9 @@
|
|||||||
counter-increment: ol-l4;
|
counter-increment: ol-l4;
|
||||||
|
|
||||||
&::marker {
|
&::marker {
|
||||||
content: var(--el-ol-prefix-l4) counter(ol-l4, var(--el-ol-style-l4)) var(--el-ol-suffix-l4);
|
content: var(--el-ol-prefix-l4)
|
||||||
|
counter(ol-l4, var(--el-ol-style-l4))
|
||||||
|
var(--el-ol-suffix-l4);
|
||||||
color: var(--el-ol-marker-color-l4);
|
color: var(--el-ol-marker-color-l4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -357,7 +368,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& hr{
|
& hr {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
@@ -390,8 +401,8 @@
|
|||||||
& i {
|
& i {
|
||||||
padding: 0.1em 0.2em;
|
padding: 0.1em 0.2em;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
color: var(--color-text-inverse);
|
color: var(--color-text-secondary);
|
||||||
background: var(--color-surface-inverse);
|
background: var(--color-surface-elevated-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
& strong,
|
& strong,
|
||||||
@@ -499,11 +510,11 @@
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: "»";
|
content: '»';
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
content: "«";
|
content: '«';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
--el-h2-font-family: var(--font-header);
|
--el-h2-font-family: var(--font-header);
|
||||||
--el-h2-font-size: var(--typo-size-5xl);
|
--el-h2-font-size: var(--typo-size-5xl);
|
||||||
--el-h2-font-weight: var(--typo-weight-black);
|
--el-h2-font-weight: var(--typo-weight-black);
|
||||||
--el-h2-letter-spacing: -0.0096em;;
|
--el-h2-letter-spacing: -0.0096em;
|
||||||
--el-h2-line-height: 1.1765;
|
--el-h2-line-height: 1.1765;
|
||||||
--el-h2-text-transform: uppercase;
|
--el-h2-text-transform: uppercase;
|
||||||
--el-h2-vspace-base: calc(1em * var(--el-h2-line-height));
|
--el-h2-vspace-base: calc(1em * var(--el-h2-line-height));
|
||||||
@@ -106,8 +106,8 @@
|
|||||||
--el-pre-vspace-bottom: calc(var(--el-pre-vspace-base) * var(--vspace-normal));
|
--el-pre-vspace-bottom: calc(var(--el-pre-vspace-base) * var(--vspace-normal));
|
||||||
|
|
||||||
/* === CODE VARIABLES === */
|
/* === CODE VARIABLES === */
|
||||||
--el-code-color: var(--color-text-inverse);
|
--el-code-color: var(--color-surface-elevated-1);
|
||||||
--el-code-background: var(--color-surface-inverse);
|
--el-code-background: var(--color-text-primary);
|
||||||
--el-code-font-family: var(--font-mono);
|
--el-code-font-family: var(--font-mono);
|
||||||
--el-code-font-size: var(--typo-size-sm);
|
--el-code-font-size: var(--typo-size-sm);
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
--hr-height: var(--size-3);
|
--hr-height: var(--size-3);
|
||||||
--hr-margin: var(--spacing-relaxed) 0;
|
--hr-margin: var(--spacing-relaxed) 0;
|
||||||
--hr-color: var(--color-text-tertiary);
|
--hr-color: var(--color-text-tertiary);
|
||||||
--hr-symbol-content: "▼";
|
--hr-symbol-content: '▼';
|
||||||
--hr-symbol-size: var(--typo-size-4xl);
|
--hr-symbol-size: var(--typo-size-4xl);
|
||||||
--hr-symbol-space: 0 0.25em;
|
--hr-symbol-space: 0 0.25em;
|
||||||
--hr-symbol-line-height: var(--typo-leading-compressed);
|
--hr-symbol-line-height: var(--typo-leading-compressed);
|
||||||
@@ -262,8 +262,8 @@
|
|||||||
--el-summary-font-weight: var(--typo-weight-black);
|
--el-summary-font-weight: var(--typo-weight-black);
|
||||||
--el-summary-text-transform: uppercase;
|
--el-summary-text-transform: uppercase;
|
||||||
--el-summary-line-height: var(--typo-leading-normal);
|
--el-summary-line-height: var(--typo-leading-normal);
|
||||||
--el-summary-marker-symbol-closed: "▾";
|
--el-summary-marker-symbol-closed: '▾';
|
||||||
--el-summary-marker-symbol-open: "▴";
|
--el-summary-marker-symbol-open: '▴';
|
||||||
--el-summary-marker-symbol-transition-open: none;
|
--el-summary-marker-symbol-transition-open: none;
|
||||||
|
|
||||||
/* === DETAILS === */
|
/* === DETAILS === */
|
||||||
@@ -274,13 +274,10 @@
|
|||||||
--el-details-padding: var(--spacing-snug);
|
--el-details-padding: var(--spacing-snug);
|
||||||
--el-details-border: var(--size-1) solid var(--color-text-secondary);
|
--el-details-border: var(--size-1) solid var(--color-text-secondary);
|
||||||
|
|
||||||
/* === Header === */;
|
/* === Header === */
|
||||||
--el-header-font-size: var(--typo-size-responsive);
|
--el-header-font-size: var(--typo-size-responsive);
|
||||||
--el-header-line-height: var(--typo-leading-snug);
|
--el-header-line-height: var(--typo-leading-snug);
|
||||||
--el-header-paddingY: var(--spacing-snug);
|
--el-header-paddingY: var(--spacing-snug);
|
||||||
--el-header-height: calc(
|
--el-header-height: calc((var(--typo-size-responsive) * var(--el-header-line-height)) + (var(--el-header-paddingY) * 2));
|
||||||
(var(--typo-size-responsive) * var(--el-header-line-height)) +
|
|
||||||
(var(--el-header-paddingY) * 2)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user