Priority: MEDIUM
Status: TODO
Depends on: Issue #55 (Skill rolling system - prerequisite)
Description
Extend the interactive rolling system (Issue #55) to support saving throws and raw ability checks. Players should be able to click ability scores in the character sheet to roll saves or ability checks.
Current State
D&D 5e Context
Saving Throws:
- Roll: d20 + ability modifier + proficiency (if proficient)
- Example: DEX save vs fireball = d20 + DEX mod + prof bonus
- Proficiency determined by class (e.g., Rogue proficient in DEX/INT saves)
Ability Checks:
- Roll: d20 + ability modifier (no proficiency)
- Example: Raw STR check to break door = d20 + STR mod
- Used when no specific skill applies
Proposed Implementation
UI Flow
Option A: Click ability score in character sheet
Player clicks "STR 16 (+3)" in character sheet
→ Opens menu:
[Roll STR Check] (d20 + 3)
[Roll STR Save] (d20 + 3 + prof if proficient)
[Cancel]
→ Each option leads to advantage/disadvantage menu (reuse from Issue #55)
Option B: Dedicated section in skills menu
Skills Menu:
[STR] [Athletics]
[Roll STR Check] [Roll STR Save]
[DEX] [Acrobatics] [Sleight of Hand] [Stealth]
[Roll DEX Check] [Roll DEX Save]
Recommend Option A - keeps character sheet interactive.
Roll Options Menu
Reuse existing RollOptionsMenu from Issue #55:
- Normal Roll
- Advantage
- Disadvantage
- Show Modifier Only
- Cancel
Chat Output Examples
Saving Throw:
[CharName] rolled DEX save: 18 (d20: 13 +3 +2)
[CharName] rolled STR save with advantage: 22 (d20: 17, 12 +3)
Ability Check:
[CharName] rolled STR check: 15 (d20: 12 +3)
[CharName] rolled CHA check with disadvantage: 8 (d20: 6, 14 +2)
Acceptance Criteria
Technical Implementation
New Components
- AbilityRollOptionsMenu (or reuse/extend RollOptionsMenu?)
- Add ROLL_ABILITY_CHECK and ROLL_SAVING_THROW to MenuAction
- Update ViewCharacterSheetMenu to make ability items clickable
Reuse from Issue #55
- RollOptionsMenu (advantage/disadvantage selection)
- Roll logic (rollD20, rollAdvantage, rollDisadvantage)
- Chat broadcast formatting
- MenuAction pattern
Data Needed
- Ability modifier:
character.getModifier(ability)
- Save proficiency:
character.getMainClass().getSavingThrows().contains(ability)
- Proficiency bonus:
character.getProficiencyBonus()
Related Issues
Future Enhancements
- Death saving throws (special case - no modifiers)
- Concentration saves (CON save with special DC)
- Contested checks (opposed rolls)
- Save DC display for spells
Notes
Priority: MEDIUM
Status: TODO
Depends on: Issue #55 (Skill rolling system - prerequisite)
Description
Extend the interactive rolling system (Issue #55) to support saving throws and raw ability checks. Players should be able to click ability scores in the character sheet to roll saves or ability checks.
Current State
D&D 5e Context
Saving Throws:
Ability Checks:
Proposed Implementation
UI Flow
Option A: Click ability score in character sheet
Option B: Dedicated section in skills menu
Recommend Option A - keeps character sheet interactive.
Roll Options Menu
Reuse existing RollOptionsMenu from Issue #55:
Chat Output Examples
Saving Throw:
Ability Check:
Acceptance Criteria
Technical Implementation
New Components
Reuse from Issue #55
Data Needed
character.getModifier(ability)character.getMainClass().getSavingThrows().contains(ability)character.getProficiencyBonus()Related Issues
Future Enhancements
Notes