44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
%{
|
|
|
|
const indexRow = +${sameRowIndex()}$
|
|
|
|
localVars.statToSelect = ${sameRow('movesAttribute')}$
|
|
localVars.mod = +${?{Modificateur|0}}$
|
|
localVars.roll = ${[1d100]}$
|
|
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;
|
|
|
|
|
|
let resultType = ""
|
|
if (localVars.isFullSuccess) resultType = "FullSuccess"
|
|
else if (localVars.isPartialSuccess) resultType = "PartialSuccess"
|
|
else if (localVars.isFailure) resultType = "Failure"
|
|
|
|
await game.macros.getName("sendMessageMoves").execute({
|
|
name: localVars.moveName,
|
|
resultType: resultType,
|
|
roll: localVars.roll,
|
|
threshold: localVars.fullSuccessThreshold
|
|
})
|
|
}% |