Added logic for finding and setting psionic attacks and defenses

This commit is contained in:
Peter Bjerg Lidegaard
2022-08-31 09:57:33 +02:00
parent 2ccb7154b1
commit e41d2cd75d
5 changed files with 36 additions and 24 deletions
+13 -10
View File
@@ -10613,7 +10613,7 @@
</tr>
</thead>
<tr>
<td class="sheet-td-dynamic100"><input type="text" name="attr_psionattacking" title="@{repeating_psion-attack5_$X_psionattacking}" class="sheet-maxtext-min" list="attack-devotions"></td>
<td class="sheet-td-dynamic100"><input type="text" name="attr_psionattacking" title="@{repeating_psion-attack5_$X_psionattacking}" class="sheet-maxtext-min" list="psionic-attacks"></td>
<td><input type="text" name="attr_psionic-mod10" title="@{repeating_psion-attack5_$X_psionic-mod10}" placeholder="#" class="sheet-small"></td>
<td><input type="text" name="attr_powerscore-nomod10" title="@{repeating_psion-attack5_$X_powerscore-nomod10}" placeholder="@{}" class="sheet-cent-min" list="ability-scores"></td>
<td>&plusmn;</td>
@@ -10659,7 +10659,7 @@
</tr>
</thead>
<tr>
<td class="sheet-td-dynamic100"><input type="text" name="attr_psiondefending" title="@{repeating_psion-defense5_$X_psiondefending}" class="sheet-maxtext-min" list="defense-devotions"></td>
<td class="sheet-td-dynamic100"><input type="text" name="attr_psiondefending" title="@{repeating_psion-defense5_$X_psiondefending}" class="sheet-maxtext-min" list="psionic-defenses"></td>
<td><input type="text" name="attr_psionic-mod11" title="@{repeating_psion-defense5_$X_psionic-mod11}" placeholder="#" class="sheet-small"></td>
<td><input type="text" name="attr_powerscore-nomod11" title="@{repeating_psion-defense5_$X_powerscore-nomod11}" placeholder="@{}" class="sheet-cent-min" list="ability-scores"></td>
<td>&plusmn;</td>
@@ -24171,22 +24171,18 @@
<option value="Split Personality"></option>
<option value="Ultrablast"></option>
</datalist>
<datalist id="attack-devotions">
<datalist id="psionic-attacks">
<option value="Ego Whip"></option>
<option value="Id Insinuation"></option>
<option value="Mind Thrust"></option>
<option value="Psychic Crush"></option>
</datalist>
<datalist id="attack-sciences">
<option value="Psionic Blast"></option>
</datalist>
<datalist id="defense-devotions">
<datalist id="psionic-defenses">
<option value="Intellect Fortress"></option>
<option value="Mental Barrier"></option>
<option value="Mind Blank"></option>
<option value="Thought Shield"></option>
</datalist>
<datalist id="defense-sciences">
<option value="Tower of Iron Will"></option>
</datalist>
<datalist id="melee-weapons">
@@ -66793,8 +66789,15 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
let powerInfo = {};
powerInfo[`repeating_${section}_action`] = `%{${values.character_name}|repeating_${section}_${parse.rowId}_action}`;
if (parse.attribute === name && eventInfo.newValue) {
let displayDiscipline = discipline;
let tier = name.includes('science') ? 'Science' : 'Devotion';
let power = PSIONIC_POWERS[discipline][tier][eventInfo.newValue];
let powerTable = PSIONIC_POWERS[discipline];
let power = powerTable[tier][eventInfo.newValue];
if (discipline === 'Attack' || discipline === 'Defense') {
displayDiscipline = 'Telepathic';
tier = power ? tier : 'Science';
power = power || powerTable[tier][eventInfo.newValue];
}
console.log(power);
if (power) {
powerInfo[`repeating_${section}_powerscore-nomod${number}`] = power['attribute'];
@@ -66804,7 +66807,7 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
let macroBuilder = [];
macroBuilder.push(`title=@{${name}}`);
macroBuilder.push(`discipline=${discipline}`);
macroBuilder.push(`discipline=${displayDiscipline}`);
macroBuilder.push(`tier=${tier}`);
macroBuilder.push(`initial=@{PSP-cost${cost_number}}`);
macroBuilder.push(`maintenance=@{PSP-cost-maintenance}`);
@@ -4180,22 +4180,18 @@
<option value="Split Personality"></option>
<option value="Ultrablast"></option>
</datalist>
<datalist id="attack-devotions">
<datalist id="psionic-attacks">
<option value="Ego Whip"></option>
<option value="Id Insinuation"></option>
<option value="Mind Thrust"></option>
<option value="Psychic Crush"></option>
</datalist>
<datalist id="attack-sciences">
<option value="Psionic Blast"></option>
</datalist>
<datalist id="defense-devotions">
<datalist id="psionic-defenses">
<option value="Intellect Fortress"></option>
<option value="Mental Barrier"></option>
<option value="Mind Blank"></option>
<option value="Thought Shield"></option>
</datalist>
<datalist id="defense-sciences">
<option value="Tower of Iron Will"></option>
</datalist>
<datalist id="melee-weapons">
@@ -32,8 +32,8 @@
</div>
<br>
<div class="sheet-2colrow">
insert_psionic-core-discipline.html_(Attack Modes,psion-attack5,psionattacking,10,Attacking,psionattacking-macro,psionic-attack-macro,30,attack-devotions)
insert_psionic-core-discipline.html_(Defense Modes,psion-defense5,psiondefending,11,Defending,psiondefending-macro,psionic-defense-macro,31,defense-devotions)
insert_psionic-core-discipline.html_(Attack Modes,psion-attack5,psionattacking,10,Attacking,psionattacking-macro,psionic-attack-macro,30,psionic-attacks)
insert_psionic-core-discipline.html_(Defense Modes,psion-defense5,psiondefending,11,Defending,psiondefending-macro,psionic-defense-macro,31,psionic-defenses)
</div>
<br>
<div class="sheet-2colrow">
+9 -2
View File
@@ -2455,8 +2455,15 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
let powerInfo = {};
powerInfo[`repeating_${section}_action`] = `%{${values.character_name}|repeating_${section}_${parse.rowId}_action}`;
if (parse.attribute === name && eventInfo.newValue) {
let displayDiscipline = discipline;
let tier = name.includes('science') ? 'Science' : 'Devotion';
let power = PSIONIC_POWERS[discipline][tier][eventInfo.newValue];
let powerTable = PSIONIC_POWERS[discipline];
let power = powerTable[tier][eventInfo.newValue];
if (discipline === 'Attack' || discipline === 'Defense') {
displayDiscipline = 'Telepathic';
tier = power ? tier : 'Science';
power = power || powerTable[tier][eventInfo.newValue];
}
console.log(power);
if (power) {
powerInfo[`repeating_${section}_powerscore-nomod${number}`] = power['attribute'];
@@ -2466,7 +2473,7 @@ PSIONIC_CORE_SECTIONS.forEach(({section, name, macro, number, cost_number, disci
let macroBuilder = [];
macroBuilder.push(`title=@{${name}}`);
macroBuilder.push(`discipline=${discipline}`);
macroBuilder.push(`discipline=${displayDiscipline}`);
macroBuilder.push(`tier=${tier}`);
macroBuilder.push(`initial=@{PSP-cost${cost_number}}`);
macroBuilder.push(`maintenance=@{PSP-cost-maintenance}`);
@@ -1,5 +1,11 @@
each discipline, disciplineName in data
each tier, tierName in discipline
datalist(id=`${disciplineName}-${tierName}s`.toLowerCase())
each power, powername in tier
option(value=powername)
if (disciplineName === 'Attack' || disciplineName === 'Defense')
datalist(id=`psionic-${disciplineName}s`.toLowerCase())
each tier, tierName in discipline
each power, powername in tier
option(value=powername)
else
each tier, tierName in discipline
datalist(id=`${disciplineName}-${tierName}s`.toLowerCase())
each power, powername in tier
option(value=powername)