@@ -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}}
{{/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}}
{{/mech}}
@@ -1307,5 +1361,30 @@ const asw = (() => {
{{info}}
+
+ {{#heatroll}}
+
+ Heat Check: {{heat}} vs {{heatroll}}
+ {{/heatroll}}
+ {{#heatspike}}
+
+ Heat Spike: {{heat}} vs {{heatspike}}
+ {{/heatspike}}
+
+
\ No newline at end of file