V0.1 rolls
This commit is contained in:
61
Taverne Ecarlate/roll_mastery.js
Normal file
61
Taverne Ecarlate/roll_mastery.js
Normal 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;
|
||||
}
|
||||
}%
|
||||
Reference in New Issue
Block a user