From 370f8001b81e2b728e9df21f6ec91171d4cd6e62 Mon Sep 17 00:00:00 2001 From: b Date: Thu, 11 Feb 2021 13:07:43 -0600 Subject: [PATCH] Multiplicative str/dex --- damage_calc.js | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/damage_calc.js b/damage_calc.js index bd225ee..c87b0f6 100644 --- a/damage_calc.js +++ b/damage_calc.js @@ -90,7 +90,8 @@ function calculateSpellDamage(stats, spellConversions, rawModifier, pctModifier, let damages_results = []; // 0th skillpoint is strength, 1st is dex. let str = total_skillpoints[0]; - let staticBoost = (pctModifier / 100.) + skillPointsToPercentage(str); + let strBoost = skillPointsToPercentage(str); + let staticBoost = (pctModifier / 100.);// + skillPointsToPercentage(str); let skillBoost = [0]; for (let i in total_skillpoints) { skillBoost.push(skillPointsToPercentage(total_skillpoints[i]) + buildStats.get("damageBonus")[i] / 100.); @@ -99,10 +100,14 @@ function calculateSpellDamage(stats, spellConversions, rawModifier, pctModifier, for (let i in damages) { let damageBoost = 1 + skillBoost[i] + staticBoost; damages_results.push([ - Math.max(damages[i][0] * Math.max(damageBoost,0) * damageMult, 0), // Normal min - Math.max(damages[i][1] * Math.max(damageBoost,0) * damageMult, 0), // Normal max - Math.max(damages[i][0] * Math.max(1 + damageBoost, 0) * damageMult, 0), // Crit min - Math.max(damages[i][1] * Math.max(1 + damageBoost, 0) * damageMult, 0), // Crit max + Math.max(damages[i][0] * strBoost * Math.max(damageBoost,0) * damageMult, 0), // Normal min + Math.max(damages[i][1] * strBoost * Math.max(damageBoost,0) * damageMult, 0), // Normal max + Math.max(damages[i][0] * strBoost * 2 * Math.max(damageBoost,0) * damageMult, 0), // Crit min + Math.max(damages[i][1] * strBoost * 2 * Math.max(damageBoost,0) * damageMult, 0), // Crit max + //Math.max(damages[i][0] * Math.max(damageBoost,0) * damageMult, 0), // Normal min + //Math.max(damages[i][1] * Math.max(damageBoost,0) * damageMult, 0), // Normal max + //Math.max(damages[i][0] * Math.max(1 + damageBoost, 0) * damageMult, 0), // Crit min + //Math.max(damages[i][1] * Math.max(1 + damageBoost, 0) * damageMult, 0), // Crit max ]); totalDamNorm[0] += damages_results[i][0]; totalDamNorm[1] += damages_results[i][1]; @@ -110,15 +115,23 @@ function calculateSpellDamage(stats, spellConversions, rawModifier, pctModifier, totalDamCrit[1] += damages_results[i][3]; } if (melee) { - totalDamNorm[0] += Math.max(rawModifier, -damages_results[0][0]); - totalDamNorm[1] += Math.max(rawModifier, -damages_results[0][1]); - totalDamCrit[0] += Math.max(rawModifier, -damages_results[0][2]); - totalDamCrit[1] += Math.max(rawModifier, -damages_results[0][3]); + totalDamNorm[0] += Math.max(rawModifier, -strBoost*damages_results[0][0]); + totalDamNorm[1] += Math.max(rawModifier, -strBoost*damages_results[0][1]); + totalDamCrit[0] += Math.max(rawModifier, -strBoost*2*damages_results[0][2]); + totalDamCrit[1] += Math.max(rawModifier, -strBoost*2*damages_results[0][3]); + //totalDamNorm[0] += Math.max(rawModifier, -damages_results[0][0]); + //totalDamNorm[1] += Math.max(rawModifier, -damages_results[0][1]); + //totalDamCrit[0] += Math.max(rawModifier, -damages_results[0][2]); + //totalDamCrit[1] += Math.max(rawModifier, -damages_results[0][3]); } damages_results[0][0] += rawModifier; damages_results[0][1] += rawModifier; - damages_results[0][2] += rawModifier; - damages_results[0][3] += rawModifier; + damages_results[0][2] += 2*rawModifier; + damages_results[0][3] += 2*rawModifier; + //damages_results[0][0] += rawModifier; + //damages_results[0][1] += rawModifier; + //damages_results[0][2] += rawModifier; + //damages_results[0][3] += rawModifier; if (totalDamNorm[0] < 0) totalDamNorm[0] = 0; if (totalDamNorm[1] < 0) totalDamNorm[1] = 0;