mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-31 20:22:29 +00:00
Update sheetworkers to properly calculate all stat fields
This commit is contained in:
+16
-2
@@ -95,6 +95,19 @@ button[type=roll].sheet-stat-roll::before {
|
||||
font-family: 'Bold', Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
|
||||
}
|
||||
|
||||
/* Used to build out + or - in stat table */
|
||||
.sheet-collateral-damage .sheet-stat-content label {
|
||||
text-align: center;
|
||||
}
|
||||
.sheet-collateral-damage .sheet-stat-content label span:before {
|
||||
content: "+";
|
||||
cursor: pointer;
|
||||
}
|
||||
.sheet-collateral-damage .sheet-stat-content label input[type=checkbox]:checked + span:before {
|
||||
content: "-";
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Used to build the stat dice table */
|
||||
.sheet-collateral-damage .sheet-stats-dice-header {
|
||||
font-family: 'Bold', Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
|
||||
@@ -108,8 +121,7 @@ button[type=roll].sheet-stat-roll::before {
|
||||
}
|
||||
.sheet-collateral-damage td {
|
||||
text-align: center;
|
||||
border: solid #3f0f12;
|
||||
border-width: 1px;
|
||||
border: 1px solid #3f0f12;
|
||||
}
|
||||
|
||||
/* Used to build out the wound heart toggles */
|
||||
@@ -118,9 +130,11 @@ button[type=roll].sheet-stat-roll::before {
|
||||
}
|
||||
.sheet-collateral-damage label span:before {
|
||||
content: url("https://raw.githubusercontent.com/patschroed/roll20-character-sheets/master/CDMG/heart.png");
|
||||
cursor: pointer;
|
||||
}
|
||||
.sheet-collateral-damage label input[type=checkbox]:checked + span:before {
|
||||
content: url("https://raw.githubusercontent.com/patschroed/roll20-character-sheets/master/CDMG/heart_slash.png");
|
||||
cursor: pointer;
|
||||
}
|
||||
.sheet-collateral-damage ul {
|
||||
list-style-type: none;
|
||||
|
||||
+35
-15
@@ -61,14 +61,19 @@
|
||||
<input class="center-text" type="text" name="attr_luck_base" />
|
||||
<div class="input-label center-text">BASE</div>
|
||||
</div>
|
||||
<div class="stat-content"> +/- </div>
|
||||
<div class="stat-content">
|
||||
<label>
|
||||
<input name="attr_luck_modifier" type="checkbox" value="1"/>
|
||||
<span></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="stat-content">
|
||||
<input class="center-text" type="text" name="attr_luck_bonus" />
|
||||
<div class="input-label center-text">BONUS</div>
|
||||
</div>
|
||||
<div class="stat-content"> = </div>
|
||||
<div class="stat-content">
|
||||
<input class="center-text" type="text" name="attr_luck" />
|
||||
<input class="center-text" type="text" name="attr_luck_total" />
|
||||
<div class="input-label center-text">TOTAL</div>
|
||||
</div>
|
||||
<div class="stat-content">
|
||||
@@ -88,14 +93,19 @@
|
||||
<input class="center-text" type="text" name="attr_vul_base" />
|
||||
<div class="input-label center-text">BASE</div>
|
||||
</div>
|
||||
<div class="stat-content"> +/- </div>
|
||||
<div class="stat-content">
|
||||
<label>
|
||||
<input name="attr_vul_modifier" type="checkbox" value="1"/>
|
||||
<span></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="stat-content">
|
||||
<input class="center-text" type="text" name="attr_vul_bonus" />
|
||||
<div class="input-label center-text">BONUS</div>
|
||||
</div>
|
||||
<div class="stat-content"> = </div>
|
||||
<div class="stat-content">
|
||||
<input class="center-text" type="text" name="attr_vul" />
|
||||
<input class="center-text" type="text" name="attr_vul_total" />
|
||||
<div class="input-label center-text">TOTAL</div>
|
||||
</div>
|
||||
<div class="stat-content">
|
||||
@@ -114,14 +124,19 @@
|
||||
<input class="center-text" type="text" name="attr_res_base" />
|
||||
<div class="input-label center-text">BASE</div>
|
||||
</div>
|
||||
<div class="stat-content"> +/- </div>
|
||||
<div class="stat-content">
|
||||
<label>
|
||||
<input name="attr_res_modifier" type="checkbox" value="1"/>
|
||||
<span></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="stat-content">
|
||||
<input class="center-text" type="text" name="attr_res_bonus" />
|
||||
<div class="input-label center-text">BONUS</div>
|
||||
</div>
|
||||
<div class="stat-content"> = </div>
|
||||
<div class="stat-content">
|
||||
<input class="center-text" type="text" name="attr_res" />
|
||||
<input class="center-text" type="text" name="attr_res_total" />
|
||||
<div class="input-label center-text">TOTAL</div>
|
||||
</div>
|
||||
<div class="stat-content">
|
||||
@@ -229,20 +244,25 @@
|
||||
<script type="text/worker">
|
||||
const stats = ["luck", "vul", "res"];
|
||||
stats.forEach(stat => {
|
||||
on(`change:${stat}`, () => {
|
||||
getAttrs([stat], values => {
|
||||
const stat_base = parseInt(values[stat]) || 0;
|
||||
console.log(stat_base);
|
||||
let dice = 0;
|
||||
on(`change:${stat}_base change:${stat}_modifier change:${stat}_bonus`, () => {
|
||||
getAttrs([`${stat}_base`, `${stat}_modifier`, `${stat}_bonus`], values => {
|
||||
const base = parseInt(values[`${stat}_base`]) || 0;
|
||||
const mod = parseInt(values[`${stat}_modifier`]) || 0;
|
||||
const bonus = parseInt(values[`${stat}_bonus`]) || 0;
|
||||
|
||||
//Calculate the total
|
||||
let total;
|
||||
if(mod) total = base - bonus;
|
||||
else total = base + bonus;
|
||||
|
||||
//Calculate the dice bonus
|
||||
if(stat_base < 5) dice = 1;
|
||||
else if(stat_base >= 5 && stat_base < 9) dice = 2;
|
||||
let dice;
|
||||
if(total < 5) dice = 1;
|
||||
else if(total >= 5 && total < 9) dice = 2;
|
||||
else dice = 3;
|
||||
|
||||
console.log(dice);
|
||||
|
||||
setAttrs({
|
||||
[`${stat}_total`]: total,
|
||||
[`${stat}_dice`]: dice
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user