From 4e062a688a9c93077d2c3eff48b44a19cf7f53b6 Mon Sep 17 00:00:00 2001 From: Simon Brooke Date: Thu, 11 Jun 2026 17:17:54 +0100 Subject: [PATCH] ### Version 1.1.16 - Fixed bad compendium item weight/mass by checking for NaN - Fixed encumberance carry capacity for Athletics specialties --- ...oose Publishing Traveller 2nd Edition.html | 117 +++++++++++++----- Mongoose Traveller 2e Official/README.md | 5 +- 2 files changed, 87 insertions(+), 35 deletions(-) diff --git a/Mongoose Traveller 2e Official/Official Mongoose Publishing Traveller 2nd Edition.html b/Mongoose Traveller 2e Official/Official Mongoose Publishing Traveller 2nd Edition.html index 463e3fb8a9..6fa760de3e 100644 --- a/Mongoose Traveller 2e Official/Official Mongoose Publishing Traveller 2nd Edition.html +++ b/Mongoose Traveller 2e Official/Official Mongoose Publishing Traveller 2nd Edition.html @@ -13059,7 +13059,7 @@
-

Character Sheet Version 1.1.15

+

Character Sheet Version 1.1.16


Assigning Attributes To Tokens

To represent the core character attributes on a token so they can be @@ -14094,41 +14094,84 @@ }); }); + + + // Total Weight - on("change:weightright change:weightleft change:fixedcombatweight change:repeatingarmourweight change:repeatingweaponweight change:current-Strength change:current-Endurance change:injury-Strength change:injury-Endurance change:skilllevel-Athletics change:armour-mass sheet:opened", function() { - getAttrs(["weightright", "weightleft", "fixedcombatweight", "repeatingarmourweight", "repeatingweaponweight", - "current-Strength", "current-Endurance", "skilllevel-Athletics", "armour-mass", "armour-carried"], function(values) { + on("change:weightright change:weightleft change:fixedcombatweight change:repeatingarmourweight change:repeatingweaponweight change:current-Strength change:current-Endurance change:injury-Strength change:injury-Endurance change:repeating_athleticsspec change:armour-mass sheet:opened", function(event) { + // In order to calculate encumberance we need to know STR and END which is easy, but also need to know + // the Athletics 'sub-skills' and check for strength or endurance specialities + let attrs = [ + "weightright", "weightleft", + "fixedcombatweight", + "repeatingarmourweight", "repeatingweaponweight", + "current-Strength", "current-Endurance", + "skilllevel-Athletics", "skillCharacteristicDM-Athletics", "skillmodifier-Athletics", + "armour-mass", "armour-carried" + ]; - // Grab our attrs to check weight against, then remove from values so we can tot up equipment weight - const carryCapacity = parseInt(values["current-Strength"]) + parseInt(values["current-Endurance"]) + parseInt(values["skilllevel-Athletics"]); - const armourMass = parseFloat(values["armour-mass"]) * parseFloat(values["armour-carried"]); - delete values["current-Strength"]; - delete values["current-Endurance"]; - delete values["skilllevel-Athletics"]; - delete values["armour-mass"]; - delete values["armour-carried"]; - - const tw = Object.values(values).reduce((a, b) => parseFloat(a) + parseFloat(b), 0); - const tiw = parseFloat(values.weightleft) + parseFloat(values.weightright) - - // Calculate encumberance, Armour is only 25% of its weight for encumberance purposes, knock it off and re-calc - const totalArmourWeight = parseFloat(values.repeatingarmourweight) + armourMass; - let totalEncumberanceWeight = tw; // (tw - totalArmourWeight) + (totalArmourWeight * 0.25); - totalEncumberanceWeight = totalEncumberanceWeight.toFixed(2); //Math.round(totalEncumberanceWeight * 10) / 10; - let encumbered = totalEncumberanceWeight > carryCapacity ? "Yes" : "No"; - - // If the total gear weight is TWICE our capacity, then signal the DM-2 on physical actions - if(totalEncumberanceWeight > carryCapacity * 2) { - encumbered = "Yes (DM-2)"; + // Get our specialities and their modifier to re-create the inline formula + getSectionIDs("repeating_athleticsspec", function (idarr) { + for (let i=0; i parseFloat(a) + parseFloat(b), 0); + const tiw = parseFloat(values.weightleft) + parseFloat(values.weightright) + + // Calculate encumberance, Armour is only 25% of its weight for encumberance purposes, knock it off and re-calc + const totalArmourWeight = parseFloat(values.repeatingarmourweight) + armourMass; + let totalEncumberanceWeight = tw; // (tw - totalArmourWeight) + (totalArmourWeight * 0.25); + totalEncumberanceWeight = totalEncumberanceWeight.toFixed(2); //Math.round(totalEncumberanceWeight * 10) / 10; + let encumbered = totalEncumberanceWeight > carryCapacity ? "Yes" : "No"; + + // If the total gear weight is TWICE our capacity, then signal the DM-2 on physical actions + if(totalEncumberanceWeight > carryCapacity * 2) { + encumbered = "Yes (DM-2)"; + } + + //console.log("carryCapacity: " + carryCapacity); + setAttrs({ + totalweight: tw.toFixed(1), + totalitemweight: tiw, + encumbered: encumbered, + carrycapacity: "" + totalEncumberanceWeight + "/" + carryCapacity, + totalequipmentweight: tiw.toFixed(2) + }); }); }); }); @@ -14182,6 +14225,9 @@ let taw = fcw + parseFloat(values["repeatingarmourweight"]); let tww = 0; for (let i=1; i<=6; i++) { + if(isNaN(values["weapon_weight-" + i])) { + values["weapon_weight-" + i] = 0; + } tww += parseFloat(values["weapon_weight-" + i]) * parseInt(values["weapon_carried-" + i]); } fcw += tww; @@ -14245,6 +14291,9 @@ getAttrs(attrs, function (values) { for (var i=0; i