2 Commits

Author SHA1 Message Date
c4bbe95b08 Prefactor 2025-11-11 09:26:19 +01:00
b74dfe3186 Merge branch 'feature/article-components'
All checks were successful
Build and Deploy DAVE | DMGs Site / deploy (push) Successful in 2m14s
2025-10-13 22:45:24 +02:00
18 changed files with 2099 additions and 132 deletions

View File

@@ -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_

View 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`

View 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

View 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_

View 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

View 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 %}

View 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.*

View 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

View File

@@ -0,0 +1,7 @@
{
"name": "Crunch",
"icon": {
"discriminant": "glyph",
"value": "§"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

View 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}
/>
);
}

View File

@@ -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;
} }

View File

@@ -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',

View 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);
}
);

View 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
View 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;

View File

@@ -19,14 +19,14 @@
& + 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,14 +48,16 @@
& + 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));
} }
} }
@@ -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,8 +139,9 @@
& + 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);
} }
} }
@@ -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: '«';
} }
} }

View File

@@ -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)
);
} }
} }