diff --git a/app.js b/app.js index 438977c..31c16c3 100644 --- a/app.js +++ b/app.js @@ -673,6 +673,18 @@ function countActiveEffects() { return state.pieces.reduce((count, piece) => count + (piece.effects || []).filter((effect) => effect.type).length, 0); } +function summarizeCurrentEffects() { + const summary = Object.fromEntries(EFFECTS.map((effect) => [effect.id, { count: 0, total: 0 }])); + for (const piece of state.pieces) { + for (const effect of piece.effects || []) { + if (!effect.type) continue; + summary[effect.type].count += 1; + summary[effect.type].total += clampEffectValue(effect.type, Number(effect.value)); + } + } + return summary; +} + function createEmptyEffectTotals() { return Object.fromEntries(EFFECTS.map((effect) => [effect.id, 0])); } @@ -715,10 +727,21 @@ function formatOptimalSuggestion(counts) { .join(", "); } +function formatCurrentEffectAverages(summary) { + return Object.entries(summary) + .filter(([, data]) => data.count > 0) + .map(([effectId, data]) => { + const effect = effectById(effectId); + return `${data.count}x avg ${fmt(data.total / data.count)}% ${effect.label.toLowerCase()}`; + }) + .join(", "); +} + function renderOptimalDamageSetup(totals, currentDps) { const effectCount = countActiveEffects(); const optimum = findOptimalDamageSetup(totals, effectCount, state.combatStyle); const delta = percentChange(currentDps, optimum.dps); + const currentEffectSummary = summarizeCurrentEffects(); $("#optimumEffectCount").textContent = `${effectCount} effect${effectCount === 1 ? "" : "s"}`; $("#optimumDps").textContent = fmt(optimum.dps); @@ -727,6 +750,9 @@ function renderOptimalDamageSetup(totals, currentDps) { $("#optimumSuggestion").textContent = effectCount ? formatOptimalSuggestion(optimum.counts) : "Add effects to your current build to see an optimized max-roll damage mix."; + $("#currentEffectAverages").textContent = effectCount + ? formatCurrentEffectAverages(currentEffectSummary) + : "No current effects entered."; } function updateEffectImpactHints(totals, currentDps) { diff --git a/index.html b/index.html index 49a1b25..fe9bc10 100644 --- a/index.html +++ b/index.html @@ -100,6 +100,10 @@