diff --git a/Knight/knight.html b/Knight/knight.html
index 64e8f54468..a7fa3ea6bf 100644
--- a/Knight/knight.html
+++ b/Knight/knight.html
@@ -3321,6 +3321,8 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
let isMeurtrier = false;
let isOrfevrerie = false;
let isSilencieux = false;
+ let isFureur = false;
+ let isUltraviolence = false;
const eAnatheme = isApplied(data[`${prefix}anatheme`]);
const eAntiAnatheme = isApplied(data[`${prefix}antiAnatheme`]);
@@ -3458,6 +3460,7 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
if (eFureur) {
isConditionnelV = true;
+ isFureur = true;
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
@@ -3550,6 +3553,7 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
if (eUltraviolence) {
isConditionnelV = true;
+ isUltraviolence = true;
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
@@ -3624,6 +3628,8 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
result.isMeurtrier = isMeurtrier;
result.isOrfevrerie = isOrfevrerie;
result.isSilencieux = isSilencieux;
+ result.isFureur = isFureur;
+ result.isUltraviolence = isUltraviolence;
result.attaquesSurprises = attaquesSurprises;
result.attaquesSurprisesValue = attaquesSurprisesValue;
@@ -3680,6 +3686,8 @@ function getWeaponsEffectsAutre(prefix, effet) {
let isSilencieux = false;
let isTenebricide = false;
let isTirRafale = false;
+ let isFureur = false;
+ let isUltraviolence = false;
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]);
@@ -3815,6 +3823,7 @@ function getWeaponsEffectsAutre(prefix, effet) {
if (eFureur) {
isConditionnelV = true;
+ isFureur = true;
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
@@ -3894,6 +3903,7 @@ function getWeaponsEffectsAutre(prefix, effet) {
if (eUltraviolence) {
isConditionnelV = true;
+ isUltraviolence = true;
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
@@ -3974,6 +3984,8 @@ function getWeaponsEffectsAutre(prefix, effet) {
result.isAssistantAttaque = isAssistantAttaque;
result.isAntiAnatheme = isAntiAnatheme;
result.isTirRafale = isTirRafale;
+ result.isFureur = isFureur;
+ result.isUltraviolence = isUltraviolence;
result.eLumiere = eLumiere;
result.isELumiere = isELumiere;
@@ -4039,6 +4051,8 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
let isSilencieux = false;
let isTenebricide = false;
let isTirRafale = false;
+ let isUltraviolence = false;
+ let isFureur = false;
const eAnatheme = isApplied(effet[`${prefix}anatheme`]);
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
@@ -4175,6 +4189,7 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
if (eFureur) {
isConditionnelV = true;
+ isFureur = true;
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
@@ -4254,6 +4269,7 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
if (eUltraviolence) {
isConditionnelV = true;
+ isUltraviolence = true;
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
@@ -4336,6 +4352,8 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
result.isAssistantAttaque = isAssistantAttaque;
result.isAntiAnatheme = isAntiAnatheme;
result.isTirRafale = isTirRafale;
+ result.isFureur = isFureur;
+ result.isUltraviolence = isUltraviolence;
result.eLumiere = eLumiere;
result.isELumiere = isELumiere;
@@ -6809,6 +6827,8 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d
}
}
+ log(vTDestructeur);
+
const computed = {
degats: tDegats,
violence: tViolence,
@@ -11748,6 +11768,7 @@ rollCombatAutre.forEach((button) => {
let vCadence = 0;
let isDestructeur = false;
let vDestructeur = 0;
+ let isFureur = false;
let isMeurtrier = false;
let vMeurtrier = 0;
let nowSilencieux = false;
@@ -11755,6 +11776,8 @@ rollCombatAutre.forEach((button) => {
let isTenebricide = false;
let isTirRafale = false;
let isChambreDouble = false;
+ let isUltraviolence = false;
+ let isSurprise = false;
let isELumiere = false;
let lumiereValue = 0;
@@ -11792,6 +11815,10 @@ rollCombatAutre.forEach((button) => {
isMeurtrier = effets.isMeurtrier;
vMeurtrier = effets.vMeurtrier;
+ isFureur = effets.isFureur;
+
+ isUltraviolence = effets.isUltraviolence;
+
nowSilencieux = effets.nowSilencieux;
isTenebricide = effets.isTenebricide;
@@ -11907,47 +11934,6 @@ rollCombatAutre.forEach((button) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -12005,6 +11991,24 @@ rollCombatAutre.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
+
+ isSurprise = true;
+ }
+
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
}
if (isELumiere) { autresEffets.push(`${i18n_lumiere} ${lumiereValue}`); }
@@ -12036,57 +12040,47 @@ rollCombatAutre.forEach((button) => {
exec = firstExec.concat(exec);
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ // ROLL
+ const finalRoll = await startRoll(exec.join(' '));
+ const tJet = finalRoll.results.jet.result;
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const conditions = {
+ isTenebricide,
+ isDestructeur,
+ isFureur,
+ isSurprise,
+ isMeurtrier,
+ isUltraviolence,
+ };
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ Object.assign(finalComputed, computed);
- const tUltraviolence = results.results.ultraviolenceValue;
+ finishRoll(finalRoll.rollId, finalComputed);
- let vTUltraviolence = 0;
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
-
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
- }
- });
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
});
});
/* eslint-disable max-len */
@@ -23599,6 +23593,10 @@ rollCombatPNJContact.forEach((button) => {
let isOrfevrerie = false;
let isSilencieux = false;
+ let isFureur = false;
+ let isUltraviolence = false;
+ let isSurprise = false;
+
let isCadence = false;
let rCadence = '0';
let vCadence = 0;
@@ -23833,6 +23831,8 @@ rollCombatPNJContact.forEach((button) => {
isMeurtrier = rEffets.isMeurtrier;
isOrfevrerie = rEffets.isOrfevrerie;
isSilencieux = rEffets.isSilencieux;
+ isUltraviolence = rEffets.isUltraviolence;
+ isFureur = rEffets.isFureur;
isCadence = rEffets.isCadence;
rCadence = rEffets.rCadence || '0';
@@ -24012,47 +24012,6 @@ rollCombatPNJContact.forEach((button) => {
exec.push(`{{vCadence=${rCadence}D}}`);
}
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -24110,6 +24069,25 @@ rollCombatPNJContact.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
+
+ isSurprise = true;
+ }
+
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
+ if (isCheneSculpte) { firstExec.push('{{tCheneSculpteValue=[[0]]}}'); }
}
if (autresEffets.length > 0) {
@@ -24140,90 +24118,75 @@ rollCombatPNJContact.forEach((button) => {
firstExec = firstExec.concat(exec);
+ // ROLL
+ let finalRoll;
+
if (pasEnergie === false) {
- startRoll(firstExec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ finalRoll = await startRoll(firstExec.join(' '));
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const tJet = finalRoll.results.jet.result;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const conditions = {
+ isTenebricide,
+ isSurprise,
+ isDestructeur,
+ isFureur,
+ isMeurtrier,
+ isUltraviolence,
+ isArmeAzurine,
+ isArmeRougeSang,
+ isCheneSculpte,
+ isGriffureGravee,
+ isMasqueBrise,
+ isRouagesCasses,
+ };
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tUltraviolence = results.results.ultraviolenceValue;
+ Object.assign(finalComputed, computed);
- let vTUltraviolence = 0;
+ finishRoll(finalRoll.rollId, finalComputed);
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
- const tCheneSculpte = results.results.cheneSculpteValue;
- let vTCheneSculpte = 0;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- if (tCheneSculpte !== undefined) { vTCheneSculpte = tCheneSculpte.dice[0]; }
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- cheneSculpteValue: vTCheneSculpte,
- },
- );
+ if (sEnergie !== false) {
+ setAttrs({
+ energiePNJ: newEnergie,
+ });
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
+ if (newEnergie === 0) {
+ const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
+ finishRoll(noEnergieRoll.rollId, {});
}
-
- if (sEnergie !== false) {
- setAttrs({
- energiePNJ: newEnergie,
- });
-
- if (newEnergie === 0) {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (exploit) => {
- finishRoll(
- exploit.rollId, {},
- );
- });
- }
- }
- });
+ }
} else if (button === 'repeating_armeCaC:armecontactpnj') {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (text) => {
- finishRoll(
- text.rollId, {},
- );
- });
+ finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
+ finishRoll(finalRoll.rollId, {});
} else {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (text) => {
- finishRoll(
- text.rollId, {},
- );
- });
+ finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
+ finishRoll(finalRoll.rollId, {});
}
});
});
@@ -24458,6 +24421,9 @@ rollCombatDistancePNJ.forEach((button) => {
let isTenebricide = false;
let isTirRafale = false;
let isChambreDouble = false;
+ let isSurprise = false;
+ let isUltraviolence = false;
+ let isFureur = false;
let pasEnergie = false;
let sEnergieText = '';
@@ -24528,6 +24494,9 @@ rollCombatDistancePNJ.forEach((button) => {
isObliteration = effets.isObliteration;
isTirRafale = effets.isTirRafale;
+ isFureur = effets.isFureur;
+ isUltraviolence = effets.isUltraviolence;
+
if (isLeste) {
bDegats += Math.ceil(vChair / 2);
exec.push(`{{vLeste=${vChair}}}`);
@@ -24655,47 +24624,6 @@ rollCombatDistancePNJ.forEach((button) => {
exec.push(`{{degats=[[${diceDegats}D6+${bDegats}]]}}`);
exec.push(`{{violence=[[${diceViolence}D6+${bViolence}]]}}`);
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -24750,11 +24678,29 @@ rollCombatDistancePNJ.forEach((button) => {
}
if (attaquesSurprises.length > 0) {
+ isSurprise = true;
+
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
}
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
+ }
+
if (autresEffets.length > 0) {
autresEffets.sort();
exec.push(`{{effets=${autresEffets.join(' / ')}}}`);
@@ -24782,87 +24728,68 @@ rollCombatDistancePNJ.forEach((button) => {
exec = firstExec.concat(exec);
- log(bonus);
- log(exec);
+ // ROLL
+ let finalRoll;
if (pasEnergie === false) {
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ finalRoll = await startRoll(exec.join(' '));
+ const tJet = finalRoll.results.jet.result;
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- log(tJet);
- log(tBonus);
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const conditions = {
+ isTenebricide,
+ isSurprise,
+ isDestructeur,
+ isFureur,
+ isMeurtrier,
+ isUltraviolence,
+ };
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ Object.assign(finalComputed, computed);
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ finishRoll(finalRoll.rollId, finalComputed);
- const tUltraviolence = results.results.ultraviolenceValue;
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- let vTUltraviolence = 0;
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
+ if (sEnergie !== false) {
+ setAttrs({
+ energiePNJ: newEnergie,
+ });
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
+ if (newEnergie === 0) {
+ const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`);
+ finishRoll(noEnergieRoll.rollId, {});
}
-
- if (sEnergie !== false) {
- setAttrs({
- energiePNJ: newEnergie,
- });
-
- if (newEnergie === 0) {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`, (exploit) => {
- finishRoll(
- exploit.rollId, {},
- );
- });
- }
- }
- });
+ }
} else {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`, (text) => {
- finishRoll(
- text.rollId, {},
- );
- });
+ finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`);
+ finishRoll(finalRoll.rollId, {});
}
});
});
+/* eslint-disable max-len */
/* eslint-disable prefer-destructuring */
/* eslint-disable camelcase */
/* eslint-disable no-undef */
@@ -24892,6 +24819,10 @@ rollCombatGrenadePNJ.forEach((button) => {
let AE = 0;
let ameliorations = false;
+ let isSurprise = false;
+ let isDestructeur = false;
+ let isMeurtrier = false;
+ let isUltraviolence = false;
let diceDegats = 3;
let diceViolence = 3;
@@ -24974,6 +24905,9 @@ rollCombatGrenadePNJ.forEach((button) => {
exec.push(`{{ultraviolence=${i18n_ultraviolence}}} {{ultraviolenceCondition=${i18n_ultraviolenceCondition}}} {{meurtrier=${i18n_meurtrier}}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
autresEffets.push(`${i18n_dispersion} 6`);
+
+ isUltraviolence = true;
+ isMeurtrier = true;
break;
case 'grenade2PNJ':
isConditionnelA = true;
@@ -24992,6 +24926,8 @@ rollCombatGrenadePNJ.forEach((button) => {
autresEffets.push(`${i18n_perceArmure} 20`);
autresEffets.push(`${i18n_penetrant} 6`);
autresEffets.push(`${i18n_dispersion} 6`);
+
+ isDestructeur = true;
break;
case 'grenade4PNJ':
isConditionnelA = true;
@@ -25050,6 +24986,8 @@ rollCombatGrenadePNJ.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(`${attaquesSurprisesCondition}`);
+
+ isSurprise = true;
}
if (autresEffets.length > 0) {
@@ -25065,51 +25003,45 @@ rollCombatGrenadePNJ.forEach((button) => {
exec = firstExec.concat(exec);
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ // ROLL
+ const finalRoll = await startRoll(exec.join(' '));
+ const tJet = finalRoll.results.jet.result;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ if (hasDgts) {
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const conditions = {
+ isSurprise,
+ isDestructeur,
+ isMeurtrier,
+ isUltraviolence,
+ };
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
+ Object.assign(finalComputed, computed);
+ }
- const tUltraviolence = results.results.ultraviolenceValue;
+ finishRoll(finalRoll.rollId, finalComputed);
- let vTUltraviolence = 0;
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
-
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
- }
- });
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
});
});
/* eslint-disable camelcase */
@@ -25436,11 +25368,11 @@ rollCombatAutrePNJ.forEach((button) => {
let bDegats = [];
const bViolence = [];
- diceDegats += Number(attrs.armeAutreDegat) || 0;
- diceViolence += Number(attrs.armeAutreViolence) || 0;
+ diceDegats += Number(attrs[`${prefix}armeAutreDegat`]) || 0;
+ diceViolence += Number(attrs[`${prefix}armeAutreViolence`]) || 0;
- bDegats.push(Number(attrs.armeAutreBDegat) || 0);
- bViolence.push(Number(attrs.armeAutreBViolence) || 0);
+ bDegats.push(Number(attrs[`${prefix}armeAutreBDegat`]) || 0);
+ bViolence.push(Number(attrs[`${prefix}armeAutreBViolence`]) || 0);
let degats = [];
let violence = [];
@@ -25466,6 +25398,9 @@ rollCombatAutrePNJ.forEach((button) => {
let isTenebricide = false;
let isTirRafale = false;
let isChambreDouble = false;
+ let isFureur = false;
+ let isUltraviolence = false;
+ let isSurprise = false;
let isELumiere = false;
let lumiereValue = 0;
@@ -25511,6 +25446,8 @@ rollCombatAutrePNJ.forEach((button) => {
isObliteration = effets.isObliteration;
isTirRafale = effets.isTirRafale;
+ isFureur = effets.isFureur;
+ isUltraviolence = effets.isUltraviolence;
isELumiere = effets.isELumiere;
lumiereValue = Number(effets.eLumiereValue);
@@ -25620,47 +25557,6 @@ rollCombatAutrePNJ.forEach((button) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -25718,6 +25614,24 @@ rollCombatAutrePNJ.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
+
+ isSurprise = true;
+ }
+
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
}
if (isELumiere) { autresEffets.push(`${i18n_lumiere} ${lumiereValue}`); }
@@ -25749,57 +25663,47 @@ rollCombatAutrePNJ.forEach((button) => {
exec = firstExec.concat(exec);
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ const finalRoll = await startRoll(exec.join(' '));
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const tJet = finalRoll.results.jet.result;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const conditions = {
+ isTenebricide,
+ isDestructeur,
+ isFureur,
+ isSurprise,
+ isMeurtrier,
+ isUltraviolence,
+ };
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tUltraviolence = results.results.ultraviolenceValue;
+ Object.assign(finalComputed, computed);
- let vTUltraviolence = 0;
+ finishRoll(finalRoll.rollId, finalComputed);
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
- }
- });
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
});
});
/* eslint-disable camelcase */
diff --git a/Knight/pug/js/_functionsWeapons.js b/Knight/pug/js/_functionsWeapons.js
index 1bcb761a2e..b5b072ddbe 100644
--- a/Knight/pug/js/_functionsWeapons.js
+++ b/Knight/pug/js/_functionsWeapons.js
@@ -513,6 +513,8 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
let isMeurtrier = false;
let isOrfevrerie = false;
let isSilencieux = false;
+ let isFureur = false;
+ let isUltraviolence = false;
const eAnatheme = isApplied(data[`${prefix}anatheme`]);
const eAntiAnatheme = isApplied(data[`${prefix}antiAnatheme`]);
@@ -650,6 +652,7 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
if (eFureur) {
isConditionnelV = true;
+ isFureur = true;
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
@@ -742,6 +745,7 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
if (eUltraviolence) {
isConditionnelV = true;
+ isUltraviolence = true;
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
@@ -816,6 +820,8 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine
result.isMeurtrier = isMeurtrier;
result.isOrfevrerie = isOrfevrerie;
result.isSilencieux = isSilencieux;
+ result.isFureur = isFureur;
+ result.isUltraviolence = isUltraviolence;
result.attaquesSurprises = attaquesSurprises;
result.attaquesSurprisesValue = attaquesSurprisesValue;
@@ -872,6 +878,8 @@ function getWeaponsEffectsAutre(prefix, effet) {
let isSilencieux = false;
let isTenebricide = false;
let isTirRafale = false;
+ let isFureur = false;
+ let isUltraviolence = false;
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]);
@@ -1007,6 +1015,7 @@ function getWeaponsEffectsAutre(prefix, effet) {
if (eFureur) {
isConditionnelV = true;
+ isFureur = true;
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
@@ -1086,6 +1095,7 @@ function getWeaponsEffectsAutre(prefix, effet) {
if (eUltraviolence) {
isConditionnelV = true;
+ isUltraviolence = true;
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
@@ -1166,6 +1176,8 @@ function getWeaponsEffectsAutre(prefix, effet) {
result.isAssistantAttaque = isAssistantAttaque;
result.isAntiAnatheme = isAntiAnatheme;
result.isTirRafale = isTirRafale;
+ result.isFureur = isFureur;
+ result.isUltraviolence = isUltraviolence;
result.eLumiere = eLumiere;
result.isELumiere = isELumiere;
@@ -1231,6 +1243,8 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
let isSilencieux = false;
let isTenebricide = false;
let isTirRafale = false;
+ let isUltraviolence = false;
+ let isFureur = false;
const eAnatheme = isApplied(effet[`${prefix}anatheme`]);
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
@@ -1367,6 +1381,7 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
if (eFureur) {
isConditionnelV = true;
+ isFureur = true;
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
@@ -1446,6 +1461,7 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
if (eUltraviolence) {
isConditionnelV = true;
+ isUltraviolence = true;
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
@@ -1528,6 +1544,8 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) {
result.isAssistantAttaque = isAssistantAttaque;
result.isAntiAnatheme = isAntiAnatheme;
result.isTirRafale = isTirRafale;
+ result.isFureur = isFureur;
+ result.isUltraviolence = isUltraviolence;
result.eLumiere = eLumiere;
result.isELumiere = isELumiere;
@@ -4001,6 +4019,8 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d
}
}
+ log(vTDestructeur);
+
const computed = {
degats: tDegats,
violence: tViolence,
diff --git a/Knight/pug/js/rolls/pj/combatAutre.js b/Knight/pug/js/rolls/pj/combatAutre.js
index 3b3221c320..cbcb3a1162 100644
--- a/Knight/pug/js/rolls/pj/combatAutre.js
+++ b/Knight/pug/js/rolls/pj/combatAutre.js
@@ -90,6 +90,7 @@ rollCombatAutre.forEach((button) => {
let vCadence = 0;
let isDestructeur = false;
let vDestructeur = 0;
+ let isFureur = false;
let isMeurtrier = false;
let vMeurtrier = 0;
let nowSilencieux = false;
@@ -97,6 +98,8 @@ rollCombatAutre.forEach((button) => {
let isTenebricide = false;
let isTirRafale = false;
let isChambreDouble = false;
+ let isUltraviolence = false;
+ let isSurprise = false;
let isELumiere = false;
let lumiereValue = 0;
@@ -134,6 +137,10 @@ rollCombatAutre.forEach((button) => {
isMeurtrier = effets.isMeurtrier;
vMeurtrier = effets.vMeurtrier;
+ isFureur = effets.isFureur;
+
+ isUltraviolence = effets.isUltraviolence;
+
nowSilencieux = effets.nowSilencieux;
isTenebricide = effets.isTenebricide;
@@ -249,47 +256,6 @@ rollCombatAutre.forEach((button) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -347,6 +313,24 @@ rollCombatAutre.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
+
+ isSurprise = true;
+ }
+
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
}
if (isELumiere) { autresEffets.push(`${i18n_lumiere} ${lumiereValue}`); }
@@ -378,56 +362,46 @@ rollCombatAutre.forEach((button) => {
exec = firstExec.concat(exec);
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ // ROLL
+ const finalRoll = await startRoll(exec.join(' '));
+ const tJet = finalRoll.results.jet.result;
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const conditions = {
+ isTenebricide,
+ isDestructeur,
+ isFureur,
+ isSurprise,
+ isMeurtrier,
+ isUltraviolence,
+ };
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ Object.assign(finalComputed, computed);
- const tUltraviolence = results.results.ultraviolenceValue;
+ finishRoll(finalRoll.rollId, finalComputed);
- let vTUltraviolence = 0;
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
-
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
- }
- });
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
});
});
diff --git a/Knight/pug/js/rolls/pnj/combatAutre.js b/Knight/pug/js/rolls/pnj/combatAutre.js
index a5f775faa9..3c6b03e22c 100644
--- a/Knight/pug/js/rolls/pnj/combatAutre.js
+++ b/Knight/pug/js/rolls/pnj/combatAutre.js
@@ -67,11 +67,11 @@ rollCombatAutrePNJ.forEach((button) => {
let bDegats = [];
const bViolence = [];
- diceDegats += Number(attrs.armeAutreDegat) || 0;
- diceViolence += Number(attrs.armeAutreViolence) || 0;
+ diceDegats += Number(attrs[`${prefix}armeAutreDegat`]) || 0;
+ diceViolence += Number(attrs[`${prefix}armeAutreViolence`]) || 0;
- bDegats.push(Number(attrs.armeAutreBDegat) || 0);
- bViolence.push(Number(attrs.armeAutreBViolence) || 0);
+ bDegats.push(Number(attrs[`${prefix}armeAutreBDegat`]) || 0);
+ bViolence.push(Number(attrs[`${prefix}armeAutreBViolence`]) || 0);
let degats = [];
let violence = [];
@@ -97,6 +97,9 @@ rollCombatAutrePNJ.forEach((button) => {
let isTenebricide = false;
let isTirRafale = false;
let isChambreDouble = false;
+ let isFureur = false;
+ let isUltraviolence = false;
+ let isSurprise = false;
let isELumiere = false;
let lumiereValue = 0;
@@ -142,6 +145,8 @@ rollCombatAutrePNJ.forEach((button) => {
isObliteration = effets.isObliteration;
isTirRafale = effets.isTirRafale;
+ isFureur = effets.isFureur;
+ isUltraviolence = effets.isUltraviolence;
isELumiere = effets.isELumiere;
lumiereValue = Number(effets.eLumiereValue);
@@ -251,47 +256,6 @@ rollCombatAutrePNJ.forEach((button) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -349,6 +313,24 @@ rollCombatAutrePNJ.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
+
+ isSurprise = true;
+ }
+
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
}
if (isELumiere) { autresEffets.push(`${i18n_lumiere} ${lumiereValue}`); }
@@ -380,56 +362,46 @@ rollCombatAutrePNJ.forEach((button) => {
exec = firstExec.concat(exec);
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ const finalRoll = await startRoll(exec.join(' '));
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const tJet = finalRoll.results.jet.result;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const conditions = {
+ isTenebricide,
+ isDestructeur,
+ isFureur,
+ isSurprise,
+ isMeurtrier,
+ isUltraviolence,
+ };
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tUltraviolence = results.results.ultraviolenceValue;
+ Object.assign(finalComputed, computed);
- let vTUltraviolence = 0;
+ finishRoll(finalRoll.rollId, finalComputed);
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
- }
- });
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
});
});
diff --git a/Knight/pug/js/rolls/pnj/combatContact.js b/Knight/pug/js/rolls/pnj/combatContact.js
index 2c4b52bc85..274bc586c3 100644
--- a/Knight/pug/js/rolls/pnj/combatContact.js
+++ b/Knight/pug/js/rolls/pnj/combatContact.js
@@ -79,6 +79,10 @@ rollCombatPNJContact.forEach((button) => {
let isOrfevrerie = false;
let isSilencieux = false;
+ let isFureur = false;
+ let isUltraviolence = false;
+ let isSurprise = false;
+
let isCadence = false;
let rCadence = '0';
let vCadence = 0;
@@ -313,6 +317,8 @@ rollCombatPNJContact.forEach((button) => {
isMeurtrier = rEffets.isMeurtrier;
isOrfevrerie = rEffets.isOrfevrerie;
isSilencieux = rEffets.isSilencieux;
+ isUltraviolence = rEffets.isUltraviolence;
+ isFureur = rEffets.isFureur;
isCadence = rEffets.isCadence;
rCadence = rEffets.rCadence || '0';
@@ -492,47 +498,6 @@ rollCombatPNJContact.forEach((button) => {
exec.push(`{{vCadence=${rCadence}D}}`);
}
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -590,6 +555,25 @@ rollCombatPNJContact.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
+
+ isSurprise = true;
+ }
+
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
+ if (isCheneSculpte) { firstExec.push('{{tCheneSculpteValue=[[0]]}}'); }
}
if (autresEffets.length > 0) {
@@ -620,90 +604,75 @@ rollCombatPNJContact.forEach((button) => {
firstExec = firstExec.concat(exec);
+ // ROLL
+ let finalRoll;
+
if (pasEnergie === false) {
- startRoll(firstExec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ finalRoll = await startRoll(firstExec.join(' '));
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const tJet = finalRoll.results.jet.result;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const conditions = {
+ isTenebricide,
+ isSurprise,
+ isDestructeur,
+ isFureur,
+ isMeurtrier,
+ isUltraviolence,
+ isArmeAzurine,
+ isArmeRougeSang,
+ isCheneSculpte,
+ isGriffureGravee,
+ isMasqueBrise,
+ isRouagesCasses,
+ };
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tUltraviolence = results.results.ultraviolenceValue;
+ Object.assign(finalComputed, computed);
- let vTUltraviolence = 0;
+ finishRoll(finalRoll.rollId, finalComputed);
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
- const tCheneSculpte = results.results.cheneSculpteValue;
- let vTCheneSculpte = 0;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- if (tCheneSculpte !== undefined) { vTCheneSculpte = tCheneSculpte.dice[0]; }
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- cheneSculpteValue: vTCheneSculpte,
- },
- );
+ if (sEnergie !== false) {
+ setAttrs({
+ energiePNJ: newEnergie,
+ });
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
+ if (newEnergie === 0) {
+ const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
+ finishRoll(noEnergieRoll.rollId, {});
}
-
- if (sEnergie !== false) {
- setAttrs({
- energiePNJ: newEnergie,
- });
-
- if (newEnergie === 0) {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (exploit) => {
- finishRoll(
- exploit.rollId, {},
- );
- });
- }
- }
- });
+ }
} else if (button === 'repeating_armeCaC:armecontactpnj') {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (text) => {
- finishRoll(
- text.rollId, {},
- );
- });
+ finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
+ finishRoll(finalRoll.rollId, {});
} else {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (text) => {
- finishRoll(
- text.rollId, {},
- );
- });
+ finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
+ finishRoll(finalRoll.rollId, {});
}
});
});
diff --git a/Knight/pug/js/rolls/pnj/combatDistance.js b/Knight/pug/js/rolls/pnj/combatDistance.js
index c7e114efa1..8e78389412 100644
--- a/Knight/pug/js/rolls/pnj/combatDistance.js
+++ b/Knight/pug/js/rolls/pnj/combatDistance.js
@@ -229,6 +229,9 @@ rollCombatDistancePNJ.forEach((button) => {
let isTenebricide = false;
let isTirRafale = false;
let isChambreDouble = false;
+ let isSurprise = false;
+ let isUltraviolence = false;
+ let isFureur = false;
let pasEnergie = false;
let sEnergieText = '';
@@ -299,6 +302,9 @@ rollCombatDistancePNJ.forEach((button) => {
isObliteration = effets.isObliteration;
isTirRafale = effets.isTirRafale;
+ isFureur = effets.isFureur;
+ isUltraviolence = effets.isUltraviolence;
+
if (isLeste) {
bDegats += Math.ceil(vChair / 2);
exec.push(`{{vLeste=${vChair}}}`);
@@ -426,47 +432,6 @@ rollCombatDistancePNJ.forEach((button) => {
exec.push(`{{degats=[[${diceDegats}D6+${bDegats}]]}}`);
exec.push(`{{violence=[[${diceViolence}D6+${bViolence}]]}}`);
- if (isTenebricide) {
- let degatsTenebricide = [];
- let ASTenebricide = [];
- let ASValueTenebricide = [];
-
- let violenceTenebricide = [];
-
- const diceDegatsTenebricide = Math.floor(diceDegats / 2);
- const diceViolenceTenebricide = Math.floor(diceViolence / 2);
-
- degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
- degatsTenebricide = degatsTenebricide.concat(bDegats);
-
- violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
- violenceTenebricide = violenceTenebricide.concat(bViolence);
-
- exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
- exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
-
- if (eASAssassinValue > 0) {
- eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
-
- ASTenebricide.unshift(eASAssassin);
- ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
-
- if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
- }
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- } else if (attaquesSurprises.length > 0) {
- ASTenebricide = ASTenebricide.concat(attaquesSurprises);
- ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
-
- exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
- exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
- }
- }
-
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -521,11 +486,29 @@ rollCombatDistancePNJ.forEach((button) => {
}
if (attaquesSurprises.length > 0) {
+ isSurprise = true;
+
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
}
+ if (isTenebricide) {
+ exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
+ exec.push('{{tenebricideValueD=[[0]]}}');
+ exec.push('{{tenebricideValueV=[[0]]}}');
+
+ if (attaquesSurprises.length > 0) {
+ exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
+ exec.push('{{tenebricideASValue=[[0]]}}');
+ }
+
+ if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
+ if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
+ if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
+ if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
+ }
+
if (autresEffets.length > 0) {
autresEffets.sort();
exec.push(`{{effets=${autresEffets.join(' / ')}}}`);
@@ -553,84 +536,64 @@ rollCombatDistancePNJ.forEach((button) => {
exec = firstExec.concat(exec);
- log(bonus);
- log(exec);
+ // ROLL
+ let finalRoll;
if (pasEnergie === false) {
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ finalRoll = await startRoll(exec.join(' '));
+ const tJet = finalRoll.results.jet.result;
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- log(tJet);
- log(tBonus);
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const conditions = {
+ isTenebricide,
+ isSurprise,
+ isDestructeur,
+ isFureur,
+ isMeurtrier,
+ isUltraviolence,
+ };
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tFureur = results.results.fureurValue;
- let vTFureur = 0;
+ Object.assign(finalComputed, computed);
- if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
+ finishRoll(finalRoll.rollId, finalComputed);
- const tUltraviolence = results.results.ultraviolenceValue;
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- let vTUltraviolence = 0;
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
+ if (sEnergie !== false) {
+ setAttrs({
+ energiePNJ: newEnergie,
+ });
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- fureurValue: vTFureur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
+ if (newEnergie === 0) {
+ const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`);
+ finishRoll(noEnergieRoll.rollId, {});
}
-
- if (sEnergie !== false) {
- setAttrs({
- energiePNJ: newEnergie,
- });
-
- if (newEnergie === 0) {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`, (exploit) => {
- finishRoll(
- exploit.rollId, {},
- );
- });
- }
- }
- });
+ }
} else {
- startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`, (text) => {
- finishRoll(
- text.rollId, {},
- );
- });
+ finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`);
+ finishRoll(finalRoll.rollId, {});
}
});
});
diff --git a/Knight/pug/js/rolls/pnj/combatGrenade.js b/Knight/pug/js/rolls/pnj/combatGrenade.js
index d0e1a492a6..074fe767a8 100644
--- a/Knight/pug/js/rolls/pnj/combatGrenade.js
+++ b/Knight/pug/js/rolls/pnj/combatGrenade.js
@@ -1,3 +1,4 @@
+/* eslint-disable max-len */
/* eslint-disable prefer-destructuring */
/* eslint-disable camelcase */
/* eslint-disable no-undef */
@@ -27,6 +28,10 @@ rollCombatGrenadePNJ.forEach((button) => {
let AE = 0;
let ameliorations = false;
+ let isSurprise = false;
+ let isDestructeur = false;
+ let isMeurtrier = false;
+ let isUltraviolence = false;
let diceDegats = 3;
let diceViolence = 3;
@@ -109,6 +114,9 @@ rollCombatGrenadePNJ.forEach((button) => {
exec.push(`{{ultraviolence=${i18n_ultraviolence}}} {{ultraviolenceCondition=${i18n_ultraviolenceCondition}}} {{meurtrier=${i18n_meurtrier}}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
autresEffets.push(`${i18n_dispersion} 6`);
+
+ isUltraviolence = true;
+ isMeurtrier = true;
break;
case 'grenade2PNJ':
isConditionnelA = true;
@@ -127,6 +135,8 @@ rollCombatGrenadePNJ.forEach((button) => {
autresEffets.push(`${i18n_perceArmure} 20`);
autresEffets.push(`${i18n_penetrant} 6`);
autresEffets.push(`${i18n_dispersion} 6`);
+
+ isDestructeur = true;
break;
case 'grenade4PNJ':
isConditionnelA = true;
@@ -185,6 +195,8 @@ rollCombatGrenadePNJ.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(`${attaquesSurprisesCondition}`);
+
+ isSurprise = true;
}
if (autresEffets.length > 0) {
@@ -200,50 +212,44 @@ rollCombatGrenadePNJ.forEach((button) => {
exec = firstExec.concat(exec);
- startRoll(exec.join(' '), (results) => {
- const tJet = results.results.jet.result;
+ // ROLL
+ const finalRoll = await startRoll(exec.join(' '));
+ const tJet = finalRoll.results.jet.result;
+ const tBonus = finalRoll.results.bonus.result;
+ const tExploit = finalRoll.results.Exploit.result;
- const tBonus = results.results.bonus.result;
- const tExploit = results.results.Exploit.result;
+ const finalComputed = {
+ jet: tJet + tBonus,
+ };
- const tMeurtrier = results.results.meurtrierValue;
- let vTMeurtrier = 0;
+ if (hasDgts) {
+ const rDegats = finalRoll.results.degats.dice;
+ const rViolence = finalRoll.results.violence.dice;
- if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
+ const tDegats = finalRoll.results.degats.result;
+ const tViolence = finalRoll.results.violence.result;
- const tDestructeur = results.results.destructeurValue;
- let vTDestructeur = 0;
+ const conditions = {
+ isSurprise,
+ isDestructeur,
+ isMeurtrier,
+ isUltraviolence,
+ };
- if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
+ const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
+ Object.assign(finalComputed, computed);
+ }
- const tUltraviolence = results.results.ultraviolenceValue;
+ finishRoll(finalRoll.rollId, finalComputed);
- let vTUltraviolence = 0;
+ if (tJet !== 0 && tJet === tExploit) {
+ const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
+ const tRExploit = exploitRoll.results.jet.result;
+ const exploitComputed = {
+ jet: tRExploit,
+ };
- if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
-
- finishRoll(
- results.rollId,
- {
- jet: tJet + tBonus,
- meurtrierValue: vTMeurtrier,
- destructeurValue: vTDestructeur,
- ultraviolenceValue: vTUltraviolence,
- },
- );
-
- if (tJet !== 0 && tJet === tExploit) {
- startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
- const tExploit2 = exploit.results.jet.result;
-
- finishRoll(
- exploit.rollId,
- {
- jet: tExploit2,
- },
- );
- });
- }
- });
+ finishRoll(exploitRoll.rollId, exploitComputed);
+ }
});
});