From 76ab4938b5e68253131d0a39b3f8fe0db44bf14c Mon Sep 17 00:00:00 2001 From: Peechey Date: Mon, 18 May 2026 08:03:08 +0000 Subject: [PATCH] Apply changes from https://github.com/PathOfBuildingCommunity/PathOfBuilding-PoE2/pull/1846 --- spec/System/TestSkills_spec.lua.rej | 54 +++++++++++ src/Classes/CalcBreakdownControl.lua.rej | 10 +++ src/Classes/ModStore.lua | 48 +++++++--- src/Classes/ModStore.lua.rej | 16 ++++ src/Data/ModCache.lua.rej | 12 +++ src/Data/Skills/act_dex.lua.rej | 9 ++ src/Data/Skills/act_int.lua.rej | 109 +++++++++++++++++++++++ src/Data/Skills/other.lua.rej | 27 ++++++ src/Export/Skills/act_dex.txt.rej | 10 +++ src/Export/Skills/act_int.txt.rej | 101 +++++++++++++++++++++ src/Export/Skills/other.txt.rej | 28 ++++++ src/Modules/CalcOffence.lua.rej | 10 +++ src/Modules/CalcPerform.lua.rej | 10 +++ src/Modules/CalcSections.lua.rej | 13 +++ src/Modules/ModParser.lua.rej | 19 ++++ 15 files changed, 462 insertions(+), 14 deletions(-) create mode 100644 spec/System/TestSkills_spec.lua.rej create mode 100644 src/Classes/CalcBreakdownControl.lua.rej create mode 100644 src/Classes/ModStore.lua.rej create mode 100644 src/Data/ModCache.lua.rej create mode 100644 src/Data/Skills/act_dex.lua.rej create mode 100644 src/Data/Skills/act_int.lua.rej create mode 100644 src/Data/Skills/other.lua.rej create mode 100644 src/Export/Skills/act_dex.txt.rej create mode 100644 src/Export/Skills/act_int.txt.rej create mode 100644 src/Export/Skills/other.txt.rej create mode 100644 src/Modules/CalcOffence.lua.rej create mode 100644 src/Modules/CalcPerform.lua.rej create mode 100644 src/Modules/CalcSections.lua.rej create mode 100644 src/Modules/ModParser.lua.rej diff --git a/spec/System/TestSkills_spec.lua.rej b/spec/System/TestSkills_spec.lua.rej new file mode 100644 index 0000000000..771c05c095 --- /dev/null +++ b/spec/System/TestSkills_spec.lua.rej @@ -0,0 +1,54 @@ +diff a/spec/System/TestSkills_spec.lua b/spec/System/TestSkills_spec.lua (rejected hunks) +@@ -85,7 +85,7 @@ describe("TestSkills", function() + assert.are.equals(16, round(finalCost)) + end) + +- it("Test 'every rage also grants you' for minion mods", function() ++ it("Test 'every rage also grants you' for minion mods and minion apply to you mods #run", function() + build.itemsTab:CreateDisplayItemFromRaw([[ + New Item + Fanatic Greathammer +@@ -106,5 +106,42 @@ describe("TestSkills", function() + runCallback("OnFrame") + + assert.True(baseUnearthAttackSpeed < build.calcsTab.mainOutput.Minion.Speed) ++ ++ newBuild() ++ build.itemsTab:CreateDisplayItemFromRaw([[ ++ Rarity: UNIQUE ++ Chober Chaber ++ Leaden Greathammer ++ Variant: Pre 0.1.1 ++ Variant: Current ++ Selected Variant: 2 ++ Quality: 20 ++ LevelReq: 33 ++ Implicits: 0 ++ +100 Intelligence Requirement ++ {variant:1}{range:0.5}(80-120)% increased Physical Damage ++ {variant:2}{range:0.5}Adds (58-65) to (102-110) Physical Damage ++ {range:0.5}+(80-100) to maximum Mana ++ {variant:2}+50 to Spirit ++ {variant:1}+5% to Critical Hit Chance ++ Increases and Reductions to Minion Damage also affect you ++ ]]) ++ build.itemsTab:AddDisplayItem() ++ runCallback("OnFrame") ++ ++ build.skillsTab:PasteSocketGroup("Leap Slam 20/0 1\nRage I 1/0 1") ++ runCallback("OnFrame") ++ ++ build.configTab.input.multiplierRage = 30 ++ build.configTab:BuildModList() ++ runCallback("OnFrame") ++ ++ local baseLeapSlamHit = build.calcsTab.mainOutput.AverageDamage ++ ++ build.configTab.input.customMods = "Every Rage also grants you 1% increased Minion Damage" ++ build.configTab:BuildModList() ++ runCallback("OnFrame") ++ ++ assert.True(baseLeapSlamHit < build.calcsTab.mainOutput.AverageDamage) + end) + end) +\ No newline at end of file diff --git a/src/Classes/CalcBreakdownControl.lua.rej b/src/Classes/CalcBreakdownControl.lua.rej new file mode 100644 index 0000000000..eb57c31e6c --- /dev/null +++ b/src/Classes/CalcBreakdownControl.lua.rej @@ -0,0 +1,10 @@ +diff a/src/Classes/CalcBreakdownControl.lua b/src/Classes/CalcBreakdownControl.lua (rejected hunks) +@@ -481,6 +481,8 @@ function CalcBreakdownClass:AddModSection(sectionData, modList) + else + desc = "Skill type: "..(tag.neg and "Not " or "")..self:FormatModName(SkillTypeName[tag.skillType]) + end ++ elseif tag.type == "BaseFlag" then ++ desc = "Base flag: "..(tag.neg and "Not " or "")..self:FormatModName(tostring(tag.baseFlag)) + elseif tag.type == "SlotNumber" then + desc = "When in slot #"..tag.num + elseif tag.type == "GlobalEffect" then diff --git a/src/Classes/ModStore.lua b/src/Classes/ModStore.lua index 92603eb323..d5d103ce5c 100644 --- a/src/Classes/ModStore.lua +++ b/src/Classes/ModStore.lua @@ -323,15 +323,17 @@ function ModStoreClass:EvalMod(mod, cfg, globalLimits) -- This explicit target is necessary because even though the GetMultiplier method does call self.parent.GetMultiplier, it does so with noMod = true, -- disabling the summation (3rd part): (not noMod and self:Sum("BASE", cfg, multiplierName[var]) or 0) if tag.limitActor then - if self.actor[tag.limitActor] then - limitTarget = self.actor[tag.limitActor].modDB + local limitActor = getActor(self, tag.limitActor) + if limitActor then + limitTarget = limitActor.modDB else return end end if tag.actor then - if self.actor[tag.actor] then - target = self.actor[tag.actor].modDB + local actor = getActor(self, tag.actor) + if actor then + target = actor.modDB else return end @@ -398,15 +400,17 @@ function ModStoreClass:EvalMod(mod, cfg, globalLimits) local target = self local thresholdTarget = self if tag.thresholdActor then - if self.actor[tag.thresholdActor] then - thresholdTarget = self.actor[tag.thresholdActor].modDB + local thresholdActor = getActor(self, tag.thresholdActor) + if thresholdActor then + thresholdTarget = thresholdActor.modDB else return end end if tag.actor then - if self.actor[tag.actor] then - target = self.actor[tag.actor].modDB + local actor = getActor(self, tag.actor) + if actor then + target = actor.modDB else return end @@ -428,8 +432,9 @@ function ModStoreClass:EvalMod(mod, cfg, globalLimits) local target = self -- This functions similar to the above tagTypes in regard to which actor to use, but for PerStat -- if the actor is 'parent', we don't want to return if we're already using 'parent', just keep using 'self' - if tag.actor and self.actor[tag.actor] then - target = self.actor[tag.actor].modDB + local actor = getActor(self, tag.actor) + if actor then + target = actor.modDB end if tag.statList then base = 0 @@ -476,8 +481,9 @@ function ModStoreClass:EvalMod(mod, cfg, globalLimits) local target = self -- This functions similar to the above tagTypes in regard to which actor to use, but for PercentStat -- if the actor is 'parent', we don't want to return if we're already using 'parent', just keep using 'self' - if tag.actor and self.actor[tag.actor] then - target = self.actor[tag.actor].modDB + local actor = getActor(self, tag.actor) + if actor then + target = actor.modDB end if tag.statList then base = 0 @@ -608,7 +614,8 @@ function ModStoreClass:EvalMod(mod, cfg, globalLimits) local match = false local target = self if tag.actor then - target = self.actor[tag.actor] and self.actor[tag.actor].modDB + local actor = getActor(self, tag.actor) + target = actor and actor.modDB end if target and (tag.var or tag.varList) then if tag.varList then @@ -820,6 +827,19 @@ function ModStoreClass:EvalMod(mod, cfg, globalLimits) if not match then return end + elseif tag.type == "BaseFlag" then + local match = false + if cfg and cfg.skillGem and cfg.skillGem.grantedEffect and cfg.skillGem.grantedEffect.statSets and cfg.skillGem.grantedEffect.statSets[1] then + match = cfg.skillGem.grantedEffect.statSets[1].baseFlags[tag.baseFlag] + else + match = cfg and cfg.baseFlags and cfg.baseFlags[tag.baseFlag] + end + if tag.neg then + match = not match + end + if not match then + return + end elseif tag.type == "SlotName" then if not cfg then return @@ -901,4 +921,4 @@ function ModStoreClass:EvalMod(mod, cfg, globalLimits) end end return value -end \ No newline at end of file +end diff --git a/src/Classes/ModStore.lua.rej b/src/Classes/ModStore.lua.rej new file mode 100644 index 0000000000..36462c90d9 --- /dev/null +++ b/src/Classes/ModStore.lua.rej @@ -0,0 +1,16 @@ +diff a/src/Classes/ModStore.lua b/src/Classes/ModStore.lua (rejected hunks) +@@ -34,6 +34,14 @@ local ModStoreClass = newClass("ModStore", function(self, parent) + self.conditions = { } + end) + ++local function getActor(self, actorType) ++ if actorType == "player" then ++ return self.actor.player or (self.actor.parent and self.actor.parent.player) or (self.actor.enemy and self.actor.enemy.player) ++ else ++ return self.actor[actorType] ++ end ++end ++ + function ModStoreClass:ScaleAddMod(mod, scale) + local unscalable = false + for _, effects in ipairs(mod) do diff --git a/src/Data/ModCache.lua.rej b/src/Data/ModCache.lua.rej new file mode 100644 index 0000000000..59dbcc7374 --- /dev/null +++ b/src/Data/ModCache.lua.rej @@ -0,0 +1,12 @@ +diff a/src/Data/ModCache.lua b/src/Data/ModCache.lua (rejected hunks) +@@ -4877,8 +4877,8 @@ c["Every Rage also grants 1% increased Fire Damage"]={{[1]={[1]={type="Multiplie + c["Every Rage also grants 1% increased Stun Threshold"]={{[1]={[1]={type="Multiplier",var="RageEffect"},flags=0,keywordFlags=0,name="StunThreshold",type="INC",value=1}},nil} + c["Every Rage also grants 2% increased Spell Damage"]={{[1]={[1]={type="Multiplier",var="RageEffect"},flags=2,keywordFlags=0,name="Damage",type="INC",value=2}},nil} + c["Every Rage also grants 2% increased Stun Threshold"]={{[1]={[1]={type="Multiplier",var="RageEffect"},flags=0,keywordFlags=0,name="StunThreshold",type="INC",value=2}},nil} +-c["Every Rage also grants you 1% increased Minion Attack Speed"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="player",type="Multiplier",var="RageEffect"},flags=0,keywordFlags=0,name="Speed",type="INC",value=1}}},[2]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="Multiplier",var="RageEffect"},flags=0,keywordFlags=0,name="Speed",type="INC",value=1}}}},nil} +-c["Every Rage also grants you 1% increased Minion Damage"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="player",type="Multiplier",var="RageEffect"},flags=0,keywordFlags=0,name="Damage",type="INC",value=1}}},[2]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="Multiplier",var="RageEffect"},flags=0,keywordFlags=0,name="Damage",type="INC",value=1}}}},nil} ++c["Every Rage also grants you 1% increased Minion Attack Speed"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="player",type="Multiplier",var="RageEffect"},flags=1,keywordFlags=0,name="Speed",type="INC",value=1}}}},nil} ++c["Every Rage also grants you 1% increased Minion Damage"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="player",type="Multiplier",var="RageEffect"},flags=0,keywordFlags=0,name="Damage",type="INC",value=1}}}},nil} + c["Every Third Slam skill that doesn't create Fissures which you use yourself causes 3 additional Aftershocks ahead and to each side of the initial area"]={nil,"Every Third Slam skill that doesn't create Fissures which you use yourself causes 3 additional Aftershocks ahead and to each side of the initial area "} + c["Every second Slam Skill you use yourself is Ancestrally Boosted"]={nil,"Every second Slam Skill you use yourself is Ancestrally Boosted "} + c["Every second, inflicts Critical Weakness on enemies in your Presence for 1 second"]={{[1]={flags=0,keywordFlags=0,name="ApplyCriticalWeakness",type="FLAG",value=true}},nil} diff --git a/src/Data/Skills/act_dex.lua.rej b/src/Data/Skills/act_dex.lua.rej new file mode 100644 index 0000000000..03ed998995 --- /dev/null +++ b/src/Data/Skills/act_dex.lua.rej @@ -0,0 +1,9 @@ +diff a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua (rejected hunks) +@@ -897,7 +897,6 @@ skills["SummonBeastPlayer"] = { + minion = true, + summonBeast = true, + duration = true, +- permanentMinion = true, + }, + baseMods = { + mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", 25) }), --Server side damage mod added in 0.3, diff --git a/src/Data/Skills/act_int.lua.rej b/src/Data/Skills/act_int.lua.rej new file mode 100644 index 0000000000..44d4c855c1 --- /dev/null +++ b/src/Data/Skills/act_int.lua.rej @@ -0,0 +1,109 @@ +diff a/src/Data/Skills/act_int.lua b/src/Data/Skills/act_int.lua (rejected hunks) +@@ -16168,7 +16168,6 @@ skills["RagingSpiritsPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, + }, + constantStats = { + { "base_number_of_raging_spirits_allowed", 10 }, +@@ -16292,9 +16291,6 @@ skills["RaiseZombiePlayer"] = { + spell = true, + minion = true, + }, +- baseMods = { +- flag("Condition:TemporaryMinion"), +- }, + constantStats = { + { "display_minion_monster_type", 1 }, + { "zombie_decay_rate_increase_+%_final", 25 }, +@@ -17692,7 +17688,7 @@ skills["SummonSkeletalArsonistsPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -17812,7 +17808,7 @@ skills["SummonSkeletalBrutesPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -17932,7 +17928,7 @@ skills["SummonSkeletalClericsPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -18052,7 +18048,7 @@ skills["SummonSkeletalFrostMagesPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -18173,7 +18169,7 @@ skills["SummonSkeletalReaversPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -18294,7 +18290,7 @@ skills["SummonSkeletalSnipersPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -18414,7 +18410,7 @@ skills["SummonSkeletalStormMagesPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -18536,7 +18532,7 @@ skills["SummonSkeletalWarriorsPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 2 }, +@@ -19715,7 +19711,6 @@ skills["SummonSpectrePlayer"] = { + minion = true, + spectre = true, + duration = true, +- permanentMinion = true, + }, + baseMods = { + mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", 25) }), --Server side damage mod added in 0.3, +@@ -21219,9 +21214,6 @@ skills["UnearthPlayer"] = { + area = true, + minion = true, + }, +- baseMods = { +- flag("Condition:TemporaryMinion"), +- }, + constantStats = { + { "unearth_base_cone_speed_multiplier", 50 }, + { "active_skill_base_area_of_effect_radius", 60 }, diff --git a/src/Data/Skills/other.lua.rej b/src/Data/Skills/other.lua.rej new file mode 100644 index 0000000000..a85cb30670 --- /dev/null +++ b/src/Data/Skills/other.lua.rej @@ -0,0 +1,27 @@ +diff a/src/Data/Skills/other.lua b/src/Data/Skills/other.lua (rejected hunks) +@@ -5307,7 +5307,6 @@ skills["ManifestWeaponPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- duration = true, + }, + constantStats = { + { "minion_1%_damage_+%_per_X_player_strength", 1 }, +@@ -8022,7 +8021,7 @@ skills["SummonInfernalHoundPlayer"] = { + baseFlags = { + spell = true, + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "display_minion_monster_type", 8 }, +@@ -8151,7 +8150,7 @@ skills["SupportingFirePlayer"] = { + }, + baseFlags = { + minion = true, +- permanentMinion = true, ++ duration = true, + }, + constantStats = { + { "minion_1%_damage_+%_per_X_player_strength", 1 }, diff --git a/src/Export/Skills/act_dex.txt.rej b/src/Export/Skills/act_dex.txt.rej new file mode 100644 index 0000000000..d8abb97921 --- /dev/null +++ b/src/Export/Skills/act_dex.txt.rej @@ -0,0 +1,10 @@ +diff a/src/Export/Skills/act_dex.txt b/src/Export/Skills/act_dex.txt (rejected hunks) +@@ -90,7 +90,7 @@ statMap = { + #minionList + #skill SummonBeastPlayer + #set SummonBeastPlayer +-#flags spell minion summonBeast duration permanentMinion ++#flags spell minion summonBeast duration + #baseMod mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", 25) }), --Server side damage mod added in 0.3 + #mods + #skillEnd diff --git a/src/Export/Skills/act_int.txt.rej b/src/Export/Skills/act_int.txt.rej new file mode 100644 index 0000000000..9cdc591227 --- /dev/null +++ b/src/Export/Skills/act_int.txt.rej @@ -0,0 +1,101 @@ +diff a/src/Export/Skills/act_int.txt b/src/Export/Skills/act_int.txt (rejected hunks) +@@ -1095,7 +1095,7 @@ statMap = { + #minionList SummonedRagingSpirit + #skill RagingSpiritsPlayer + #set RagingSpiritsPlayer +-#flags spell minion permanentMinion ++#flags spell minion + #mods + #skillEnd + +@@ -1103,7 +1103,6 @@ statMap = { + #skill RaiseZombiePlayer + #set RaiseZombiePlayer + #flags spell minion +-#baseMod flag("Condition:TemporaryMinion") + #mods + #skillEnd + +@@ -1189,49 +1188,49 @@ statMap = { + #minionList RaisedSkeletonArsonist + #skill SummonSkeletalArsonistsPlayer + #set SummonSkeletalArsonistsPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + + #minionList RaisedSkeletonBrute + #skill SummonSkeletalBrutesPlayer + #set SummonSkeletalBrutesPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + + #minionList RaisedSkeletonCleric + #skill SummonSkeletalClericsPlayer + #set SummonSkeletalClericsPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + + #minionList RaisedSkeletonFrostMage + #skill SummonSkeletalFrostMagesPlayer + #set SummonSkeletalFrostMagesPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + + #minionList RaisedSkeletonReaver + #skill SummonSkeletalReaversPlayer + #set SummonSkeletalReaversPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + + #minionList RaisedSkeletonSniper + #skill SummonSkeletalSnipersPlayer + #set SummonSkeletalSnipersPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + + #minionList RaisedSkeletonStormMage + #skill SummonSkeletalStormMagesPlayer + #set SummonSkeletalStormMagesPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + +@@ -1239,7 +1238,7 @@ statMap = { + #minionList RaisedSkeletonWarriors + #skill SummonSkeletalWarriorsPlayer + #set SummonSkeletalWarriorsPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + +@@ -1309,7 +1308,7 @@ statMap = { + #minionList + #skill SummonSpectrePlayer + #set SummonSpectrePlayer +-#flags spell minion spectre duration permanentMinion ++#flags spell minion spectre duration + #baseMod mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", 25) }), --Server side damage mod added in 0.3 + #mods + #skillEnd +@@ -1401,7 +1400,6 @@ statMap = { + #skill UnearthPlayer + #set UnearthPlayer + #flags spell area minion +-#baseMod flag("Condition:TemporaryMinion") + #mods + #skillEnd + diff --git a/src/Export/Skills/other.txt.rej b/src/Export/Skills/other.txt.rej new file mode 100644 index 0000000000..686d35154c --- /dev/null +++ b/src/Export/Skills/other.txt.rej @@ -0,0 +1,28 @@ +diff a/src/Export/Skills/other.txt b/src/Export/Skills/other.txt (rejected hunks) +@@ -368,7 +368,7 @@ minionUses = { + ["Weapon 1"] = true, + }, + #set ManifestWeaponPlayer +-#flags spell minion duration ++#flags spell minion + statMap = { + ["minion_1%_damage_+%_per_X_player_strength"] = { + mod("MinionModifier", "LIST", { mod = mod("Damage", "INC", nil, 0, 0, { type = "PerStat", stat = "Str", actor = "parent" }) }), +@@ -556,7 +556,7 @@ statMap = { + #minionList SummonedHellhound + #skill SummonInfernalHoundPlayer + #set SummonInfernalHoundPlayer +-#flags spell minion permanentMinion ++#flags spell minion duration + #mods + #skillEnd + +@@ -564,7 +564,7 @@ statMap = { + #minionList TacticianMinion + #skill SupportingFirePlayer + #set SupportingFirePlayer +-#flags minion permanentMinion ++#flags minion duration + statMap = { + ["minion_1%_damage_+%_per_X_player_strength"] = { + mod("MinionModifier", "LIST", { mod = mod("Damage", "INC", nil, 0, 0, { type = "PerStat", stat = "Str", actor = "parent" }) }), diff --git a/src/Modules/CalcOffence.lua.rej b/src/Modules/CalcOffence.lua.rej new file mode 100644 index 0000000000..ad6f703070 --- /dev/null +++ b/src/Modules/CalcOffence.lua.rej @@ -0,0 +1,10 @@ +diff a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua (rejected hunks) +@@ -1192,7 +1192,7 @@ function calcs.offence(env, actor, activeSkill) + -- Calculate skill type stats + if skillFlags.minion then + if activeSkill.minion and activeSkill.minion.minionData.limit then +- output.ActiveMinionLimit = m_floor(env.modDB:Override(nil, activeSkill.minion.minionData.limit) or calcLib.val(skillModList, activeSkill.minion.minionData.limit, skillCfg)) ++ output.ActiveMinionLimit = m_floor(env.modDB:Override(nil, activeSkill.minion.minionData.limit) or (calcLib.val(skillModList, activeSkill.minion.minionData.limit, skillCfg) + calcLib.val(skillModList, "ActiveMinionLimit", skillCfg))) + end + output.SummonedMinionsPerCast = m_floor(calcLib.val(skillModList, "MinionPerCastCount", skillCfg)) + if output.SummonedMinionsPerCast == 0 then diff --git a/src/Modules/CalcPerform.lua.rej b/src/Modules/CalcPerform.lua.rej new file mode 100644 index 0000000000..4d7349988a --- /dev/null +++ b/src/Modules/CalcPerform.lua.rej @@ -0,0 +1,10 @@ +diff a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua (rejected hunks) +@@ -255,7 +255,7 @@ local function doActorAttribsConditions(env, actor) + if actor.mainSkill.skillTypes[SkillType.Movement] then + condList["UsedMovementSkillRecently"] = true + end +- if skillFlags.minion and not skillFlags.permanentMinion then ++ if skillFlags.minion and not skillFlags.duration then + condList["UsedMinionSkillRecently"] = true + end + if actor.mainSkill.skillTypes[SkillType.Vaal] then diff --git a/src/Modules/CalcSections.lua.rej b/src/Modules/CalcSections.lua.rej new file mode 100644 index 0000000000..d231557418 --- /dev/null +++ b/src/Modules/CalcSections.lua.rej @@ -0,0 +1,13 @@ +diff a/src/Modules/CalcSections.lua b/src/Modules/CalcSections.lua (rejected hunks) +@@ -641,7 +641,10 @@ return { + { label = "Rage per second", color = colorCodes.RAGE, haveOutput = "RagePerSecondHasCost", { format = "{2:output:RagePerSecondCost}", { breakdown = "RagePerSecondCost" }, { modName = { "RageCost", "Cost", "RageNoMult" }, cfg = "skill" }, }, }, + { label = "Armour Break / hit", haveOutput = "ArmourBreakPerHit", { format = "{0:output:ArmourBreakPerHit}", { modName = "ArmourBreakPerHit", modType = "BASE"} }, }, + { label = "Soul Cost", color = colorCodes.RAGE, haveOutput = "SoulHasCost", { format = "{0:output:SoulCost}", { breakdown = "SoulCost" }, { modName = { "SoulCost" }, cfg = "skill" }, }, }, +- { label = "Active Minion Limit", haveOutput = "ActiveMinionLimit", { format = "{0:output:ActiveMinionLimit}" } }, ++ { label = "Active Minion Limit", haveOutput = "ActiveMinionLimit", { format = "{0:output:ActiveMinionLimit}", ++ { breakdown = "ActiveMinionLimit" }, ++ { modName = { "ActiveMinionLimit" }, cfg = "skill" }, ++ }, }, + { label = "Minion Revival Time", haveOutput = "MinionRevivalSpeed", { format = "{2:output:MinionRevivalSpeed}s", { breakdown = "MinionRevivalSpeed" }, { modName = { "MinionRevivalSpeed" } } },}, + { label = "Quantity Multiplier", haveOutput = "QuantityMultiplier", { format = "{0:output:QuantityMultiplier}", + { breakdown = "QuantityMultiplier" }, diff --git a/src/Modules/ModParser.lua.rej b/src/Modules/ModParser.lua.rej new file mode 100644 index 0000000000..59252f42ae --- /dev/null +++ b/src/Modules/ModParser.lua.rej @@ -0,0 +1,19 @@ +diff a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua (rejected hunks) +@@ -4656,13 +4656,11 @@ local specialModList = { + ["summoned skeleton warriors are permanent and follow you"] = { flag("RaisedSkeletonPermanentDuration", { type = "SkillName", skillName = "Summon Skeletons" }) }, + ["minions recoup (%d+)%% of damage taken as life"] = function(num) return { mod("MinionModifier", "LIST", { mod = mod("LifeRecoup", "BASE", num) }) } end, + ["temporary minion skills have %+(%d+) to limit of minions summoned"] = function(num) return { mod("ActiveMinionLimit", "BASE", num, { type = "BaseFlag", baseFlag = "duration", neg = true }) } end, +- ["every rage also grants you (%d+)%% increased minion attack speed"] = function(num) return { +- mod("MinionModifier", "LIST", { mod = mod("Speed", "INC", num, { type = "Multiplier", var = "RageEffect", actor = "player" }) }), +- mod("MinionModifier", "LIST", { mod = mod("Speed", "INC", num, { type = "Multiplier", var = "RageEffect", actor = "parent" }) }), +- } end, + ["every rage also grants you (%d+)%% increased minion damage"] = function(num) return { +- mod("MinionModifier", "LIST", { mod = mod("Damage", "INC", num, { type = "Multiplier", var = "RageEffect", actor = "player" }) }), +- mod("MinionModifier", "LIST", { mod = mod("Damage", "INC", num, { type = "Multiplier", var = "RageEffect", actor = "parent" }) }), ++ mod("MinionModifier", "LIST", { mod = mod("Damage", "INC", num, { type = "Multiplier", var = "RageEffect", actor = "player" }) }), ++ } end, ++ ["every rage also grants you (%d+)%% increased minion attack speed"] = function(num) return { ++ mod("MinionModifier", "LIST", { mod = mod("Speed", "INC", num, nil, ModFlag.Attack, { type = "Multiplier", var = "RageEffect", actor = "player" }) }), + } end, + -- Projectiles + ["skills chain %+(%d) times"] = function(num) return { mod("ChainCountMax", "BASE", num) } end,