diff --git a/src/artigen/cmdTokenizer.ts b/src/artigen/cmdTokenizer.ts index 6cd97d3..f285f44 100644 --- a/src/artigen/cmdTokenizer.ts +++ b/src/artigen/cmdTokenizer.ts @@ -107,7 +107,7 @@ export const tokenizeCmd = ( if (modifiers.simulatedNominal) { loggingEnabled && log(LT.LOG, `SN on, condensing array into single item ${JSON.stringify(simulatedData)}`); returnData.push({ - rollTotal: simulatedData.map((data) => data.rollTotal).reduce(basicReducer) / simulatedData.length, + rollTotal: simulatedData.map((data) => data.rollTotal).reduce(basicReducer, 0) / simulatedData.length, rollPreFormat: simulatedData[0].rollPreFormat, rollPostFormat: simulatedData[0].rollPostFormat, rollDetails: simulatedData[0].rollDetails, diff --git a/src/artigen/dice/groupHandler.ts b/src/artigen/dice/groupHandler.ts index 8eb16ef..83968ac 100644 --- a/src/artigen/dice/groupHandler.ts +++ b/src/artigen/dice/groupHandler.ts @@ -163,17 +163,30 @@ export const handleGroup = ( }); } + loggingEnabled && log(LT.LOG, `Current Group Results: ${JSON.stringify(groupResults)}`); loggingEnabled && log(LT.LOG, `Applying group flags: ${JSON.stringify(resultFlags)}`); - const data = groupResults.reduce((prev, cur, idx) => ({ - rollTotal: resultFlags[idx].dropped ? prev.rollTotal : prev.rollTotal + cur.rollTotal, - rollPreFormat: '', - rollPostFormat: '', - rollDetails: `${prev.rollDetails}, ${applyFlags(cur.rollDetails, resultFlags[idx])}`, - containsCrit: resultFlags[idx].dropped ? prev.containsCrit : prev.containsCrit || cur.containsCrit, - containsFail: resultFlags[idx].dropped ? prev.containsFail : prev.containsFail || cur.containsFail, - initConfig: `${prev.initConfig}, ${cur.initConfig}`, - isComplex: prev.isComplex || cur.isComplex, - })); + const data = groupResults.reduce( + (prev, cur, idx) => ({ + rollTotal: resultFlags[idx].dropped ? prev.rollTotal : prev.rollTotal + cur.rollTotal, + rollPreFormat: '', + rollPostFormat: '', + rollDetails: `${prev.rollDetails}, ${applyFlags(cur.rollDetails, resultFlags[idx])}`, + containsCrit: resultFlags[idx].dropped ? prev.containsCrit : prev.containsCrit || cur.containsCrit, + containsFail: resultFlags[idx].dropped ? prev.containsFail : prev.containsFail || cur.containsFail, + initConfig: `${prev.initConfig}, ${cur.initConfig}`, + isComplex: prev.isComplex || cur.isComplex, + }), + { + rollTotal: 0, + rollPreFormat: '', + rollPostFormat: '', + rollDetails: '', + containsCrit: false, + containsFail: false, + initConfig: '', + isComplex: false, + }, + ); data.initConfig = `{${data.initConfig}}${groupModifiers.replaceAll(' ', '')}`; if (groupConf.success.on || groupConf.fail.on) { @@ -192,16 +205,28 @@ export const handleGroup = ( retData = data; } else { // Sum mode - const data = groupResults.reduce((prev, cur) => ({ - rollTotal: prev.rollTotal + cur.rollTotal, - rollPreFormat: '', - rollPostFormat: '', - rollDetails: `${prev.rollDetails} + ${cur.rollDetails}`, - containsCrit: prev.containsCrit || cur.containsCrit, - containsFail: prev.containsFail || cur.containsFail, - initConfig: `${prev.initConfig}, ${cur.initConfig}`, - isComplex: prev.isComplex || cur.isComplex, - })); + const data = groupResults.reduce( + (prev, cur) => ({ + rollTotal: prev.rollTotal + cur.rollTotal, + rollPreFormat: '', + rollPostFormat: '', + rollDetails: `${prev.rollDetails} + ${cur.rollDetails}`, + containsCrit: prev.containsCrit || cur.containsCrit, + containsFail: prev.containsFail || cur.containsFail, + initConfig: `${prev.initConfig}, ${cur.initConfig}`, + isComplex: prev.isComplex || cur.isComplex, + }), + { + rollTotal: 0, + rollPreFormat: '', + rollPostFormat: '', + rollDetails: '', + containsCrit: false, + containsFail: false, + initConfig: '', + isComplex: false, + }, + ); data.initConfig = `{${data.initConfig}}`; data.rollDetails = `{${data.rollDetails}}`; retData = data; diff --git a/src/artigen/managers/handler/workerComplete.ts b/src/artigen/managers/handler/workerComplete.ts index 160da87..ad69c55 100644 --- a/src/artigen/managers/handler/workerComplete.ts +++ b/src/artigen/managers/handler/workerComplete.ts @@ -173,7 +173,7 @@ export const onWorkerComplete = async (workerMessage: MessageEvent, }, ]; - if (pubAttachments.map((file) => file.blob.size).reduce(basicReducer) < config.maxFileSize) { + if (pubAttachments.map((file) => file.blob.size).reduce(basicReducer, 0) < config.maxFileSize) { // All attachments will fit in one message newMsg.reply({ embeds: respMessage, diff --git a/src/artigen/utils/embeds.ts b/src/artigen/utils/embeds.ts index 7abae4c..cd09ad1 100644 --- a/src/artigen/utils/embeds.ts +++ b/src/artigen/utils/embeds.ts @@ -84,7 +84,7 @@ export const generateCountDetailsEmbed = (counts: CountDetails): ArtigenEmbedNoA ]; return { - charCount: title.length + fields.map((field) => field.name.length + field.value.length).reduce(basicReducer), + charCount: title.length + fields.map((field) => field.name.length + field.value.length).reduce(basicReducer, 0), embed: { color: infoColor1, title, @@ -115,7 +115,7 @@ export const generateRollDistsEmbed = (rollDists: RollDistributionMap): ArtigenE .toArray() .slice(0, 25) .map(([key, distArr]) => { - const total = distArr.reduce(basicReducer); + const total = distArr.reduce(basicReducer, 0); return { name: `${getDistName(key)} (Total rolls: ${total}):`, value: distArr.map((cnt, dieIdx) => `${key.startsWith('fate') ? dieIdx - 1 : dieIdx + 1}: ${cnt} (${((cnt / total) * 100).toFixed(1)}%)`).join('\n'), @@ -124,7 +124,7 @@ export const generateRollDistsEmbed = (rollDists: RollDistributionMap): ArtigenE }); const rollDistTitle = 'Roll Distributions:'; - const totalSize = fields.map((field) => field.name.length + field.value.length).reduce(basicReducer); + const totalSize = fields.map((field) => field.name.length + field.value.length).reduce(basicReducer, 0); if (totalSize > 4000 || fields.some((field) => field.name.length > 256 || field.value.length > 1024)) { const rollDistBlob = new Blob([fields.map((field) => `# ${field.name}\n${field.value}`).join('\n\n') as BlobPart], { type: 'text' }); if (rollDistBlob.size > config.maxFileSize) {