Skip to content

Conversation

MedievalSteve
Copy link
Contributor

Submission Checklist

Warning

Submission Checklist
Failure to complete this checklist in its entirety will result in your Pull Request being dismissed. If you have any questions, please feel free to create an issue.

Note

Draft Pull Requests
If you are unclear about any of the rules regarding the creation of character sheets, or need assistance from the Roll20 team, please feel free to create a Draft PR and request feedback. We'd much rather provide assistance than reject a PR.

Pull Request Title

Please format your pull request in the following way: [Sheet Name] Change Type: Description. For example: [D&D5e] New Feature: Adding dragons to dungeons.

  • The pull request title clearly contains the name of the sheet I am editing.
  • The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).

Pull Request Content

  • The pull request makes changes to files in only one sub-folder.
  • The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)
  • The pull request does not, without express prior permission from affected parties, include any material that could be considered to infringe on a Publisher's intellectual property rights, such as logos, images, rules text or other rules content.

New Sheet Details

Please complete this section if you are adding a new sheet to the repository.

If you are submitting a new sheet to the repository, please fill in any empty spaces indicated by [ ].

  • The name of this game is: [ ]

    (e.g. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

  • The publisher of this game is: [ ]

    (e.g. Wizards of the Coast, Evil Hat)

  • The name of this game system/family is: [ ]

    (e.g. Dungeons & Dragons, FATE)

  • The rules for this game can be found at the following location: [ ]

    (e.g. a link to purchase, ISBN, Half-Price Books)

  • I have followed the Character Sheets Standards when building this sheet.

  • I have authorization from the game's publisher to make this an official sheet on Roll20 with their name attached.

Select EXACTLY One:

  • This game is a traditionally published game.
  • This game is not a traditionally published game.
  • This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system. [ ADD DETAILS HERE ]

Changes / Description

Dragon Warriors Character Sheet - Version 2.03 Update

This Pull Request updates the existing Dragon Warriors character sheet with significant improvements, bug fixes, and new features developed from version 2.01 onward.

🐛 Critical Bug Fixes

1. Custom Spells Repeating Section Bug (CRITICAL)

  • Problem: Users could only add ONE custom spell entry per rank. Second entries would disappear immediately upon blur.
  • Root Cause: Roll20's repeating section system doesn't handle multiple underscores in class names properly.
  • Solution: Renamed all 42 custom spell sections from repeating_spells_<profession><rank> to repeating_customspells<profession><rank>.
  • Impact: Users can now add unlimited custom spells across all professions (Mystic, Sorcerer, Warlock, Elementalist, Demonologist).

2. Spellcheck Interference (CRITICAL)

  • Problem: Browser spell-checking was interfering with fantasy terms and game terminology.
  • Solution: Added spellcheck="false" to all 66 remaining text inputs and textareas.
  • Coverage: 100% coverage achieved - all editable fields now prevent spell-checking.

3. Image Loading Optimization (HIGH PRIORITY)

  • Problem: 19 external imgur.com dependencies causing load delays and potential broken images.
  • Solution: Localized all external images to the character sheet folder.
  • Impact: Improved loading speed and reliability.

✨ New Features

1. Dark Mode Implementation

  • Feature: Complete dark mode theme toggle for comfortable viewing in low-light conditions.
  • Implementation: CSS variables system with 14 color variables, dual checkbox system for user control.
  • Location: Toggle available in Settings & Documentation tab.
  • Benefits: Reduced eye strain, professional appearance, WCAG-compliant contrast ratios.

2. Enhanced Encumbrance System

  • Feature: Comprehensive encumbrance calculation with debug logging and improved logic.
  • Components:
    • Automatic calculation from inventory items marked "On person"
    • Coin encumbrance (150 coins = 1 encumbrance point)
    • Strength-based maximum capacity
    • Manual recalculate button
  • Triggers: Sheet load, inventory changes, coin changes, strength changes.

3. Advanced Wound Tracking System

  • Feature: Multi-method wound tracking with visual feedback and wound tolerance support.
  • Components:
    • Direct number input field
    • 51 clickable wound buttons (visual dots)
    • 3 wound tolerance buttons (beyond max HP)
    • Automatic HP calculation
  • Logic: Handles wounds 0 to maxhp, wound tolerance up to 3 points beyond death.

4. Custom Skills Support

  • Feature: Repeating section for custom profession abilities with automatic integration into skills display.
  • Functionality: Custom skills are automatically added to the main skills list when selected.
  • Integration: Seamlessly works with existing profession-specific skill tracking.

5. Weapon Auto-Update Display

  • Feature: Equipped weapons automatically update display fields when weapon details change.
  • Coverage: Both melee and ranged weapons with magic bonuses, ABR, damage, and special effects.
  • Triggers: Any change to equipped weapon fields automatically updates combat display.

6. Profession Abilities Visibility Control

  • Feature: Users can show/hide profession ability sections to clean up the interface.
  • Coverage: All 11 professions (Knight, Barbarian, Assassin, Hunter, Knave, Warlock, Sorcerer, Mystic, Elementalist, Priest, Demonologist).
  • Implementation: CSS class-based visibility control with persistent user preferences.

🔧 Technical Improvements

1. Modular Development Structure

  • Feature: Split 13,000-line HTML file into 12 manageable component files.
  • Benefits: Improved development workflow, easier maintenance, better performance in development tools.
  • Build System: Simple shell script to concatenate components into final HTML.

2. Enhanced Sheet Worker Functions

  • Utility Functions: Advanced repeating section summation with multipliers, rounding, and conditional logic.
  • XP/Rank System: Automatic character progression based on experience points.
  • Profession Stats: Base combat stats calculation based on profession and rank.
  • Mana Tracking: Comprehensive magic point management system.

3. Improved Code Documentation

  • JSDoc Comments: Extensive documentation for all major functions and systems.
  • Section Organization: Clear separation of functionality with descriptive headers.
  • Debug Logging: Console logging for troubleshooting and development.

📁 Files Modified

  • Dragon Warriors Revised.html - Main character sheet with all improvements
  • Dragon Warriors Revised.css - Updated stylesheet with dark mode and improvements
  • sheet.json - Updated metadata references
  • All supporting image assets maintained

🧪 Testing Completed

  • ✅ Custom spells functionality verified in Roll20
  • ✅ Dark mode toggle tested across all tabs
  • ✅ Encumbrance calculation verified with various scenarios
  • ✅ Wound tracking system tested with edge cases
  • ✅ Weapon auto-update functionality confirmed
  • ✅ All spellcheck attributes verified
  • ✅ Image loading optimization confirmed

📊 Version History

  • Version 2.01: Initial development improvements
  • Version 2.02: Bug fixes and stability improvements
  • Version 2.03: Current version with all critical fixes and new features

This update represents a comprehensive improvement to the Dragon Warriors character sheet, resolving all known critical bugs while adding significant new functionality and user experience enhancements.

@MedievalSteve MedievalSteve requested a review from a team as a code owner October 13, 2025 11:34
@NorWhal
Copy link
Contributor

NorWhal commented Oct 14, 2025

@MedievalSteve there are several merge conflicts with this PR, please rebase these changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants