diff --git a/Taverne Ecarlate/roll_attibute_flat.js b/Taverne Ecarlate/roll_attribute_flat.js similarity index 100% rename from Taverne Ecarlate/roll_attibute_flat.js rename to Taverne Ecarlate/roll_attribute_flat.js diff --git a/Taverne Ecarlate/roll_mastery.js b/Taverne Ecarlate/roll_mastery.js new file mode 100644 index 0000000..d302c7c --- /dev/null +++ b/Taverne Ecarlate/roll_mastery.js @@ -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 = '

' + localVars.displineTitle + '

'; + +const comparator = '

Seuil de réussite complète :
' ++ localVars.stat + ' (attribut) + ' ++ localVars.mastery + ' (maîtrise) + ' ++ localVars.mod + ' (mod.) - 30 = ' + localVars.fullSuccessThreshold + '

' ++ '

Seuil de réussite partielle :
' ++ localVars.stat + ' (attribut) + ' ++ localVars.mastery + ' (maîtrise) + ' ++ localVars.mod + ' (mod.) = ' + localVars.partialSuccessThreshold + '

'; + +if (localVars.isFullSuccess) { + return preffix + '

Réussite Totale

' + + '

Vous avez réussi votre action de manière exceptionnelle !

' + + '

' + localVars.roll + ' <= ' + localVars.fullSuccessThreshold + '

' + comparator; +} + +else if (localVars.isPartialSuccess) { + return preffix + '

Réussite Partielle

' + + '

Vous avez réussi votre action, mais avec quelques complications.

' + + '

' + localVars.roll + ' <= ' + localVars.partialSuccessThreshold + '

' + comparator; +} + +else if (localVars.isFailure) { + return preffix + '

Échec

' + + '

Vous avez échoué votre action.

' + + '

' + localVars.roll + ' > ' + localVars.partialSuccessThreshold + '

' + comparator; +} +}% diff --git a/Taverne Ecarlate/roll_moves.js b/Taverne Ecarlate/roll_moves.js new file mode 100644 index 0000000..ac00eee --- /dev/null +++ b/Taverne Ecarlate/roll_moves.js @@ -0,0 +1,60 @@ +%{ + + const indexRow = +${sameRowIndex()}$ + + localVars.statToSelect = ${sameRow('movesAttribute')}$ + localVars.mod = +${?{Modificateur|0}}$ + localVars.roll = ${[1d100]}$ + console.log(entity.system.props.movesTable[indexRow]) + localVars.moveName = entity.system.props.movesTable[indexRow].nameMoves + + +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.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 = '

' + localVars.moveName + '

'; + +const comparator = '

Seuil de réussite complète :
' ++ localVars.stat + ' (attribut) + ' ++ localVars.mod + ' (mod.) - 30 = ' + localVars.fullSuccessThreshold + '

' ++ '

Seuil de réussite partielle :
' ++ localVars.stat + ' (attribut) + ' ++ localVars.mod + ' (mod.) = ' + localVars.partialSuccessThreshold + '

'; + +if (localVars.isFullSuccess) { + return preffix + '

Réussite Totale

' + + '

Vous avez réussi votre action de manière exceptionnelle !

' + + '

' + localVars.roll + ' <= ' + localVars.fullSuccessThreshold + '

' + comparator; +} + +else if (localVars.isPartialSuccess) { + return preffix + '

Réussite Partielle

' + + '

Vous avez réussi votre action, mais avec quelques complications.

' + + '

' + localVars.roll + ' <= ' + localVars.partialSuccessThreshold + '

' + comparator; +} + +else if (localVars.isFailure) { + return preffix + '

Échec

' + + '

Vous avez échoué votre action.

' + + '

' + localVars.roll + ' > ' + localVars.partialSuccessThreshold + '

' + comparator; +} +}%