mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
4758 lines
149 KiB
JavaScript
4758 lines
149 KiB
JavaScript
/* eslint-disable no-plusplus */
|
|
/* eslint-disable prefer-destructuring */
|
|
/* eslint-disable default-case */
|
|
/* eslint-disable camelcase */
|
|
/* eslint-disable max-len */
|
|
/* eslint-disable no-undef */
|
|
/* eslint-disable no-unused-vars */
|
|
const wpnContactData = [
|
|
'ArmeCaC',
|
|
'armeCaCDegat', 'armeCaCBDegat',
|
|
'armeCaCViolence', 'armeCaCBViolence',
|
|
'armeCaCPortee', 'aspectPNJ',
|
|
'caracteristique1Equipement',
|
|
'caracteristique2Equipement',
|
|
'caracteristique3Equipement',
|
|
'caracteristique4Equipement',
|
|
'caracteristiqueSPrecis',
|
|
];
|
|
|
|
const wpnDistanceData = [
|
|
'ArmeDist',
|
|
'armeDistDegat', 'armeDistBDegat',
|
|
'armeDistViolence', 'armeDistBViolence',
|
|
'armeDistPortee', 'aspectPNJ',
|
|
'caracteristique1Equipement',
|
|
'caracteristique2Equipement',
|
|
'caracteristique3Equipement',
|
|
'caracteristique4Equipement',
|
|
'pilonnage',
|
|
];
|
|
|
|
const wpnAutreData = [
|
|
'ArmeAutre',
|
|
'armeAutreDegat', 'armeAutreBDegat',
|
|
'armeAutreViolence', 'armeAutreBViolence',
|
|
'armeAutrePortee',
|
|
'armeAttaqueAutre',
|
|
'armeODAutre',
|
|
];
|
|
|
|
const wpnEffects = [
|
|
'akimbo', 'ambidextrie', 'anatheme', 'antiAnatheme', 'antiVehicule', 'artillerie', 'assassin', 'assistanceAttaque',
|
|
'barrage', 'bourreau', 'cadence', 'chargeur', 'choc', 'conviction', 'defense', 'degatContinue', 'deuxMains', 'demoralisant',
|
|
'designation', 'destructeur', 'devastation', 'dispersion', 'enChaine', 'esperance', 'excellence', 'fureur', 'guidage', 'ignoreArmure',
|
|
'ignoreCdF', 'leste', 'lestePNJ', 'lourd', 'lumiere', 'meurtrier', 'obliteration',
|
|
'orfevrerie', 'orfevreriePNJ', 'parasitage', 'penetrant', 'perceArmure', 'precision', 'precisionPNJ', 'reaction', 'regularite', 'silencieux', 'soumission', 'tenebricite',
|
|
'tirRafale', 'tirSecurite', 'ultraViolence', 'cdf', 'immobilisation', 'intimidanteHumain', 'intimidanteAnatheme', 'retourFlamme', 'sansArmure', 'boost',
|
|
];
|
|
|
|
const wpnEffectsValue = [
|
|
'assassinValue', 'barrageValue', 'bourreauValue', 'cadenceValue', 'cadenceactif', 'chargeurValue', 'chocValue',
|
|
'defenseValue', 'degatContinueValue', 'devastationValue', 'dispersionValue', 'guidageactif', 'lumiereValue', 'parasitageValue',
|
|
'penetrantValue', 'perceArmureValue', 'reactionValue', 'cdfValue', 'immobilisationValue', 'boostValue',
|
|
];
|
|
|
|
const wpnAmeliorationS = [
|
|
'agressive', 'allegee', 'assassine', 'barbelee',
|
|
'connectee', 'electrifiee', 'indestructible', 'jumelle',
|
|
'lumineuse', 'massive', 'protectrice', 'soeur', 'sournoise', 'surmesure',
|
|
'sournoisePNJ', 'surmesurePNJ',
|
|
];
|
|
|
|
const wpnAmeliorationO = [
|
|
'arabesquesIridescentes', 'armeAzurine', 'armeRougeSang', 'armureGravee',
|
|
'blasonChevalier', 'bouclierGrave', 'cheneSculpte', 'chromeeLignesLC',
|
|
'codeKnightGrave', 'craneRieurGrave', 'faucheuseGravee', 'fauconsPlumesL',
|
|
'flammesStylisees', 'griffuresGravees', 'masqueBriseSculpte', 'rouagesCassesGraves',
|
|
'sillonsFLF',
|
|
];
|
|
|
|
const wpnAmeliorationA = [
|
|
'chargeurGrappes', 'canonLong', 'canonRaccourci', 'chambreDouble', 'interfaceGuidage',
|
|
'jumelage', 'lunetteIntelligente', 'munitionsHyperVelocite', 'munitionsDrone',
|
|
'chargeurExplosives', 'munitionsIEM', 'munitionsNonLetales', 'munitionsSubsoniques',
|
|
'pointeurLaser', 'protectionArme', 'revetementOmega', 'structureElement', 'systemeRefroidissement',
|
|
];
|
|
|
|
const wpnAmeliorationAValue = [
|
|
'jumelageValue', 'jumelageType',
|
|
];
|
|
|
|
const wpnSpecial = [
|
|
'BDDiversTotal', 'BVDiversTotal', 'energie',
|
|
];
|
|
|
|
const wpnSpecialValue = [
|
|
'BDDiversD6', 'BDDiversFixe', 'BVDiversD6', 'BVDiversFixe', 'energieValue',
|
|
];
|
|
|
|
function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, oDexterite, vDiscretion, oDiscretion, vTir, oTir, vAura, oAura) {
|
|
const result = {};
|
|
|
|
const exec = [];
|
|
const firstExec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
const attaquesSurprises = [];
|
|
const attaquesSurprisesValue = [];
|
|
let attaquesSurprisesCondition = '';
|
|
|
|
const bDegats = [];
|
|
const autresEffets = [];
|
|
|
|
let eASAssassin = '';
|
|
let eASAssassinValue = 0;
|
|
|
|
let vCadence = 0;
|
|
let eLumiereS = '';
|
|
let eLumiereValue = 0;
|
|
|
|
let eBourreauValue = 0;
|
|
let eDevastationValue = 0;
|
|
|
|
let isAntiAnatheme = false;
|
|
let isAssistantAttaque = false;
|
|
let isAkimbo = false;
|
|
let isAmbidextrie = false;
|
|
let isCadence = false;
|
|
let isChoc = false;
|
|
let isDestructeur = false;
|
|
let isDeuxMains = false;
|
|
let isLeste = false;
|
|
let isLourd = false;
|
|
let isELumiere = false;
|
|
let isFureur = false;
|
|
let isMeurtrier = false;
|
|
let isObliteration = false;
|
|
let isOrfevrerie = false;
|
|
let isSilencieux = false;
|
|
let isTenebricide = false;
|
|
let isTirRafale = false;
|
|
let isTirSecurite = false;
|
|
let isUltraviolence = false;
|
|
|
|
let isBourreau = false;
|
|
let isDevastation = false;
|
|
let isGuidage = false;
|
|
let isRegularite = false;
|
|
|
|
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
|
|
const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]);
|
|
const eArtillerie = isApplied(effet[`${prefix}artillerie`]);
|
|
const eAssassin = isApplied(effet[`${prefix}assassin`]);
|
|
const eAssassinV = effet[`${prefix}assassinValue`] || 0;
|
|
const eAssistanceAttaque = isApplied(effet[`${prefix}assistanceAttaque`]);
|
|
const eBarrage = isApplied(effet[`${prefix}barrage`]);
|
|
const eBarrageV = effet[`${prefix}barrageValue`] || 0;
|
|
const eBourreau = isApplied(effet[`${prefix}bourreau`]);
|
|
const eBourreauV = effet[`${prefix}bourreauValue`] || 0;
|
|
const eCadence = isApplied(effet[`${prefix}cadence`]);
|
|
const eCadenceA = +effet[`${prefix}cadenceactif`] || 0;
|
|
const eCadenceV = effet[`${prefix}cadenceValue`] || 0;
|
|
const eChargeur = isApplied(effet[`${prefix}chargeur`]);
|
|
const eChargeurV = effet[`${prefix}chargeurValue`] || 0;
|
|
const eChoc = isApplied(effet[`${prefix}choc`]);
|
|
const eChocV = effet[`${prefix}chocValue`] || 0;
|
|
const eConviction = isApplied(effet[`${prefix}conviction`]);
|
|
const eDefense = isApplied(effet[`${prefix}defense`]);
|
|
const eDefenseV = effet[`${prefix}defenseValue`] || 0;
|
|
const eDegatsContinus = isApplied(effet[`${prefix}degatContinue`]);
|
|
const eDegatsContinusV = effet[`${prefix}degatContinueValue`] || 0;
|
|
const eDeuxMains = isApplied(effet[`${prefix}deuxMains`]);
|
|
const eDemoralisant = isApplied(effet[`${prefix}demoralisant`]);
|
|
const eDesignation = isApplied(effet[`${prefix}designation`]);
|
|
const eDestructeur = isApplied(effet[`${prefix}destructeur`]);
|
|
const eDestructeurV = 2;
|
|
const eDevastation = isApplied(effet[`${prefix}devastation`]);
|
|
const eDevastationV = effet[`${prefix}devastationValue`] || 0;
|
|
const eDispersion = isApplied(effet[`${prefix}dispersion`]);
|
|
const eDispersionV = effet[`${prefix}dispersionValue`] || 0;
|
|
const eEnChaine = isApplied(effet[`${prefix}enChaine`]);
|
|
const eEsperance = isApplied(effet[`${prefix}esperance`]);
|
|
const eExcellence = isApplied(effet[`${prefix}excellence`]);
|
|
const eGuidage = isApplied(effet[`${prefix}guidage`]);
|
|
const eGuidageV = +effet[`${prefix}guidageactif`] || 0;
|
|
const eFureur = isApplied(effet[`${prefix}fureur`]);
|
|
const eFureurV = 4;
|
|
const eIgnoreArmure = isApplied(effet[`${prefix}ignoreArmure`]);
|
|
const eIgnoreCDF = isApplied(effet[`${prefix}ignoreCdF`]);
|
|
const eJAkimbo = isApplied(effet[`${prefix}akimbo`]);
|
|
const eJAmbidextrie = isApplied(effet[`${prefix}ambidextrie`]);
|
|
const eLeste = isApplied(effet[`${prefix}leste`]);
|
|
const eLourd = isApplied(effet[`${prefix}lourd`]);
|
|
const eLumiere = isApplied(effet[`${prefix}lumiere`]);
|
|
const eLumiereV = effet[`${prefix}lumiereValue`] || 0;
|
|
const eMeurtrier = isApplied(effet[`${prefix}meurtrier`]);
|
|
const eMeurtrierV = 2;
|
|
const eObliteration = isApplied(effet[`${prefix}obliteration`]);
|
|
const eOrfevrerie = isApplied(effet[`${prefix}orfevrerie`]);
|
|
const eParasitage = isApplied(effet[`${prefix}parasitage`]);
|
|
const eParasitageV = effet[`${prefix}parasitageValue`] || 0;
|
|
const ePenetrant = isApplied(effet[`${prefix}penetrant`]);
|
|
const ePenetrantV = effet[`${prefix}penetrantValue`] || 0;
|
|
const ePerceArmure = isApplied(effet[`${prefix}perceArmure`]);
|
|
const ePerceArmureV = effet[`${prefix}perceArmureValue`] || 0;
|
|
const ePrecision = isApplied(effet[`${prefix}precision`]);
|
|
const eReaction = isApplied(effet[`${prefix}reaction`]);
|
|
const eReactionV = effet[`${prefix}reactionValue`] || 0;
|
|
const eRegularite = isApplied(effet[`${prefix}regularite`]);
|
|
const eSilencieux = isApplied(effet[`${prefix}silencieux`]);
|
|
const eSoumission = isApplied(effet[`${prefix}soumission`]);
|
|
const eTenebricide = isApplied(effet[`${prefix}tenebricite`]);
|
|
const eTirRafale = isApplied(effet[`${prefix}tirRafale`]);
|
|
const eTirSecurite = isApplied(effet[`${prefix}tirSecurite`]);
|
|
const eUltraviolence = isApplied(effet[`${prefix}ultraViolence`]);
|
|
const eUltraviolenceV = 2;
|
|
const eCdF = isApplied(effet[`${prefix}cdf`]);
|
|
const eCdFV = effet[`${prefix}cdfValue`];
|
|
const eImmobilisation = isApplied(effet[`${prefix}immobilisation`]);
|
|
const eImmobilisationV = effet[`${prefix}immobilisationValue`];
|
|
const eIntimidanteHumain = isApplied(effet[`${prefix}intimidanteHumain`]);
|
|
const eIntimidanteAnatheme = isApplied(effet[`${prefix}intimidanteAnatheme`]);
|
|
const eRetourFlamme = isApplied(effet[`${prefix}retourFlamme`]);
|
|
const eSansArmure = isApplied(effet[`${prefix}sansArmure`]);
|
|
const eBoost = isApplied(effet[`${prefix}boost`]);
|
|
const eBoostV = effet[`${prefix}boostValue`];
|
|
|
|
if (eAntiAnatheme || armure === 'berserk') {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{antiAnatheme=${i18n_antiAnatheme}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
|
|
|
|
isAntiAnatheme = true;
|
|
}
|
|
|
|
if (eAssistanceAttaque) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_assistanceAttaque}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
|
|
isAssistantAttaque = true;
|
|
}
|
|
|
|
if (eArtillerie) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{artillerie=${i18n_artillerie}}} {{artillerieCondition=${i18n_artillerieCondition}}}`);
|
|
}
|
|
|
|
if (eAssassin) {
|
|
isConditionnelD = true;
|
|
|
|
eASAssassin = i18n_assassin;
|
|
eASAssassinValue = eAssassinV;
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
|
|
if (eBourreau) {
|
|
isBourreau = true;
|
|
eBourreauValue = eBourreauV;
|
|
}
|
|
|
|
if (eCadence && eCadenceA === 0) {
|
|
autresEffets.push(`${i18n_cadence} ${eCadenceV}`);
|
|
vCadence = eCadenceV;
|
|
} else if (eCadence && eCadenceA === 1) {
|
|
isCadence = true;
|
|
vCadence = eCadenceV;
|
|
exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`);
|
|
}
|
|
|
|
if (eChoc) {
|
|
isConditionnelA = true;
|
|
isChoc = true;
|
|
|
|
exec.push(`{{choc=${i18n_choc} ${eChocV}}} {{chocCondition=${i18n_chocCondition}}}`);
|
|
}
|
|
|
|
if (eConviction) {
|
|
autresEffets.push(i18n_conviction);
|
|
}
|
|
|
|
if (eDemoralisant) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{demoralisant=${i18n_demoralisant}}} {{demoralisantCondition=${i18n_demoralisantCondition}}}`);
|
|
}
|
|
|
|
if (eDestructeur) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{destructeurValue=[[${eDestructeurV}D6]]}}`);
|
|
|
|
exec.push(`{{destructeur=${i18n_destructeur}}} {{destructeurCondition=${i18n_destructeurCondition}}}`);
|
|
|
|
isDestructeur = true;
|
|
}
|
|
|
|
if (eDevastation) {
|
|
isDevastation = true;
|
|
eDevastationValue = eDevastationV;
|
|
}
|
|
|
|
if (eEnChaine) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{enChaine=${i18n_enChaine}}} {{enChaineCondition=${i18n_enChaineCondition}}}`);
|
|
}
|
|
|
|
if (eEsperance) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`);
|
|
}
|
|
|
|
if (eExcellence) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`);
|
|
}
|
|
|
|
if (eFureur) {
|
|
isConditionnelV = true;
|
|
isFureur = true;
|
|
|
|
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
|
|
|
|
exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`);
|
|
}
|
|
|
|
if (eGuidage && eGuidageV !== 0) {
|
|
isGuidage = true;
|
|
|
|
exec.push(`{{vGuidage=${i18n_guidageInclus}}}`);
|
|
} else if (eGuidage) {
|
|
autresEffets.push(i18n_guidage);
|
|
}
|
|
|
|
if (eLeste) {
|
|
bDegats.push(vForce);
|
|
exec.push(`{{vLeste=${vForce}}}`);
|
|
isLeste = true;
|
|
}
|
|
|
|
if (eMeurtrier) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{meurtrierValue=[[${eMeurtrierV}D6]]}}`);
|
|
|
|
exec.push(`{{meurtrier=${i18n_meurtrier}}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
|
|
|
|
isMeurtrier = true;
|
|
}
|
|
|
|
if (eObliteration) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{obliteration=${i18n_obliteration}}} {{obliterationCondition=${i18n_obliterationCondition}}}`);
|
|
|
|
isObliteration = true;
|
|
}
|
|
|
|
if (eOrfevrerie) {
|
|
let vOrfevrerie = vDexterite;
|
|
|
|
if (hasArmure) { vOrfevrerie += oDexterite; }
|
|
|
|
bDegats.push(vOrfevrerie);
|
|
exec.push(`{{vOrfevrerie=${vOrfevrerie}}}`);
|
|
|
|
isOrfevrerie = true;
|
|
}
|
|
|
|
if (eParasitage) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{parasitage=${i18n_parasitage} ${eParasitageV}}} {{parasitageCondition=${i18n_parasitageCondition}}}`);
|
|
}
|
|
|
|
if (ePrecision) {
|
|
isConditionnelD = true;
|
|
|
|
let vPrecision = vTir;
|
|
|
|
if (hasArmure) { vPrecision += oTir; }
|
|
|
|
bDegats.push(vPrecision);
|
|
exec.push(`{{vPrecision=${vPrecision}}}`);
|
|
}
|
|
|
|
if (eRegularite) {
|
|
isRegularite = true;
|
|
exec.push('{{vRegularite=[[0]]}}');
|
|
}
|
|
|
|
if (eSilencieux || prefix === 'pS' || prefix === 'pSC') {
|
|
const ghost = +effet.rogueGhost;
|
|
const MALghost = +effet.MALRogueGhost;
|
|
const changeling = +effet.bardChangeling;
|
|
const MALchangeling = +effet.MALBardChangeling;
|
|
let totalSilencieux = vDiscretion;
|
|
|
|
if (hasArmure) { totalSilencieux += oDiscretion; }
|
|
|
|
if (hasArmure && ghost !== 0) {
|
|
exec.push(`{{vSilencieuxD=${totalSilencieux}}}`);
|
|
bDegats.push(totalSilencieux);
|
|
} else if (hasArmure && MALghost !== 0) {
|
|
exec.push(`{{vSilencieuxD=${totalSilencieux}}}`);
|
|
bDegats.push(totalSilencieux);
|
|
} else if (hasArmure && changeling !== 0) {
|
|
exec.push(`{{vSilencieuxD=${totalSilencieux}}}`);
|
|
bDegats.push(totalSilencieux);
|
|
} else if (hasArmure && MALchangeling !== 0) {
|
|
exec.push(`{{vSilencieuxD=${totalSilencieux}}}`);
|
|
bDegats.push(totalSilencieux);
|
|
} else {
|
|
isConditionnelD = true;
|
|
attaquesSurprises.push(i18n_silencieux);
|
|
attaquesSurprisesValue.push(totalSilencieux);
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
|
|
isSilencieux = true;
|
|
}
|
|
|
|
if (eSoumission) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{soumission=${i18n_soumission}}} {{soumissionCondition=${i18n_soumissionCondition}}}`);
|
|
}
|
|
|
|
if (eTenebricide || armure === 'berserk') {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
isTenebricide = true;
|
|
}
|
|
|
|
if (eTirRafale) {
|
|
isConditionnelD = true;
|
|
isTirRafale = true;
|
|
|
|
exec.push(`{{tirRafale=${i18n_tirRafale}}} {{tirRafaleCondition=${i18n_tirRafaleCondition}}}`);
|
|
}
|
|
|
|
if (eUltraviolence) {
|
|
isConditionnelV = true;
|
|
isUltraviolence = true;
|
|
|
|
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
|
|
|
|
exec.push(`{{ultraviolence=${i18n_ultraviolence}}} {{ultraviolenceCondition=${i18n_ultraviolenceCondition}}}`);
|
|
}
|
|
|
|
if (eAntiVehicule) { autresEffets.push(i18n_antiVehicule); }
|
|
|
|
if (eBarrage) { autresEffets.push(`${i18n_barrage} ${eBarrageV}`); }
|
|
|
|
if (eChargeur) { autresEffets.push(`${i18n_chargeur} ${eChargeurV}`); }
|
|
|
|
if (prefix === 'mE') { autresEffets.push(`${i18n_chargeur} 1`); }
|
|
|
|
if (eDefense) { autresEffets.push(`${i18n_defense} ${eDefenseV}`); }
|
|
|
|
if (eDegatsContinus) { autresEffets.push(`${i18n_degatsContinus} ${eDegatsContinusV} ([[1d6]] ${i18n_tours})`); }
|
|
|
|
if (prefix === 'mE') { autresEffets.push(`${i18n_degatsContinus} 3 ([[1d6]] ${i18n_tours})`); }
|
|
|
|
if (eDeuxMains) {
|
|
autresEffets.push(i18n_deuxMains);
|
|
isDeuxMains = true;
|
|
}
|
|
|
|
if (eDesignation) { autresEffets.push(i18n_designation); }
|
|
|
|
if (eDispersion) { autresEffets.push(`${i18n_dispersion} ${eDispersionV}`); }
|
|
|
|
if (prefix === 'mE') { autresEffets.push(`${i18n_dispersion} 3`); }
|
|
|
|
if (eIgnoreArmure) { autresEffets.push(i18n_ignoreArmure); }
|
|
|
|
if (eIgnoreCDF) { autresEffets.push(i18n_ignoreCDF); }
|
|
|
|
if (eJAkimbo) {
|
|
isAkimbo = true;
|
|
autresEffets.push(i18n_jAkimbo);
|
|
}
|
|
|
|
if (eJAmbidextrie) {
|
|
isAmbidextrie = true;
|
|
autresEffets.push(i18n_jAmbidextrie);
|
|
}
|
|
|
|
if (eLourd) {
|
|
autresEffets.push(i18n_lourd);
|
|
isLourd = true;
|
|
}
|
|
|
|
if (eLumiere) {
|
|
eLumiereS = i18n_lumiere;
|
|
eLumiereValue = eLumiereV;
|
|
isELumiere = true;
|
|
}
|
|
|
|
if (prefix === 'mE') {
|
|
eLumiereS = i18n_lumiere;
|
|
eLumiereValue = 2;
|
|
isELumiere = true;
|
|
}
|
|
|
|
if (ePenetrant) { autresEffets.push(`${i18n_penetrant} ${ePenetrantV}`); }
|
|
|
|
if (ePerceArmure) { autresEffets.push(`${i18n_perceArmure} ${ePerceArmureV}`); }
|
|
|
|
if (prefix === 'mEC') { autresEffets.push(`${i18n_perceArmure} 40`); }
|
|
|
|
if (eReaction) { autresEffets.push(`${i18n_reaction} ${eReactionV}`); }
|
|
|
|
if (eTirSecurite) {
|
|
autresEffets.push(i18n_tirSecurite);
|
|
isTirSecurite = true;
|
|
}
|
|
|
|
if (eCdF) { autresEffets.push(`${i18n_cdf} ${eCdFV}`); }
|
|
|
|
if (eImmobilisation) { autresEffets.push(`${i18n_immobilisation} ${eImmobilisationV}`); }
|
|
|
|
if (eIntimidanteAnatheme) {
|
|
isConditionnelV = true;
|
|
let vIntimidanteAnatheme = +vAura;
|
|
if (hasArmure) vIntimidanteAnatheme += +oAura;
|
|
|
|
exec.push(`{{intimidanteAnatheme=${i18n_intimidanteAnatheme}}} {{intimidanteAnathemeCondition=${i18n_intimidanteAnathemeCondition}}} {{intimidanteAnathemeValue=${vIntimidanteAnatheme}}}`);
|
|
}
|
|
|
|
if (eIntimidanteHumain) {
|
|
isConditionnelV = true;
|
|
let vIntimidanteHumain = +vAura;
|
|
if (hasArmure) vIntimidanteHumain += +oAura;
|
|
|
|
exec.push(`{{intimidanteHumain=${i18n_intimidanteHumain}}} {{intimidanteHumainCondition=${i18n_intimidanteHumainCondition}}} {{intimidanteHumainValue=${vIntimidanteHumain}}}`);
|
|
}
|
|
|
|
if (eRetourFlamme) { autresEffets.push(`${i18n_retourFlamme}`); }
|
|
|
|
if (eSansArmure) { autresEffets.push(`${i18n_sansArmure}`); }
|
|
|
|
if (eBoost) { autresEffets.push(`${i18n_boost} ${eBoostV}`); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.eASAssassin = eASAssassin;
|
|
result.eASAssassinValue = eASAssassinValue;
|
|
result.isCadence = isCadence;
|
|
result.vCadence = vCadence;
|
|
result.isTenebricide = isTenebricide;
|
|
result.isObliteration = isObliteration;
|
|
result.isMeurtrier = isMeurtrier;
|
|
result.vMeurtrier = eMeurtrierV;
|
|
result.isDestructeur = isDestructeur;
|
|
result.vDestructeur = eDestructeurV;
|
|
result.nowSilencieux = isSilencieux;
|
|
result.isChoc = isChoc;
|
|
result.isLeste = isLeste;
|
|
result.isOrfevrerie = isOrfevrerie;
|
|
result.isAssistantAttaque = isAssistantAttaque;
|
|
result.isAntiAnatheme = isAntiAnatheme;
|
|
result.isTirRafale = isTirRafale;
|
|
result.isFureur = isFureur;
|
|
result.isUltraviolence = isUltraviolence;
|
|
|
|
result.isBourreau = isBourreau;
|
|
result.vBourreau = eBourreauValue;
|
|
result.isDevastation = isDevastation;
|
|
result.vDevastation = eDevastationValue;
|
|
|
|
result.isGuidage = isGuidage;
|
|
result.isRegularite = isRegularite;
|
|
|
|
result.eLumiere = eLumiere;
|
|
result.isELumiere = isELumiere;
|
|
result.eLumiereValue = eLumiereValue;
|
|
|
|
result.isAkimbo = isAkimbo;
|
|
result.isAmbidextrie = isAmbidextrie;
|
|
result.isDeuxMains = isDeuxMains;
|
|
result.isLourd = isLourd;
|
|
result.isTirSecurite = isTirSecurite;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.bDegats = bDegats;
|
|
|
|
result.exec = exec;
|
|
result.firstExec = firstExec;
|
|
result.autresEffets = autresEffets;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachineAE, vMasque, vMasqueAE, vDame, vDameAE) {
|
|
const result = {};
|
|
|
|
const exec = [];
|
|
const firstExec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
const attaquesSurprises = [];
|
|
const attaquesSurprisesValue = [];
|
|
let attaquesSurprisesCondition = '';
|
|
|
|
let eASAssassin;
|
|
let eASAssassinValue = 0;
|
|
|
|
let bDegats = 0;
|
|
const autresEffets = [];
|
|
|
|
let vCadence = 0;
|
|
|
|
let eBourreauValue = 0;
|
|
let eDevastationValue = 0;
|
|
|
|
let isObliteration = false;
|
|
let isTenebricide = false;
|
|
|
|
let isAntiAnatheme = false;
|
|
let isAssistanceAttaque = false;
|
|
let isDestructeur = false;
|
|
let isCadence = false;
|
|
let isChoc = false;
|
|
let isLeste = false;
|
|
let isMeurtrier = false;
|
|
let isOrfevrerie = false;
|
|
let isSilencieux = false;
|
|
let isFureur = false;
|
|
let isUltraviolence = false;
|
|
|
|
let isBourreau = false;
|
|
let isDevastation = false;
|
|
let isGuidage = false;
|
|
let isRegularite = false;
|
|
|
|
const eAnatheme = isApplied(data[`${prefix}anatheme`]);
|
|
const eAntiAnatheme = isApplied(data[`${prefix}antiAnatheme`]);
|
|
const eAntiVehicule = isApplied(data[`${prefix}antiVehicule`]);
|
|
const eArtillerie = isApplied(data[`${prefix}artillerie`]);
|
|
const eAssassin = isApplied(data[`${prefix}assassin`]);
|
|
const eAssassinV = data[`${prefix}assassinValue`] || 0;
|
|
const eAssistanceAttaque = isApplied(data[`${prefix}assistanceAttaque`]);
|
|
const eBarrage = isApplied(data[`${prefix}barrage`]);
|
|
const eBarrageV = data[`${prefix}barrageValue`] || 0;
|
|
const eBourreau = isApplied(data[`${prefix}bourreau`]);
|
|
const eBourreauV = data[`${prefix}bourreauValue`] || 0;
|
|
const eCadence = isApplied(data[`${prefix}cadence`]);
|
|
const eCadenceA = +data[`${prefix}cadenceactif`] || 0;
|
|
const eCadenceV = data[`${prefix}cadenceValue`] || 0;
|
|
const eChargeur = isApplied(data[`${prefix}eChargeur`]);
|
|
const eChargeurV = data[`${prefix}chargeurValue`] || 0;
|
|
const eChoc = isApplied(data[`${prefix}choc`]);
|
|
const eChocV = data[`${prefix}chocValue`] || 0;
|
|
const eConviction = isApplied(data[`${prefix}conviction`]);
|
|
const eDefense = isApplied(data[`${prefix}eDefense`]);
|
|
const eDefenseV = data[`${prefix}defenseValue`] || 0;
|
|
const eDegatsContinus = isApplied(data[`${prefix}degatContinue`]);
|
|
const eDegatsContinusV = data[`${prefix}degatContinueValue`] || 0;
|
|
const eDeuxMains = isApplied(data[`${prefix}deuxMains`]);
|
|
const eDemoralisant = isApplied(data[`${prefix}eDemoralisant`]);
|
|
const eDesignation = isApplied(data[`${prefix}designation`]);
|
|
const eDestructeur = isApplied(data[`${prefix}destructeur`]);
|
|
const eDestructeurV = 2;
|
|
const eDevastation = isApplied(data[`${prefix}devastation`]);
|
|
const eDevastationV = data[`${prefix}devastationValue`] || 0;
|
|
const eDispersion = isApplied(data[`${prefix}dispersion`]);
|
|
const eDispersionV = data[`${prefix}dispersionValue`] || 0;
|
|
const eEnChaine = isApplied(data[`${prefix}enChaine`]);
|
|
const eEsperance = isApplied(data[`${prefix}esperance`]);
|
|
const eExcellence = isApplied(data[`${prefix}excellence`]);
|
|
const eFureur = isApplied(data[`${prefix}fureur`]);
|
|
const eFureurV = 4;
|
|
const eGuidage = isApplied(data[`${prefix}guidage`]);
|
|
const eGuidageV = +data[`${prefix}guidageactif`] || 0;
|
|
const eIgnoreArmure = isApplied(data[`${prefix}ignoreArmure`]);
|
|
const eIgnoreCDF = isApplied(data[`${prefix}ignoreCdF`]);
|
|
const eJAkimbo = isApplied(data[`${prefix}akimbo`]);
|
|
const eJAmbidextrie = isApplied(data[`${prefix}ambidextrie`]);
|
|
const eLeste = isApplied(data[`${prefix}lestePNJ`]);
|
|
const eLourd = isApplied(data[`${prefix}lourd`]);
|
|
const eLumiere = isApplied(data[`${prefix}lumiere`]);
|
|
const eLumiereV = data[`${prefix}lumiereValue`] || 0;
|
|
const eMeurtrier = isApplied(data[`${prefix}meurtrier`]);
|
|
const eMeurtrierV = 2;
|
|
const eObliteration = isApplied(data[`${prefix}obliteration`]);
|
|
const eOrfevrerie = isApplied(data[`${prefix}orfevreriePNJ`]);
|
|
const eParasitage = isApplied(data[`${prefix}parasitage`]);
|
|
const eParasitageV = data[`${prefix}parasitageValue`] || 0;
|
|
const ePenetrant = isApplied(data[`${prefix}penetrant`]);
|
|
const ePenetrantV = data[`${prefix}penetrantValue`] || 0;
|
|
const ePerceArmure = isApplied(data[`${prefix}perceArmure`]);
|
|
const ePerceArmureV = data[`${prefix}perceArmureValue`] || 0;
|
|
const ePrecision = isApplied(data[`${prefix}precisionPNJ`]);
|
|
const eReaction = isApplied(data[`${prefix}reaction`]);
|
|
const eReactionV = data[`${prefix}reactionValue`] || 0;
|
|
const eRegularite = isApplied(data[`${prefix}regularite`]);
|
|
const eSilencieux = isApplied(data[`${prefix}silencieux`]);
|
|
const eSoumission = isApplied(data[`${prefix}soumission`]);
|
|
const eTenebricide = isApplied(data[`${prefix}tenebricite`]);
|
|
const eTirRafale = isApplied(data[`${prefix}tirRafale`]);
|
|
const eTirSecurite = isApplied(data[`${prefix}tirSecurite`]);
|
|
const eUltraviolence = isApplied(data[`${prefix}ultraViolence`]);
|
|
const eUltraviolenceV = 2;
|
|
const eCdF = isApplied(data[`${prefix}cdf`]);
|
|
const eCdFV = data[`${prefix}cdfValue`];
|
|
const eImmobilisation = isApplied(data[`${prefix}immobilisation`]);
|
|
const eImmobilisationV = data[`${prefix}immobilisationValue`];
|
|
const eIntimidanteHumain = isApplied(data[`${prefix}intimidanteHumain`]);
|
|
const eIntimidanteAnatheme = isApplied(data[`${prefix}intimidanteAnatheme`]);
|
|
const eRetourFlamme = isApplied(data[`${prefix}retourFlamme`]);
|
|
const eSansArmure = isApplied(data[`${prefix}sansArmure`]);
|
|
const eBoost = isApplied(data[`${prefix}boost`]);
|
|
const eBoostV = data[`${prefix}boostValue`];
|
|
|
|
if (eAntiAnatheme) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{antiAnatheme=${i18n_antiAnatheme}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
|
|
|
|
isAntiAnatheme = true;
|
|
}
|
|
|
|
if (eAssistanceAttaque) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_assistanceAttaque}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
|
|
isAssistanceAttaque = true;
|
|
}
|
|
|
|
if (eArtillerie) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{artillerie=${i18n_artillerie}}} {{artillerieCondition=${i18n_artillerieCondition}}}`);
|
|
}
|
|
|
|
if (eAssassin) {
|
|
isConditionnelD = true;
|
|
|
|
eASAssassin = i18n_assassin;
|
|
eASAssassinValue = eAssassinV;
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
|
|
if (eBourreau) {
|
|
isBourreau = true;
|
|
eBourreauValue = eBourreauV;
|
|
}
|
|
|
|
if (eCadence && eCadenceA === 0) {
|
|
autresEffets.push(`${i18n_cadence} ${eCadenceV}`);
|
|
vCadence = eCadenceV;
|
|
} else if (eCadence && eCadenceA === 1) {
|
|
isCadence = true;
|
|
vCadence = eCadenceV;
|
|
exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`);
|
|
}
|
|
|
|
if (eChoc) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{choc=${i18n_choc} ${eChocV}}} {{chocCondition=${i18n_chocCondition}}}`);
|
|
|
|
isChoc = true;
|
|
}
|
|
|
|
if (eConviction) {
|
|
autresEffets.push(i18n_conviction);
|
|
}
|
|
|
|
if (eDemoralisant) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{demoralisant=${i18n_demoralisant}}} {{demoralisantCondition=${i18n_demoralisantCondition}}}`);
|
|
}
|
|
|
|
if (eDestructeur) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{destructeurValue=[[${eDestructeurV}D6]]}}`);
|
|
|
|
exec.push(`{{destructeur=${i18n_destructeur}}} {{destructeurCondition=${i18n_destructeurCondition}}}`);
|
|
|
|
isDestructeur = true;
|
|
}
|
|
|
|
if (eDevastation) {
|
|
isDevastation = true;
|
|
eDevastationValue = eDevastationV;
|
|
}
|
|
|
|
if (eEnChaine) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{enChaine=${i18n_enChaine}}} {{enChaineCondition=${i18n_enChaineCondition}}}`);
|
|
}
|
|
|
|
if (eEsperance) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`);
|
|
}
|
|
|
|
if (eExcellence) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`);
|
|
}
|
|
|
|
if (eFureur) {
|
|
isConditionnelV = true;
|
|
isFureur = true;
|
|
|
|
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
|
|
|
|
exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`);
|
|
}
|
|
|
|
if (eGuidage && eGuidageV !== 0) {
|
|
isGuidage = true;
|
|
|
|
exec.push(`{{vGuidage=${i18n_guidageInclus}}}`);
|
|
} else if (eGuidage) {
|
|
autresEffets.push(i18n_guidage);
|
|
}
|
|
|
|
if (eLeste) {
|
|
bDegats += Math.floor(vChair / 2);
|
|
|
|
if (addChair) { exec.push(`{{vLeste=${Math.floor(vChair / 2)}}}`); } else { exec.push(`{{vLeste=${vChair}}}`); }
|
|
|
|
isLeste = true;
|
|
}
|
|
|
|
if (eMeurtrier) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{meurtrierValue=[[${eMeurtrierV}D6]]}}`);
|
|
|
|
exec.push(`{{meurtrier=${i18n_meurtrier}}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
|
|
|
|
isMeurtrier = true;
|
|
}
|
|
|
|
if (eObliteration) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{obliteration=${i18n_obliteration}}} {{obliterationCondition=${i18n_obliterationCondition}}}`);
|
|
|
|
isObliteration = true;
|
|
}
|
|
|
|
if (eOrfevrerie) {
|
|
const vOrfevrerie = Math.ceil(vMasque / 2);
|
|
|
|
bDegats += vOrfevrerie;
|
|
exec.push(`{{vOrfevrerie=${vOrfevrerie}}}`);
|
|
|
|
isOrfevrerie = true;
|
|
}
|
|
|
|
if (eParasitage) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{parasitage=${i18n_parasitage} ${eParasitageV}}} {{parasitageCondition=${i18n_parasitageCondition}}}`);
|
|
}
|
|
|
|
if (ePrecision) {
|
|
isConditionnelD = true;
|
|
|
|
const vPrecision = Math.ceil(vMachine / 2) + vMachineAE;
|
|
|
|
bDegats += vPrecision;
|
|
exec.push(`{{vPrecision=${vPrecision}}}`);
|
|
}
|
|
|
|
if (eRegularite) {
|
|
isRegularite = true;
|
|
exec.push('{{vRegularite=[[0]]}}');
|
|
}
|
|
|
|
if (eSilencieux || prefix === 'pS' || prefix === 'pSC') {
|
|
const totalSilencieux = Math.ceil(vMasque / 2) + vMasqueAE;
|
|
|
|
isConditionnelD = true;
|
|
|
|
attaquesSurprises.push(i18n_silencieux);
|
|
attaquesSurprisesValue.push(totalSilencieux);
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
|
|
isSilencieux = true;
|
|
}
|
|
|
|
if (eSoumission) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{soumission=${i18n_soumission}}} {{soumissionCondition=${i18n_soumissionCondition}}}`);
|
|
}
|
|
|
|
if (eTenebricide) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
|
|
|
|
isTenebricide = true;
|
|
}
|
|
|
|
if (eTirRafale) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{tirRafale=${i18n_tirRafale}}} {{tirRafaleCondition=${i18n_tirRafaleCondition}}}`);
|
|
}
|
|
|
|
if (eUltraviolence) {
|
|
isConditionnelV = true;
|
|
isUltraviolence = true;
|
|
|
|
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
|
|
|
|
exec.push(`{{ultraviolence=${i18n_ultraviolence}}} {{ultraviolenceCondition=${i18n_ultraviolenceCondition}}}`);
|
|
}
|
|
|
|
if (eAnatheme) { autresEffets.push(i18n_anatheme); }
|
|
|
|
if (eAntiVehicule) { autresEffets.push(i18n_antiVehicule); }
|
|
|
|
if (eBarrage) { autresEffets.push(`${i18n_barrage} ${eBarrageV}`); }
|
|
|
|
if (eChargeur) { autresEffets.push(`${i18n_chargeur} ${eChargeurV}`); }
|
|
|
|
if (prefix === 'mE') { autresEffets.push(`${i18n_chargeur} 1`); }
|
|
|
|
if (eDefense) { autresEffets.push(`${i18n_defense} ${eDefenseV}`); }
|
|
|
|
if (eDegatsContinus) { autresEffets.push(`${i18n_degatsContinus} ${eDegatsContinusV} ([[1d6]] ${i18n_tours})`); }
|
|
|
|
if (prefix === 'mE') { autresEffets.push(`${i18n_degatsContinus} 3 ([[1d6]] ${i18n_tours})`); }
|
|
|
|
if (eDeuxMains) { autresEffets.push(i18n_deuxMains); }
|
|
|
|
if (eDesignation) { autresEffets.push(i18n_designation); }
|
|
|
|
if (eDispersion) { autresEffets.push(`${i18n_dispersion} ${eDispersionV}`); }
|
|
|
|
if (prefix === 'mE') { autresEffets.push(`${i18n_dispersion} 3`); }
|
|
|
|
if (eIgnoreArmure) { autresEffets.push(i18n_ignoreArmure); }
|
|
|
|
if (eIgnoreCDF) { autresEffets.push(i18n_ignoreCDF); }
|
|
|
|
if (eJAkimbo) { autresEffets.push(i18n_jAkimbo); }
|
|
|
|
if (eJAmbidextrie) { autresEffets.push(i18n_jAmbidextrie); }
|
|
|
|
if (eLourd) { autresEffets.push(i18n_lourd); }
|
|
|
|
if (eLumiere) { autresEffets.push(`${i18n_lumiere} ${eLumiereV}`); }
|
|
|
|
if (prefix === 'mE') { autresEffets.push(`${i18n_lumiere} 2`); }
|
|
|
|
if (ePenetrant) { autresEffets.push(`${i18n_penetrant} ${ePenetrantV}`); }
|
|
|
|
if (ePerceArmure) { autresEffets.push(`${i18n_perceArmure} ${ePerceArmureV}`); }
|
|
|
|
if (prefix === 'mEC') { autresEffets.push(`${i18n_perceArmure} 40`); }
|
|
|
|
if (eReaction) { autresEffets.push(`${i18n_reaction} ${eReactionV}`); }
|
|
|
|
if (eTirSecurite) { autresEffets.push(i18n_tirSecurite); }
|
|
|
|
if (eCdF) { autresEffets.push(`${i18n_cdf} ${eCdFV}`); }
|
|
|
|
if (eImmobilisation) { autresEffets.push(`${i18n_immobilisation} ${eImmobilisationV}`); }
|
|
|
|
if (eIntimidanteAnatheme) {
|
|
isConditionnelV = true;
|
|
let vIntimidanteAnatheme = Math.ceil(+vDame / 2);
|
|
vIntimidanteAnatheme += +vDameAE;
|
|
|
|
exec.push(`{{intimidanteAnatheme=${i18n_intimidanteAnatheme}}} {{intimidanteAnathemeCondition=${i18n_intimidanteAnathemeCondition}}} {{intimidanteAnathemeValue=${vIntimidanteAnatheme}}}`);
|
|
}
|
|
|
|
if (eIntimidanteHumain) {
|
|
isConditionnelV = true;
|
|
let vIntimidanteHumain = Math.ceil(+vDame / 2);
|
|
vIntimidanteHumain += +vDameAE;
|
|
|
|
exec.push(`{{intimidanteHumain=${i18n_intimidanteHumain}}} {{intimidanteHumainCondition=${i18n_intimidanteHumainCondition}}} {{intimidanteHumainValue=${vIntimidanteHumain}}}`);
|
|
}
|
|
|
|
if (eRetourFlamme) { autresEffets.push(`${i18n_retourFlamme}`); }
|
|
|
|
if (eSansArmure) { autresEffets.push(`${i18n_sansArmure}`); }
|
|
|
|
if (eBoost) { autresEffets.push(`${i18n_boost} ${eBoostV}`); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.eASAssassin = eASAssassin;
|
|
result.eASAssassinValue = eASAssassinValue;
|
|
|
|
result.isCadence = isCadence;
|
|
result.vCadence = vCadence;
|
|
result.isTenebricide = isTenebricide;
|
|
result.isObliteration = isObliteration;
|
|
result.isAntiAnatheme = isAntiAnatheme;
|
|
result.isAssistanceAttaque = isAssistanceAttaque;
|
|
result.isChoc = isChoc;
|
|
result.isDestructeur = isDestructeur;
|
|
result.isLeste = isLeste;
|
|
result.isMeurtrier = isMeurtrier;
|
|
result.isOrfevrerie = isOrfevrerie;
|
|
result.isSilencieux = isSilencieux;
|
|
result.isFureur = isFureur;
|
|
result.isUltraviolence = isUltraviolence;
|
|
|
|
result.isGuidage = isGuidage;
|
|
result.isRegularite = isRegularite;
|
|
|
|
result.isBourreau = isBourreau;
|
|
result.vBourreau = eBourreauValue;
|
|
result.isDevastation = isDevastation;
|
|
result.vDevastation = eDevastationValue;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.bDegats = bDegats;
|
|
|
|
result.exec = exec;
|
|
result.firstExec = firstExec;
|
|
result.autresEffets = autresEffets;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsEffectsAutre(prefix, effet) {
|
|
const result = {};
|
|
|
|
const exec = [];
|
|
const firstExec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
const attaquesSurprises = [];
|
|
const attaquesSurprisesValue = [];
|
|
let attaquesSurprisesCondition = '';
|
|
|
|
const bDegats = [];
|
|
const autresEffets = [];
|
|
|
|
let vCadence = 0;
|
|
let eASAssassin = '';
|
|
let eASAssassinValue = 0;
|
|
|
|
let eLumiereS = '';
|
|
let eLumiereValue = 0;
|
|
let eBourreauValue = 0;
|
|
let eDevastationValue = 0;
|
|
|
|
let isAntiAnatheme = false;
|
|
let isAssistantAttaque = false;
|
|
let isAkimbo = false;
|
|
let isAmbidextrie = false;
|
|
let isCadence = false;
|
|
const isChoc = false;
|
|
let isDestructeur = false;
|
|
let isDeuxMains = false;
|
|
let isLeste = false;
|
|
let isLourd = false;
|
|
let isELumiere = false;
|
|
let isMeurtrier = false;
|
|
let isObliteration = false;
|
|
let isOrfevrerie = false;
|
|
let isSilencieux = false;
|
|
let isTenebricide = false;
|
|
let isTirRafale = false;
|
|
let isFureur = false;
|
|
let isUltraviolence = false;
|
|
|
|
let isBourreau = false;
|
|
let isDevastation = false;
|
|
let isGuidage = false;
|
|
let isRegularite = false;
|
|
|
|
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
|
|
const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]);
|
|
const eArtillerie = isApplied(effet[`${prefix}artillerie`]);
|
|
const eAssassin = isApplied(effet[`${prefix}assassin`]);
|
|
const eAssassinV = effet[`${prefix}assassinValue`] || 0;
|
|
const eAssistanceAttaque = isApplied(effet[`${prefix}assistanceAttaque`]);
|
|
const eBarrage = isApplied(effet[`${prefix}barrage`]);
|
|
const eBarrageV = effet[`${prefix}barrageValue`] || 0;
|
|
const eBourreau = isApplied(effet[`${prefix}bourreau`]);
|
|
const eBourreauV = effet[`${prefix}bourreauValue`] || 0;
|
|
const eCadence = isApplied(effet[`${prefix}cadence`]);
|
|
const eCadenceA = +effet[`${prefix}cadenceactif`] || 0;
|
|
const eCadenceV = effet[`${prefix}cadenceValue`] || 0;
|
|
const eChargeur = isApplied(effet[`${prefix}eChargeur`]);
|
|
const eChargeurV = effet[`${prefix}chargeurValue`] || 0;
|
|
const eChoc = isApplied(effet[`${prefix}choc`]);
|
|
const eChocV = effet[`${prefix}chocValue`] || 0;
|
|
const eConviction = isApplied(effet[`${prefix}conviction`]);
|
|
const eDefense = isApplied(effet[`${prefix}eDefense`]);
|
|
const eDefenseV = effet[`${prefix}defenseValue`] || 0;
|
|
const eDegatsContinus = isApplied(effet[`${prefix}degatContinue`]);
|
|
const eDegatsContinusV = effet[`${prefix}degatContinueValue`] || 0;
|
|
const eDeuxMains = isApplied(effet[`${prefix}deuxMains`]);
|
|
const eDemoralisant = isApplied(effet[`${prefix}eDemoralisant`]);
|
|
const eDesignation = isApplied(effet[`${prefix}designation`]);
|
|
const eDestructeur = isApplied(effet[`${prefix}destructeur`]);
|
|
const eDestructeurV = 2;
|
|
const eDevastation = isApplied(effet[`${prefix}devastation`]);
|
|
const eDevastationV = effet[`${prefix}devastationValue`] || 0;
|
|
const eDispersion = isApplied(effet[`${prefix}dispersion`]);
|
|
const eDispersionV = effet[`${prefix}dispersionValue`] || 0;
|
|
const eEnChaine = isApplied(effet[`${prefix}enChaine`]);
|
|
const eEsperance = isApplied(effet[`${prefix}esperance`]);
|
|
const eExcellence = isApplied(effet[`${prefix}excellence`]);
|
|
const eFureur = isApplied(effet[`${prefix}fureur`]);
|
|
const eFureurV = 4;
|
|
const eGuidage = isApplied(effet[`${prefix}guidage`]);
|
|
const eGuidageV = +effet[`${prefix}guidageactif`] || 0;
|
|
const eIgnoreArmure = isApplied(effet[`${prefix}ignoreArmure`]);
|
|
const eIgnoreCDF = isApplied(effet[`${prefix}ignoreCdF`]);
|
|
const eJAkimbo = isApplied(effet[`${prefix}akimbo`]);
|
|
const eJAmbidextrie = isApplied(effet[`${prefix}ambidextrie`]);
|
|
const eLeste = isApplied(effet[`${prefix}leste`]);
|
|
const eLourd = isApplied(effet[`${prefix}lourd`]);
|
|
const eLumiere = isApplied(effet[`${prefix}lumiere`]);
|
|
const eLumiereV = effet[`${prefix}lumiereValue`] || 0;
|
|
const eMeurtrier = isApplied(effet[`${prefix}meurtrier`]);
|
|
const eMeurtrierV = 2;
|
|
const eObliteration = isApplied(effet[`${prefix}obliteration`]);
|
|
const eOrfevrerie = isApplied(effet[`${prefix}orfevrerie`]);
|
|
const eParasitage = isApplied(effet[`${prefix}parasitage`]);
|
|
const eParasitageV = effet[`${prefix}parasitageValue`] || 0;
|
|
const ePenetrant = isApplied(effet[`${prefix}penetrant`]);
|
|
const ePenetrantV = effet[`${prefix}penetrantValue`] || 0;
|
|
const ePerceArmure = isApplied(effet[`${prefix}perceArmure`]);
|
|
const ePerceArmureV = effet[`${prefix}perceArmureValue`] || 0;
|
|
const ePrecision = isApplied(effet[`${prefix}precision`]);
|
|
const eReaction = isApplied(effet[`${prefix}reaction`]);
|
|
const eReactionV = effet[`${prefix}reactionValue`] || 0;
|
|
const eRegularite = isApplied(effet[`${prefix}regularite`]);
|
|
const eSilencieux = isApplied(effet[`${prefix}silencieux`]);
|
|
const eSoumission = isApplied(effet[`${prefix}soumission`]);
|
|
const eTenebricide = isApplied(effet[`${prefix}tenebricite`]);
|
|
const eTirRafale = isApplied(effet[`${prefix}tirRafale`]);
|
|
const eTirSecurite = isApplied(effet[`${prefix}tirSecurite`]);
|
|
const eUltraviolence = isApplied(effet[`${prefix}ultraViolence`]);
|
|
const eUltraviolenceV = 2;
|
|
const eCdF = isApplied(effet[`${prefix}cdf`]);
|
|
const eCdFV = effet[`${prefix}cdfValue`];
|
|
const eImmobilisation = isApplied(effet[`${prefix}immobilisation`]);
|
|
const eImmobilisationV = effet[`${prefix}immobilisationValue`];
|
|
const eIntimidanteHumain = isApplied(effet[`${prefix}intimidanteHumain`]);
|
|
const eIntimidanteAnatheme = isApplied(effet[`${prefix}intimidanteAnatheme`]);
|
|
const eRetourFlamme = isApplied(effet[`${prefix}retourFlamme`]);
|
|
const eSansArmure = isApplied(effet[`${prefix}sansArmure`]);
|
|
const eBoost = isApplied(effet[`${prefix}boost`]);
|
|
const eBoostV = effet[`${prefix}boostValue`];
|
|
|
|
if (eAntiAnatheme) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{antiAnatheme=${i18n_antiAnatheme}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
|
|
|
|
isAntiAnatheme = true;
|
|
}
|
|
|
|
if (eAssistanceAttaque) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_assistanceAttaque}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
|
|
isAssistantAttaque = true;
|
|
}
|
|
|
|
if (eArtillerie) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{artillerie=${i18n_artillerie}}} {{artillerieCondition=${i18n_artillerieCondition}}}`);
|
|
}
|
|
|
|
if (eAssassin) {
|
|
isConditionnelD = true;
|
|
|
|
eASAssassin = i18n_assassin;
|
|
eASAssassinValue = eAssassinV;
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
|
|
if (eBourreau) {
|
|
isBourreau = true;
|
|
eBourreauValue = eBourreauV;
|
|
}
|
|
|
|
if (eCadence && eCadenceA === 0) {
|
|
autresEffets.push(`${i18n_cadence} ${eCadenceV}`);
|
|
vCadence = eCadenceV;
|
|
} else if (eCadence && eCadenceA === 1) {
|
|
isCadence = true;
|
|
vCadence = eCadenceV;
|
|
exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`);
|
|
}
|
|
|
|
if (eChoc) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{choc=${i18n_choc} ${eChocV}}} {{chocCondition=${i18n_chocCondition}}}`);
|
|
}
|
|
|
|
if (eConviction) {
|
|
autresEffets.push(i18n_conviction);
|
|
}
|
|
|
|
if (eDemoralisant) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{demoralisant=${i18n_demoralisant}}} {{demoralisantCondition=${i18n_demoralisantCondition}}}`);
|
|
}
|
|
|
|
if (eDestructeur) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{destructeurValue=[[${eDestructeurV}D6]]}}`);
|
|
|
|
exec.push(`{{destructeur=${i18n_destructeur}}} {{destructeurCondition=${i18n_destructeurCondition}}}`);
|
|
|
|
isDestructeur = true;
|
|
}
|
|
|
|
if (eDevastation) {
|
|
isDevastation = true;
|
|
eDevastationValue = eDevastationV;
|
|
}
|
|
|
|
if (eEnChaine) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{enChaine=${i18n_enChaine}}} {{enChaineCondition=${i18n_enChaineCondition}}}`);
|
|
}
|
|
|
|
if (eEsperance) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`);
|
|
}
|
|
|
|
if (eExcellence) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`);
|
|
}
|
|
|
|
if (eFureur) {
|
|
isConditionnelV = true;
|
|
isFureur = true;
|
|
|
|
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
|
|
|
|
exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`);
|
|
}
|
|
|
|
if (eGuidage && eGuidageV !== 0) {
|
|
isGuidage = true;
|
|
|
|
exec.push(`{{vGuidage=${i18n_guidageInclus}}}`);
|
|
} else if (eGuidage) {
|
|
autresEffets.push(i18n_guidage);
|
|
}
|
|
|
|
if (eLeste) {
|
|
autresEffets.push(i18n_leste);
|
|
isLeste = true;
|
|
}
|
|
|
|
if (eMeurtrier) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{meurtrierValue=[[${eMeurtrierV}D6]]}}`);
|
|
|
|
exec.push(`{{meurtrier=${i18n_meurtrier}}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
|
|
|
|
isMeurtrier = true;
|
|
}
|
|
|
|
if (eObliteration) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{obliteration=${i18n_obliteration}}} {{obliterationCondition=${i18n_obliterationCondition}}}`);
|
|
|
|
isObliteration = true;
|
|
}
|
|
|
|
if (eOrfevrerie) {
|
|
autresEffets.push(i18n_orfevrerie);
|
|
|
|
isOrfevrerie = true;
|
|
}
|
|
|
|
if (eParasitage) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{parasitage=${i18n_parasitage} ${eParasitageV}}} {{parasitageCondition=${i18n_parasitageCondition}}}`);
|
|
}
|
|
|
|
if (ePrecision) {
|
|
isConditionnelD = true;
|
|
|
|
autresEffets.push(i18n_precision);
|
|
}
|
|
|
|
if (eRegularite) {
|
|
isRegularite = true;
|
|
exec.push('{{vRegularite=[[0]]}}');
|
|
}
|
|
|
|
if (eSilencieux) {
|
|
isConditionnelD = true;
|
|
|
|
autresEffets.push(i18n_silencieux);
|
|
|
|
isSilencieux = true;
|
|
}
|
|
|
|
if (eSoumission) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{soumission=${i18n_soumission}}} {{soumissionCondition=${i18n_soumissionCondition}}}`);
|
|
}
|
|
|
|
if (eTenebricide) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
|
|
|
|
isTenebricide = true;
|
|
}
|
|
|
|
if (eTirRafale) {
|
|
isConditionnelD = true;
|
|
isTirRafale = true;
|
|
|
|
exec.push(`{{tirRafale=${i18n_tirRafale}}} {{tirRafaleCondition=${i18n_tirRafaleCondition}}}`);
|
|
}
|
|
|
|
if (eUltraviolence) {
|
|
isConditionnelV = true;
|
|
isUltraviolence = true;
|
|
|
|
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
|
|
|
|
exec.push(`{{ultraviolence=${i18n_ultraviolence}}} {{ultraviolenceCondition=${i18n_ultraviolenceCondition}}}`);
|
|
}
|
|
|
|
if (eAntiVehicule) { autresEffets.push(i18n_antiVehicule); }
|
|
|
|
if (eBarrage) { autresEffets.push(`${i18n_barrage} ${eBarrageV}`); }
|
|
|
|
if (eChargeur) { autresEffets.push(`${i18n_chargeur} ${eChargeurV}`); }
|
|
|
|
if (eDefense) { autresEffets.push(`${i18n_defense} ${eDefenseV}`); }
|
|
|
|
if (eDegatsContinus) { autresEffets.push(`${i18n_degatsContinus} ${eDegatsContinusV} ([[1d6]] ${i18n_tours})`); }
|
|
|
|
if (eDeuxMains) {
|
|
autresEffets.push(i18n_deuxMains);
|
|
isDeuxMains = true;
|
|
}
|
|
|
|
if (eDesignation) { autresEffets.push(i18n_designation); }
|
|
|
|
if (eDispersion) { autresEffets.push(`${i18n_dispersion} ${eDispersionV}`); }
|
|
|
|
if (eIgnoreArmure) { autresEffets.push(i18n_ignoreArmure); }
|
|
|
|
if (eIgnoreCDF) { autresEffets.push(i18n_ignoreCDF); }
|
|
|
|
if (eJAkimbo) {
|
|
isAkimbo = true;
|
|
autresEffets.push(i18n_jAkimbo);
|
|
}
|
|
|
|
if (eJAmbidextrie) {
|
|
isAmbidextrie = true;
|
|
autresEffets.push(i18n_jAmbidextrie);
|
|
}
|
|
|
|
if (eLourd) {
|
|
autresEffets.push(i18n_lourd);
|
|
isLourd = true;
|
|
}
|
|
|
|
if (eLumiere) {
|
|
eLumiereS = i18n_lumiere;
|
|
eLumiereValue = eLumiereV;
|
|
isELumiere = true;
|
|
}
|
|
|
|
if (ePenetrant) { autresEffets.push(`${i18n_penetrant} ${ePenetrantV}`); }
|
|
|
|
if (ePerceArmure) { autresEffets.push(`${i18n_perceArmure} ${ePerceArmureV}`); }
|
|
|
|
if (eReaction) { autresEffets.push(`${i18n_reaction} ${eReactionV}`); }
|
|
|
|
if (eTirSecurite) { autresEffets.push(i18n_tirSecurite); }
|
|
|
|
if (eCdF) { autresEffets.push(`${i18n_cdf} ${eCdFV}`); }
|
|
|
|
if (eImmobilisation) { autresEffets.push(`${i18n_immobilisation} ${eImmobilisationV}`); }
|
|
|
|
if (eIntimidanteAnatheme) { autresEffets.push(`${i18n_intimidanteAnatheme}`); }
|
|
|
|
if (eIntimidanteHumain) { autresEffets.push(`${eIntimidanteHumain}`); }
|
|
|
|
if (eRetourFlamme) { autresEffets.push(`${i18n_retourFlamme}`); }
|
|
|
|
if (eSansArmure) { autresEffets.push(`${i18n_sansArmure}`); }
|
|
|
|
if (eBoost) { autresEffets.push(`${i18n_boost} ${eBoostV}`); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.eASAssassin = eASAssassin;
|
|
result.eASAssassinValue = eASAssassinValue;
|
|
result.isCadence = isCadence;
|
|
result.vCadence = vCadence;
|
|
result.isTenebricide = isTenebricide;
|
|
result.isObliteration = isObliteration;
|
|
result.isMeurtrier = isMeurtrier;
|
|
result.vMeurtrier = eMeurtrierV;
|
|
result.isDestructeur = isDestructeur;
|
|
result.vDestructeur = eDestructeurV;
|
|
result.nowSilencieux = isSilencieux;
|
|
result.isChoc = isChoc;
|
|
result.isLeste = isLeste;
|
|
result.isOrfevrerie = isOrfevrerie;
|
|
result.isAssistantAttaque = isAssistantAttaque;
|
|
result.isAntiAnatheme = isAntiAnatheme;
|
|
result.isTirRafale = isTirRafale;
|
|
result.isFureur = isFureur;
|
|
result.isUltraviolence = isUltraviolence;
|
|
|
|
result.isBourreau = isBourreau;
|
|
result.vBourreau = eBourreauValue;
|
|
result.isDevastation = isDevastation;
|
|
result.vDevastation = eDevastationValue;
|
|
|
|
result.isGuidage = isGuidage;
|
|
result.isRegularite = isRegularite;
|
|
|
|
result.eLumiere = eLumiere;
|
|
result.isELumiere = isELumiere;
|
|
result.eLumiereValue = eLumiereValue;
|
|
|
|
result.isAkimbo = isAkimbo;
|
|
result.isAmbidextrie = isAmbidextrie;
|
|
result.isDeuxMains = isDeuxMains;
|
|
result.isLourd = isLourd;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.bDegats = bDegats;
|
|
|
|
result.exec = exec;
|
|
result.firstExec = firstExec;
|
|
result.autresEffets = autresEffets;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsEffectsAutrePNJ(prefix, effet) {
|
|
const result = {};
|
|
|
|
const exec = [];
|
|
const firstExec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
const attaquesSurprises = [];
|
|
const attaquesSurprisesValue = [];
|
|
let attaquesSurprisesCondition = '';
|
|
|
|
const bDegats = [];
|
|
const autresEffets = [];
|
|
|
|
let vCadence = 0;
|
|
let eASAssassin = '';
|
|
let eASAssassinValue = 0;
|
|
|
|
let eLumiereS = '';
|
|
let eLumiereValue = 0;
|
|
let eBourreauValue = 0;
|
|
let eDevastationValue = 0;
|
|
|
|
let isAntiAnatheme = false;
|
|
let isAssistantAttaque = false;
|
|
let isAkimbo = false;
|
|
let isAmbidextrie = false;
|
|
let isCadence = false;
|
|
const isChoc = false;
|
|
let isDestructeur = false;
|
|
let isDeuxMains = false;
|
|
let isLeste = false;
|
|
let isLourd = false;
|
|
let isELumiere = false;
|
|
let isMeurtrier = false;
|
|
let isObliteration = false;
|
|
let isOrfevrerie = false;
|
|
let isSilencieux = false;
|
|
let isTenebricide = false;
|
|
let isTirRafale = false;
|
|
let isUltraviolence = false;
|
|
let isFureur = false;
|
|
|
|
let isBourreau = false;
|
|
let isDevastation = false;
|
|
let isGuidage = false;
|
|
let isRegularite = false;
|
|
|
|
const eAnatheme = isApplied(effet[`${prefix}anatheme`]);
|
|
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
|
|
const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]);
|
|
const eArtillerie = isApplied(effet[`${prefix}artillerie`]);
|
|
const eAssassin = isApplied(effet[`${prefix}assassin`]);
|
|
const eAssassinV = effet[`${prefix}assassinValue`] || 0;
|
|
const eAssistanceAttaque = isApplied(effet[`${prefix}assistanceAttaque`]);
|
|
const eBarrage = isApplied(effet[`${prefix}barrage`]);
|
|
const eBarrageV = effet[`${prefix}barrageValue`] || 0;
|
|
const eBourreau = isApplied(effet[`${prefix}bourreau`]);
|
|
const eBourreauV = effet[`${prefix}bourreauValue`] || 0;
|
|
const eCadence = isApplied(effet[`${prefix}cadence`]);
|
|
const eCadenceA = +effet[`${prefix}cadenceactif`] || 0;
|
|
const eCadenceV = effet[`${prefix}cadenceValue`] || 0;
|
|
const eChargeur = isApplied(effet[`${prefix}chargeur`]);
|
|
const eChargeurV = effet[`${prefix}chargeurValue`] || 0;
|
|
const eChoc = isApplied(effet[`${prefix}choc`]);
|
|
const eChocV = effet[`${prefix}chocValue`] || 0;
|
|
const eConviction = isApplied(effet[`${prefix}conviction`]);
|
|
const eDefense = isApplied(effet[`${prefix}defense`]);
|
|
const eDefenseV = effet[`${prefix}defenseValue`] || 0;
|
|
const eDegatsContinus = isApplied(effet[`${prefix}degatContinue`]);
|
|
const eDegatsContinusV = effet[`${prefix}degatContinueValue`] || 0;
|
|
const eDeuxMains = isApplied(effet[`${prefix}deuxMains`]);
|
|
const eDemoralisant = isApplied(effet[`${prefix}eDemoralisant`]);
|
|
const eDesignation = isApplied(effet[`${prefix}designation`]);
|
|
const eDestructeur = isApplied(effet[`${prefix}destructeur`]);
|
|
const eDestructeurV = 2;
|
|
const eDevastation = isApplied(effet[`${prefix}devastation`]);
|
|
const eDevastationV = effet[`${prefix}devastationValue`] || 0;
|
|
const eDispersion = isApplied(effet[`${prefix}dispersion`]);
|
|
const eDispersionV = effet[`${prefix}dispersionValue`] || 0;
|
|
const eEnChaine = isApplied(effet[`${prefix}enChaine`]);
|
|
const eEsperance = isApplied(effet[`${prefix}esperance`]);
|
|
const eExcellence = isApplied(effet[`${prefix}excellence`]);
|
|
const eFureur = isApplied(effet[`${prefix}fureur`]);
|
|
const eFureurV = 4;
|
|
const eGuidage = isApplied(effet[`${prefix}guidage`]);
|
|
const eGuidageV = +effet[`${prefix}guidageactif`] || 0;
|
|
const eIgnoreArmure = isApplied(effet[`${prefix}ignoreArmure`]);
|
|
const eIgnoreCDF = isApplied(effet[`${prefix}ignoreCdF`]);
|
|
const eJAkimbo = isApplied(effet[`${prefix}akimbo`]);
|
|
const eJAmbidextrie = isApplied(effet[`${prefix}ambidextrie`]);
|
|
const eLeste = isApplied(effet[`${prefix}leste`]);
|
|
const eLourd = isApplied(effet[`${prefix}lourd`]);
|
|
const eLumiere = isApplied(effet[`${prefix}lumiere`]);
|
|
const eLumiereV = effet[`${prefix}lumiereValue`] || 0;
|
|
const eMeurtrier = isApplied(effet[`${prefix}meurtrier`]);
|
|
const eMeurtrierV = 2;
|
|
const eObliteration = isApplied(effet[`${prefix}obliteration`]);
|
|
const eOrfevrerie = isApplied(effet[`${prefix}orfevrerie`]);
|
|
const eParasitage = isApplied(effet[`${prefix}parasitage`]);
|
|
const eParasitageV = effet[`${prefix}parasitageValue`] || 0;
|
|
const ePenetrant = isApplied(effet[`${prefix}penetrant`]);
|
|
const ePenetrantV = effet[`${prefix}penetrantValue`] || 0;
|
|
const ePerceArmure = isApplied(effet[`${prefix}perceArmure`]);
|
|
const ePerceArmureV = effet[`${prefix}perceArmureValue`] || 0;
|
|
const ePrecision = isApplied(effet[`${prefix}precision`]);
|
|
const eReaction = isApplied(effet[`${prefix}reaction`]);
|
|
const eReactionV = effet[`${prefix}reactionValue`] || 0;
|
|
const eRegularite = isApplied(effet[`${prefix}regularite`]);
|
|
const eSilencieux = isApplied(effet[`${prefix}silencieux`]);
|
|
const eSoumission = isApplied(effet[`${prefix}soumission`]);
|
|
const eTenebricide = isApplied(effet[`${prefix}tenebricite`]);
|
|
const eTirRafale = isApplied(effet[`${prefix}tirRafale`]);
|
|
const eTirSecurite = isApplied(effet[`${prefix}tirSecurite`]);
|
|
const eUltraviolence = isApplied(effet[`${prefix}ultraViolence`]);
|
|
const eUltraviolenceV = 2;
|
|
const eCdF = isApplied(effet[`${prefix}cdf`]);
|
|
const eCdFV = effet[`${prefix}cdfValue`];
|
|
const eImmobilisation = isApplied(effet[`${prefix}immobilisation`]);
|
|
const eImmobilisationV = effet[`${prefix}immobilisationValue`];
|
|
const eIntimidanteHumain = isApplied(effet[`${prefix}intimidanteHumain`]);
|
|
const eIntimidanteAnatheme = isApplied(effet[`${prefix}intimidanteAnatheme`]);
|
|
const eRetourFlamme = isApplied(effet[`${prefix}retourFlamme`]);
|
|
const eSansArmure = isApplied(effet[`${prefix}sansArmure`]);
|
|
const eBoost = isApplied(effet[`${prefix}boost`]);
|
|
const eBoostV = effet[`${prefix}boostValue`];
|
|
|
|
if (eAntiAnatheme) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{antiAnatheme=${i18n_antiAnatheme}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
|
|
|
|
isAntiAnatheme = true;
|
|
}
|
|
|
|
if (eAssistanceAttaque) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_assistanceAttaque}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
|
|
isAssistantAttaque = true;
|
|
}
|
|
|
|
if (eArtillerie) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{artillerie=${i18n_artillerie}}} {{artillerieCondition=${i18n_artillerieCondition}}}`);
|
|
}
|
|
|
|
if (eAssassin) {
|
|
isConditionnelD = true;
|
|
|
|
eASAssassin = i18n_assassin;
|
|
eASAssassinValue = eAssassinV;
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
|
|
if (eBourreau) {
|
|
isBourreau = true;
|
|
eBourreauValue = eBourreauV;
|
|
}
|
|
|
|
if (eCadence && eCadenceA === 0) {
|
|
autresEffets.push(`${i18n_cadence} ${eCadenceV}`);
|
|
vCadence = eCadenceV;
|
|
} else if (eCadence && eCadenceA === 1) {
|
|
isCadence = true;
|
|
vCadence = eCadenceV;
|
|
exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`);
|
|
}
|
|
|
|
if (eChoc) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{choc=${i18n_choc} ${eChocV}}} {{chocCondition=${i18n_chocCondition}}}`);
|
|
}
|
|
|
|
if (eConviction) {
|
|
autresEffets.push(i18n_conviction);
|
|
}
|
|
|
|
if (eDemoralisant) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{demoralisant=${i18n_demoralisant}}} {{demoralisantCondition=${i18n_demoralisantCondition}}}`);
|
|
}
|
|
|
|
if (eDestructeur) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{destructeurValue=[[${eDestructeurV}D6]]}}`);
|
|
|
|
exec.push(`{{destructeur=${i18n_destructeur}}} {{destructeurCondition=${i18n_destructeurCondition}}}`);
|
|
|
|
isDestructeur = true;
|
|
}
|
|
|
|
if (eDevastation) {
|
|
isDevastation = true;
|
|
eDevastationValue = eDevastationV;
|
|
}
|
|
|
|
if (eEnChaine) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{enChaine=${i18n_enChaine}}} {{enChaineCondition=${i18n_enChaineCondition}}}`);
|
|
}
|
|
|
|
if (eEsperance) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`);
|
|
}
|
|
|
|
if (eExcellence) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`);
|
|
}
|
|
|
|
if (eFureur) {
|
|
isConditionnelV = true;
|
|
isFureur = true;
|
|
|
|
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
|
|
|
|
exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`);
|
|
}
|
|
|
|
if (eGuidage && eGuidageV !== 0) {
|
|
isGuidage = true;
|
|
|
|
exec.push(`{{vGuidage=${i18n_guidageInclus}}}`);
|
|
} else if (eGuidage) {
|
|
autresEffets.push(i18n_guidage);
|
|
}
|
|
|
|
if (eLeste) {
|
|
autresEffets.push(i18n_leste);
|
|
isLeste = true;
|
|
}
|
|
|
|
if (eMeurtrier) {
|
|
isConditionnelD = true;
|
|
|
|
firstExec.push(`{{meurtrierValue=[[${eMeurtrierV}D6]]}}`);
|
|
|
|
exec.push(`{{meurtrier=${i18n_meurtrier}}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
|
|
|
|
isMeurtrier = true;
|
|
}
|
|
|
|
if (eObliteration) {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{obliteration=${i18n_obliteration}}} {{obliterationCondition=${i18n_obliterationCondition}}}`);
|
|
|
|
isObliteration = true;
|
|
}
|
|
|
|
if (eOrfevrerie) {
|
|
autresEffets.push(i18n_orfevrerie);
|
|
|
|
isOrfevrerie = true;
|
|
}
|
|
|
|
if (eParasitage) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{parasitage=${i18n_parasitage} ${eParasitageV}}} {{parasitageCondition=${i18n_parasitageCondition}}}`);
|
|
}
|
|
|
|
if (ePrecision) {
|
|
isConditionnelD = true;
|
|
|
|
autresEffets.push(i18n_precision);
|
|
}
|
|
|
|
if (eRegularite) {
|
|
isRegularite = true;
|
|
exec.push('{{vRegularite=[[0]]}}');
|
|
}
|
|
|
|
if (eSilencieux) {
|
|
isConditionnelD = true;
|
|
|
|
autresEffets.push(i18n_silencieux);
|
|
|
|
isSilencieux = true;
|
|
}
|
|
|
|
if (eSoumission) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{soumission=${i18n_soumission}}} {{soumissionCondition=${i18n_soumissionCondition}}}`);
|
|
}
|
|
|
|
if (eTenebricide) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
|
|
|
|
isTenebricide = true;
|
|
}
|
|
|
|
if (eTirRafale) {
|
|
isConditionnelD = true;
|
|
isTirRafale = true;
|
|
|
|
exec.push(`{{tirRafale=${i18n_tirRafale}}} {{tirRafaleCondition=${i18n_tirRafaleCondition}}}`);
|
|
}
|
|
|
|
if (eUltraviolence) {
|
|
isConditionnelV = true;
|
|
isUltraviolence = true;
|
|
|
|
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
|
|
|
|
exec.push(`{{ultraviolence=${i18n_ultraviolence}}} {{ultraviolenceCondition=${i18n_ultraviolenceCondition}}}`);
|
|
}
|
|
|
|
if (eAnatheme) { autresEffets.push(i18n_anatheme); }
|
|
|
|
if (eAntiVehicule) { autresEffets.push(i18n_antiVehicule); }
|
|
|
|
if (eBarrage) { autresEffets.push(`${i18n_barrage} ${eBarrageV}`); }
|
|
|
|
if (eChargeur) { autresEffets.push(`${i18n_chargeur} ${eChargeurV}`); }
|
|
|
|
if (eDefense) { autresEffets.push(`${i18n_defense} ${eDefenseV}`); }
|
|
|
|
if (eDegatsContinus) { autresEffets.push(`${i18n_degatsContinus} ${eDegatsContinusV} ([[1d6]] ${i18n_tours})`); }
|
|
|
|
if (eDeuxMains) {
|
|
autresEffets.push(i18n_deuxMains);
|
|
isDeuxMains = true;
|
|
}
|
|
|
|
if (eDesignation) { autresEffets.push(i18n_designation); }
|
|
|
|
if (eDispersion) { autresEffets.push(`${i18n_dispersion} ${eDispersionV}`); }
|
|
|
|
if (eIgnoreArmure) { autresEffets.push(i18n_ignoreArmure); }
|
|
|
|
if (eIgnoreCDF) { autresEffets.push(i18n_ignoreCDF); }
|
|
|
|
if (eJAkimbo) {
|
|
isAkimbo = true;
|
|
autresEffets.push(i18n_jAkimbo);
|
|
}
|
|
|
|
if (eJAmbidextrie) {
|
|
isAmbidextrie = true;
|
|
autresEffets.push(i18n_jAmbidextrie);
|
|
}
|
|
|
|
if (eLourd) {
|
|
autresEffets.push(i18n_lourd);
|
|
isLourd = true;
|
|
}
|
|
|
|
if (eLumiere) {
|
|
eLumiereS = i18n_lumiere;
|
|
eLumiereValue = eLumiereV;
|
|
isELumiere = true;
|
|
}
|
|
|
|
if (ePenetrant) { autresEffets.push(`${i18n_penetrant} ${ePenetrantV}`); }
|
|
|
|
if (ePerceArmure) { autresEffets.push(`${i18n_perceArmure} ${ePerceArmureV}`); }
|
|
|
|
if (eReaction) { autresEffets.push(`${i18n_reaction} ${eReactionV}`); }
|
|
|
|
if (eTirSecurite) { autresEffets.push(i18n_tirSecurite); }
|
|
|
|
if (eCdF) { autresEffets.push(`${i18n_cdf} ${eCdFV}`); }
|
|
|
|
if (eImmobilisation) { autresEffets.push(`${i18n_immobilisation} ${eImmobilisationV}`); }
|
|
|
|
if (eIntimidanteAnatheme) { autresEffets.push(`${i18n_intimidanteAnatheme}`); }
|
|
|
|
if (eIntimidanteHumain) { autresEffets.push(`${eIntimidanteHumain}`); }
|
|
|
|
if (eRetourFlamme) { autresEffets.push(`${i18n_retourFlamme}`); }
|
|
|
|
if (eSansArmure) { autresEffets.push(`${i18n_sansArmure}`); }
|
|
|
|
if (eBoost) { autresEffets.push(`${i18n_boost} ${eBoostV}`); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.eASAssassin = eASAssassin;
|
|
result.eASAssassinValue = eASAssassinValue;
|
|
result.isCadence = isCadence;
|
|
result.vCadence = vCadence;
|
|
result.isTenebricide = isTenebricide;
|
|
result.isObliteration = isObliteration;
|
|
result.isMeurtrier = isMeurtrier;
|
|
result.vMeurtrier = eMeurtrierV;
|
|
result.isDestructeur = isDestructeur;
|
|
result.vDestructeur = eDestructeurV;
|
|
result.nowSilencieux = isSilencieux;
|
|
result.isChoc = isChoc;
|
|
result.isLeste = isLeste;
|
|
result.isOrfevrerie = isOrfevrerie;
|
|
result.isAssistantAttaque = isAssistantAttaque;
|
|
result.isAntiAnatheme = isAntiAnatheme;
|
|
result.isTirRafale = isTirRafale;
|
|
result.isFureur = isFureur;
|
|
result.isUltraviolence = isUltraviolence;
|
|
|
|
result.eLumiere = eLumiere;
|
|
result.isELumiere = isELumiere;
|
|
result.eLumiereValue = eLumiereValue;
|
|
|
|
result.isAkimbo = isAkimbo;
|
|
result.isAmbidextrie = isAmbidextrie;
|
|
result.isDeuxMains = isDeuxMains;
|
|
result.isLourd = isLourd;
|
|
|
|
result.isBourreau = isBourreau;
|
|
result.vBourreau = eBourreauValue;
|
|
result.isDevastation = isDevastation;
|
|
result.vDevastation = eDevastationValue;
|
|
|
|
result.isGuidage = isGuidage;
|
|
result.isRegularite = isRegularite;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.bDegats = bDegats;
|
|
|
|
result.exec = exec;
|
|
result.firstExec = firstExec;
|
|
result.autresEffets = autresEffets;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsContactAS(prefix, AS, hasArmure, isSilencieux, isMeurtrier, isAssistantAttaque, isChoc, isLeste, isOrfevrerie, vForce, vDexterite, oDexterite, vDiscretion, oDiscretion, vCombat, oCombat) {
|
|
const result = {};
|
|
const exec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
const attaquesSurprises = [];
|
|
const attaquesSurprisesValue = [];
|
|
let attaquesSurprisesCondition = '';
|
|
|
|
let aLumiere = '';
|
|
let aLumiereValue = 0;
|
|
|
|
let nowAgressive = false;
|
|
let nowProtectrice = false;
|
|
let nowSoeur = false;
|
|
let nowJumelle = false;
|
|
let nowAllegee = false;
|
|
let nowBarbelee = false;
|
|
|
|
const bAttaque = [];
|
|
let diceDegats = 0;
|
|
const bDegats = [];
|
|
const autresAmeliorations = [];
|
|
|
|
const aAgressive = isApplied(AS[`${prefix}agressive`]);
|
|
const aAllegee = isApplied(AS[`${prefix}allegee`]);
|
|
const aAssassine = isApplied(AS[`${prefix}assassine`]);
|
|
const aBarbelee = isApplied(AS[`${prefix}barbelee`]);
|
|
const aBarbeleeV = 2;
|
|
const aConnectee = isApplied(AS[`${prefix}connectee`]);
|
|
const aElectrifiee = isApplied(AS[`${prefix}electrifiee`]);
|
|
const aIndestructible = isApplied(AS[`${prefix}indestructible`]);
|
|
const aJumelle = isApplied(AS[`${prefix}jumelle`]);
|
|
const aLumineuse = isApplied(AS[`${prefix}lumineuse`]);
|
|
const aMassive = isApplied(AS[`${prefix}massive`]);
|
|
const aProtectrice = isApplied(AS[`${prefix}protectrice`]);
|
|
const aSoeur = isApplied(AS[`${prefix}soeur`]);
|
|
const aSournoise = isApplied(AS[`${prefix}sournoise`]);
|
|
const aSurmesure = isApplied(AS[`${prefix}surmesure`]);
|
|
|
|
if (aAgressive) {
|
|
nowAgressive = true;
|
|
}
|
|
|
|
if (aAllegee) {
|
|
exec.push('{{vAllegee=-1D6}}');
|
|
diceDegats -= 1;
|
|
nowAllegee = true;
|
|
}
|
|
|
|
if (aAssassine) {
|
|
if (isSilencieux) { autresAmeliorations.push(i18n_assassine); } else {
|
|
const ghost = +AS.rogueGhost;
|
|
const MALghost = +AS.MALRogueGhost;
|
|
const changeling = +AS.bardChangeling;
|
|
const MALchangeling = +AS.MALBardChangeling;
|
|
|
|
let totalAssassine = vDiscretion;
|
|
|
|
if (hasArmure) { totalAssassine += oDiscretion; }
|
|
|
|
if (hasArmure && ghost !== 0) {
|
|
exec.push(`{{vAssassineD=${totalAssassine}}}`);
|
|
bDegats.push(totalAssassine);
|
|
} else if (hasArmure && MALghost !== 0) {
|
|
exec.push(`{{vAssassineD=${totalAssassine}}}`);
|
|
bDegats.push(totalAssassine);
|
|
} else if (hasArmure && changeling !== 0) {
|
|
exec.push(`{{vAssassineD=${totalAssassine}}}`);
|
|
bDegats.push(totalAssassine);
|
|
} else if (hasArmure && MALchangeling !== 0) {
|
|
exec.push(`{{vAssassineD=${totalAssassine}}}`);
|
|
bDegats.push(totalAssassine);
|
|
} else {
|
|
isConditionnelD = true;
|
|
attaquesSurprises.push(i18n_assassine);
|
|
attaquesSurprisesValue.push(totalAssassine);
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
}
|
|
}
|
|
|
|
if (aBarbelee) {
|
|
if (isMeurtrier) { autresAmeliorations.push(i18n_barbelee); } else {
|
|
isConditionnelD = true;
|
|
nowBarbelee = true;
|
|
|
|
exec.push(`{{meurtrier=${i18n_barbelee}}} {{meurtrierValue=[[${aBarbeleeV}D6]]}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aConnectee) {
|
|
if (isAssistantAttaque) { autresAmeliorations.push(i18n_connectee); } else {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_connectee}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aElectrifiee) {
|
|
if (isChoc) { autresAmeliorations.push(i18n_electrifiee); } else {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{choc=${i18n_electrifiee} 1}} {{chocCondition=${i18n_chocCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aMassive) {
|
|
if (isLeste) { autresAmeliorations.push(i18n_massive); } else {
|
|
bDegats.push(vForce);
|
|
exec.push(`{{vMassive=${vForce}}}`);
|
|
}
|
|
}
|
|
|
|
if (aProtectrice) {
|
|
autresAmeliorations.push(i18n_protectrice);
|
|
nowProtectrice = true;
|
|
}
|
|
|
|
if (aJumelle) {
|
|
autresAmeliorations.push(i18n_jumelle);
|
|
nowJumelle = true;
|
|
}
|
|
|
|
if (aSoeur) {
|
|
autresAmeliorations.push(i18n_soeur);
|
|
nowSoeur = true;
|
|
}
|
|
|
|
if (aSournoise) {
|
|
if (isOrfevrerie) { autresAmeliorations.push(i18n_sournoise); } else {
|
|
let vSournoise = vDexterite;
|
|
|
|
if (hasArmure) { vSournoise += oDexterite; }
|
|
|
|
bDegats.push(vSournoise);
|
|
exec.push(`{{vSournoise=${vSournoise}}}`);
|
|
}
|
|
}
|
|
|
|
if (aSurmesure) {
|
|
let vSurMesure = vCombat;
|
|
|
|
if (hasArmure) { vSurMesure += oCombat; }
|
|
|
|
bDegats.push(vSurMesure);
|
|
exec.push(`{{vSurMesure=${vSurMesure}}}`);
|
|
}
|
|
|
|
if (aIndestructible) { autresAmeliorations.push(i18n_indestructible); }
|
|
|
|
if (aLumineuse) {
|
|
aLumiere = i18n_lumineuse;
|
|
aLumiereValue = 2;
|
|
}
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.isAgressive = nowAgressive;
|
|
result.isSoeur = nowSoeur;
|
|
result.isJumelle = nowJumelle;
|
|
result.isProtectrice = nowProtectrice;
|
|
result.isAllegee = nowAllegee;
|
|
result.isBarbelee = nowBarbelee;
|
|
|
|
result.aLumiere = aLumiere;
|
|
result.aLumiereValue = aLumiereValue;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.bAttaque = bAttaque;
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
|
|
result.exec = exec;
|
|
result.autresAmeliorations = autresAmeliorations;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsContactASPNJ(prefix, data, isAssistanceAttaque, isChoc, isLeste, isMeurtrier, isOrfevrerie, isSilencieux, vBete, vChair, vMasque, vMasqueAE) {
|
|
const result = {};
|
|
const exec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
const attaquesSurprises = [];
|
|
const attaquesSurprisesValue = [];
|
|
let attaquesSurprisesCondition = '';
|
|
|
|
const bAttaque = [];
|
|
let diceDegats = 0;
|
|
let bDegats = 0;
|
|
const autresAmeliorations = [];
|
|
|
|
let nowBarbelee = false;
|
|
|
|
const aAgressive = isApplied(data[`${prefix}agressive`]);
|
|
const aAllegee = isApplied(data[`${prefix}allegee`]);
|
|
const aAssassine = isApplied(data[`${prefix}assassine`]);
|
|
const aBarbelee = isApplied(data[`${prefix}barbelee`]);
|
|
const aBarbeleeV = 2;
|
|
const aConnectee = isApplied(data[`${prefix}connectee`]);
|
|
const aElectrifiee = isApplied(data[`${prefix}electrifiee`]);
|
|
const aIndestructible = isApplied(data[`${prefix}indestructible`]);
|
|
const aJumelle = isApplied(data[`${prefix}jumelle`]);
|
|
const aLumineuse = isApplied(data[`${prefix}lumineuse`]);
|
|
const aMassive = isApplied(data[`${prefix}massive`]);
|
|
const aProtectrice = isApplied(data[`${prefix}protectrice`]);
|
|
const aSoeur = isApplied(data[`${prefix}soeur`]);
|
|
const aSournoise = isApplied(data[`${prefix}sournoisePNJ`]);
|
|
const aSurmesure = isApplied(data[`${prefix}surmesurePNJ`]);
|
|
|
|
if (aAllegee) {
|
|
exec.push('{{vAllegee=-1D6}}');
|
|
diceDegats -= 1;
|
|
}
|
|
|
|
if (aAssassine) {
|
|
if (isSilencieux) { autresAmeliorations.push(i18n_assassine); } else {
|
|
const totalAssassine = Math.ceil(vMasque / 2) + vMasqueAE;
|
|
|
|
isConditionnelD = true;
|
|
attaquesSurprises.push(i18n_assassine);
|
|
attaquesSurprisesValue.push(totalAssassine);
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
}
|
|
|
|
if (aBarbelee) {
|
|
if (isMeurtrier) { autresAmeliorations.push(i18n_barbelee); } else {
|
|
isConditionnelD = true;
|
|
nowBarbelee = true;
|
|
|
|
exec.push(`{{meurtrier=${i18n_barbelee}}} {{meurtrierValue=[[${aBarbeleeV}D6]]}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aConnectee) {
|
|
if (isAssistanceAttaque) { autresAmeliorations.push(i18n_connectee); } else {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_connectee}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aElectrifiee) {
|
|
if (isChoc) { autresAmeliorations.push(i18n_electrifiee); } else {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{choc=${i18n_electrifiee} 1}} {{chocCondition=${i18n_chocCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aMassive) {
|
|
if (isLeste) { autresAmeliorations.push(i18n_massive); } else {
|
|
bDegats += Math.floor(vChair / 2);
|
|
exec.push(`{{vMassive=${Math.floor(vChair / 2)}}}`);
|
|
}
|
|
}
|
|
|
|
if (aSournoise) {
|
|
if (isOrfevrerie) { autresAmeliorations.push(i18n_sournoise); } else {
|
|
const vSournoise = Math.ceil(vMasque / 2);
|
|
|
|
bDegats += vSournoise;
|
|
exec.push(`{{vSournoise=${vSournoise}}}`);
|
|
}
|
|
}
|
|
|
|
if (aSurmesure) {
|
|
const vSurMesure = Math.ceil(vBete / 2);
|
|
|
|
bDegats.push(vSurMesure);
|
|
exec.push(`{{vSurMesure=${vSurMesure}}}`);
|
|
}
|
|
|
|
if (aAgressive) { autresAmeliorations.push(i18n_agressive); }
|
|
|
|
if (aIndestructible) { autresAmeliorations.push(i18n_indestructible); }
|
|
|
|
if (aJumelle) { autresAmeliorations.push(i18n_jumelle); }
|
|
|
|
if (aProtectrice) { autresAmeliorations.push(i18n_protectrice); }
|
|
|
|
if (aSoeur) { autresAmeliorations.push(i18n_soeur); }
|
|
|
|
if (aLumineuse) { autresAmeliorations.push(`${i18n_lumineuse} (${i18n_lumiere} 2)`); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.bAttaque = bAttaque;
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
result.isBarbelee = nowBarbelee;
|
|
|
|
result.exec = exec;
|
|
result.autresAmeliorations = autresAmeliorations;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsContactAO(prefix, AO, isCadence, vCadence, isObliteration, isAntiAnatheme) {
|
|
const result = {};
|
|
const exec = [];
|
|
const firstExec = [];
|
|
|
|
const isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
let aLumiere = '';
|
|
let aLumiereValue = 0;
|
|
|
|
let isChromee = false;
|
|
const isCraneRieur = false;
|
|
let isArmeAzurine = false;
|
|
let vArmeAzurine = 0;
|
|
let isArmeRougeSang = false;
|
|
let vArmeRougeSang = 0;
|
|
let isCheneSculpte = false;
|
|
let vCheneSculpte = 0;
|
|
let isGriffureGravee = false;
|
|
let vGriffureGravee = 0;
|
|
let isMasqueBrise = false;
|
|
let vMasqueBrise = 0;
|
|
let isRouagesCasses = false;
|
|
let vRouagesCasses = 0;
|
|
|
|
let CadenceValue = 0;
|
|
|
|
let nowObliteration = false;
|
|
|
|
let diceDegats = 0;
|
|
let diceViolence = 0;
|
|
const bDegats = [];
|
|
const autresAmeliorations = [];
|
|
|
|
const aArabesques = isApplied(AO[`${prefix}arabesquesIridescentes`]);
|
|
const aArmeAzurine = isApplied(AO[`${prefix}armeAzurine`]);
|
|
const aArmeRougeSang = isApplied(AO[`${prefix}armeRougeSang`]);
|
|
const aArmureGravee = isApplied(AO[`${prefix}armureGravee`]);
|
|
const aBlasonChevalier = isApplied(AO[`${prefix}blasonChevalier`]);
|
|
const aBouclierGrave = isApplied(AO[`${prefix}bouclierGrave`]);
|
|
const aCheneSculpte = isApplied(AO[`${prefix}cheneSculpte`]);
|
|
const aChromeeLignesLC = isApplied(AO[`${prefix}chromeeLignesLC`]);
|
|
const eCadenceA = +AO[`${prefix}cadenceactif`] || 0;
|
|
const aCodeKnightGrave = isApplied(AO[`${prefix}codeKnightGrave`]);
|
|
const aCraneRieurGrave = isApplied(AO[`${prefix}craneRieurGrave`]);
|
|
const aFaucheuseGravee = isApplied(AO[`${prefix}faucheuseGravee`]);
|
|
const aFauconsPlumesL = isApplied(AO[`${prefix}fauconsPlumesL`]);
|
|
const aFlammesStylisees = isApplied(AO[`${prefix}flammesStylisees`]);
|
|
const aGriffuresGravees = isApplied(AO[`${prefix}griffuresGravees`]);
|
|
const aMasqueBriseSculpte = isApplied(AO[`${prefix}masqueBriseSculpte`]);
|
|
const aRouagesCassesGraves = isApplied(AO[`${prefix}rouagesCassesGraves`]);
|
|
const aSillonsFLF = isApplied(AO[`${prefix}sillonsFLF`]);
|
|
|
|
if (aArabesques) {
|
|
aLumiere = i18n_arabesques;
|
|
aLumiereValue = 1;
|
|
}
|
|
|
|
if (aArmeAzurine) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isArmeAzurine = true;
|
|
vArmeAzurine = 1;
|
|
|
|
exec.push(`{{armeAzurine=${i18n_armeAzurine}}} {{armeAzurineValueD=[[1D6]]}} {{armeAzurineValueV=[[1D6]]}} {{armeAzurineCondition=${i18n_armeAzurineCondition}}}`);
|
|
}
|
|
|
|
if (aArmeRougeSang) {
|
|
isConditionnelD = true;
|
|
isArmeRougeSang = true;
|
|
vArmeRougeSang = 1;
|
|
|
|
exec.push(`{{armeRougeSang=${i18n_armeRougeSang}}} {{armeRougeSangValueD=[[1D6]]}} {{armeRougeSangValueV=[[1D6]]}} {{armeRougeSangCondition=${i18n_armeRougeSangCondition}}}`);
|
|
}
|
|
|
|
if (aCheneSculpte) {
|
|
isConditionnelD = true;
|
|
isCheneSculpte = true;
|
|
vCheneSculpte = 2;
|
|
|
|
firstExec.push('{{cheneSculpteValue=[[2D6]]}}');
|
|
|
|
exec.push(`{{cheneSculpte=${i18n_cheneSculpte}}} {{cheneSculpteCondition=${i18n_cheneSculpteCondition}}}`);
|
|
}
|
|
|
|
if (aChromeeLignesLC && eCadenceA === 1) {
|
|
if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chromee); } else {
|
|
isChromee = true;
|
|
CadenceValue = 2;
|
|
exec.push(`{{vChrome=2) ${i18n_inclus}}}`);
|
|
}
|
|
} else if (aChromeeLignesLC && eCadenceA === 0) { autresAmeliorations.push(i18n_chromee); }
|
|
|
|
if (aCraneRieurGrave) {
|
|
if (isObliteration) { autresAmeliorations.push(i18n_craneRieur); } else {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{obliteration=${i18n_craneRieur}}} {{obliterationCondition=${i18n_obliterationCondition}}}`);
|
|
|
|
nowObliteration = true;
|
|
}
|
|
}
|
|
|
|
if (aFaucheuseGravee) {
|
|
diceDegats += 1;
|
|
exec.push('{{vFaucheuse=+1D6}}');
|
|
}
|
|
|
|
if (aFauconsPlumesL) {
|
|
if (isAntiAnatheme) { autresAmeliorations.push(i18n_fauconPlumesL); } else {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{antiAnatheme=${i18n_fauconPlumesL}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aFlammesStylisees) {
|
|
diceViolence += 1;
|
|
exec.push('{{vFlammesStylisees=+1D6}}');
|
|
}
|
|
|
|
if (aGriffuresGravees) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isGriffureGravee = true;
|
|
vGriffureGravee = 1;
|
|
|
|
exec.push(`{{griffuresGravees=${i18n_griffuresGravees}}} {{griffuresGraveesValueD=[[1D6]]}} {{griffuresGraveesValueV=[[1D6]]}} {{griffuresGraveesCondition=${i18n_griffuresGraveesCondition}}}`);
|
|
}
|
|
|
|
if (aMasqueBriseSculpte) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isMasqueBrise = true;
|
|
vMasqueBrise = 1;
|
|
|
|
exec.push(`{{masqueBrise=${i18n_masqueBrise}}} {{masqueBriseValueD=[[1D6]]}} {{masqueBriseValueV=[[1D6]]}} {{masqueBriseCondition=${i18n_masqueBriseCondition}}}`);
|
|
}
|
|
|
|
if (aRouagesCassesGraves) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isRouagesCasses = true;
|
|
vRouagesCasses = 1;
|
|
|
|
exec.push(`{{rouagesCasses=${i18n_rouagesCasses}}} {{rouagesCassesValueD=[[1D6]]}} {{rouagesCassesValueV=[[1D6]]}} {{rouagesCassesCondition=${i18n_rouagesCassesCondition}}}`);
|
|
}
|
|
|
|
if (aSillonsFLF) {
|
|
bDegats.push(3);
|
|
exec.push('{{vSillonsFLF=+3}}');
|
|
}
|
|
|
|
if (aArmureGravee) { autresAmeliorations.push(i18n_armureGravee); }
|
|
|
|
if (aBlasonChevalier) { autresAmeliorations.push(i18n_blasonChevalier); }
|
|
|
|
if (aBouclierGrave) { autresAmeliorations.push(i18n_bouclierGrave); }
|
|
|
|
if (aCodeKnightGrave) { autresAmeliorations.push(i18n_codeKnight); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.isChromee = isChromee;
|
|
result.isCraneRieur = isCraneRieur;
|
|
result.isObliteration = nowObliteration;
|
|
|
|
result.isArmeAzurine = isArmeAzurine;
|
|
result.vArmeAzurine = vArmeAzurine;
|
|
|
|
result.isArmeRougeSang = isArmeRougeSang;
|
|
result.vArmeRougeSang = vArmeRougeSang;
|
|
|
|
result.isCheneSculpte = isCheneSculpte;
|
|
result.vCheneSculpte = vCheneSculpte;
|
|
|
|
result.isGriffureGravee = isGriffureGravee;
|
|
result.vGriffureGravee = vGriffureGravee;
|
|
|
|
result.isMasqueBrise = isMasqueBrise;
|
|
result.vMasqueBrise = vMasqueBrise;
|
|
|
|
result.isRouagesCasses = isRouagesCasses;
|
|
result.vRouagesCasses = vRouagesCasses;
|
|
|
|
result.aLumiere = aLumiere;
|
|
result.aLumiereValue = aLumiereValue;
|
|
|
|
result.vCadence = CadenceValue;
|
|
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
result.diceViolence = diceViolence;
|
|
|
|
result.exec = exec;
|
|
result.firstExec = firstExec;
|
|
result.autresAmeliorations = autresAmeliorations;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsContactAOPNJ(prefix, data, isCadence, vCadence, isObliteration, isAntiAnatheme) {
|
|
const result = {};
|
|
const exec = [];
|
|
const firstExec = [];
|
|
|
|
const isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
let isChromee = false;
|
|
const isCraneRieur = false;
|
|
let isArmeAzurine = false;
|
|
let vArmeAzurine = 0;
|
|
let isArmeRougeSang = false;
|
|
let vArmeRougeSang = 0;
|
|
let isCheneSculpte = false;
|
|
let vCheneSculpte = 0;
|
|
let isGriffureGravee = false;
|
|
let vGriffureGravee = 0;
|
|
let isMasqueBrise = false;
|
|
let vMasqueBrise = 0;
|
|
let isRouagesCasses = false;
|
|
let vRouagesCasses = 0;
|
|
|
|
let CadenceValue = 0;
|
|
|
|
let nowObliteration = false;
|
|
|
|
let diceDegats = 0;
|
|
let diceViolence = 0;
|
|
let bDegats = 0;
|
|
const autresAmeliorations = [];
|
|
|
|
const aArabesques = isApplied(data[`${prefix}arabesquesIridescentes`]);
|
|
const aArmeAzurine = isApplied(data[`${prefix}armeAzurine`]);
|
|
const aArmeRougeSang = isApplied(data[`${prefix}armeRougeSang`]);
|
|
const aArmureGravee = isApplied(data[`${prefix}armureGravee`]);
|
|
const aBlasonChevalier = isApplied(data[`${prefix}blasonChevalier`]);
|
|
const aBouclierGrave = isApplied(data[`${prefix}bouclierGrave`]);
|
|
const aCheneSculpte = isApplied(data[`${prefix}cheneSculpte`]);
|
|
const aChromeeLignesLC = isApplied(data[`${prefix}chromeeLignesLC`]);
|
|
const eCadenceA = +data[`${prefix}cadenceactif`] || 0;
|
|
const aCodeKnightGrave = isApplied(data[`${prefix}codeKnightGrave`]);
|
|
const aCraneRieurGrave = isApplied(data[`${prefix}craneRieurGrave`]);
|
|
const aFaucheuseGravee = isApplied(data[`${prefix}faucheuseGravee`]);
|
|
const aFauconsPlumesL = isApplied(data[`${prefix}fauconsPlumesL`]);
|
|
const aFlammesStylisees = isApplied(data[`${prefix}flammesStylisees`]);
|
|
const aGriffuresGravees = isApplied(data[`${prefix}griffuresGravees`]);
|
|
const aMasqueBriseSculpte = isApplied(data[`${prefix}masqueBriseSculpte`]);
|
|
const aRouagesCassesGraves = isApplied(data[`${prefix}rouagesCassesGraves`]);
|
|
const aSillonsFLF = isApplied(data[`${prefix}sillonsFLF`]);
|
|
|
|
if (aArmeAzurine) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isArmeAzurine = true;
|
|
vArmeAzurine = 1;
|
|
|
|
exec.push(`{{armeAzurine=${i18n_armeAzurine}}} {{armeAzurineValueD=[[1D6]]}} {{armeAzurineValueV=[[1D6]]}} {{armeAzurineCondition=${i18n_armeAzurineCondition}}}`);
|
|
}
|
|
|
|
if (aArmeRougeSang) {
|
|
isConditionnelD = true;
|
|
isArmeRougeSang = true;
|
|
vArmeRougeSang = 1;
|
|
|
|
exec.push(`{{armeRougeSang=${i18n_armeRougeSang}}} {{armeRougeSangValueD=[[1D6]]}} {{armeRougeSangValueV=[[1D6]]}} {{armeRougeSangCondition=${i18n_armeRougeSangCondition}}}`);
|
|
}
|
|
|
|
if (aCheneSculpte) {
|
|
isConditionnelD = true;
|
|
isCheneSculpte = true;
|
|
vCheneSculpte = 2;
|
|
|
|
firstExec.push('{{cheneSculpteValue=[[2D6]]}}');
|
|
|
|
exec.push(`{{cheneSculpte=${i18n_cheneSculpte}}} {{cheneSculpteCondition=${i18n_cheneSculpteCondition}}}`);
|
|
}
|
|
|
|
if (aChromeeLignesLC && eCadenceA === 1) {
|
|
if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chromee); } else {
|
|
isChromee = true;
|
|
CadenceValue = 2;
|
|
exec.push(`{{vChrome=2) ${i18n_inclus}}}`);
|
|
}
|
|
} else if (aChromeeLignesLC && eCadenceA === 0) { autresAmeliorations.push(i18n_chromee); }
|
|
|
|
if (aCraneRieurGrave) {
|
|
if (isObliteration) { autresAmeliorations.push(i18n_craneRieur); } else {
|
|
isConditionnelD = true;
|
|
|
|
exec.push(`{{obliteration=${i18n_craneRieur}}} {{obliterationCondition=${i18n_obliterationCondition}}}`);
|
|
|
|
nowObliteration = true;
|
|
}
|
|
}
|
|
|
|
if (aFaucheuseGravee) {
|
|
diceDegats += 1;
|
|
exec.push('{{vFaucheuse=+1D6}}');
|
|
}
|
|
|
|
if (aFauconsPlumesL) {
|
|
if (isAntiAnatheme) { autresAmeliorations.push(i18n_fauconPlumesL); } else {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{antiAnatheme=${i18n_fauconPlumesL}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aFlammesStylisees) {
|
|
diceViolence += 1;
|
|
exec.push('{{vFlammesStylisees=+1D6}}');
|
|
}
|
|
|
|
if (aGriffuresGravees) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isGriffureGravee = true;
|
|
vGriffureGravee = 1;
|
|
|
|
exec.push(`{{griffuresGravees=${i18n_griffuresGravees}}} {{griffuresGraveesValueD=[[1D6]]}} {{griffuresGraveesValueV=[[1D6]]}} {{griffuresGraveesCondition=${i18n_griffuresGraveesCondition}}}`);
|
|
}
|
|
|
|
if (aMasqueBriseSculpte) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isMasqueBrise = true;
|
|
vMasqueBrise = 1;
|
|
|
|
exec.push(`{{masqueBrise=${i18n_masqueBrise}}} {{masqueBriseValueD=[[1D6]]}} {{masqueBriseValueV=[[1D6]]}} {{masqueBriseCondition=${i18n_masqueBriseCondition}}}`);
|
|
}
|
|
|
|
if (aRouagesCassesGraves) {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
isRouagesCasses = true;
|
|
vRouagesCasses = 1;
|
|
|
|
exec.push(`{{rouagesCasses=${i18n_rouagesCasses}}} {{rouagesCassesValueD=[[1D6]]}} {{rouagesCassesValueV=[[1D6]]}} {{rouagesCassesCondition=${i18n_rouagesCassesCondition}}}`);
|
|
}
|
|
|
|
if (aSillonsFLF) {
|
|
bDegats += 3;
|
|
exec.push('{{vSillonsFLF=+3}}');
|
|
}
|
|
|
|
if (aArabesques) { autresAmeliorations.push(`${i18n_arabesques} (${i18n_lumiere} 1)`); }
|
|
|
|
if (aArmureGravee) { autresAmeliorations.push(i18n_armureGravee); }
|
|
|
|
if (aBlasonChevalier) { autresAmeliorations.push(i18n_blasonChevalier); }
|
|
|
|
if (aBouclierGrave) { autresAmeliorations.push(i18n_bouclierGrave); }
|
|
|
|
if (aCodeKnightGrave) { autresAmeliorations.push(i18n_codeKnight); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.isChromee = isChromee;
|
|
result.isCraneRieur = isCraneRieur;
|
|
result.isObliteration = nowObliteration;
|
|
|
|
result.isArmeAzurine = isArmeAzurine;
|
|
result.vArmeAzurine = vArmeAzurine;
|
|
|
|
result.isArmeRougeSang = isArmeRougeSang;
|
|
result.vArmeRougeSang = vArmeRougeSang;
|
|
|
|
result.isCheneSculpte = isCheneSculpte;
|
|
result.vCheneSculpte = vCheneSculpte;
|
|
|
|
result.isGriffureGravee = isGriffureGravee;
|
|
result.vGriffureGravee = vGriffureGravee;
|
|
|
|
result.isMasqueBrise = isMasqueBrise;
|
|
result.vMasqueBrise = vMasqueBrise;
|
|
|
|
result.isRouagesCasses = isRouagesCasses;
|
|
result.vRouagesCasses = vRouagesCasses;
|
|
|
|
result.vCadence = CadenceValue;
|
|
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
result.diceViolence = diceViolence;
|
|
|
|
result.exec = exec;
|
|
result.firstExec = firstExec;
|
|
result.autresAmeliorations = autresAmeliorations;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsDistanceAA(prefix, AA, vDiscretion, oDiscretion, eAssistanceAttaque, eASAssassinValue, isCadence, vCadence, eSilencieux, eTirRafale, isObliteration, isAntiAnatheme) {
|
|
const result = {};
|
|
const exec = [];
|
|
const armure = AA.armure;
|
|
|
|
let hasArmure = true;
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
let isChambreDouble = false;
|
|
|
|
let isInterfaceGuidage = false;
|
|
|
|
let isJAmbidextre = false;
|
|
let isJAkimbo = false;
|
|
|
|
let aASAssassin = '';
|
|
let aASAssassinValue = 0;
|
|
|
|
let CadenceValue = 0;
|
|
|
|
const bonus = [];
|
|
let diceDegats = 0;
|
|
let diceViolence = 0;
|
|
const bDegats = [];
|
|
const attaquesSurprises = [];
|
|
let attaquesSurprisesCondition = '';
|
|
const attaquesSurprisesValue = [];
|
|
const autresAmeliorations = [];
|
|
const autresEffets = [];
|
|
|
|
const aChargeurGrappes = isApplied(AA[`${prefix}chargeurGrappes`]);
|
|
const aCanonLong = isApplied(AA[`${prefix}canonLong`]);
|
|
const aCanonRaccourci = isApplied(AA[`${prefix}canonRaccourci`]);
|
|
const aChambreDouble = isApplied(AA[`${prefix}chambreDouble`]);
|
|
const eCadenceA = +AA[`${prefix}cadenceactif`] || 0;
|
|
const aInterfaceGuidage = isApplied(AA[`${prefix}interfaceGuidage`]);
|
|
const aJumelage = isApplied(AA[`${prefix}jumelage`]);
|
|
const aJumelageV = AA[`${prefix}jumelageValue`];
|
|
const aJumelageT = AA[`${prefix}jumelageType`];
|
|
const aLunetteIntelligente = isApplied(AA[`${prefix}lunetteIntelligente`]);
|
|
const aMunitionsHyperVelocite = isApplied(AA[`${prefix}munitionsHyperVelocite`]);
|
|
const aMunitionsDrone = isApplied(AA[`${prefix}munitionsDrone`]);
|
|
const aChargeurExplosives = isApplied(AA[`${prefix}chargeurExplosives`]);
|
|
const aMunitionsIEM = isApplied(AA[`${prefix}munitionsIEM`]);
|
|
const aMunitionsNonLetales = isApplied(AA[`${prefix}munitionsNonLetales`]);
|
|
const aMunitionsSubsoniques = isApplied(AA[`${prefix}munitionsSubsoniques`]);
|
|
const aPointeurLaser = isApplied(AA[`${prefix}pointeurLaser`]);
|
|
const aProtectionArme = isApplied(AA[`${prefix}protectionArme`]);
|
|
const aRevetementOmega = isApplied(AA[`${prefix}revetementOmega`]);
|
|
const aStructureElement = isApplied(AA[`${prefix}structureElement`]);
|
|
const aSystemeRefroidissement = isApplied(AA[`${prefix}systemeRefroidissement`]);
|
|
|
|
if (armure === 'sans' || armure === 'guardian') { hasArmure = false; }
|
|
|
|
if (aChargeurGrappes) {
|
|
diceDegats -= 1;
|
|
diceViolence += 1;
|
|
|
|
exec.push('{{vMGrappeD=-1D}} {{vMGrappeV=+1D}}');
|
|
}
|
|
|
|
if (aCanonLong) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{canonLong=${i18n_canonLong}}} {{canonLongCondition=${i18n_canonLongCondition}}}`);
|
|
}
|
|
|
|
if (aCanonRaccourci) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{canonRaccourci=${i18n_canonRaccourci}}} {{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`);
|
|
}
|
|
|
|
if (aChambreDouble && eCadenceA === 1) {
|
|
if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else {
|
|
isChambreDouble = true;
|
|
CadenceValue = 2;
|
|
exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`);
|
|
}
|
|
} else if (aChambreDouble && eCadenceA === 0) { autresAmeliorations.push(i18n_chambreDouble); }
|
|
|
|
if (aInterfaceGuidage) {
|
|
autresAmeliorations.push(i18n_interfaceGuidage);
|
|
isInterfaceGuidage = true;
|
|
}
|
|
|
|
if (aJumelage) {
|
|
if (aJumelageT === 'ambidextrie') {
|
|
autresAmeliorations.push(`${i18n_jumelage} ${i18n_ambidextrie} (${aJumelageV})`);
|
|
isJAmbidextre = true;
|
|
} else if (aJumelageT === 'akimbo') {
|
|
autresAmeliorations.push(`${i18n_jumelage} ${i18n_akimbo} (${aJumelageV})`);
|
|
isJAkimbo = true;
|
|
} else { autresAmeliorations.push(`${i18n_jumelage} (${aJumelageV})`); }
|
|
}
|
|
|
|
if (aLunetteIntelligente) {
|
|
isConditionnelA = true;
|
|
exec.push(`{{lunetteIntelligente=${i18n_lunetteIntelligente}}} {{lunetteIntelligenteCondition=${i18n_lunetteIntelligenteCondition}}}`);
|
|
}
|
|
|
|
if (aMunitionsHyperVelocite) {
|
|
if (eAssistanceAttaque) { autresAmeliorations.push(i18n_munitionsHyperVelocite); } else {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_munitionsHyperVelocite}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aMunitionsDrone) {
|
|
exec.push('{{vMDrone=+3}}');
|
|
bonus.push(3);
|
|
}
|
|
|
|
if (aChargeurExplosives) {
|
|
exec.push('{{vMExplosiveD=+1D6}} {{vMExplosiveV=-1D6}}');
|
|
|
|
diceDegats += 1;
|
|
diceViolence -= 1;
|
|
}
|
|
|
|
if (aMunitionsIEM) {
|
|
exec.push('{{vMIEMD=-1D6}} {{vMIEMV=-1D6}}');
|
|
|
|
diceDegats -= 1;
|
|
diceViolence -= 1;
|
|
autresAmeliorations.push(i18n_munitionsIEMParasitage);
|
|
}
|
|
|
|
if (aMunitionsSubsoniques) {
|
|
if (eSilencieux) { autresAmeliorations.push(i18n_munitionsSubsoniques); } else {
|
|
const ghost = +AA.rogueGhost;
|
|
const MALghost = +AA.MALRogueGhost;
|
|
const changeling = +AA.bardChangeling;
|
|
const MALchangeling = +AA.MALBardChangeling;
|
|
let totalSubsonique = vDiscretion;
|
|
|
|
if (hasArmure) { totalSubsonique += oDiscretion; }
|
|
|
|
if (hasArmure && ghost !== 0) {
|
|
exec.push(`{{vSubsoniqueD=${totalSubsonique}}}`);
|
|
bDegats.push(totalSubsonique);
|
|
} else if (hasArmure && MALghost !== 0) {
|
|
exec.push(`{{vSubsoniqueD=${totalSubsonique}}}`);
|
|
bDegats.push(totalSubsonique);
|
|
} else if (hasArmure && changeling !== 0) {
|
|
exec.push(`{{vSubsoniqueD=${totalSubsonique}}}`);
|
|
bDegats.push(totalSubsonique);
|
|
} else if (hasArmure && MALchangeling !== 0) {
|
|
exec.push(`{{vSubsoniqueD=${totalSubsonique}}}`);
|
|
bDegats.push(totalSubsonique);
|
|
} else {
|
|
isConditionnelD = true;
|
|
attaquesSurprises.push(i18n_munitionsSubsoniques);
|
|
attaquesSurprisesValue.push(totalSubsonique);
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
}
|
|
}
|
|
|
|
if (aPointeurLaser) {
|
|
isConditionnelA = true;
|
|
exec.push(`{{pointeurLaserValue=[[3D6]]}} {{pointeurLaser=${i18n_pointeurLaser}}} {{pointeurLaserCondition=${i18n_pointeurLaserCondition}}}`);
|
|
}
|
|
|
|
if (aRevetementOmega) {
|
|
if (eASAssassinValue < 2) {
|
|
aASAssassin = i18n_revetementOmega;
|
|
aASAssassinValue = 2;
|
|
|
|
if (eASAssassinValue !== 0) { autresEffets.push(i18n_assassin); }
|
|
} else if (eASAssassinValue > 2) { autresAmeliorations.push(i18n_revetementOmega); }
|
|
}
|
|
|
|
if (aSystemeRefroidissement) {
|
|
if (!eTirRafale) { autresAmeliorations.push(`${i18n_systemeRefroidissement} (${i18n_barrage} 1)`); } else if (eTirRafale) { exec.push(`{{tirRafale=${i18n_systemeRefroidissement} + ${i18n_barrage} 1}} {{tirRafaleCondition=${i18n_tirRafaleCondition}}}`); }
|
|
}
|
|
|
|
if (aMunitionsNonLetales) { autresAmeliorations.push(i18n_munitionsNonLetales); }
|
|
|
|
if (aProtectionArme) { autresAmeliorations.push(i18n_protectionArme); }
|
|
|
|
if (aStructureElement) { autresAmeliorations.push(i18n_structureElementAlpha); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.bonus = bonus;
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
result.diceViolence = diceViolence;
|
|
|
|
result.aASAssassin = aASAssassin;
|
|
result.aASAssassinValue = aASAssassinValue;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.isChambreDouble = isChambreDouble;
|
|
result.isJAmbidextre = isJAmbidextre;
|
|
result.isJAkimbo = isJAkimbo;
|
|
|
|
result.vCadence = CadenceValue;
|
|
|
|
result.exec = exec;
|
|
result.autresAmeliorations = autresAmeliorations;
|
|
result.autresEffets = autresEffets;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsDistanceAAPNJ(prefix, attrs, vMasque, vMasqueAE, eAssistanceAttaque, eASAssassinValue, isCadence, vCadence, eSilencieux, eTirRafale, isObliteration, isAntiAnatheme) {
|
|
const result = {};
|
|
const exec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
let isChambreDouble = false;
|
|
|
|
let isInterfaceGuidage = false;
|
|
|
|
let aASAssassin = '';
|
|
let aASAssassinValue = 0;
|
|
|
|
let CadenceValue = 0;
|
|
|
|
const bonus = [];
|
|
let diceDegats = 0;
|
|
let diceViolence = 0;
|
|
const bDegats = [];
|
|
const attaquesSurprises = [];
|
|
let attaquesSurprisesCondition = '';
|
|
const attaquesSurprisesValue = [];
|
|
const autresAmeliorations = [];
|
|
const autresEffets = [];
|
|
|
|
const aChargeurGrappes = isApplied(attrs[`${prefix}chargeurGrappes`]);
|
|
const aCanonLong = isApplied(attrs[`${prefix}canonLong`]);
|
|
const aCanonRaccourci = isApplied(attrs[`${prefix}canonRaccourci`]);
|
|
const aChambreDouble = isApplied(attrs[`${prefix}chambreDouble`]);
|
|
const eCadenceA = +attrs[`${prefix}cadenceactif`] || 0;
|
|
const aInterfaceGuidage = isApplied(attrs[`${prefix}interfaceGuidage`]);
|
|
const aJumelage = isApplied(attrs[`${prefix}jumelage`]);
|
|
const aJumelageV = attrs[`${prefix}jumelageValue`];
|
|
const aJumelageT = attrs[`${prefix}jumelageType`];
|
|
const aLunetteIntelligente = isApplied(attrs[`${prefix}lunetteIntelligente`]);
|
|
const aMunitionsHyperVelocite = isApplied(attrs[`${prefix}munitionsHyperVelocite`]);
|
|
const aMunitionsDrone = isApplied(attrs[`${prefix}munitionsDrone`]);
|
|
const aChargeurExplosives = isApplied(attrs[`${prefix}chargeurExplosives`]);
|
|
const aMunitionsIEM = isApplied(attrs[`${prefix}munitionsIEM`]);
|
|
const aMunitionsNonLetales = isApplied(attrs[`${prefix}munitionsNonLetales`]);
|
|
const aMunitionsSubsoniques = isApplied(attrs[`${prefix}munitionsSubsoniques`]);
|
|
const aPointeurLaser = isApplied(attrs[`${prefix}pointeurLaser`]);
|
|
const aProtectionArme = isApplied(attrs[`${prefix}protectionArme`]);
|
|
const aRevetementOmega = isApplied(attrs[`${prefix}revetementOmega`]);
|
|
const aStructureElement = isApplied(attrs[`${prefix}structureElement`]);
|
|
const aSystemeRefroidissement = isApplied(attrs[`${prefix}systemeRefroidissement`]);
|
|
|
|
if (aChargeurGrappes) {
|
|
diceDegats -= 1;
|
|
diceViolence += 1;
|
|
|
|
exec.push('{{vMGrappeD=-1D}} {{vMGrappeV=+1D}}');
|
|
}
|
|
|
|
if (aCanonLong) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{canonLong=${i18n_canonLong}}} {{canonLongCondition=${i18n_canonLongCondition}}}`);
|
|
}
|
|
|
|
if (aCanonRaccourci) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{canonRaccourci=${i18n_canonRaccourci}}} {{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`);
|
|
}
|
|
|
|
if (aChambreDouble && eCadenceA === 1) {
|
|
if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else {
|
|
isChambreDouble = true;
|
|
CadenceValue = 2;
|
|
exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`);
|
|
}
|
|
} else if (aChambreDouble && eCadenceA === 0) { autresAmeliorations.push(i18n_chambreDouble); }
|
|
|
|
if (aInterfaceGuidage) {
|
|
autresAmeliorations.push(i18n_interfaceGuidage);
|
|
isInterfaceGuidage = true;
|
|
}
|
|
|
|
if (aJumelage) {
|
|
if (aJumelageT === 'ambidextrie') { autresAmeliorations.push(`${i18n_jumelage} ${i18n_ambidextrie} (${aJumelageV})`); } else if (aJumelageT === 'akimbo') { autresAmeliorations.push(`${i18n_jumelage} ${i18n_akimbo} (${aJumelageV})`); } else { autresAmeliorations.push(`${i18n_jumelage} (${aJumelageV})`); }
|
|
}
|
|
|
|
if (aLunetteIntelligente) {
|
|
isConditionnelA = true;
|
|
exec.push(`{{lunetteIntelligente=${i18n_lunetteIntelligente}}} {{lunetteIntelligenteCondition=${i18n_lunetteIntelligenteCondition}}}`);
|
|
}
|
|
|
|
if (aMunitionsHyperVelocite) {
|
|
if (eAssistanceAttaque) { autresAmeliorations.push(i18n_munitionsHyperVelocite); } else {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_munitionsHyperVelocite}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aMunitionsDrone) {
|
|
exec.push('{{vMDrone=+3}}');
|
|
bonus.push(3);
|
|
}
|
|
|
|
if (aChargeurExplosives) {
|
|
exec.push('{{vMExplosiveD=+1D6}} {{vMExplosiveV=-1D6}}');
|
|
|
|
diceDegats += 1;
|
|
diceViolence -= 1;
|
|
}
|
|
|
|
if (aMunitionsIEM) {
|
|
exec.push('{{vMIEMD=-1D6}} {{vMIEMV=-1D6}}');
|
|
|
|
diceDegats -= 1;
|
|
diceViolence -= 1;
|
|
autresAmeliorations.push(i18n_munitionsIEMParasitage);
|
|
}
|
|
|
|
if (aMunitionsSubsoniques) {
|
|
if (eSilencieux) { autresAmeliorations.push(i18n_munitionsSubsoniques); } else {
|
|
const totalSubsonique = Math.ceil(vMasque / 2) + vMasqueAE;
|
|
|
|
attaquesSurprises.push(i18n_munitionsSubsoniques);
|
|
attaquesSurprisesValue.push(totalSubsonique);
|
|
|
|
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
|
|
}
|
|
}
|
|
|
|
if (aPointeurLaser) {
|
|
isConditionnelA = true;
|
|
exec.push(`{{pointeurLaserValue=[[3D6]]}} {{pointeurLaser=${i18n_pointeurLaser}}} {{pointeurLaserCondition=${i18n_pointeurLaserCondition}}}`);
|
|
}
|
|
|
|
if (aRevetementOmega) {
|
|
if (eASAssassinValue < 2) {
|
|
aASAssassin = i18n_revetementOmega;
|
|
aASAssassinValue = 2;
|
|
|
|
if (eASAssassinValue !== 0) { autresEffets.push(i18n_assassin); }
|
|
} else if (eASAssassinValue > 2) { autresAmeliorations.push(i18n_revetementOmega); }
|
|
}
|
|
|
|
if (aSystemeRefroidissement) {
|
|
if (!eTirRafale) { autresAmeliorations.push(`${i18n_systemeRefroidissement} (${i18n_barrage} 1)`); } else if (eTirRafale) { exec.push(`{{tirRafale=${i18n_systemeRefroidissement} + ${i18n_barrage} 1}} {{tirRafaleCondition=${i18n_tirRafaleCondition}}}`); }
|
|
}
|
|
|
|
if (aMunitionsNonLetales) { autresAmeliorations.push(i18n_munitionsNonLetales); }
|
|
|
|
if (aProtectionArme) { autresAmeliorations.push(i18n_protectionArme); }
|
|
|
|
if (aStructureElement) { autresAmeliorations.push(i18n_structureElementAlpha); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.bonus = bonus;
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
result.diceViolence = diceViolence;
|
|
|
|
result.aASAssassin = aASAssassin;
|
|
result.aASAssassinValue = aASAssassinValue;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.isChambreDouble = isChambreDouble;
|
|
|
|
result.vCadence = CadenceValue;
|
|
|
|
result.exec = exec;
|
|
result.autresAmeliorations = autresAmeliorations;
|
|
result.autresEffets = autresEffets;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getWeaponsAutreAA(prefix, AA, eAssistanceAttaque, eASAssassinValue, isCadence, vCadence, eSilencieux, eTirRafale, isObliteration, isAntiAnatheme) {
|
|
const result = {};
|
|
const exec = [];
|
|
|
|
let isConditionnelA = false;
|
|
let isConditionnelD = false;
|
|
let isConditionnelV = false;
|
|
|
|
let isChambreDouble = false;
|
|
|
|
let isInterfaceGuidage = false;
|
|
|
|
let isJAmbidextre = false;
|
|
let isJAkimbo = false;
|
|
|
|
let aASAssassin = '';
|
|
let aASAssassinValue = 0;
|
|
|
|
let CadenceValue = 0;
|
|
|
|
const bonus = [];
|
|
let diceDegats = 0;
|
|
let diceViolence = 0;
|
|
const bDegats = [];
|
|
const attaquesSurprises = [];
|
|
const attaquesSurprisesCondition = '';
|
|
const attaquesSurprisesValue = [];
|
|
const autresAmeliorations = [];
|
|
const autresEffets = [];
|
|
|
|
const aChargeurGrappes = isApplied(AA[`${prefix}chargeurGrappes`]);
|
|
const aCanonLong = isApplied(AA[`${prefix}canonLong`]);
|
|
const aCanonRaccourci = isApplied(AA[`${prefix}canonRaccourci`]);
|
|
const aChambreDouble = isApplied(AA[`${prefix}chambreDouble`]);
|
|
const eCadenceA = +AA[`${prefix}cadenceactif`] || 0;
|
|
const aInterfaceGuidage = isApplied(AA[`${prefix}interfaceGuidage`]);
|
|
const aJumelage = isApplied(AA[`${prefix}jumelage`]);
|
|
const aJumelageV = AA[`${prefix}jumelageValue`];
|
|
const aJumelageT = AA[`${prefix}jumelageType`];
|
|
const aLunetteIntelligente = isApplied(AA[`${prefix}lunetteIntelligente`]);
|
|
const aMunitionsHyperVelocite = isApplied(AA[`${prefix}munitionsHyperVelocite`]);
|
|
const aMunitionsDrone = isApplied(AA[`${prefix}munitionsDrone`]);
|
|
const aChargeurExplosives = isApplied(AA[`${prefix}chargeurExplosives`]);
|
|
const aMunitionsIEM = isApplied(AA[`${prefix}munitionsIEM`]);
|
|
const aMunitionsNonLetales = isApplied(AA[`${prefix}munitionsNonLetales`]);
|
|
const aMunitionsSubsoniques = isApplied(AA[`${prefix}munitionsSubsoniques`]);
|
|
const aPointeurLaser = isApplied(AA[`${prefix}pointeurLaser`]);
|
|
const aProtectionArme = isApplied(AA[`${prefix}protectionArme`]);
|
|
const aRevetementOmega = isApplied(AA[`${prefix}revetementOmega`]);
|
|
const aStructureElement = isApplied(AA[`${prefix}structureElement`]);
|
|
const aSystemeRefroidissement = isApplied(AA[`${prefix}systemeRefroidissement`]);
|
|
|
|
if (aChargeurGrappes) {
|
|
diceDegats -= 1;
|
|
diceViolence += 1;
|
|
|
|
exec.push('{{vMGrappeD=-1D}} {{vMGrappeV=+1D}}');
|
|
}
|
|
|
|
if (aCanonLong) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{canonLong=${i18n_canonLong}}} {{canonLongCondition=${i18n_canonLongCondition}}}`);
|
|
}
|
|
|
|
if (aCanonRaccourci) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{canonRaccourci=${i18n_canonRaccourci}}} {{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`);
|
|
}
|
|
|
|
if (aChambreDouble && eCadenceA === 1) {
|
|
if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else {
|
|
isChambreDouble = true;
|
|
CadenceValue = 2;
|
|
exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`);
|
|
}
|
|
} else if (aChambreDouble && eCadenceA === 0) { autresAmeliorations.push(i18n_chambreDouble); }
|
|
|
|
if (aInterfaceGuidage) {
|
|
autresAmeliorations.push(i18n_interfaceGuidage);
|
|
isInterfaceGuidage = true;
|
|
}
|
|
|
|
if (aJumelage) {
|
|
if (aJumelageT === 'ambidextrie') {
|
|
autresAmeliorations.push(`${i18n_jumelage} ${i18n_ambidextrie} (${aJumelageV})`);
|
|
isJAmbidextre = true;
|
|
} else if (aJumelageT === 'akimbo') {
|
|
autresAmeliorations.push(`${i18n_jumelage} ${i18n_akimbo} (${aJumelageV})`);
|
|
isJAkimbo = true;
|
|
} else { autresAmeliorations.push(`${i18n_jumelage} (${aJumelageV})`); }
|
|
}
|
|
|
|
if (aLunetteIntelligente) {
|
|
isConditionnelA = true;
|
|
|
|
exec.push(`{{lunetteIntelligente=${i18n_lunetteIntelligente}}} {{lunetteIntelligenteCondition=${i18n_lunetteIntelligenteCondition}}}`);
|
|
}
|
|
|
|
if (aMunitionsHyperVelocite) {
|
|
if (eAssistanceAttaque) { autresAmeliorations.push(i18n_munitionsHyperVelocite); } else {
|
|
isConditionnelD = true;
|
|
isConditionnelV = true;
|
|
|
|
exec.push(`{{assistanceAttaque=${i18n_munitionsHyperVelocite}}} {{assistanceAttaqueCondition=${i18n_assistanceAttaqueCondition}}}`);
|
|
}
|
|
}
|
|
|
|
if (aMunitionsDrone) {
|
|
exec.push('{{vMDrone=+3}}');
|
|
bonus.push(3);
|
|
}
|
|
|
|
if (aChargeurExplosives) {
|
|
exec.push('{{vMExplosiveD=+1D6}} {{vMExplosiveV=-1D6}}');
|
|
diceDegats += 1;
|
|
diceViolence -= 1;
|
|
}
|
|
|
|
if (aMunitionsIEM) {
|
|
exec.push('{{vMIEMD=-1D6}} {{vMIEMV=-1D6}}');
|
|
|
|
diceDegats -= 1;
|
|
diceViolence -= 1;
|
|
autresAmeliorations.push(i18n_munitionsIEMParasitage);
|
|
}
|
|
|
|
if (aMunitionsSubsoniques) { autresAmeliorations.push(i18n_munitionsSubsoniques); }
|
|
|
|
if (aPointeurLaser) {
|
|
isConditionnelA = true;
|
|
exec.push(`{{pointeurLaserValue=[[3D6]]}} {{pointeurLaser=${i18n_pointeurLaser}}} {{pointeurLaserCondition=${i18n_pointeurLaserCondition}}}`);
|
|
}
|
|
|
|
if (aRevetementOmega) {
|
|
if (eASAssassinValue < 2) {
|
|
aASAssassin = i18n_revetementOmega;
|
|
aASAssassinValue = 2;
|
|
|
|
if (eASAssassinValue !== 0) { autresEffets.push(i18n_assassin); }
|
|
} else if (eASAssassinValue > 2) { autresAmeliorations.push(i18n_revetementOmega); }
|
|
}
|
|
|
|
if (aSystemeRefroidissement) {
|
|
if (!eTirRafale) { autresAmeliorations.push(`${i18n_systemeRefroidissement} (${i18n_barrage} 1)`); } else if (eTirRafale) { exec.push(`{{tirRafale=${i18n_systemeRefroidissement} + ${i18n_barrage} 1}} {{tirRafaleCondition=${i18n_tirRafaleCondition}}}`); }
|
|
}
|
|
|
|
if (aMunitionsNonLetales) { autresAmeliorations.push(i18n_munitionsNonLetales); }
|
|
|
|
if (aProtectionArme) { autresAmeliorations.push(i18n_protectionArme); }
|
|
|
|
if (aStructureElement) { autresAmeliorations.push(i18n_structureElementAlpha); }
|
|
|
|
result.isConditionnelA = isConditionnelA;
|
|
result.isConditionnelD = isConditionnelD;
|
|
result.isConditionnelV = isConditionnelV;
|
|
|
|
result.bonus = bonus;
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
result.diceViolence = diceViolence;
|
|
|
|
result.aASAssassin = aASAssassin;
|
|
result.aASAssassinValue = aASAssassinValue;
|
|
|
|
result.attaquesSurprises = attaquesSurprises;
|
|
result.attaquesSurprisesValue = attaquesSurprisesValue;
|
|
result.attaquesSurprisesCondition = attaquesSurprisesCondition;
|
|
|
|
result.isChambreDouble = isChambreDouble;
|
|
result.isJAmbidextre = isJAmbidextre;
|
|
result.isJAkimbo = isJAkimbo;
|
|
|
|
result.vCadence = CadenceValue;
|
|
|
|
result.exec = exec;
|
|
result.autresAmeliorations = autresAmeliorations;
|
|
result.autresEffets = autresEffets;
|
|
|
|
return result;
|
|
}
|
|
|
|
async function getArmorBonus(value, armure, isELumiere, isASLumiere, vDiscretion, oDiscretion, hasBonus, C1Nom, C2Nom, C3Nom, C4Nom, aEffets = [], simpleRoll = false, distance = false) {
|
|
const result = {};
|
|
const exec = [];
|
|
const cRoll = [];
|
|
const bDegats = [];
|
|
|
|
let diceDegats = 0;
|
|
let diceViolence = 0;
|
|
|
|
const ODBarbarian = [];
|
|
const ODRogue = [];
|
|
const ODShaman = [];
|
|
const autresEffets = [];
|
|
|
|
let goliath = 0;
|
|
let changeling = '';
|
|
let ghost = '';
|
|
|
|
let shaman = 0;
|
|
let C5 = '';
|
|
let C6 = '';
|
|
let C7 = '';
|
|
|
|
let ODWarrior = 0;
|
|
let warrior250PG = 0;
|
|
|
|
let typeSoldier = '';
|
|
let typeHunter = '';
|
|
let typeHerald = '';
|
|
let typeScholar = '';
|
|
let typeScout = '';
|
|
|
|
let bonusWarrior = 0;
|
|
let isConditionnelA = false;
|
|
|
|
let attrsCarac;
|
|
|
|
switch (armure) {
|
|
case 'barbarian':
|
|
goliath = Number(value.barbarianGoliath);
|
|
|
|
if (goliath !== 0) {
|
|
exec.push(`{{goliath=[[${goliath}]]}}`);
|
|
|
|
if (C1Nom === 'force' || C1Nom === 'endurance') { ODBarbarian.push(goliath); }
|
|
|
|
if (C2Nom === 'force' || C2Nom === 'endurance') { ODBarbarian.push(goliath); }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'force' || C3Nom === 'endurance') { ODBarbarian.push(goliath); }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'force' || C4Nom === 'endurance') { ODBarbarian.push(goliath); }
|
|
}
|
|
|
|
if (ODBarbarian.length === 0) { exec.push('{{vODBarbarian=[[0]]}}'); } else { exec.push(`{{vODBarbarian=[[${ODBarbarian.join('+')}]]}}`); }
|
|
|
|
if (!distance) {
|
|
diceDegats += goliath;
|
|
diceViolence += goliath;
|
|
|
|
exec.push(`{{vBarbarianD=+${goliath}D6}}`);
|
|
exec.push(`{{vBarbarianV=+${goliath}D6}}`);
|
|
}
|
|
|
|
if (goliath >= 4 && !aEffets.includes(i18n_antiVehicule)) {
|
|
autresEffets.push(i18n_antiVehicule);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'bard':
|
|
changeling = +value.bardChangeling;
|
|
|
|
if (changeling !== 0) {
|
|
exec.push(`{{special2=${i18n_changelingActive}}}`);
|
|
}
|
|
break;
|
|
|
|
case 'rogue':
|
|
ghost = +value.rogueGhost;
|
|
|
|
if (ghost !== 0) {
|
|
exec.push(`{{special2=${i18n_ghostActive}}}`);
|
|
|
|
if (simpleRoll) {
|
|
exec.push(`{{vODGhostA=${i18n_ghost}}} {{vODGhostAValue=${3}}}`);
|
|
isConditionnelA = true;
|
|
} else if (isELumiere === false && isASLumiere === false) {
|
|
const totalGhost = vDiscretion + oDiscretion;
|
|
|
|
isConditionnelA = true;
|
|
exec.push(`{{vGhostA=${vDiscretion}D6+${oDiscretion}}}`);
|
|
exec.push(`{{vGhostD=${totalGhost}}}`);
|
|
cRoll.push(vDiscretion);
|
|
ODRogue.push(oDiscretion);
|
|
bDegats.push(totalGhost);
|
|
}
|
|
}
|
|
|
|
break;
|
|
|
|
case 'shaman':
|
|
shaman = Number(value.shamanNbreTotem);
|
|
C5 = value.caracteristiqueTotem1;
|
|
C6 = value.caracteristiqueTotem2;
|
|
C7 = value.caracteristiqueTotem3;
|
|
|
|
attrsCarac = await getCarac(1, C5, C6, C7, '0');
|
|
|
|
if (shaman === 1 || shaman === 2 || shaman === 3) {
|
|
if (attrsCarac.C1) {
|
|
exec.push(`{{totem1=${attrsCarac.C1Nom}}}`);
|
|
cRoll.push(attrsCarac.C1Base);
|
|
ODShaman.push(`${attrsCarac.C1OD}`);
|
|
}
|
|
}
|
|
|
|
if (shaman === 2 || shaman === 3) {
|
|
if (attrsCarac.C2) {
|
|
exec.push(`{{totem2=${attrsCarac.C2Nom}}}`);
|
|
cRoll.push(attrsCarac.C2Base);
|
|
ODShaman.push(`${attrsCarac.C2OD}`);
|
|
}
|
|
}
|
|
|
|
if (shaman === 3) {
|
|
if (attrsCarac.C3) {
|
|
exec.push(`{{totem3=${attrsCarac.C3Nom}}}`);
|
|
cRoll.push(attrsCarac.C3Base);
|
|
ODShaman.push(`${attrsCarac.C3OD}`);
|
|
}
|
|
}
|
|
|
|
if (shaman === 1 || shaman === 2 || shaman === 3) {
|
|
exec.push('{{totem=true}}');
|
|
|
|
if (ODShaman.length === 0) { exec.push('{{vODShaman=[[0]]}}'); } else { exec.push(`{{vODShaman=[[${ODShaman.join('+')}]]}}`); }
|
|
}
|
|
break;
|
|
|
|
case 'warrior':
|
|
warrior250PG = +value.warrior250PG;
|
|
bonusWarrior = 1 + warrior250PG;
|
|
|
|
typeSoldier = +value.warriorSoldierA;
|
|
typeHunter = +value.warriorHunterA;
|
|
typeHerald = +value.warriorHeraldA;
|
|
typeScholar = +value.warriorScholarA;
|
|
typeScout = +value.warriorScoutA;
|
|
|
|
if (typeSoldier !== 0) {
|
|
exec.push(`{{special2=${i18n_typeSoldier}}}`);
|
|
|
|
if (C1Nom === 'deplacement' || C1Nom === 'force' || C1Nom === 'endurance') { ODWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'deplacement' || C2Nom === 'force' || C2Nom === 'endurance') { ODWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'deplacement' || C3Nom === 'force' || C3Nom === 'endurance') { ODWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'deplacement' || C4Nom === 'force' || C4Nom === 'endurance') { ODWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (typeHunter !== 0) {
|
|
exec.push(`{{special2=${i18n_typeHunter}}}`);
|
|
|
|
if (C1Nom === 'hargne' || C1Nom === 'combat' || C1Nom === 'instinct') { ODWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'hargne' || C2Nom === 'combat' || C2Nom === 'instinct') { ODWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'hargne' || C3Nom === 'combat' || C3Nom === 'instinct') { ODWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'hargne' || C4Nom === 'combat' || C4Nom === 'instinct') { ODWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (typeHerald !== 0) {
|
|
exec.push(`{{special2=${i18n_typeHerald}}}`);
|
|
|
|
if (C1Nom === 'aura' || C1Nom === 'parole' || C1Nom === 'sf') { ODWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'aura' || C2Nom === 'parole' || C2Nom === 'sf') { ODWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'aura' || C3Nom === 'parole' || C3Nom === 'sf') { ODWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'aura' || C4Nom === 'parole' || C4Nom === 'sf') { ODWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (typeScholar !== 0) {
|
|
exec.push(`{{special2=${i18n_typeScholar}}}`);
|
|
|
|
if (C1Nom === 'tir' || C1Nom === 'savoir' || C1Nom === 'technique') { ODWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'tir' || C2Nom === 'savoir' || C2Nom === 'technique') { ODWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'tir' || C3Nom === 'savoir' || C3Nom === 'technique') { ODWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'tir' || C4Nom === 'savoir' || C4Nom === 'technique') { ODWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (typeScout !== 0) {
|
|
exec.push(`{{special2=${i18n_typeScout}}}`);
|
|
|
|
if (C1Nom === 'discretion' || C1Nom === 'dexterite' || C1Nom === 'perception') { ODWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'discretion' || C2Nom === 'dexterite' || C2Nom === 'perception') { ODWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'discretion' || C3Nom === 'dexterite' || C3Nom === 'perception') { ODWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'discretion' || C4Nom === 'dexterite' || C4Nom === 'perception') { ODWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (ODWarrior.length !== 0) { exec.push(`{{vODWarrior=${ODWarrior}}}`); }
|
|
break;
|
|
}
|
|
|
|
result.exec = exec;
|
|
result.cRoll = cRoll;
|
|
result.diceDegats = diceDegats;
|
|
result.bDegats = bDegats;
|
|
result.diceViolence = diceViolence;
|
|
result.ODBarbarian = ODBarbarian;
|
|
result.ODRogue = ODRogue;
|
|
result.ODShaman = ODShaman;
|
|
result.ODWarrior = ODWarrior;
|
|
result.autresEffets = autresEffets;
|
|
result.isConditionnelA = isConditionnelA;
|
|
|
|
return result;
|
|
}
|
|
|
|
async function getMALBonus(value, armureL, isELumiere, isASLumiere, vDiscretion, oDiscretion, hasBonus, C1Nom, C2Nom, C3Nom, C4Nom, aEffets = [], simpleRoll = false, distance = false) {
|
|
const result = {};
|
|
const exec = [];
|
|
const cRoll = [];
|
|
const bDegats = [];
|
|
|
|
let diceDegats = 0;
|
|
let diceViolence = 0;
|
|
|
|
const ODMALBarbarian = [];
|
|
const ODMALRogue = [];
|
|
const ODMALShaman = [];
|
|
const bonusWarrior = 1;
|
|
const autresEffets = [];
|
|
|
|
let MALGoliath = 0;
|
|
let MALGhost = '';
|
|
|
|
let MALShaman = 0;
|
|
let C5 = '';
|
|
let C6 = '';
|
|
|
|
let attrsCarac;
|
|
|
|
let ODMALWarrior = 0;
|
|
|
|
let isConditionnelA = false;
|
|
|
|
switch (armureL) {
|
|
case 'barbarian':
|
|
MALGoliath = Number(value.MALBarbarianGoliath);
|
|
|
|
if (MALGoliath !== 0) {
|
|
exec.push(`{{MALGoliath=[[${MALGoliath}]]}}`);
|
|
|
|
if (C1Nom === 'force' || C1Nom === 'endurance') { ODMALBarbarian.push(MALGoliath); }
|
|
|
|
if (C2Nom === 'force' || C2Nom === 'endurance') { ODMALBarbarian.push(MALGoliath); }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'force' || C3Nom === 'endurance') { ODMALBarbarian.push(MALGoliath); }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'force' || C4Nom === 'endurance') { ODMALBarbarian.push(MALGoliath); }
|
|
}
|
|
|
|
if (ODMALBarbarian.length === 0) { exec.push('{{vODMALBarbarian=[[0]]}}'); } else { exec.push(`{{vODMALBarbarian=[[${ODMALBarbarian.join('+')}]]}}`); }
|
|
|
|
if (!distance) {
|
|
diceDegats += MALGoliath;
|
|
diceViolence += MALGoliath;
|
|
|
|
exec.push(`{{vMALBarbarianD=+${MALGoliath}D6}}`);
|
|
exec.push(`{{vMALBarbarianV=+${MALGoliath}D6}}`);
|
|
}
|
|
|
|
if (MALGoliath >= 4 && !aEffets.includes(i18n_antiVehicule)) {
|
|
autresEffets.push(i18n_antiVehicule);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'bard':
|
|
MALchangeling = +value.MALBardChangeling;
|
|
|
|
if (MALchangeling !== 0) {
|
|
exec.push(`{{MALspecial2=${i18n_changelingActive}}}`);
|
|
}
|
|
break;
|
|
|
|
case 'rogue':
|
|
MALGhost = value.MALRogueGhost;
|
|
|
|
if (MALGhost !== '') {
|
|
exec.push(`{{MALspecial2=${i18n_ghostActive}}}`);
|
|
|
|
if (simpleRoll) {
|
|
exec.push(`{{vODMALGhostA=${i18n_ghost}}} {{vODMALGhostAValue=3}}`);
|
|
isConditionnelA = true;
|
|
} else if (isELumiere === false && isASLumiere === false) {
|
|
const totalMALGhost = vDiscretion + oDiscretion;
|
|
|
|
exec.push(`{{vMALGhostA=${vDiscretion}D6+${oDiscretion}}}`);
|
|
exec.push(`{{vMALGhostD=${totalMALGhost}}}`);
|
|
isConditionnelA = true;
|
|
cRoll.push(vDiscretion);
|
|
ODMALRogue.push(oDiscretion);
|
|
bDegats.push(totalMALGhost);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'shaman':
|
|
MALShaman = Number(value.MALShamanNbreTotem);
|
|
C5 = value.MALCaracteristiqueTotem1;
|
|
C6 = value.MALCaracteristiqueTotem2;
|
|
|
|
attrsCarac = await getCarac(0, C5, C6, '0', '0');
|
|
|
|
if (MALShaman === 1 || MALShaman === 2) {
|
|
if (attrsCarac.C1) {
|
|
exec.push(`{{MALTotem1=${attrsCarac.C1Nom}}}`);
|
|
cRoll.push(attrsCarac.C1Base);
|
|
ODMALShaman.push(`${attrsCarac.C1OD}`);
|
|
}
|
|
}
|
|
|
|
if (MALShaman === 2) {
|
|
if (attrsCarac.C2) {
|
|
exec.push(`{{MALTotem2=${attrsCarac.C2Nom}}}`);
|
|
cRoll.push(attrsCarac.C2Base);
|
|
ODMALShaman.push(`${attrsCarac.C2OD}`);
|
|
}
|
|
}
|
|
|
|
if (MALShaman === 1 || MALShaman === 2) {
|
|
exec.push('{{MALTotem=true}}');
|
|
|
|
if (ODMALShaman.length === 0) { exec.push('{{vODMALShaman=[[0]]}}'); } else { exec.push(`{{vODMALShaman=[[${ODMALShaman.join('+')}]]}}`); }
|
|
}
|
|
|
|
break;
|
|
|
|
case 'warrior':
|
|
MALTypeSoldier = +value.MALWarriorSoldierA;
|
|
MALTypeHunter = +value.MALWarriorHunterA;
|
|
MALTypeHerald = +value.MALWarriorHeraldA;
|
|
MALTypeScholar = +value.MALWarriorScholarA;
|
|
MALTypeScout = +value.MALWarriorScoutA;
|
|
|
|
if (MALTypeSoldier !== 0) {
|
|
exec.push(`{{MALspecial2=${i18n_typeSoldier}}}`);
|
|
exec.push('{{MALTypeWarrior=true}}');
|
|
|
|
if (C1Nom === 'deplacement' || C1Nom === 'force' || C1Nom === 'endurance') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'deplacement' || C2Nom === 'force' || C2Nom === 'endurance') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'deplacement' || C3Nom === 'force' || C3Nom === 'endurance') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'deplacement' || C4Nom === 'force' || C4Nom === 'endurance') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (MALTypeHunter !== 0) {
|
|
exec.push(`{{MALspecial2=${i18n_typeHunter}}}`);
|
|
exec.push('{{MALTypeWarrior=true}}');
|
|
|
|
if (C1Nom === 'hargne' || C1Nom === 'combat' || C1Nom === 'instinct') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'hargne' || C2Nom === 'combat' || C2Nom === 'instinct') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'hargne' || C3Nom === 'combat' || C3Nom === 'instinct') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'hargne' || C4Nom === 'combat' || C4Nom === 'instinct') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (MALTypeHerald !== 0) {
|
|
exec.push(`{{MALspecial2=${i18n_typeHerald}}}`);
|
|
exec.push('{{MALTypeWarrior=true}}');
|
|
|
|
if (C1Nom === 'aura' || C1Nom === 'parole' || C1Nom === 'sf') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'aura' || C2Nom === 'parole' || C2Nom === 'sf') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'aura' || C3Nom === 'parole' || C3Nom === 'sf') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'aura' || C4Nom === 'parole' || C4Nom === 'sf') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (MALTypeScholar !== 0) {
|
|
exec.push(`{{MALspecial2=${i18n_typeScholar}}}`);
|
|
exec.push('{{MALTypeWarrior=true}}');
|
|
|
|
if (C1Nom === 'tir' || C1Nom === 'savoir' || C1Nom === 'technique') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'tir' || C2Nom === 'savoir' || C2Nom === 'technique') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'tir' || C3Nom === 'savoir' || C3Nom === 'technique') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'tir' || C4Nom === 'savoir' || C4Nom === 'technique') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (MALTypeScout !== 0) {
|
|
exec.push(`{{MALspecial2=${i18n_typeScout}}}`);
|
|
exec.push('{{MALTypeWarrior=true}}');
|
|
|
|
if (C1Nom === 'discretion' || C1Nom === 'dexterite' || C1Nom === 'perception') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (C2Nom === 'discretion' || C2Nom === 'dexterite' || C2Nom === 'perception') { ODMALWarrior += bonusWarrior; }
|
|
|
|
if (hasBonus === 1 || hasBonus === 2) {
|
|
if (C3Nom === 'discretion' || C3Nom === 'dexterite' || C3Nom === 'perception') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
|
|
if (hasBonus === 2) {
|
|
if (C4Nom === 'discretion' || C4Nom === 'dexterite' || C4Nom === 'perception') { ODMALWarrior += bonusWarrior; }
|
|
}
|
|
}
|
|
|
|
if (ODMALWarrior.length !== 0) { exec.push(`{{vODMALWarrior=${ODMALWarrior}}}`); }
|
|
break;
|
|
}
|
|
|
|
result.exec = exec;
|
|
result.cRoll = cRoll;
|
|
result.diceDegats = diceDegats;
|
|
result.diceViolence = diceViolence;
|
|
result.bDegats = bDegats;
|
|
result.ODMALBarbarian = ODMALBarbarian;
|
|
result.ODMALRogue = ODMALRogue;
|
|
result.ODMALShaman = ODMALShaman;
|
|
result.ODMALWarrior = ODMALWarrior;
|
|
result.autresEffets = autresEffets;
|
|
result.isConditionnelA = isConditionnelA;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getStyleContactMod(value, cPrecis, diceDegats, diceViolence, hasArmure, oCombat, isEAkimbo, isEAmbidextrie, isAAgressive, isAJumelle, isASoeur, isAProtectrice, isEDeuxMains, isAAllegee, isELourd, isTirSecurite) {
|
|
const result = {};
|
|
|
|
const exec = [];
|
|
const cRoll = [];
|
|
const autresAmeliorationsS = [];
|
|
|
|
let dDegats = 0;
|
|
let dViolence = 0;
|
|
|
|
const style = value.styleCombat || 'standard';
|
|
let bName = '';
|
|
let modA = 0;
|
|
|
|
switch (style) {
|
|
case 'standard':
|
|
exec.push(`{{style=${i18n_style} ${i18n_standard}}}`);
|
|
|
|
if (isAAgressive) { autresAmeliorationsS.push(i18n_agressive); }
|
|
break;
|
|
|
|
case 'couvert':
|
|
bName = 'atkCouvert';
|
|
exec.push(`{{style=${i18n_style} ${i18n_couvert}}}`);
|
|
|
|
if (!isTirSecurite) {
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
|
|
if (isAAgressive) { autresAmeliorationsS.push(i18n_agressive); }
|
|
break;
|
|
|
|
case 'agressif':
|
|
bName = 'atkAgressif';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_agressif}}}`);
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
|
|
if (isAAgressive) {
|
|
exec.push('{{vAgressive=+1D6}}');
|
|
dDegats += 1;
|
|
}
|
|
break;
|
|
|
|
case 'akimbo':
|
|
bName = 'atkAkimbo';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_akimbo}}}`);
|
|
|
|
if (hasArmure) {
|
|
if (oCombat >= 3 || isEAkimbo || isAJumelle) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
} else if (isEAkimbo || isAJumelle) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
|
|
exec.push(`{{vMStyleD=+${diceDegats}D6}}`);
|
|
dDegats += Number(diceDegats);
|
|
|
|
exec.push(`{{vMStyleV=+${Math.ceil(Number(diceViolence) / 2)}D6}}`);
|
|
dViolence += Math.ceil(Number(diceViolence) / 2);
|
|
|
|
if (isAAgressive) { autresAmeliorationsS.push(i18n_agressive); }
|
|
break;
|
|
|
|
case 'ambidextre':
|
|
bName = 'atkAmbidextre';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_ambidextre}}}`);
|
|
|
|
if (hasArmure) {
|
|
if (oCombat >= 4 || isEAmbidextrie || isASoeur) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
} else if (isEAmbidextrie || isASoeur) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
|
|
if (isAAgressive) { autresAmeliorationsS.push(i18n_agressive); }
|
|
break;
|
|
|
|
case 'defensif':
|
|
bName = 'atkDefensif';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_defensif}}}`);
|
|
|
|
if (isAProtectrice) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
|
|
if (isAAgressive) { autresAmeliorationsS.push(i18n_agressive); }
|
|
break;
|
|
|
|
case 'pilonnage':
|
|
exec.push(`{{style=${i18n_style} ${i18n_pilonnage}}}`);
|
|
|
|
if (isAAgressive) { autresAmeliorationsS.push(i18n_agressive); }
|
|
break;
|
|
|
|
case 'suppression':
|
|
exec.push(`{{style=${i18n_style} ${i18n_suppression}}}`);
|
|
|
|
if (isAAgressive) { autresAmeliorationsS.push(i18n_agressive); }
|
|
break;
|
|
|
|
case 'precis':
|
|
exec.push(`{{style=${i18n_style} ${i18n_precis}}}`);
|
|
|
|
if (isEDeuxMains && !isAAllegee) {
|
|
if (cPrecis.nom !== '0') {
|
|
exec.push(`{{cPrecis=${cPrecis.nom}}}`);
|
|
|
|
const CPValue = Number(cPrecis.base);
|
|
|
|
cRoll.push(CPValue);
|
|
|
|
exec.push(`{{vMStyleA=${CPValue}D}}`);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'puissant':
|
|
exec.push(`{{style=${i18n_style} ${i18n_puissant}}}`);
|
|
|
|
if (isELourd) {
|
|
const type = value.stylePuissantType;
|
|
const bonus = +value.stylePuissantBonus;
|
|
const malus = 0 - bonus;
|
|
|
|
exec.push(`{{vMStyleA=${malus}D}}`);
|
|
cRoll.push(malus);
|
|
|
|
if (type.includes('stylePuissantD')) {
|
|
exec.push(`{{vMStyleD=+${bonus}D}}`);
|
|
dDegats += bonus;
|
|
}
|
|
|
|
if (type.includes('stylePuissantV')) {
|
|
exec.push(`{{vMStyleV=+${bonus}D}}`);
|
|
dViolence += bonus;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
result.exec = exec;
|
|
result.cRoll = cRoll;
|
|
result.autresAmeliorationsS = autresAmeliorationsS;
|
|
result.diceDegats = dDegats;
|
|
result.diceViolence = dViolence;
|
|
|
|
return result;
|
|
}
|
|
|
|
function getStyleDistanceMod(value, diceDegats, diceViolence, pilonnage, pilonnageType, hasArmure, oTir, isEAkimbo, isEAmbidextrie, isDeuxMains, isLourd, isTirSecurite) {
|
|
const result = {};
|
|
|
|
const exec = [];
|
|
const cRoll = [];
|
|
|
|
let dDegats = 0;
|
|
let dViolence = 0;
|
|
|
|
const style = value.styleCombat;
|
|
let bName = '';
|
|
let modA = 0;
|
|
|
|
switch (style) {
|
|
case 'standard':
|
|
exec.push(`{{style=${i18n_style} ${i18n_standard}}}`);
|
|
break;
|
|
|
|
case 'couvert':
|
|
bName = 'atkCouvert';
|
|
exec.push(`{{style=${i18n_style} ${i18n_couvert}}}`);
|
|
|
|
if (!isTirSecurite) {
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
break;
|
|
|
|
case 'agressif':
|
|
bName = 'atkAgressif';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_agressif}}}`);
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
break;
|
|
|
|
case 'akimbo':
|
|
bName = 'atkAkimbo';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_akimbo}}}`);
|
|
|
|
if (hasArmure) {
|
|
if (oTir >= 3 || isEAkimbo) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
} else if (isEAkimbo) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
|
|
exec.push(`{{vMStyleD=+${diceDegats}D6}}`);
|
|
dDegats += Number(diceDegats);
|
|
|
|
exec.push(`{{vMStyleV=+${Math.ceil(Number(diceViolence) / 2)}D6}}`);
|
|
dViolence += Math.ceil(Number(diceViolence) / 2);
|
|
break;
|
|
|
|
case 'ambidextre':
|
|
bName = 'atkAmbidextre';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_ambidextre}}}`);
|
|
|
|
if (hasArmure) {
|
|
if (oTir >= 4 || isEAmbidextrie) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
} else if (isEAmbidextrie) {
|
|
exec.push('{{vMStyleA=-1D}}');
|
|
cRoll.push(-1);
|
|
} else {
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
}
|
|
break;
|
|
|
|
case 'defensif':
|
|
bName = 'atkDefensif';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_defensif}}}`);
|
|
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
break;
|
|
|
|
case 'pilonnage':
|
|
bName = 'atkPilonnage';
|
|
modA = value[bName];
|
|
|
|
exec.push(`{{style=${i18n_style} ${i18n_pilonnage}}}`);
|
|
|
|
exec.push(`{{vMStyleA=${modA}D}}`);
|
|
cRoll.push(Number(modA));
|
|
|
|
if (isDeuxMains) {
|
|
let bPilonnage = Number(pilonnage) - 1;
|
|
|
|
if (pilonnageType === 'degats') {
|
|
if (bPilonnage < 0) { bPilonnage = 0; }
|
|
|
|
exec.push(`{{vMStyleD=+${bPilonnage}D6}}`);
|
|
dDegats += Number(bPilonnage);
|
|
}
|
|
|
|
if (pilonnageType === 'violence') {
|
|
if (bPilonnage < 0) { bPilonnage = 0; }
|
|
|
|
exec.push(`{{vMStyleV=+${bPilonnage}D6}}`);
|
|
dViolence += Number(bPilonnage);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'suppression':
|
|
exec.push(`{{style=${i18n_style} ${i18n_suppression}}}`);
|
|
|
|
if (isLourd) {
|
|
const suppressionD = Number(value.styleSuppressionD);
|
|
const suppressionV = Number(value.styleSuppressionV);
|
|
|
|
if (suppressionD !== 0) {
|
|
dDegats -= suppressionD;
|
|
exec.push(`{{vMStyleD=-${suppressionD}D6}}`);
|
|
}
|
|
|
|
if (suppressionV !== 0) {
|
|
dViolence -= suppressionV;
|
|
exec.push(`{{vMStyleV=-${suppressionV}D6}}`);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'precis':
|
|
exec.push(`{{style=${i18n_style} ${i18n_precis}}}`);
|
|
break;
|
|
|
|
case 'puissant':
|
|
exec.push(`{{style=${i18n_style} ${i18n_puissant}}}`);
|
|
break;
|
|
}
|
|
|
|
result.exec = exec;
|
|
result.cRoll = cRoll;
|
|
result.diceDegats = dDegats;
|
|
result.diceViolence = dViolence;
|
|
|
|
return result;
|
|
}
|
|
|
|
function updateRoll(roll, diceJet, bonusJet, totalDegats, diceDegats, bonusDegats, totalViolence, diceViolence, bonusViolence, conditions, conditionsValues = {}) {
|
|
const tPointeurLaser = roll.results.pointeurLaserValue || undefined;
|
|
const tSurprise = roll.results.attaqueSurpriseValue || {};
|
|
const tDestructeur = roll.results.destructeurValue || {};
|
|
const tFureur = roll.results.fureurValue || {};
|
|
const tMeurtrier = roll.results.meurtrierValue || {};
|
|
const tUltraviolence = roll.results.ultraviolenceValue || {};
|
|
|
|
const tArmeAzurineValueD = roll.results.armeAzurineValueD || {};
|
|
const tArmeAzurineValueV = roll.results.armeAzurineValueV || {};
|
|
const tArmeRougeSangValueD = roll.results.armeRougeSangValueD || {};
|
|
const tArmeRougeSangValueV = roll.results.armeRougeSangValueV || {};
|
|
const tCheneSculpte = roll.results.cheneSculpteValue || {};
|
|
const tGriffuresGraveesValueD = roll.results.griffuresGraveesValueD || {};
|
|
const tGriffuresGraveesValueV = roll.results.griffuresGraveesValueV || {};
|
|
const tMasqueBriseValueD = roll.results.masqueBriseValueD || {};
|
|
const tMasqueBriseValueV = roll.results.masqueBriseValueV || {};
|
|
const tRouagesCassesValueD = roll.results.rouagesCassesValueD || {};
|
|
const tRouagesCassesValueV = roll.results.rouagesCassesValueV || {};
|
|
|
|
const isTenebricide = conditions.isTenebricide || false;
|
|
const isSurprise = conditions.isSurprise || false;
|
|
const isDestructeur = conditions.isDestructeur || false;
|
|
const isFureur = conditions.isFureur || false;
|
|
const isMeurtrier = conditions.isMeurtrier || false;
|
|
const isUltraviolence = conditions.isUltraviolence || false;
|
|
|
|
const isArmeAzurine = conditions.isArmeAzurine || false;
|
|
const isArmeRougeSang = conditions.isArmeRougeSang || false;
|
|
const isCheneSculpte = conditions.isCheneSculpte || false;
|
|
const isGriffureGravee = conditions.isGriffureGravee || false;
|
|
const isMasqueBrise = conditions.isMasqueBrise || false;
|
|
const isRouagesCasses = conditions.isRouagesCasses || false;
|
|
|
|
const isBourreau = conditions.isBourreau || false;
|
|
const eBourreauValue = conditionsValues.eBourreauValue || 0;
|
|
|
|
const isDevastation = conditions.isDevastation || false;
|
|
const eDevastationValue = conditionsValues.eDevastationValue || 0;
|
|
|
|
const isRegularite = conditions.isRegularite || false;
|
|
const isGuidage = conditions.isGuidage || false;
|
|
|
|
const pairOrImpair = isGuidage === true ? 1 : 0;
|
|
|
|
let tJet = 0;
|
|
let baseJet = 0;
|
|
|
|
let tDegats = totalDegats;
|
|
let tViolence = totalViolence;
|
|
|
|
let hDestructeur = 0;
|
|
let hFureur = 0;
|
|
let hMeurtrier = 0;
|
|
let hSurprise = 0;
|
|
let hUltraviolence = 0;
|
|
let hPointeurLaser = 0;
|
|
|
|
let hArmeAzurineValueD = 0;
|
|
let hArmeAzurineValueV = 0;
|
|
let hArmeRougeSangValueD = 0;
|
|
let hArmeRougeSangValueV = 0;
|
|
let hCheneSculpte = 0;
|
|
let hGriffuresGraveesValueD = 0;
|
|
let hGriffuresGraveesValueV = 0;
|
|
let hMasqueBriseValueD = 0;
|
|
let hMasqueBriseValueV = 0;
|
|
let hRouagesCassesValueD = 0;
|
|
let hRouagesCassesValueV = 0;
|
|
|
|
let regularite = 0;
|
|
|
|
baseJet = diceJet.reduce((accumulateur, valeurCourante) => {
|
|
const vC = valeurCourante;
|
|
let nV = 0;
|
|
|
|
if (vC % 2 === pairOrImpair) {
|
|
nV = 1;
|
|
}
|
|
|
|
return accumulateur + nV;
|
|
}, 0);
|
|
|
|
tJet = baseJet + bonusJet;
|
|
|
|
if (isSurprise) { hSurprise = tSurprise.result; }
|
|
if (isDestructeur) { hDestructeur = tDestructeur.result; }
|
|
if (isFureur) { hFureur = tFureur.result; }
|
|
if (isMeurtrier) { hMeurtrier = tMeurtrier.result; }
|
|
if (isUltraviolence) { hUltraviolence = tUltraviolence.result; }
|
|
|
|
if(tPointeurLaser) {
|
|
hPointeurLaser = tPointeurLaser.dice.reduce((accumulateur, valeurCourante) => {
|
|
const vC = valeurCourante;
|
|
let nV = 0;
|
|
|
|
if (vC % 2 === pairOrImpair) {
|
|
nV = 1;
|
|
}
|
|
|
|
return accumulateur + nV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isArmeAzurine) {
|
|
hArmeAzurineValueD = tArmeAzurineValueD.result;
|
|
hArmeAzurineValueV = tArmeAzurineValueV.result;
|
|
}
|
|
|
|
if (isArmeRougeSang) {
|
|
hArmeRougeSangValueD = tArmeRougeSangValueD.result;
|
|
hArmeRougeSangValueV = tArmeRougeSangValueV.result;
|
|
}
|
|
|
|
if (isCheneSculpte) { hCheneSculpte = tCheneSculpte.result; }
|
|
|
|
if (isGriffureGravee) {
|
|
hGriffuresGraveesValueD = tGriffuresGraveesValueD.result;
|
|
hGriffuresGraveesValueV = tGriffuresGraveesValueV.result;
|
|
}
|
|
|
|
if (isMasqueBrise) {
|
|
hMasqueBriseValueD = tMasqueBriseValueD.result;
|
|
hMasqueBriseValueV = tMasqueBriseValueV.result;
|
|
}
|
|
|
|
if (isRouagesCasses) {
|
|
hRouagesCassesValueD = tRouagesCassesValueD.result;
|
|
hRouagesCassesValueV = tRouagesCassesValueV.result;
|
|
}
|
|
|
|
let vTDegats = 0;
|
|
let vTViolence = 0;
|
|
let vTDestructeur = 0;
|
|
let vTFureur = 0;
|
|
let vTMeurtrier = 0;
|
|
let vTSurprise = 0;
|
|
let vTUltraviolence = 0;
|
|
|
|
let vTCheneSculpte = 0;
|
|
|
|
if (conditions.bourreau) {
|
|
tDegats = diceDegats.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
|
|
if (bonusDegats.length !== 0) { tDegats += bonusDegats.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
|
|
|
|
if (isDestructeur) {
|
|
hDestructeur = tDestructeur.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isMeurtrier) {
|
|
hMeurtrier = tMeurtrier.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isSurprise) {
|
|
if (tSurprise.dice.length !== 0) {
|
|
const normalRoll = tSurprise.dice.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante);
|
|
const bonusSurprise = +tSurprise.result - +normalRoll;
|
|
|
|
hSurprise = tSurprise.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
|
|
hSurprise += bonusSurprise;
|
|
}
|
|
}
|
|
|
|
if (isArmeAzurine) {
|
|
hArmeAzurineValueD = tArmeAzurineValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isArmeRougeSang) {
|
|
hArmeRougeSangValueD = tArmeRougeSangValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isCheneSculpte) {
|
|
hCheneSculpte = tCheneSculpte.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isGriffureGravee) {
|
|
hGriffuresGraveesValueD = tGriffuresGraveesValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isMasqueBrise) {
|
|
hMasqueBriseValueD = tMasqueBriseValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isRouagesCasses) {
|
|
hRouagesCassesValueD = tRouagesCassesValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
} else if (isBourreau) {
|
|
tDegats = diceDegats.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
|
|
if (bonusDegats.length !== 0) { tDegats += bonusDegats.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
|
|
|
|
if (isDestructeur) {
|
|
hDestructeur = tDestructeur.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isMeurtrier) {
|
|
hMeurtrier = tMeurtrier.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isSurprise) {
|
|
if (tSurprise.dice.length !== 0) {
|
|
const normalRoll = tSurprise.dice.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante);
|
|
const bonusSurprise = +tSurprise.result - +normalRoll;
|
|
|
|
hSurprise = tSurprise.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
|
|
hSurprise += bonusSurprise;
|
|
}
|
|
}
|
|
|
|
if (isArmeAzurine) {
|
|
hArmeAzurineValueD = tArmeAzurineValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isArmeRougeSang) {
|
|
hArmeRougeSangValueD = tArmeRougeSangValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isCheneSculpte) {
|
|
hCheneSculpte = tCheneSculpte.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isGriffureGravee) {
|
|
hGriffuresGraveesValueD = tGriffuresGraveesValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isMasqueBrise) {
|
|
hMasqueBriseValueD = tMasqueBriseValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isRouagesCasses) {
|
|
hRouagesCassesValueD = tRouagesCassesValueD.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eBourreauValue) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
}
|
|
|
|
if (conditions.devaste) {
|
|
tViolence = diceViolence.reduce((accumulateur, valeurCourante) => {
|
|
let newV = valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
|
|
if (bonusViolence.length !== 0) { tViolence += bonusViolence.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
|
|
|
|
if (isFureur) {
|
|
hFureur = tFureur.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isUltraviolence) {
|
|
hUltraviolence = tUltraviolence.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isArmeAzurine) {
|
|
hArmeAzurineValueV = tArmeAzurineValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isArmeRougeSang) {
|
|
hArmeRougeSangValueV = tArmeRougeSangValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isGriffureGravee) {
|
|
hGriffuresGraveesValueV = tGriffuresGraveesValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isMasqueBrise) {
|
|
hMasqueBriseValueV = tMasqueBriseValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isRouagesCasses) {
|
|
hRouagesCassesValueV = tRouagesCassesValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= 3) { newV = 4; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
} else if (isDevastation) {
|
|
tViolence = diceViolence.reduce((accumulateur, valeurCourante) => {
|
|
let newV = valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
|
|
if (bonusViolence.length !== 0) { tViolence += bonusViolence.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
|
|
|
|
if (isFureur) {
|
|
hFureur = tFureur.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isUltraviolence) {
|
|
hUltraviolence = tUltraviolence.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isArmeAzurine) {
|
|
hArmeAzurineValueV = tArmeAzurineValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isArmeRougeSang) {
|
|
hArmeRougeSangValueV = tArmeRougeSangValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isGriffureGravee) {
|
|
hGriffuresGraveesValueV = tGriffuresGraveesValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isMasqueBrise) {
|
|
hMasqueBriseValueV = tMasqueBriseValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
|
|
if (isRouagesCasses) {
|
|
hRouagesCassesValueV = tRouagesCassesValueV.dice.reduce((accumulateur, valeurCourante) => {
|
|
let newV = +valeurCourante;
|
|
if (newV <= eDevastationValue) { newV = 5; }
|
|
|
|
return accumulateur + newV;
|
|
}, 0);
|
|
}
|
|
}
|
|
|
|
if (isRegularite) {
|
|
regularite = diceJet.reduce((accumulateur, valeurCourante) => {
|
|
const vC = valeurCourante;
|
|
let nV = 0;
|
|
|
|
if (vC === 6) { nV = 3; }
|
|
|
|
return accumulateur + nV;
|
|
}, 0);
|
|
|
|
tDegats += regularite;
|
|
}
|
|
|
|
if (isTenebricide) {
|
|
let limiteD = Math.floor(+diceDegats.length / 2);
|
|
let limiteV = Math.floor(+diceViolence.length / 2);
|
|
|
|
if (limiteD < 1) { limiteD = 1; }
|
|
if (limiteV < 1) { limiteV = 1; }
|
|
|
|
vTDegats = diceDegats.reduce((accumulateur, valeurCourante, index) => {
|
|
let result = +accumulateur;
|
|
|
|
if (index < limiteD) {
|
|
let newV = +valeurCourante;
|
|
|
|
if (conditions.bourreau || conditions.equilibre) {
|
|
if (newV <= 3) { newV = 4; }
|
|
}
|
|
|
|
result += newV;
|
|
}
|
|
|
|
return result;
|
|
}, 0);
|
|
|
|
if (bonusDegats.length !== 0) { vTDegats += bonusDegats.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
|
|
|
|
vTViolence = diceViolence.reduce((accumulateur, valeurCourante, index) => {
|
|
let result = +accumulateur;
|
|
|
|
if (index < limiteV) {
|
|
let newV = +valeurCourante;
|
|
|
|
if (conditions.bourreau || conditions.equilibre) {
|
|
if (newV <= 3) { newV = 4; }
|
|
}
|
|
|
|
result += newV;
|
|
}
|
|
|
|
return result;
|
|
}, 0);
|
|
|
|
if (bonusViolence.length !== 0) { vTViolence += bonusViolence.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
|
|
|
|
if (isMeurtrier) {
|
|
let diceMeurtrier = +tMeurtrier.dice[0];
|
|
|
|
if (conditions.bourreau || conditions.equilibre) {
|
|
if (diceMeurtrier <= 3) { diceMeurtrier = 4; }
|
|
}
|
|
|
|
vTMeurtrier = diceMeurtrier;
|
|
}
|
|
|
|
if (isDestructeur) {
|
|
let diceDestructeur = +tDestructeur.dice[0];
|
|
|
|
if (conditions.bourreau || conditions.equilibre) {
|
|
if (diceDestructeur <= 3) { diceDestructeur = 4; }
|
|
}
|
|
|
|
vTDestructeur = diceDestructeur;
|
|
}
|
|
|
|
if (isCheneSculpte) {
|
|
let diceCheneSculpte = +tCheneSculpte.dice[0];
|
|
|
|
if (conditions.bourreau || conditions.equilibre) {
|
|
if (diceCheneSculpte <= 3) { diceCheneSculpte = 4; }
|
|
}
|
|
|
|
vTCheneSculpte = diceCheneSculpte;
|
|
}
|
|
|
|
if (isFureur) {
|
|
let diceFureur1 = +tFureur.dice[0];
|
|
let diceFureur2 = +tFureur.dice[1];
|
|
|
|
if (conditions.devaste || conditions.equilibre) {
|
|
if (diceFureur1 <= 3) { diceFureur1 = 4; }
|
|
if (diceFureur2 <= 3) { diceFureur2 = 4; }
|
|
}
|
|
|
|
vTFureur = diceFureur1 + diceFureur2;
|
|
}
|
|
|
|
if (isSurprise) {
|
|
let bonusSurprise = +tSurprise.result;
|
|
|
|
if (tSurprise.dice.length !== 0) {
|
|
const dices = tSurprise.dice;
|
|
const limiteS = Math.floor(+dices.length / 2);
|
|
const normalRoll = dices.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante);
|
|
bonusSurprise -= +normalRoll;
|
|
|
|
vTSurprise = dices.reduce((accumulateur, valeurCourante, index) => {
|
|
let result = accumulateur;
|
|
|
|
if (index < limiteS) {
|
|
let newV = +valeurCourante;
|
|
|
|
if (conditions.bourreau || conditions.equilibre) {
|
|
if (newV <= 3) { newV = 4; }
|
|
}
|
|
|
|
result += newV;
|
|
}
|
|
|
|
return result;
|
|
}, 0);
|
|
}
|
|
|
|
vTSurprise += +bonusSurprise;
|
|
}
|
|
|
|
if (isUltraviolence) {
|
|
let diceUltraviolence = +tUltraviolence.dice[0];
|
|
|
|
if (conditions.devaste || conditions.equilibre) {
|
|
if (diceUltraviolence <= 3) { diceUltraviolence = 4; }
|
|
}
|
|
|
|
vTUltraviolence = diceUltraviolence;
|
|
}
|
|
}
|
|
|
|
const computed = {
|
|
jet: tJet,
|
|
basejet: baseJet,
|
|
degats: tDegats,
|
|
violence: tViolence,
|
|
tenebricideValueD: vTDegats,
|
|
tenebricideValueV: vTViolence,
|
|
tenebricideASValue: vTSurprise,
|
|
destructeurValue: hDestructeur,
|
|
fureurValue: hFureur,
|
|
meurtrierValue: hMeurtrier,
|
|
attaqueSurpriseValue: hSurprise,
|
|
ultraviolenceValue: hUltraviolence,
|
|
armeAzurineValueD: hArmeAzurineValueD,
|
|
armeAzurineValueV: hArmeAzurineValueV,
|
|
armeRougeSangValueD: hArmeRougeSangValueD,
|
|
armeRougeSangValueV: hArmeRougeSangValueV,
|
|
cheneSculpteValue: hCheneSculpte,
|
|
griffuresGraveesValueD: hGriffuresGraveesValueD,
|
|
griffuresGraveesValueV: hGriffuresGraveesValueV,
|
|
masqueBriseValueD: hMasqueBriseValueD,
|
|
masqueBriseValueV: hMasqueBriseValueV,
|
|
rouagesCassesValueD: hRouagesCassesValueD,
|
|
rouagesCassesValueV: hRouagesCassesValueV,
|
|
tDestructeurValue: vTDestructeur,
|
|
tFureurValue: vTFureur,
|
|
tMeurtrierValue: vTMeurtrier,
|
|
tUltraviolenceValue: vTUltraviolence,
|
|
tCheneSculpteValue: vTCheneSculpte,
|
|
vRegularite: regularite,
|
|
pointeurLaserValue: hPointeurLaser,
|
|
};
|
|
|
|
return computed;
|
|
}
|