refactor: extract inline HTML to templates, split oversized files, fix bugs

- Extract all inline HTML from JS into 21 Handlebars templates (chat/, dialogs/, ui/)
- Split utils.mjs (1507) into barrel + helpers.mjs, combat.mjs, d30.mjs
- Split roll.mjs (1632) into barrel + roll-base.mjs, roll-prompt.mjs, roll-combat.mjs, roll-damage.mjs
- Split lethal-fantasy.mjs (1426) into bootstrap + chat-reaction.mjs
- Fix: missing async on injectDiceTray (free-roll.mjs:29 SyntaxError)
- Fix: weapon._id fallback for deserialized chat-message weapon objects
- Fix: missing await on rollModifier.evaluate() calls in roll-combat.mjs
- Fix: choices→choicesList ReferenceError in utils.mjs
- Fix: add 12 missing i18n keys (chooseWeapon, chooseSave, attackRoll, etc.)
- Fix: restore sideLabel in bonus-die-select.hbs
- Clean: remove dead messageContent param, console.log→log()
- Style: barrel files preserve existing import paths
This commit is contained in:
2026-06-28 19:13:05 +02:00
parent 05c93f9475
commit 3df46b5848
38 changed files with 4686 additions and 4602 deletions
+13 -1
View File
@@ -1081,7 +1081,19 @@
"spellDRDialogMsg": "Enter a damage reduction value to subtract, or click No DR to apply full damage.",
"spellDRLabel": "DR:",
"spellNoDR": "No DR",
"spellApplyDR": "Apply DR"
"spellApplyDR": "Apply DR",
"chooseWeapon": "Choose a weapon for your reaction",
"chooseSave": "Choose a save type",
"chooseBonusDie": "Select a bonus die",
"attackRoll": "Attack roll",
"currentDefense": "Current defense",
"shieldDice": "Shield dice",
"shieldDR": "Shield DR",
"attacker": "Attacker",
"defender": "Defender"
},
"D30": {
"chooseEffect": "Choose a D30 special effect to apply"
},
"EquipmentCategories": {
"ClassKit": "Class Kit",