diff --git a/src/Classes/ModStore.lua b/src/Classes/ModStore.lua index fe21a3cecf..f0ed21a29d 100644 --- a/src/Classes/ModStore.lua +++ b/src/Classes/ModStore.lua @@ -453,6 +453,9 @@ function ModStoreClass:EvalMod(mod, cfg) end local percent = tag.percent or self:GetMultiplier(tag.percentVar, cfg) local mult = base * (percent and percent / 100 or 1) + if tag.floor then + mult = m_floor(mult) + end local limitTotal if tag.limit or tag.limitVar then local limit = tag.limit or self:GetMultiplier(tag.limitVar, cfg) diff --git a/src/Data/Skills/sup_int.lua b/src/Data/Skills/sup_int.lua index 1731c0c2f7..36978b63fb 100644 --- a/src/Data/Skills/sup_int.lua +++ b/src/Data/Skills/sup_int.lua @@ -119,8 +119,20 @@ skills["SupportAmbrosiaPlayer"] = { label = "Ambrosia", incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "gem_stat_descriptions", + statMap = { + ["consume_%_of_maximum_mana_flask_charges_on_skill_use"] = { + mod("Multiplier:ManaFlaskMaxChargesPercent", "BASE", nil), + }, + ["gain_%_damage_as_lighting_per_mana_flask_charge_consumed"] = { + mod("DamageGainAsLightning", "BASE", nil, 0, 0, { type = "Multiplier", var = "ManaFlaskChargeConsumed"}), + }, + }, baseFlags = { }, + baseMods = { + mod("Multiplier:ManaFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "ManaFlask1MaxCharges", percentVar = "ManaFlaskMaxChargesPercent", floor = true }), + mod("Multiplier:ManaFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "ManaFlask2MaxCharges", percentVar = "ManaFlaskMaxChargesPercent", floor = true }), + }, constantStats = { { "consume_%_of_maximum_mana_flask_charges_on_skill_use", 20 }, { "gain_%_damage_as_lighting_per_mana_flask_charge_consumed", 3 }, diff --git a/src/Data/Skills/sup_str.lua b/src/Data/Skills/sup_str.lua index bc89520ace..dbda8c951f 100644 --- a/src/Data/Skills/sup_str.lua +++ b/src/Data/Skills/sup_str.lua @@ -607,15 +607,19 @@ skills["SupportConcoctPlayer"] = { incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "gem_stat_descriptions", statMap = { - ["support_concoct_bleed_effect_+%_final_per_life_flask_charge_consumed"] = { - mod("AilmentMagnitude", "MORE", nil, 0, KeywordFlag.Bleed, { type = "Multiplier", var = "LifeFlaskChargesUsed"}), - }, ["consume_%_of_maximum_life_flask_charges_on_skill_use"] = { - -- Display only + mod("Multiplier:LifeFlaskMaxChargesPercent", "BASE", nil), + }, + ["support_concoct_bleed_effect_+%_final_per_life_flask_charge_consumed"] = { + mod("AilmentMagnitude", "MORE", nil, 0, KeywordFlag.Bleed, { type = "Multiplier", var = "LifeFlaskChargeConsumed"}), }, }, baseFlags = { }, + baseMods = { + mod("Multiplier:LifeFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "LifeFlask1MaxCharges", percentVar = "LifeFlaskMaxChargesPercent", floor = true }), + mod("Multiplier:LifeFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "LifeFlask2MaxCharges", percentVar = "LifeFlaskMaxChargesPercent", floor = true }), + }, constantStats = { { "consume_%_of_maximum_life_flask_charges_on_skill_use", 20 }, { "support_concoct_bleed_effect_+%_final_per_life_flask_charge_consumed", 3 }, diff --git a/src/Export/Skills/sup_int.txt b/src/Export/Skills/sup_int.txt index d0c14a8c23..b783386e5a 100644 --- a/src/Export/Skills/sup_int.txt +++ b/src/Export/Skills/sup_int.txt @@ -27,6 +27,16 @@ statMap = { #skill SupportAmbrosiaPlayer #set SupportAmbrosiaPlayer +statMap = { + ["consume_%_of_maximum_mana_flask_charges_on_skill_use"] = { + mod("Multiplier:ManaFlaskMaxChargesPercent", "BASE", nil), + }, + ["gain_%_damage_as_lighting_per_mana_flask_charge_consumed"] = { + mod("DamageGainAsLightning", "BASE", nil, 0, 0, { type = "Multiplier", var = "ManaFlaskChargeConsumed"}), + }, +}, +#baseMod mod("Multiplier:ManaFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "ManaFlask1MaxCharges", percentVar = "ManaFlaskMaxChargesPercent", floor = true }) +#baseMod mod("Multiplier:ManaFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "ManaFlask2MaxCharges", percentVar = "ManaFlaskMaxChargesPercent", floor = true }) #mods #skillEnd diff --git a/src/Export/Skills/sup_str.txt b/src/Export/Skills/sup_str.txt index d05cc8baaa..9528d666ea 100644 --- a/src/Export/Skills/sup_str.txt +++ b/src/Export/Skills/sup_str.txt @@ -131,13 +131,15 @@ statMap = { #skill SupportConcoctPlayer #set SupportConcoctPlayer statMap = { - ["support_concoct_bleed_effect_+%_final_per_life_flask_charge_consumed"] = { - mod("AilmentMagnitude", "MORE", nil, 0, KeywordFlag.Bleed, { type = "Multiplier", var = "LifeFlaskChargesUsed"}), - }, ["consume_%_of_maximum_life_flask_charges_on_skill_use"] = { - -- Display only + mod("Multiplier:LifeFlaskMaxChargesPercent", "BASE", nil), + }, + ["support_concoct_bleed_effect_+%_final_per_life_flask_charge_consumed"] = { + mod("AilmentMagnitude", "MORE", nil, 0, KeywordFlag.Bleed, { type = "Multiplier", var = "LifeFlaskChargeConsumed"}), }, }, +#baseMod mod("Multiplier:LifeFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "LifeFlask1MaxCharges", percentVar = "LifeFlaskMaxChargesPercent", floor = true }) +#baseMod mod("Multiplier:LifeFlaskChargeConsumed", "BASE", 1, 0, 0, { type = "PercentStat", stat = "LifeFlask2MaxCharges", percentVar = "LifeFlaskMaxChargesPercent", floor = true }) #mods #skillEnd diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index 3b1a1f280a..fb73a4bcc3 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -571,6 +571,10 @@ function calcs.offence(env, actor, activeSkill) -- set flask scaling output.LifeFlaskRecovery = env.itemModDB.multipliers["LifeFlaskRecovery"] + output.LifeFlask1MaxCharges = env.itemModDB.multipliers["LifeFlask1MaxCharges"] + output.LifeFlask2MaxCharges = env.itemModDB.multipliers["LifeFlask2MaxCharges"] + output.ManaFlask1MaxCharges = env.itemModDB.multipliers["ManaFlask1MaxCharges"] + output.ManaFlask2MaxCharges = env.itemModDB.multipliers["ManaFlask2MaxCharges"] if modDB.conditions["AffectedByEnergyBlade"] then local dmgMod = calcLib.mod(skillModList, skillCfg, "EnergyBladeDamage") diff --git a/src/Modules/CalcSetup.lua b/src/Modules/CalcSetup.lua index 57e00ad233..6616314dc2 100644 --- a/src/Modules/CalcSetup.lua +++ b/src/Modules/CalcSetup.lua @@ -906,7 +906,7 @@ function calcs.initEnv(build, mode, override, specEnv) items[slot] = nil end end - + for _, slot in pairs(build.itemsTab.orderedSlots) do local slotName = slot.slotName local item = items[slotName] @@ -920,6 +920,7 @@ function calcs.initEnv(build, mode, override, specEnv) env.itemModDB.multipliers["LifeFlaskRecovery"] = item.flaskData.lifeTotal end end + env.itemModDB.multipliers[item.base.subType..slotName:gsub(" ", "").."MaxCharges"] = item.flaskData.chargesMax item = nil elseif item and item.type == "Charm" then if slot.active then diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index b3fa37cf9f..c3f2042d5a 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -288,10 +288,6 @@ local configSettings = { { var = "ColdSnapBypassCD", type = "check", label = "Bypass CD?", ifSkill = "Cold Snap", includeTransfigured = true, apply = function(val, modList, enemyModList) modList:NewMod("CooldownRecovery", "OVERRIDE", 0, "Config", { type = "SkillName", skillName = "Cold Snap", includeTransfigured = true }) end }, - { label = "Concoct:", ifSkill = "Concoct" }, - { var = "concoctLifeFlaskChargesUsed", type = "count", label = "# of Life Flask charges used:", ifSkill = "Concoct", apply = function(val, modList, enemyModList) - modList:NewMod("Multiplier:LifeFlaskChargesUsed", "BASE", val, "Config") - end }, { label = "Consecrated Path of Endurance:", ifSkill = "Consecrated Path of Endurance" }, { var = "ConcPathBypassCD", type = "check", label = "Bypass CD?", ifSkill = "Consecrated Path of Endurance", defaultState = true, apply = function(val, modList, enemyModList) modList:NewMod("CooldownRecovery", "OVERRIDE", 0, "Config", { type = "SkillName", skillName = "Consecrated Path of Endurance" })