From 31fece4636cf331ceed16dc2d399262d8c1c1540 Mon Sep 17 00:00:00 2001
From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com>
Date: Fri, 31 Jan 2025 18:14:29 -0700
Subject: [PATCH] Summed char points tailored for vehicles.
---
HeroSystem6eHeroic/HeroSystem6eHeroic.css | 2 +-
HeroSystem6eHeroic/HeroSystem6eHeroic.html | 62 ++++++++++++++++------
2 files changed, 47 insertions(+), 17 deletions(-)
diff --git a/HeroSystem6eHeroic/HeroSystem6eHeroic.css b/HeroSystem6eHeroic/HeroSystem6eHeroic.css
index 1570735a50..d79aa36769 100644
--- a/HeroSystem6eHeroic/HeroSystem6eHeroic.css
+++ b/HeroSystem6eHeroic/HeroSystem6eHeroic.css
@@ -1852,7 +1852,7 @@ select:focus + .focus {
width: 450px;
margin: 0px;
margin-left: 110px;
- margin-bottom: 60px;
+ margin-bottom: 45px;
background-color: #f7f1a0;
border: solid 2px #f0c566;
border-radius: 3px;
diff --git a/HeroSystem6eHeroic/HeroSystem6eHeroic.html b/HeroSystem6eHeroic/HeroSystem6eHeroic.html
index 1c50654090..88e246d2ef 100644
--- a/HeroSystem6eHeroic/HeroSystem6eHeroic.html
+++ b/HeroSystem6eHeroic/HeroSystem6eHeroic.html
@@ -327,7 +327,7 @@
OCV
-
+
@@ -336,7 +336,7 @@
DCV
-
+
@@ -345,7 +345,7 @@
Speed
-
+
@@ -354,7 +354,7 @@
PD
-
+
@@ -363,7 +363,7 @@
ED
-
+
@@ -372,7 +372,7 @@
Body
-
+
@@ -17371,7 +17371,11 @@
// All character attributes added in one function to avoid getAttrs() limitations.
// Add attribute costs in one go
- getAttrs(["strengthCP","dexterityCP","constitutionCP","intelligenceCP","egoCP","presenceCP","ocvCP","dcvCP","omcvCP","dmcvCP","speedCP","pdCP","edCP","bodyCP","stunCP","enduranceCP","recoveryCP","runningCP","leapingCP","swimmingCP"], function(values) {
+ getAttrs(["strengthCP", "dexterityCP", "constitutionCP", "intelligenceCP", "egoCP", "presenceCP", "ocvCP", "dcvCP", "omcvCP", "dmcvCP","speedCP", "pdCP", "edCP", "bodyCP", "stunCP", "enduranceCP", "recoveryCP", "runningCP", "leapingCP", "swimmingCP", "useVehicleAttributes", "sizeCP", "primaryReserveCP", "auxiliaryReserveCP"], function(values) {
+ const isVehicle = (values.useVehicleAttributes === "on" ) ? true : false;
+
+ const sizeCost = parseInt(values.sizeCP)||0;
+
const strengthCost = parseInt(values.strengthCP)||0;
const dexterityCost = parseInt(values.dexterityCP)||0;
const constitutionCost = parseInt(values.constitutionCP)||0;
@@ -17393,15 +17397,32 @@
const endCost = parseInt(values.enduranceCP)||0;
const recCost = parseInt(values.recoveryCP)||0;
+ const primaryReserveCost = parseInt(values.primaryReserveCP)||0;
+ const auxiliaryReserveCost = parseInt(values.auxiliaryReserveCP)||0;
+
const runningCost = parseInt(values.runningCP)||0;
const leapingCost = parseInt(values.leapingCP)||0;
const swimmingCost = parseInt(values.swimmingCP)||0;
- let primaryAttributesCost = strengthCost+dexterityCost+constitutionCost+intelligenceCost+egoCost+presenceCost;
- let combatValuesCost = ocvCost+dcvCost+omcvCost+dmcvCost;
- let defenseCost = pdCost+edCost;
- let healthCost = bodyCost+stunCost+endCost+recCost;
- let movementCost = runningCost+leapingCost+swimmingCost;
+ let primaryAttributesCost = 0;
+ let combatValuesCost = 0;
+ let defenseCost = 0;
+ let healthCost = 0;
+ let movementCost = 0;
+
+ if (isVehicle) {
+ primaryAttributesCost = strengthCost+dexterityCost+sizeCost;
+ combatValuesCost = ocvCost+dcvCost;
+ defenseCost = pdCost+edCost;
+ healthCost = bodyCost+primaryReserveCost+auxiliaryReserveCost;
+ movementCost = runningCost+leapingCost+swimmingCost;
+ } else {
+ primaryAttributesCost = strengthCost+dexterityCost+constitutionCost+intelligenceCost+egoCost+presenceCost;
+ combatValuesCost = ocvCost+dcvCost+omcvCost+dmcvCost;
+ defenseCost = pdCost+edCost;
+ healthCost = bodyCost+stunCost+endCost+recCost;
+ movementCost = runningCost+leapingCost+swimmingCost;
+ }
let characterAttributeCost = primaryAttributesCost+combatValuesCost+speedCost+defenseCost+healthCost+movementCost;
@@ -17771,6 +17792,9 @@
}
setAttrs(attributes);
+
+ // Update totals
+ sumCharacteristicPoints();
});
});
@@ -17788,11 +17812,14 @@
let reserveCP = heroRoundLow( (endCost * Math.floor(endValue/4) + recCost * Math.floor(recValue/3))/(1+limValue) );
- // Update cost
+ // Update cost
setAttrs({
"primaryReserveCP": reserveCP,
"CurrentPrimaryEND_max": endValue
});
+
+ // Update totals
+ sumCharacteristicPoints();
});
});
@@ -17807,11 +17834,14 @@
let reserveCP = heroRoundLow( (endCost * Math.ceil(endValue/4) + recCost * Math.ceil(recValue/3))/(1+limValue) );
- // Update cost
+ // Update cost
setAttrs({
"auxiliaryReserveCP": reserveCP,
"CurrentAuxiliaryEND_max": endValue
});
+
+ // Update totals
+ sumCharacteristicPoints();
});
});
@@ -17843,7 +17873,7 @@
"ephemeralOCV": Math.max(0, statValue + statMod)
});
- // Update costs
+ // Update totals
sumCharacteristicPoints();
});
});
@@ -17876,7 +17906,7 @@
// Update Defensive Combat Value and hidden attribute currentDCV
on("change:dcv change:dcvMod change:weightDexDCVPenalty change:shieldDCV change:shieldCarried change:bonusDCVmodifier change:useCharacteristicMaximums change:optionTakesNoSTUN", function () {
- getAttrs(["dcv", "dcvMod", "useCharacteristicMaximums", "weightDexDCVPenalty","shieldDCV", "shieldCarried", "bonusDCVmodifier", "optionTakesNoSTUN"], function(values) {
+ getAttrs(["dcv", "dcvMod", "useCharacteristicMaximums", "weightDexDCVPenalty", "shieldDCV", "shieldCarried", "bonusDCVmodifier", "optionTakesNoSTUN"], function(values) {
const statValue = parseInt(values.dcv)||0;
const shieldBonus = parseInt(values.shieldDCV)||0;