62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
%{
|
|
|
|
const indexRow = +${sameRowIndex()}$
|
|
|
|
localVars.statToSelect = ${sameRow('disciplineStat')}$;
|
|
localVars.mastery = +${sameRow('disciplineMastery', -25)}$;
|
|
localVars.mod = +${?{Modificateur|0}}$
|
|
localVars.roll = ${[1d100]}$;
|
|
localVars.displineTitle = entity.system.props.masteriesTable[indexRow].disciplineTitle
|
|
|
|
if(!localVars.statToSelect || localVars.statToSelect === 0) {
|
|
localVars.stat = +entity.system.props.physique;
|
|
}
|
|
|
|
if(localVars.statToSelect === 1) {
|
|
localVars.stat = +entity.system.props.social;
|
|
}
|
|
|
|
if(localVars.statToSelect === 2) {
|
|
localVars.stat = +entity.system.props.mental;
|
|
}
|
|
|
|
|
|
const clamp = (value) => Math.min(85, Math.max(15, value));
|
|
localVars.partialSuccessThreshold = clamp(localVars.stat + localVars.mastery + localVars.mod);
|
|
localVars.fullSuccessThreshold = clamp(localVars.partialSuccessThreshold - 30);
|
|
|
|
localVars.isFullSuccess = localVars.roll <= localVars.fullSuccessThreshold;
|
|
localVars.isPartialSuccess = localVars.roll <= localVars.partialSuccessThreshold;
|
|
localVars.isFailure = localVars.roll > localVars.partialSuccessThreshold;
|
|
|
|
|
|
const preffix = '<p>' + localVars.displineTitle + '</p>';
|
|
|
|
const comparator = '<p>Seuil de réussite complète :</br>'
|
|
+ localVars.stat + ' (attribut) + '
|
|
+ localVars.mastery + ' (maîtrise) + '
|
|
+ localVars.mod + ' (mod.) - 30 = ' + localVars.fullSuccessThreshold + '</p>'
|
|
+ '<p>Seuil de réussite partielle :</br>'
|
|
+ localVars.stat + ' (attribut) + '
|
|
+ localVars.mastery + ' (maîtrise) + '
|
|
+ localVars.mod + ' (mod.) = ' + localVars.partialSuccessThreshold + '</p>';
|
|
|
|
if (localVars.isFullSuccess) {
|
|
return preffix + '<p>Réussite Totale</p>'
|
|
+ ' <p>Vous avez réussi votre action de manière exceptionnelle !</p>'
|
|
+ ' <p>' + localVars.roll + ' <= ' + localVars.fullSuccessThreshold + '</p>' + comparator;
|
|
}
|
|
|
|
else if (localVars.isPartialSuccess) {
|
|
return preffix + '<p>Réussite Partielle</p>'
|
|
+ ' <p>Vous avez réussi votre action, mais avec quelques complications.</p>'
|
|
+ ' <p>' + localVars.roll + ' <= ' + localVars.partialSuccessThreshold + '</p>' + comparator;
|
|
}
|
|
|
|
else if (localVars.isFailure) {
|
|
return preffix + '<p>Échec</p>'
|
|
+ ' <p>Vous avez échoué votre action.</p>'
|
|
+ ' <p>' + localVars.roll + ' > ' + localVars.partialSuccessThreshold + '</p>' + comparator;
|
|
}
|
|
}%
|