Add Serrated & Self-Correcting

This commit is contained in:
Dapoolp 2025-08-09 14:32:52 +02:00
parent bf74596389
commit 4bbf1a82d2
6 changed files with 80 additions and 40 deletions

View file

@ -172,6 +172,26 @@ Roll.replaceFormulaData = function (formula, data = {}, { missing, warn = false
return nativeReplaceFormulaData(formula, data, { missing, warn });
};
foundry.dice.terms.Die.MODIFIERS.sc = "selfCorrecting";
/**
* Return the configured value as result if 1 is rolled
* Example: 6d6sc6 Roll 6d6, each result of 1 will be changed into 6
* @param {string} modifier The matched modifier query
*/
foundry.dice.terms.Die.prototype.selfCorrecting = function(modifier) {
const rgx = /(?:sc)([0-9]+)/i;
const match = modifier.match(rgx);
if ( !match ) return false;
let [target] = match.slice(1);
target = parseInt(target);
for ( const r of this.results ) {
if ( r.result === 1 ) {
r.result = target;
}
}
}
export const getDamageKey = damage => {
return ['none', 'minor', 'major', 'severe'][damage];
};