diff --git a/GURPS/gurps.css b/GURPS/gurps.css
index f64db95ef0..7a6c6665a6 100644
--- a/GURPS/gurps.css
+++ b/GURPS/gurps.css
@@ -4315,6 +4315,17 @@ input[name="attr_inventory_item_carried"][value="1"] ~ span.sheet-item-weight-to
/* roll modifier button tools used outside of modal box */
+/* roll modifier status */
+.sheet-roll-modifiers .sheet-number-input input.sheet-modifier-status[value="positive"] ~ input.sheet-final-modifier {
+ background-color: blue !important;
+ color: white;
+}
+
+.sheet-roll-modifiers .sheet-number-input input.sheet-modifier-status[value="negative"] ~ input.sheet-final-modifier {
+ background-color: red !important;
+ color: white;
+}
+
.sheet-roll-modifiers .sheet-number-input {
width: 30px;
}
diff --git a/GURPS/gurps.html b/GURPS/gurps.html
index 1b3ca6dba6..224bfe7f5e 100644
--- a/GURPS/gurps.html
+++ b/GURPS/gurps.html
@@ -8291,7 +8291,8 @@ PU2:126 = Power-Ups 2. Page 126
-
+
+
@@ -8770,7 +8771,8 @@ PU2:126 = Power-Ups 2. Page 126
-
+
+
@@ -10019,7 +10021,8 @@ visualize what it will look like in chat.
-
+
+
@@ -11290,7 +11293,8 @@ visualize what it will look like in chat.
-
+
+
@@ -11853,7 +11857,8 @@ visualize what it will look like in chat.
-
+
+
@@ -13960,7 +13965,8 @@ Slam uses either DX, Brawling, or Sumo Wrestling. Note that the -4 to hit and ef
-
+
+
@@ -22790,8 +22796,17 @@ Diffuse: Max 2HP (Exception: Area-effect, cone, and explosion attacks cause norm
rangedRollModSummary += `${sizeMod} Size Modifier\n`;
}
+
+ let hitModifierStatus = "neutral";
+
+ if (hitModifier > 0) {
+ hitModifierStatus = "positive";
+ } else if (hitModifier < 0) {
+ hitModifierStatus = "negative";
+ }
updates = {
+ ranged_roll_modifier_status: hitModifierStatus,
ranged_roll_modifier: hitModifier,
ranged_roll_modifier_summary: rangedRollModSummary,
target_size_modifier: sizeMod,
@@ -26521,13 +26536,24 @@ Diffuse: Max 2HP (Exception: Area-effect, cone, and explosion attacks cause norm
maxSkillNine = 9;
}
+ const rollModifier = Number(values.roll_modifier);
+
+ let rollModifierStatus = "neutral";
+
+ if (rollModifier > 0) {
+ rollModifierStatus = "positive";
+ } else if (rollModifier < 0) {
+ rollModifierStatus = "negative";
+ }
+
// fields to get updated
const updateFields = {
"show_roll_modifiers": 0,
"roll_modifier_types": "",
[`${section}_custom_roll_modifier`]: Number(values.dialog_custom_roll_modifier),
[`${section}_custom_roll_modifier_reason`]: values.dialog_custom_roll_modifier_reason,
- [`${section}_roll_modifier`]: Number(values.roll_modifier),
+ [`${section}_roll_modifier_status`]: rollModifierStatus,
+ [`${section}_roll_modifier`]: rollModifier,
[`${section}_roll_modifier_summary`]: values.roll_modifier_summary,
[`${section}_roll_trait_summary`]: values.roll_trait_summary,
[`${section}_roll_max_nine`]: values.max_skill_nine,
@@ -28187,27 +28213,7 @@ Diffuse: Max 2HP (Exception: Area-effect, cone, and explosion attacks cause norm
setAttrs(fields, { silent: true });
});
-
- /* If roll modifier is turned off, clear the values to avoid them from being used in roll template */
- on(`change:use_${section}_modifier_tool`, event => {
-
- let updateFields = {
- [`${section}_custom_roll_modifier`]: 0,
- [`${section}_custom_roll_modifier_summary`]: "",
- [`${section}_roll_modifier`]: 0,
- [`${section}_roll_modifier_summary`]: "",
- [`${section}_roll_trait_summary`]: "",
- [`${section}_roll_max_nine`]: 0,
- [`${section}_roll_max_nine_value`]: 100,
- [`${section}_roll_hit_location`]: "",
- [`${section}_roll_maneuver`]: "",
- [`${section}_roll_allout_attack`]: "",
- }
-
- setAttrs(updateFields, { silent: true });
-
- });
-
+
const CUSTOM_MOD_DESC = "custom modifier";
/* check for manual changes to modifier tool just above the repeating tables section. */
@@ -29413,6 +29419,7 @@ Diffuse: Max 2HP (Exception: Area-effect, cone, and explosion attacks cause norm
updates[`${section}_custom_roll_modifier`] = 0;
updates[`${section}_custom_roll_modifier_reason`] = "";
+ updates[`${section}_roll_modifier_status`] = "neutral";
updates[`${section}_roll_modifier`] = 0;
updates[`${section}_roll_modifier_summary`] = "";
updates[`${section}_roll_trait_summary`] = "";
@@ -29495,6 +29502,14 @@ Diffuse: Max 2HP (Exception: Area-effect, cone, and explosion attacks cause norm
}
+ let rollModifierStatus = "neutral";
+
+ if (currentModifier > 0) {
+ rollModifierStatus = "positive";
+ } else if (currentModifier < 0) {
+ rollModifierStatus = "negative";
+ }
+
const updates = {};
switch (section) {
@@ -29513,6 +29528,8 @@ Diffuse: Max 2HP (Exception: Area-effect, cone, and explosion attacks cause norm
updates[`${section}_roll_modifier_summary`] = newSummary;
+ updates[`${section}_roll_modifier_status`] = rollModifierStatus;
+
updates[`${section}_roll_modifier`] = currentModifier;
setAttrs(updates, { silent: true }, () => {
@@ -29614,11 +29631,21 @@ Diffuse: Max 2HP (Exception: Area-effect, cone, and explosion attacks cause norm
}
+ let rollModifierStatus = "neutral";
+
+ if (currentModifier > 0) {
+ rollModifierStatus = "positive";
+ } else if (currentModifier < 0) {
+ rollModifierStatus = "negative";
+ }
+
const updates = {};
updates[`${type}_db`] = applyDB;
updates[`defense_roll_modifier_summary`] = newSummary;
+
+ updates[`defense_roll_modifier_status`] = rollModifierStatus;
updates[`defense_roll_modifier`] = currentModifier;