32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
%{
|
|
const clamp = (value) => Math.min(85, Math.max(15, value));
|
|
|
|
localVars.mod = +${?{Modificateur|0}}$
|
|
localVars.physique = +entity.system.props.physique;
|
|
localVars.roll = ${[1d100]}$;
|
|
|
|
|
|
localVars.statWithMod = clamp(localVars.physique + localVars.mod);
|
|
|
|
localVars.isFullSuccess = localVars.roll <= clamp(localVars.statWithMod - 30);
|
|
localVars.isPartialSuccess = localVars.roll <= localVars.statWithMod;
|
|
localVars.isFailure = localVars.roll > localVars.statWithMod;
|
|
|
|
if (localVars.isFullSuccess) {
|
|
return '<p>Réussite Totale</p>'
|
|
+ ' <p>Vous avez réussi votre action de manière exceptionnelle !</p>'
|
|
+ ' <p>' + localVars.roll + ' <= ' + clamp(localVars.statWithMod - 30) + '</p>';
|
|
}
|
|
|
|
else if (localVars.isPartialSuccess) {
|
|
return '<p>Réussite Partielle</p>'
|
|
+ ' <p>Vous avez réussi votre action, mais avec quelques complications.</p>'
|
|
+ ' <p>' + localVars.roll + ' <= ' + localVars.statWithMod + '</p>';
|
|
}
|
|
|
|
else if (localVars.isFailure) {
|
|
return '<p>Échec</p>'
|
|
+ ' <p>Vous avez échoué votre action.</p>'
|
|
+ ' <p>' + localVars.roll + ' > ' + localVars.statWithMod + '</p>';
|
|
}
|
|
}% |