Updated README with screenshots.

This commit is contained in:
Villain1nGlasses
2025-02-05 16:46:50 -07:00
parent 120e4a8c6f
commit 03a66f405e
8 changed files with 80 additions and 59 deletions
+9 -3
View File
@@ -243,7 +243,7 @@ select {
.custom-select-propulsion {
min-width: 76px;
text-align-last: center;
text-align-last: left;
border: none;
background-color: #f4ec7a;
border-radius: 0px;
@@ -520,14 +520,12 @@ select:focus + .focus {
/* Style the buttons inside the tab */
.tab button {
/* background-color: #c6d2f6; */
background-color: #b3c3f3;
float: left;
outline: none;
cursor: pointer;
padding: 10px 10px;
margin-right: 0px;
/* transition: 0.3s; */
font-size: 18px;
border: none;
border-bottom: solid 3px #2e4a9e;
@@ -1423,6 +1421,10 @@ select:focus + .focus {
}
.item-characteristics-propulsion-system-more .item-characteristics-propulsion-system-row .custom-select-propulsion {
min-width: 90px;
}
.item-characteristics-propulsion-system-more .item-characteristics-propulsion-system-row:nth-child(3) .custom-select-propulsion {
min-width: 70px;
}
@@ -1486,6 +1488,10 @@ select:focus + .focus {
min-height: 68px;
}
.item-characteristics-propulsion-system-more .item-characteristics-propulsion-system-row:first-child {
margin-top: 2px;
}
/* Show additional modifiers for propulsion systems */
.show-primary-propulsion[value="essentials"] ~ div.item-characteristics-propulsion-system-essentials,
.show-primary-propulsion[value="more"] ~ div.item-characteristics-propulsion-system-more,
+47 -55
View File
@@ -429,19 +429,16 @@
<div class="item-characteristics-propulsion-system-more">
<div class="item-characteristics-propulsion-system-row">
<div class="subitem-characteristics-system-value">
<h2>MPf</h2>
<label class="container-checkbox-small">
<input type="checkbox" name="attr_primaryPropulsionMPf">
<span class="checkmark-small"></span>
</label>
<div class="custom-select-propulsion">
<select name="attr_primaryPropulsionSlotType" title="@{attr_primaryPropulsionSlotType}" tabindex="-1">
<option value="single" selected>Single Power</option>
<option value="variableSlot">Variable Slot</option>
<option value="fixedSlot">Fixed Slot</option>
</select>
</div>
<div class="subitem-characteristics-system-value">
<h2>MPv</h2>
<label class="container-checkbox-small">
<input type="checkbox" name="attr_primaryPropulsionMPv">
<span class="checkmark-small"></span>
</label>
<div class="subitem-characteristics-system-cost">
<h2>CP</h2>
<input type="text" value="0" name="attr_primaryPropulsionCP" readonly tabindex="-1" title="@{primaryPropulsionCP"/>
</div>
</div>
<div class="item-characteristics-propulsion-system-row">
@@ -522,19 +519,16 @@
<div class="item-characteristics-propulsion-system-more">
<div class="item-characteristics-propulsion-system-row">
<div class="subitem-characteristics-system-value">
<h2>MPf</h2>
<label class="container-checkbox-small">
<input type="checkbox" name="attr_secondaryPropulsionMPf">
<span class="checkmark-small"></span>
</label>
<div class="custom-select-propulsion">
<select name="attr_secondaryPropulsionSlotType" title="@{attr_secondaryPropulsionSlotType}" tabindex="-1">
<option value="single" selected>Single Power</option>
<option value="variableSlot">Variable Slot</option>
<option value="fixedSlot">Fixed Slot</option>
</select>
</div>
<div class="subitem-characteristics-system-value">
<h2>MPv</h2>
<label class="container-checkbox-small">
<input type="checkbox" name="attr_secondaryPropulsionMPv">
<span class="checkmark-small"></span>
</label>
<div class="subitem-characteristics-system-cost">
<h2>CP</h2>
<input type="text" value="0" name="attr_secondaryPropulsionCP" readonly tabindex="-1" title="@{secondaryPropulsionCP"/>
</div>
</div>
<div class="item-characteristics-propulsion-system-row">
@@ -15644,14 +15638,6 @@
<div class="grid-container-tab-options">
<div class="item-options">
<div class="item-options-row">
<label class="container-checkbox">
<input type="checkbox" name="attr_useVehicleAttributes">
<span class="checkmark" title="@{useVehicleAttributes}"></span>
</label>
<h1>Use Vehicle Attributes</h1>
</div>
<div class="item-options-row">
<label class="container-checkbox">
<input type="checkbox" name="attr_useCharacteristicMaximums">
@@ -15724,6 +15710,14 @@
<h1>Carry all Gear Sets</h1>
</div>
<div class="item-options-row">
<label class="container-checkbox">
<input type="checkbox" name="attr_useVehicleAttributes">
<span class="checkmark" title="@{useVehicleAttributes}"></span>
</label>
<h1>Use Vehicle Attributes</h1>
</div>
<div class="item-thematic-break">
</div>
@@ -18683,8 +18677,8 @@
// Update primary propulsion mode for vehicles.
on("change:primaryPropulsionMode change:primaryPropulsion change:primaryPropulsionMod change:primaryNoncombatMultiple change:primaryPropulsionLim change:primaryPropulsionAdv change:weightMovePenalty change:primaryPropulsionMPf change:primaryPropulsionMPv change:primaryPropulsionCostsEND", function() {
getAttrs(["primaryPropulsionMode", "primaryPropulsion", "primaryPropulsionMod", "primaryNoncombatMultiple", "primaryPropulsionAdv", "primaryPropulsionLim", "primaryPropulsionMPf", "primaryPropulsionMPv", "primaryPropulsionCostsEND", "weightMovePenalty"], function(values) {
on("change:primaryPropulsionMode change:primaryPropulsion change:primaryPropulsionMod change:primaryNoncombatMultiple change:primaryPropulsionLim change:primaryPropulsionAdv change:weightMovePenalty change:primaryPropulsionSlotType change:primaryPropulsionCostsEND", function() {
getAttrs(["primaryPropulsionMode", "primaryPropulsion", "primaryPropulsionMod", "primaryNoncombatMultiple", "primaryPropulsionAdv", "primaryPropulsionLim", "primaryPropulsionSlotType", "primaryPropulsionCostsEND", "weightMovePenalty"], function(values) {
const statValue = Math.max(0, parseInt(values.primaryPropulsion)||0);
const statMod = parseInt(values.primaryPropulsionMod)||0;
@@ -18693,13 +18687,12 @@
const theMode = values.primaryPropulsionMode||"ground";
let statNet = 0;
let statCP = 0;
const advantages = Math.max(0, parseFloat(values.primaryPropulsionAdv)||0);
const costsEND = (values.primaryPropulsionCostsEND === "noEND") ? 0 : ((values.primaryPropulsionCostsEND === "costsENDhalf") ? 0.25 : 0.5);
const advantages = Math.max(0, parseFloat(values.primaryPropulsionAdv)||0);
const limitations = Math.max(0, parseFloat(values.primaryPropulsionLim)||0) + costsEND;
let endurance = 0;
let netMove = "NA";
const isMPv = (values.primaryPropulsionMPv === "on" ) ? true : false;
const isMPf = (values.primaryPropulsionMPf === "on" ) ? true : false;
const slotType = values.primaryPropulsionSlotType;
switch (theMode) {
case "ground": statNet = Math.max(0, statValue + statMod + penalty);
@@ -18735,16 +18728,16 @@
statCP = heroRoundLow( (1+advantages) * statCP );
if (costsEND !== 0) {
endurance = Math.max(1, heroRoundLow( statCP/((costsEND === 0.25) ? 20 : 10 )));
if (costsEND === 0.25) {
endurance = Math.max(1, heroRoundLow(statCP/20));
} else if (costsEND === 0.5) {
endurance = Math.max(1, heroRoundLow(statCP/10));
}
statCP = heroRoundLow( statCP/(1+limitations) );
if (isMPf) {
statCP = Math.max(1, heroRoundLow( statCP/10 ));
} else if (isMPv) {
statCP = Math.max(1, heroRoundLow( statCP/5 ));
if (slotType !== "single") {
statCP = (slotType === "variableSlot") ? Math.max(1, heroRoundLow( statCP/5 )) : Math.max(1, heroRoundLow( statCP/10 ));
}
// Update cost and net movement
@@ -18761,8 +18754,8 @@
// Update secondary propulsion mode for vehicles.
on("change:secondaryPropulsionMode change:secondaryPropulsion change:secondaryPropulsionMod change:secondaryNoncombatMultiple change:secondaryPropulsionAdv change:secondaryPropulsionLim change:primaryPropulsionMPf change:primaryPropulsionMPv change:secondaryPropulsionCostsEND change:weightMovePenalty", function() {
getAttrs(["secondaryPropulsionMode", "secondaryPropulsion", "secondaryPropulsionMod", "secondaryNoncombatMultiple", "secondaryPropulsionAdv", "secondaryPropulsionLim", "secondaryPropulsionMPf", "secondaryPropulsionMPv", "secondaryPropulsionCostsEND", "weightMovePenalty"], function(values) {
on("change:secondaryPropulsionMode change:secondaryPropulsion change:secondaryPropulsionMod change:secondaryNoncombatMultiple change:secondaryPropulsionAdv change:secondaryPropulsionLim change:secondaryPropulsionSlotType change:secondaryPropulsionCostsEND change:weightMovePenalty", function() {
getAttrs(["secondaryPropulsionMode", "secondaryPropulsion", "secondaryPropulsionMod", "secondaryNoncombatMultiple", "secondaryPropulsionAdv", "secondaryPropulsionLim", "secondaryPropulsionSlotType", "secondaryPropulsionCostsEND", "weightMovePenalty"], function(values) {
const statValue = Math.max(0, parseInt(values.secondaryPropulsion)||0);
const statMod = parseInt(values.secondaryPropulsionMod)||0;
@@ -18771,13 +18764,12 @@
const theMode = values.secondaryPropulsionMode||"ground";
let statNet = 0;
let statCP = 0;
let advantages = Math.max(0, parseFloat(values.secondaryPropulsionAdv)||0);
let limitations = Math.max(0, parseFloat(values.secondaryPropulsionLim)||0);
let costsEND = (values.secondaryPropulsionCostsEND === "noEND") ? 0 : ((values.secondaryPropulsionCostsEND === "costsENDhalf") ? 0.25 : 0.5);
let advantages = Math.max(0, parseFloat(values.secondaryPropulsionAdv)||0);
let limitations = Math.max(0, parseFloat(values.secondaryPropulsionLim)||0) + costsEND;
let endurance = 0;
let netMove = "NA";
const isMPv = (values.secondaryPropulsionMPv === "on" ) ? true : false;
const isMPf = (values.secondaryPropulsionMPf === "on" ) ? true : false;
const slotType = values.secondaryPropulsionSlotType;
switch (theMode) {
case "ground": statNet = Math.max(0, statValue + statMod + penalty);
@@ -18813,16 +18805,16 @@
statCP = heroRoundLow( (1+advantages) * statCP );
if (costsEND !== 0) {
endurance = Math.max(1, heroRoundLow( statCP/((costsEND === 0.25) ? 20 : 10 )));
if (costsEND === 0.25) {
endurance = Math.max(1, heroRoundLow(statCP/20));
} else if (costsEND === 0.5) {
endurance = Math.max(1, heroRoundLow(statCP/10));
}
statCP = heroRoundLow( statCP/(1+limitations) );
if (isMPf) {
statCP = Math.max(1, heroRoundLow( statCP/10 ));
} else if (isMPv) {
statCP = Math.max(1, heroRoundLow( statCP/5 ));
if (slotType !== "single") {
statCP = (slotType === "variableSlot") ? Math.max(1, heroRoundLow( statCP/5 )) : Math.max(1, heroRoundLow( statCP/10 ));
}
// Update cost and net movement
+24 -1
View File
@@ -26,6 +26,8 @@ The number of skills (50 general skills, up to 12 combat skills, 9 maneuvers, an
&emsp; [Page 6: Options](#page-6)
&emsp; [Vehicles](#vehicles)
&emsp; [Mod Support](#mods)
&emsp; [Tokens](#tokens)
@@ -293,6 +295,24 @@ This option activates or deactivates the line item deletion mode for gear, skill
>[!CAUTION]
> Use of the Delete Mode may lead to unwanted data loss. Deleted items are not recoverable.
# <a id="vehicles">Vehicles</a>
![Vehicles](/HeroSystem6eHeroic/images/vehicle-sheet-scaled.png)
The "Use Vehicle Attributes" option reconfigures the first page for use with vehicle characters. This option adds the *Size* attribute, which determines secondary characteristics like length, mass, and the OCV bonus to hit the vehicle (*OCV+*). Size also adds to strength, reflected in the strength modifier. Many characteristics like *CON*, *INT*, *EGO*, and *PRE* aren't used for vehicles and are hidden (but not deleted).
This configuration has four tailored power sections that would commonly used by vehicles: two movement powers (propulsion systems) and two endurance reserves (power systems).
![Propulsion](/HeroSystem6eHeroic/images/VehiclePropulsion.png)
Note that HERO System vehicles typically start with 12 m of running and 4 m of swimming. Since most vehicles add modifies to or buyback these attributes, this sheet assumes zero for each and refunds the character 14 points.
![Reserves](/HeroSystem6eHeroic/images/VehiclePower.png)
The primary and auxiliary endurance reserves replace the *END* and *STUN* attributes in the Health Status widget (as *END* and *AUX*). Endurance costs will be subtracted from one of these two attributes, selected by the adjacent radio buttons as shown below.
![VehicleHealth](/HeroSystem6eHeroic/images/VehiclePower.png)
# <a id="mods">Mod Support</a>
### HERO System 6e Heroic HD Importer
@@ -311,7 +331,9 @@ If you would like more flexibility in creating macros you might consider adding
![Token](/HeroSystem6eHeroic/images/SampleToken.png)
Roll20 tokens can display numeric values of three attributes as well as three status bars. Let me suggest the attributes *currentDCV,* *currentBODY,* and *currentEND* these should automatically be coupled with their maximum values. The hidden attribute *currentDCV* is presently equal to the character's DCV + Shield DCV Bonus - DCV Weight Penalty + DCV Modifier.
Roll20 tokens can display numeric values of three attributes as well as three status bars. Let me suggest the attributes *CurrentDCV,* *CurrentBODY,* and *CurrentEND* these should automatically be coupled with their maximum values. The hidden attribute *currentDCV* is presently equal to the character's DCV + Shield DCV Bonus - DCV Weight Penalty + DCV Modifier.
Vehicles do not have *STUN* and don't use the *END* attribute. For vehicles, I suggest using *CurrentPrimaryEND* and *CurrentAuxiliaryEND*, which point to the two vehicle endurance reserves.
![Token Settings](/HeroSystem6eHeroic/images/TokenSettings.png)
@@ -341,6 +363,7 @@ During play, add the Turn Token to the Turn Tracker using the "Tracker" button o
*First version by Villain In Glasses, August 1, 2021.*
*Recent updates:*
*February 5, 2025 adds vehicle support (Version 4.40).*
*January 25, 2025 adds damage type (killing, normal, and power) to the weapon worksheet (Version 4.10).*
*January 3, 2025 to represent the sheet as of Version 4.02.*
*November 21, 2024 to represent the sheet as of Version 3.81 and updated support in Hero Roller 1.3.0.*
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB