Skip to content

Interactive Character Sheet: Skills Drilldown and Rolling System #55

Description

@FirebrickRed

Priority: MEDIUM
Status: TODO
Phase: Phase 5 (Post-Alpha)
Depends on: #48 (Phase 1 - ability scores display must be complete)

Description

Add interactive skills drilldown menu and dice rolling system to the character sheet. When players click on ability scores, show all skills grouped by ability with the option to roll checks.

Current State (Phase 1)

  • ✅ Ability scores displayed in character sheet (slots 11-17)
  • ✅ Saving throws shown in ability score lore
  • ❌ No skills display
  • ❌ No drilldown menu
  • ❌ No interactive rolling

Proposed Features

Skills Drilldown Menu

When clicking an ability score item, open a menu showing:

  • ALL 18 D&D skills grouped by ability
  • Skill modifiers calculated (ability mod + proficiency if proficient)
  • Proficiency indicators (✓ for proficient, ⭐ for expertise)
  • Misc proficiencies section (tools, languages)
  • Back button to return to character sheet

Interactive Rolling

When clicking a skill, show options:

  1. Auto-roll: System rolls d20 + modifier, announces result
  2. Manual roll: Player inputs d20 result, system adds modifier
  3. Output to chat: Result visible to DM/party

Menu Layout (Row-Based)

Skills displayed in organized groups by ability, with proficiency markers and calculated modifiers.

D&D 5e Skills by Ability

STR (1): Athletics
DEX (3): Acrobatics, Sleight of Hand, Stealth
CON (0): (None)
INT (5): Arcana, History, Investigation, Nature, Religion
WIS (5): Animal Handling, Insight, Medicine, Perception, Survival
CHA (4): Deception, Intimidation, Performance, Persuasion

Implementation Tasks

Part 1: Skills Data Model

  • Add skill proficiencies to CharacterSheet
  • Load skill proficiencies from class/background during creation
  • Add expertise tracking (Rogue, Bard)
  • Calculate skill modifiers (ability + proficiency)

Part 2: Skills Drilldown Menu

  • Create SkillsMenu.java
  • Display all 18 skills grouped by ability
  • Show proficiency indicators (✓ / ⭐)
  • Display calculated modifiers
  • Add misc proficiencies section
  • Add back button to return to character sheet
  • Handle click event on ability scores to open menu

Part 3: Interactive Rolling

  • Create skill click handler
  • Implement auto-roll option (d20 + modifier)
  • Implement manual roll option (input + modifier)
  • Output results to chat (visible to all)
  • Format: "[Character Name] rolled Stealth: 21 (14 + 7)"

Part 4: Misc Proficiencies

  • Display tool proficiencies
  • Display language proficiencies
  • Consider separate menu if too many items

Acceptance Criteria

Skills Display

  • Clicking ability score opens skills drilldown menu
  • All 18 D&D skills shown grouped by ability
  • Proficient skills marked with ✓ (green)
  • Expertise skills marked with ⭐ or ✓✓
  • Skill modifiers calculated correctly
  • Back button returns to character sheet

Interactive Rolling

  • Clicking skill shows roll options menu
  • Auto-roll generates random d20 + modifier
  • Manual roll accepts player input + adds modifier
  • Results output to chat for DM/party visibility
  • Format matches D&D conventions

Misc Proficiencies

  • Tool proficiencies displayed
  • Language proficiencies displayed
  • Clean layout (paginate if needed)

Technical Notes

  • Use existing MenuType pattern
  • Reuse LoreBuilder for consistent styling
  • Store skill proficiencies in CharacterSheet
  • Calculate modifiers dynamically based on ability scores
  • Use Bukkit.broadcast() or player.sendMessage() for roll output

Related Issues

Future Enhancements

  • Advantage/disadvantage toggle
  • Passive skill scores (Passive Perception, etc.)
  • Skill challenge tracking
  • Custom skill DC checking

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions