[SalvageUnion] add weapon heat automation

This commit is contained in:
Stexinator
2023-02-14 16:33:16 +01:00
parent 0b476d81e5
commit da697a714f
2 changed files with 47 additions and 10 deletions
+5
View File
@@ -4,6 +4,11 @@
padding: 20px;
}
.ui-dialog .charsheet .rollButton button[type=action]:before {
content: "t";
font-family: "dicefontd20";
}
summary{
display:list-item;
list-style-position: outside;
+42 -10
View File
@@ -175,7 +175,7 @@
<div class="mech">
<h2>Mech
<button type="roll" value="&{template:roll}{{name=@{character_name}}}{{roll=[[1d20]]}}{{mech=1}}"></button>
<button type="roll" value="&{template:roll}{{name=@{character_name}}}{{roll=[[1d20]]}}{{mech=1}}{{heatroll=[[0]]}}"></button>
</h2>
<div style="display:flex">
<div class="twocolumns">
@@ -214,7 +214,7 @@
<label> of <input type="number" min="0" name="attr_energy_max" value="10"></label>
</div>
<div class="descValuePair">
<button type="action" class="textbutton" name="act_reactOverload">Heat</button>
<button type="roll" class="textbutton" value="&{template:roll}{{name=@{character_name}}}{{mech=1}}{{heatroll=[[1d20]]}}{{heat=[[@{heat}]]}}">Heat</button>
<input type="number" min="0" max="10" name="attr_heat" value="0">
<label> of <input type="number" min="0" name="attr_heat_max" value="10"> </label>
</div>
@@ -230,11 +230,11 @@
<div>
<fieldset class="repeating_mechweapons">
<details>
<summary>
<summary class="rollButton">
<input type="text" name="attr_weaponname" title="Name of the Weapon">
<input type="text" name="attr_range" title="Range">
<input type="text" name="attr_damage" title="Damage">
<button type="roll" title="Fire the Weapon" value="&{template:weapon}{{callsign=@{character_name}}}{{range=@{range}}}{{weapon_name=@{weaponname}}}{{roll=[[1d20]]}}{{damage=@{damage}}}{{mech=1}}">
<button type="action" name="act_roll" title="Fire the Weapon" value="&{template:weapon}{{callsign=@{character_name}}}{{range=@{prefix-range}}}{{weapon_name=@{prefix-weaponname}}}{{roll=[[1d20]]}}{{damage=@{prefix-damage}}}{{weaponheat=[[@{prefix-weaponheat}]]}}{{mech=1}}{{heatroll=[[0]]}}">
</button>
</summary>
<details class="subdetails">
@@ -243,15 +243,15 @@
</summary>
<div class="descValuePair">
<label>Heat produced</label>
<input type="text" name="heat" placeholder="1">
<input type="number" name="attr_weaponheat" value="0" min="0">
</div>
<div class="descValuePair">
<label>Cost</label>
<input type="text" name="cost" placeholder="1 T1 Scrap">
<input type="text" name="attr_cost" placeholder="1 T1 Scrap">
</div>
<div class="descValuePair">
<label>Slots</label>
<input type="text" name="slot" placeholder="1 System">
<input type="text" name="attr_slot" placeholder="1 System">
</div>
</details>
<textarea name="attr_weaponDetails"></textarea>
@@ -376,7 +376,7 @@
<input type="text" name="attr_weaponname" title="Name of the Weapon">
<input type="text" name="attr_range" title="Range">
<input type="text" name="attr_damage" title="Damage">
<button type="roll" title="Fire the Weapon" value="&{template:weapon}{{callsign=@{character_name}}}{{range=@{range}}}{{weapon_name=@{weaponname}}}{{roll=[[1d20]]}}{{damage=@{damage}}}{{mech=1}}">
<button type="roll" title="Fire the Weapon" value="&{template:weapon}{{callsign=@{character_name}}}{{range=@{range}}}{{weapon_name=@{weaponname}}}{{roll=[[1d20]]}}{{damage=@{damage}}}">
</button>
</summary>
<details class="subdetails">
@@ -385,7 +385,7 @@
</summary>
<div class="descValuePair">
<label>Heat produced</label>
<input type="text" name="heat" placeholder="1">
<input type="number" name="heat" value="0">
</div>
<div class="descValuePair">
<label>Cost</label>
@@ -460,7 +460,7 @@
<script type="text/worker">
const buttonlist = ["pilot","mech","crawler","settings"];
const buttonlist = ["pilot","mech","crawler","settings"];
buttonlist.forEach(button => {
on(`clicked:${button}`, function() {
setAttrs({
@@ -469,6 +469,27 @@
});
});
on('clicked:repeating_mechweapons:roll',
async (event) => {
// prefix gets an empty string for normal attributes, and repeating_section_ID_ for repeating attributes
var prefix = event.sourceAttribute.split('_').slice(0,3).join('_') + '_'
let rollPart = event.htmlAttributes.value.replaceAll('prefix-', `${prefix}`);
let results = await startRoll(rollPart);
let attrs = await asw.getAttrs(['heat']);
let resultingHeat = parseInt(attrs.heat) + results.results.weaponheat.result;
asw.setAttrs({
heat: resultingHeat
});
finishRoll(
results.rollId,
{}
);
});
on('clicked:reactPush', async (ev) => {
await push(ev, 'roll');
});
@@ -590,6 +611,13 @@ const asw = (() => {
</td>
</tr>
{{/damage}}
{{#^rollTotal() weaponheat 0}}
<tr>
<td>
Weaponheat: {{weaponheat}}
</td>
</tr>
{{/^rollTotal() weaponheat 0}}
{{#heat}}
<tr>
<td>
@@ -605,9 +633,11 @@ const asw = (() => {
</table>
{{#mech}}
<div class="sheet-rolltemplate-button-row">
{{#rollTotal() heatroll 0}}
<div class="sheet-rolltemplate-button">
[Push](~{{callsign}}|reactPushWeapon)
</div>
{{/rollTotal() heatroll 0}}
{{#^rollGreater() heatroll heat}}
<div class="sheet-rolltemplate-button">
@@ -670,9 +700,11 @@ const asw = (() => {
{{#mech}}
<div class="sheet-rolltemplate-button-row">
{{#rollTotal() heatroll 0}}
<div class="sheet-rolltemplate-button">
[Push](~{{name}}|reactPush)
</div>
{{/rollTotal() heatroll 0}}
{{#^rollGreater() heatroll heat}}
<div class="sheet-rolltemplate-button">