import { log, LogTypes as LT } from '@Log4Deno'; import { RollConf, RollSet } from 'artigen/dice/dice.d.ts'; import { getLoopCount, loopCountCheck } from 'artigen/managers/loopManager.ts'; import { loggingEnabled } from 'artigen/utils/logFlag.ts'; // Can either count or sum each die export const generateRollVals = (rollConf: RollConf, rollSet: RollSet[], rollStr: string, count: boolean): Array => { const rollVals = new Array(rollConf.dieSize).fill(0); // Count up all rolls for (const ovaRoll of rollSet) { loopCountCheck(); loggingEnabled && log(LT.LOG, `${getLoopCount()} Handling ${rollConf.type} ${rollStr} | incrementing rollVals for ${JSON.stringify(ovaRoll)}`); if (!ovaRoll.dropped && !ovaRoll.rerolled) { rollVals[ovaRoll.roll - 1] += count ? 1 : ovaRoll.roll; } } loggingEnabled && log(LT.LOG, `${getLoopCount()} Handling ${rollConf.type} ${rollStr} | rollVals ${rollVals}`); return rollVals; };