From 3bf9845b27a64eb458283d04197f857954358157 Mon Sep 17 00:00:00 2001 From: dmportella Date: Sat, 23 Nov 2024 16:00:48 +0000 Subject: [PATCH 1/2] added support for charge 2024 feat with additional GWF 2014/24 udpated settings added support for 2014/24 gwf since the dmg now is addtional damage die. --- src/dndbeyond/base/character.js | 1 + src/dndbeyond/content-scripts/character.js | 20 ++++++++++++++++++++ src/extension/popup.js | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/dndbeyond/base/character.js b/src/dndbeyond/base/character.js index 07a4bf29..5426adbf 100644 --- a/src/dndbeyond/base/character.js +++ b/src/dndbeyond/base/character.js @@ -252,6 +252,7 @@ class Character extends CharacterBase { let is2024 = false; if((feat_name.toLowerCase() === "great weapon master" || feat_name.toLowerCase() === "sharpshooter" || + feat_name.toLowerCase() === "charger" || feat_name.toLowerCase() === "polearm master") && feat_reference.toLowerCase().includes("2024")) { is2024 = true; diff --git a/src/dndbeyond/content-scripts/character.js b/src/dndbeyond/content-scripts/character.js index e87daff8..2b46ed71 100644 --- a/src/dndbeyond/content-scripts/character.js +++ b/src/dndbeyond/content-scripts/character.js @@ -456,6 +456,26 @@ function handleSpecialMeleeAttacks(damages=[], damage_types=[], properties, sett damages.push("+5"); damage_types.push("Charger Feat"); settings_to_change["charger-feat"] = false; + } else if (character.hasFeat("Charger 2024") && + character.getSetting("charger-feat")) { + let charge_dmg = "1d8"; + // apply GWF if needed + if(((properties["Attack Type"] == "Melee" && ((properties["Properties"].includes("Versatile") && character.getSetting("versatile-choice") != "one") || + properties["Properties"].includes("Two-Handed"))) || + action_name == "Polearm Master - Bonus Attack" || + action_name == "Pole Strike")) { + if(character.hasGreatWeaponFighting(2014)) { + charge_dmg += "ro<=2"; + } else if(character.hasGreatWeaponFighting(2024)) { + charge_dmg = charge_dmg.replace(/([0-9]*)d([0-9]+)([^\s+-]*)(.*)/g, (match, amount, faces, roll_mods, mods) => { + return new Array(parseInt(amount) || 1).fill(`1d${faces}${roll_mods}min3`).join(" + ") + mods; + }); + } + } + + damages.push(charge_dmg); + damage_types.push("Charger Feat"); + settings_to_change["charger-feat"] = false; } return to_hit; diff --git a/src/extension/popup.js b/src/extension/popup.js index cd97f944..afa3ae71 100644 --- a/src/extension/popup.js +++ b/src/extension/popup.js @@ -262,7 +262,7 @@ function populateCharacter(response) { e = createHTMLOption("artificer-arcane-jolt", false, character_settings); options.append(e); } - if (response["feats"].includes("Charger")) { + if (response["feats"].some(f => f.toLowerCase().includes("charger"))) { e = createHTMLOption("charger-feat", false, character_settings); options.append(e); } From b4421f800fd89fe5a62b357c66125289c2c267b9 Mon Sep 17 00:00:00 2001 From: dmportella Date: Tue, 26 Nov 2024 19:01:06 +0000 Subject: [PATCH 2/2] simplified charger dmg --- src/dndbeyond/content-scripts/character.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/dndbeyond/content-scripts/character.js b/src/dndbeyond/content-scripts/character.js index 2b46ed71..dad274eb 100644 --- a/src/dndbeyond/content-scripts/character.js +++ b/src/dndbeyond/content-scripts/character.js @@ -467,9 +467,7 @@ function handleSpecialMeleeAttacks(damages=[], damage_types=[], properties, sett if(character.hasGreatWeaponFighting(2014)) { charge_dmg += "ro<=2"; } else if(character.hasGreatWeaponFighting(2024)) { - charge_dmg = charge_dmg.replace(/([0-9]*)d([0-9]+)([^\s+-]*)(.*)/g, (match, amount, faces, roll_mods, mods) => { - return new Array(parseInt(amount) || 1).fill(`1d${faces}${roll_mods}min3`).join(" + ") + mods; - }); + charge_dmg += "min3"; } }