From 7fe1e2a576b84b564da209fa90709f4ead065505 Mon Sep 17 00:00:00 2001 From: Stexinator Date: Wed, 29 Mar 2023 19:44:23 +0200 Subject: [PATCH] [SalvageUnion] add heatspike --- SalvageUnion/SalvageUnion.html | 131 ++++++++++++++++++++++++++------- 1 file changed, 105 insertions(+), 26 deletions(-) diff --git a/SalvageUnion/SalvageUnion.html b/SalvageUnion/SalvageUnion.html index 6536f0ba34..ff005a4e7b 100644 --- a/SalvageUnion/SalvageUnion.html +++ b/SalvageUnion/SalvageUnion.html @@ -179,7 +179,7 @@

Mech - +

@@ -252,7 +252,7 @@ -
@@ -276,6 +276,10 @@
+
+ + +
@@ -334,6 +338,10 @@
+
+ + +
@@ -392,6 +400,10 @@
+
+ + +
@@ -641,9 +653,10 @@ on('clicked:repeating_mechweapons:roll', // 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 attrs = await asw.getAttrs([`${prefix}heat`]); - let weaponheat = attrs[Object.keys(attrs)[0]] - let overheat = await overheatCheck(weaponheat); + let attrs = await asw.getAttrs([prefix+'heat', prefix+'heatspike']); + let overheat = await overheatCheck( attrs[prefix+'heat'], attrs[prefix+'heatspike']); + + console.log(overheat); let rollPart = event.htmlAttributes.value.replaceAll('prefix-', `${prefix}`); let results = await startRoll(rollPart + overheat.queryMod); @@ -664,11 +677,12 @@ on('clicked:repeating_modules:use-module clicked:repeating_systems:use-system', var trigger = event.triggerName.slice(8); // this always starts with 'clicked:' var prefix = trigger.split('_').slice(0,3).join('_') + '_' - let attrs = await asw.getAttrs(['character_name', 'energy', 'heat', prefix+'name', prefix+'cost', prefix+'heat', prefix+'has-uses']); + let attrs = await asw.getAttrs(['character_name', 'energy', 'heat', prefix+'name', prefix+'cost', prefix+'heat', prefix+'heatspike', prefix+'has-uses']); let cost = parseInt(attrs[prefix+'cost']); let heat = parseInt(attrs[prefix+'heat']); + let heatspike = attrs[prefix+'heatspike']; - let overheat = await overheatCheck(heat); + let overheat = await overheatCheck(heat, heatspike); if(overheat.queryMod.includes("{{toMuchHeat=[[1]]}}")) { let rollBase = `/w ${attrs.character_name} &{template:info}{{info= You have to much heat to use ${attrs[prefix+'name']} }}`; @@ -679,7 +693,7 @@ on('clicked:repeating_modules:use-module clicked:repeating_systems:use-system', let toSet = {} - let rollBase = `/w ${attrs.character_name} &{template:info}{{info= You activated ${attrs[prefix+'name']} for `; + let rollBase = `/w ${attrs.character_name} &{template:info}{{name=${attrs.character_name}}}{{info= You activated ${attrs[prefix+'name']} for `; if(heat !== 0) { rollBase += `${heat} heat and ` toSet.heat = overheat.resultingHeat; @@ -697,7 +711,7 @@ on('clicked:repeating_modules:use-module clicked:repeating_systems:use-system', asw.setAttrs(toSet); - let roll = await startRoll(rollBase); + let roll = await startRoll(rollBase + overheat.queryMod); finishRoll(roll.rollId, {}); }); @@ -727,31 +741,35 @@ const push = async (ev, template) => { }); } -const overheatCheck = async (heatchange) => { - - console.log(heatchange); +const overheatCheck = async (heatchange, heatspike) => { let attrs = await asw.getAttrs(['heat', 'heat_max']); let resultingHeat = parseInt(attrs.heat) + parseInt(heatchange); + let queryMod = ''; + + if(heatspike === 'on') { + queryMod = `{{heat=[[${resultingHeat}]]}}{{heatspike=[[1d20]]}}`; + } + if(resultingHeat > parseInt(attrs.heat_max)) { return { resultingHeat: parseInt(attrs.heat), - queryMod: '{{toMuchHeat=[[1]]}}' + queryMod: queryMod + '{{toMuchHeat=[[1]]}}' } } if(resultingHeat === parseInt(attrs.heat_max)) { return { resultingHeat: resultingHeat, - queryMod: `{{heatroll=[[1d20]]}}{{heat=[[${resultingHeat}]]}}{{toMuchHeat=[[0]]}}`, + queryMod: queryMod + `{{heatroll=[[1d20]]}}{{heat=[[${resultingHeat}]]}}{{toMuchHeat=[[0]]}}`, } } return { resultingHeat: resultingHeat, - queryMod: '{{toMuchHeat=[[0]]}}', + queryMod: queryMod +'{{toMuchHeat=[[0]]}}', } } @@ -1055,7 +1073,7 @@ const asw = (() => { {{/^rollWasCrit() roll}} - {{#heat}} + {{#heatroll}}
@@ -1066,23 +1084,41 @@ const asw = (() => { Heat Check: {{heat}} vs {{heatroll}} - {{/heat}} + {{/heatroll}} + {{#heatspike}} + + +
+ + + + + Heat Spike: {{heat}} vs {{heatspike}} + + + {{/heatspike}} {{/rollTotal() toMuchHeat 0}} {{#mech}}
{{#rollTotal() toMuchHeat 0}} - {{#rollTotal() heatroll 0}} + {{#pushable}}
- [Push](~{{name}}|reactPush) + [Push](~{{name}}|reactPushWeapon)
- {{/rollTotal() heatroll 0}} + {{/pushable}} - {{#^rollGreater() heatroll heat}} + {{#^rollGreater() heatspike heat}}
[Reactor Overload](~{{name}}|reactOverload)
- {{/^rollGreater() heatroll heat}} + {{/^rollGreater() heatspike heat}} + + {{#^rollGreater() heatspike heat}} +
+ [Heat Spike](~{{name}}|reactOverload) +
+ {{/^rollGreater() heatspike heat}} {{/rollTotal() toMuchHeat 0}}
{{/mech}} @@ -1154,7 +1190,7 @@ const asw = (() => { {{/^rollTotal() weaponheat 0}} - {{#heat}} + {{#heatroll}}
@@ -1165,23 +1201,41 @@ const asw = (() => { Heat Check: {{heat}} vs {{heatroll}} - {{/heat}} + {{/heatroll}} + {{#heatspike}} + + +
+ + + + + Heat Spike: {{heat}} vs {{heatspike}} + + + {{/heatspike}} {{/rollTotal() toMuchHeat 0}} {{#mech}}
{{#rollTotal() toMuchHeat 0}} - {{#rollTotal() heatroll 0}} + {{#pushable}}
[Push](~{{name}}|reactPushWeapon)
- {{/rollTotal() heatroll 0}} + {{/pushable}} {{#^rollGreater() heatroll heat}}
[Reactor Overload](~{{name}}|reactOverload)
{{/^rollGreater() heatroll heat}} + + {{#^rollGreater() heatspike heat}} +
+ [Heat Spike](~{{name}}|reactOverload) +
+ {{/^rollGreater() heatspike heat}} {{/rollTotal() toMuchHeat 0}}
{{/mech}} @@ -1307,5 +1361,30 @@ const asw = (() => {
{{info}} +
+ {{#heatroll}} +
+ Heat Check: {{heat}} vs {{heatroll}} + {{/heatroll}} + {{#heatspike}} +
+ Heat Spike: {{heat}} vs {{heatspike}} + {{/heatspike}} +

+
+ {{#rollTotal() toMuchHeat 0}} + {{#^rollGreater() heatroll heat}} +
+ [Reactor Overload](~{{name}}|reactOverload) +
+ {{/^rollGreater() heatroll heat}} + + {{#^rollGreater() heatspike heat}} +
+ [Heat Spike](~{{name}}|reactOverload) +
+ {{/^rollGreater() heatspike heat}} + {{/rollTotal() toMuchHeat 0}} +
\ No newline at end of file