%{ 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 }) }%