Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Data/ModCache.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9949,7 +9949,7 @@ c["Non-Aura Curses you inflict are not removed from Dying Enemies Enemies near C
c["Non-Aura Hexes expire upon reaching 200% of base Effect Non-Aura Hexes gain 20% increased Effect per second"]={{[1]={[1]={actor="enemy",limit=200,limitTotal=true,type="Multiplier",var="CurseDurationExpired"},[2]={neg=true,skillType=43,type="SkillType"},[3]={skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="CurseEffect",type="INC",value=20}},nil}
c["Non-Aura Hexes expire upon reaching 220% of base Effect"]={nil,"Non-Aura Hexes expire upon reaching 220% of base Effect "}
c["Non-Aura Hexes expire upon reaching 220% of base Effect Non-Aura Hexes gain 20% increased Effect per second"]={{[1]={[1]={actor="enemy",limit=220,limitTotal=true,type="Multiplier",var="CurseDurationExpired"},[2]={neg=true,skillType=43,type="SkillType"},[3]={skillType=108,type="SkillType"},flags=0,keywordFlags=0,name="CurseEffect",type="INC",value=20}},nil}
c["Non-Aura Vaal Skills require 25% reduced Souls Per Use during Effect"]={{[1]={[1]={type="Condition",var="UsingFlask"},[2]={neg=true,skillType=43,type="SkillType"},[3]={skillType=42,type="SkillType"},flags=0,keywordFlags=0,name="SoulCost",type="INC",value=-25}},nil}
c["Non-Aura Vaal Skills require 25% reduced Souls Per Use during Effect"]={{[1]={[1]={neg=true,skillType=43,type="SkillType"},[2]={type="Condition",var="UsingFlask"},flags=0,keywordFlags=512,name="SoulCost",type="INC",value=-25}},nil}
c["Non-Channelling Skills have -5 to Total Mana Cost while affected by Clarity"]={{[1]={[1]={neg=true,skillType=57,type="SkillType"},[2]={type="Condition",var="AffectedByClarity"},flags=0,keywordFlags=0,name="ManaCost",type="BASE",value=-5}},nil}
c["Non-Channelling Skills have -9 to Total Mana Cost"]={{[1]={[1]={neg=true,skillType=57,type="SkillType"},flags=0,keywordFlags=0,name="ManaCost",type="BASE",value=-9}},nil}
c["Non-Chilled Enemies you Poison are Chilled"]={nil,"Non-Chilled Enemies you Poison are Chilled "}
Expand Down
6 changes: 6 additions & 0 deletions src/Modules/CalcActiveSkill.lua
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,9 @@ function calcs.buildActiveSkillModList(env, activeSkill)
if level.storedUses then
activeSkill.skillData.storedUses = level.storedUses
end
if level.vaalStoredUses then
activeSkill.skillData.storedUses = activeSkill.skillData.storedUses or 0 + level.vaalStoredUses
end
end
end

Expand Down Expand Up @@ -546,6 +549,9 @@ function calcs.buildActiveSkillModList(env, activeSkill)
if level.storedUses then
activeSkill.skillData.storedUses = level.storedUses
end
if level.vaalStoredUses then
activeSkill.skillData.storedUses = activeSkill.skillData.storedUses or 0 + level.vaalStoredUses
end
if level.soulPreventionDuration then
activeSkill.skillData.soulPreventionDuration = level.soulPreventionDuration
end
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/CalcOffence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1238,7 +1238,7 @@ function calcs.offence(env, actor, activeSkill)
end
if skillData.storedUses then
local baseUses = skillData.storedUses
local additionalUses = skillModList:Sum("BASE", skillCfg, "AdditionalCooldownUses")
local additionalUses = skillModList:Sum("BASE", skillCfg, "AdditionalCooldownUses", "AdditionalUses")
output.StoredUses = baseUses + additionalUses
if breakdown then
breakdown.StoredUses = { s_format("%d ^8(skill use%s)", baseUses, baseUses == 1 and "" or "s" ) }
Expand Down
2 changes: 1 addition & 1 deletion src/Modules/CalcSections.lua
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,7 @@ return {
}, },
{ label = "Stored Uses", haveOutput = "StoredUses", { format = "{output:StoredUses}",
{ breakdown = "StoredUses" },
{ modName = "AdditionalCooldownUses", cfg = "skill" },
{ modName = { "AdditionalCooldownUses", "AdditionalUses" }, cfg = "skill" },
}, },
{ label = "Duration Mod", flag = "duration", { format = "x {4:output:DurationMod}",
{ breakdown = "DurationMod" },
Expand Down
15 changes: 12 additions & 3 deletions src/Modules/ModParser.lua
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ local modNameList = {
["total mana cost of skills"] = "ManaCost",
["life cost of skills"] = "LifeCost",
["rage cost of skills"] = "RageCost",
["souls per use"] = "SoulCost",
["cost of"] = "Cost",
["cost of skills"] = "Cost",
["cost of attacks"] = { "Cost", tag = { type = "SkillType", skillType = SkillType.Attack } },
Expand Down Expand Up @@ -417,6 +418,7 @@ local modNameList = {
["effect of auras on you"] = "AuraEffectOnSelf",
["effect of auras on your minions"] = { "AuraEffectOnSelf", addToMinion = true },
["effect of auras from mines"] = { "AuraEffect", keywordFlags = KeywordFlag.Mine },
["effect of auras from your vaal skills"] = { "AuraEffect", keywordFlags = KeywordFlag.Vaal },
["effect of consecrated ground you create"] = "ConsecratedGroundEffect",
["curse effect"] = "CurseEffect",
["effect of curses applied by bane"] = { "CurseEffect", tag = { type = "Condition", var = "AppliedByBane" } },
Expand Down Expand Up @@ -1128,6 +1130,8 @@ local preFlagList = {
["^fire spells [hd][ae][va][el] a? ?"] = { keywordFlags = KeywordFlag.Fire, flags = ModFlag.Spell },
["^chaos skills [hd][ae][va][el] a? ?"] = { keywordFlags = KeywordFlag.Chaos },
["^vaal skills [hd][ae][va][el] "] = { keywordFlags = KeywordFlag.Vaal },
["^vaal skills require "] = { keywordFlags = KeywordFlag.Vaal },
["^non%-aura vaal skills require "] = { keywordFlags = KeywordFlag.Vaal, tag = { type = "SkillType", skillType = SkillType.Aura, neg = true } },
["^brand skills [hd][ae][va][el] "] = { tag = { type = "SkillType", skillType = SkillType.Brand } },
["^channelling skills [hd][ae][va][el] "] = { tag = { type = "SkillType", skillType = SkillType.Channel } },
["^curse skills [hd][ae][va][el] "] = { keywordFlags = KeywordFlag.Curse },
Expand Down Expand Up @@ -1388,6 +1392,7 @@ local modTagList = {
["per (%d+) maximum mana"] = function(num) return { tag = { type = "PerStat", stat = "Mana", div = num } } end,
["per (%d+) maximum mana, up to (%d+)%%"] = function(num, _, limit) return { tag = { type = "PerStat", stat = "Mana", div = num, limit = tonumber(limit), limitTotal = true } } end,
["per (%d+) maximum mana, up to a maximum of (%d+)%%"] = function(num, _, limit) return { tag = { type = "PerStat", stat = "Mana", div = num, limit = tonumber(limit), limitTotal = true } } end,
["per soul required"] = { tag = { type = "PerStat", stat = "SoulCost" } },
["per (%d+) accuracy rating"] = function(num) return { tag = { type = "PerStat", stat = "Accuracy", div = num } } end,
["per (%d+)%% block chance"] = function(num) return { tag = { type = "PerStat", stat = "BlockChance", div = num } } end,
["per (%d+)%% chance to block on equipped shield"] = function(num) return { tag = { type = "PerStat", stat = "ShieldBlockChance", div = num } } end,
Expand Down Expand Up @@ -2100,11 +2105,9 @@ local specialModList = {
["spend life instead of mana for effects of skills"] = { },
["skills cost %+(%d+) rage"] = function(num) return { mod("RageCostBase", "BASE", num) } end,
["warcries cost %+(%d+)%% of life"] = function(num) return { mod("LifeCostBase", "BASE", 1, { type = "PercentStat", stat = "Life", percent = num, floor = true }) } end,
["non%-aura vaal skills require (%d+)%% reduced souls per use during effect"] = function(num) return { mod("SoulCost", "INC", -num, { type = "Condition", var = "UsingFlask" }, { type = "SkillType", skillType = SkillType.Aura, neg = true }, { type = "SkillType", skillType = SkillType.Vaal }) } end,
["non%-aura vaal skills require (%d+)%% reduced souls per use"] = function(num) return { mod("SoulCost", "INC", -num, { type = "SkillType", skillType = SkillType.Aura, neg = true }, { type = "SkillType", skillType = SkillType.Vaal }) } end,
["vaal skills require (%d+)%% reduced souls per use"] = function(num) return { mod("SoulCost", "INC", -num, { type = "SkillType", skillType = SkillType.Vaal }) } end,
["vaal skills used during effect have (%d+)%% reduced soul gain prevention duration"] = function(num) return { mod("SoulGainPreventionDuration", "INC", -num, { type = "Condition", var = "UsingFlask" }, { type = "SkillType", skillType = SkillType.Vaal }) } end,
["vaal volcanic fissure and vaal molten strike have (%d+)%% reduced soul gain prevention duration"] = function(num) return { mod("SoulGainPreventionDuration", "INC", -num, { type = "SkillName", skillNameList = { "Volcanic Fissure", "Molten Strike" }, includeTransfigured = true }, { type = "SkillType", skillType = SkillType.Vaal }) } end,
["vaal skills can store %+(%d+) uses?"] = function(num) return { mod("AdditionalUses", "BASE", num, { type = "SkillType", skillType = SkillType.Vaal }) } end,
["vaal attack skills cost rage instead of requiring souls to use"] = { flag("CostRageInsteadOfSouls", nil, ModFlag.Attack, { type = "SkillType", skillType = SkillType.Vaal }) },
["vaal attack skills you use yourself cost rage instead of requiring souls"] = { flag("CostRageInsteadOfSouls", nil, ModFlag.Attack, { type = "SkillType", skillType = SkillType.Vaal }) },
["you cannot gain rage during soul gain prevention"] = { mod("RageRegen", "MORE", -100, { type = "Condition", var = "SoulGainPrevention" }) },
Expand Down Expand Up @@ -2247,6 +2250,12 @@ local specialModList = {
["shepherd of souls"] = {
flag("ShepherdOfSouls")
},
["you have shepherd of souls if at least (%d+) corrupted items are equipped"] = function(num) return {
flag("ShepherdOfSouls", { type = "MultiplierThreshold", var = "CorruptedItem", threshold = num })
} end,
["you have everlasting sacrifice if at least (%d+) corrupted items are equipped"] = function(num) return {
flag("EverlastingSacrifice", { type = "MultiplierThreshold", var = "CorruptedItem", threshold = num })
} end,
["adds (%d+) to (%d+) attack physical damage to melee skills per (%d+) dexterity while you are unencumbered"] = function(_, min, max, dex) return { -- Hollow Palm 3 suffixes
mod("PhysicalMin", "BASE", tonumber(min), nil, ModFlag.Melee, KeywordFlag.Attack, { type = "PerStat", stat = "Dex", div = tonumber(dex) }, { type = "Condition", var = "Unencumbered" }),
mod("PhysicalMax", "BASE", tonumber(max), nil, ModFlag.Melee, KeywordFlag.Attack, { type = "PerStat", stat = "Dex", div = tonumber(dex) }, { type = "Condition", var = "Unencumbered" }),
Expand Down
Loading