V0.1 rolls

This commit is contained in:
myryos
2026-05-10 16:09:41 +02:00
parent 0f5cae7c7c
commit 299af00e92
3 changed files with 121 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
%{
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;
}
}%