Skip to content

Instantly share code, notes, and snippets.

@Kurohyou
Forked from lord-xaphan/diceRollerSendChat.js
Last active November 6, 2018 03:40
Show Gist options
  • Save Kurohyou/f0b8bdeff3ad780927fbf86bbb7768e6 to your computer and use it in GitHub Desktop.
Save Kurohyou/f0b8bdeff3ad780927fbf86bbb7768e6 to your computer and use it in GitHub Desktop.
on('ready', async function(){
'use strict';
var diceResults = await diceAction(8,7,true);
var actionResult = diceResults.RollResult;
var damage = diceResults.DamageResult;
sendChat("","New Result");
sendChat("","Action Result: "+actionResult);
sendChat("","Damage Result: "+damage);
function async diceAction(nDice,targetNumber,damageFlag){
var diceCounter = nDice;
var actionTotal = 0;
var diceResults ="";
var rollFinal = {};
//var damageResult = "";
//var contentArray = "";
while (diceCounter>0){
let rollOnce = await new Promise((resolve,reject)=>{
sendChat("", "/r "+diceCounter+"d10>"+targetNumber, function(obs){
resolve(objs);
});
}),
contentArray = JSON.parse(rollOnce.content);
diceCounter = contentArray.total;
diceResults = parseRollArray(contentArray.rolls[0].results);
actionTotal += 10;
};
actionTotal += Math.max(diceResults);
if (damageFlag){
var damageDice = Math.floor(actionTotal/10 %10);
let rollDamage = await new Promise((resolve,reject)=>{
sendChat('','/roll '+damageDice+'d10',function(obs){
resolve(obs[0]);
});
});
var contentDamage = JSON.parse(rollDamage.content);
var damageResult = contentDamage.total;
};
diceResults.RollResult = actionTotal;
diceResults.DamageResult = damageResult;
return diceResults;
}
function parseRollArray(resultsArray){
var i;
var simpleArray=[];
for(i =0; i<resultsArray.length;i++){
simpleArray.push(resultsArray[i].v);
}
return simpleArray;
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment