diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index 7069e22f93..6285711dcf 100755 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -7517,7 +7517,7 @@ c["Anger has 50% increased Aura Effect while at maximum Endurance Charges"]={{[1 c["Anger has 50% increased Mana Reservation Efficiency"]={{[1]={[1]={includeTransfigured=true,skillName="Anger",type="SkillName"},flags=0,keywordFlags=0,name="ManaReservationEfficiency",type="INC",value=50}},nil} c["Anger has 60% increased Aura Effect"]={{[1]={[1]={includeTransfigured=true,skillName="Anger",type="SkillName"},flags=0,keywordFlags=0,name="AuraEffect",type="INC",value=60}},nil} c["Anger has no Reservation"]={{[1]={[1]={skillId="Anger",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationFlat",value=0}},[2]={[1]={skillId="Anger",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationFlat",value=0}},[3]={[1]={skillId="Anger",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationPercent",value=0}},[4]={[1]={skillId="Anger",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationPercent",value=0}}},nil} -c["Animated Guardian deals 5% increased Damage per Animated Weapon"]={{[1]={[1]={includeTransfigured=true,skillName="Animate Guardian",type="SkillName"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",type="Multiplier",var="AnimatedWeapon"},flags=0,keywordFlags=0,name="Damage",type="INC",value=5}}}},nil} +c["Animated Guardian deals 5% increased Damage per Animated Weapon"]={{[1]={[1]={includeTransfigured=true,skillName="Animate Guardian",type="SkillName"},flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={[1]={actor="parent",stat="ActiveAnimatedWeaponLimit",type="PerStat"},flags=0,keywordFlags=0,name="Damage",type="INC",value=5}}}},nil} c["Animated and Manifested Minions' Melee Strikes deal 50% less Splash Damage"]={nil,"Animated and Manifested Minions' Melee Strikes deal 50% less Splash Damage "} c["Animated and Manifested Minions' Melee Strikes deal 50% less Splash Damage You cannot have Non-Animated, Non-Manifested Minions"]={nil,"Animated and Manifested Minions' Melee Strikes deal 50% less Splash Damage You cannot have Non-Animated, Non-Manifested Minions "} c["Animated and Manifested Minions' Melee Strikes deal Splash"]={nil,"Animated and Manifested Minions' Melee Strikes deal Splash "} diff --git a/src/Data/SkillStatMap.lua b/src/Data/SkillStatMap.lua index decd9d44f0..326fb23035 100644 --- a/src/Data/SkillStatMap.lua +++ b/src/Data/SkillStatMap.lua @@ -1974,6 +1974,12 @@ return { ["base_number_of_skeletons_allowed"] = { mod("ActiveSkeletonLimit", "BASE", nil), }, +["base_number_of_animated_weapons_allowed"] = { + mod("ActiveAnimatedWeaponLimit", "BASE", nil), +}, +["base_number_of_support_ghosts_allowed"] = { + mod("ActivePhantasmLimit", "BASE", nil), +}, ["base_number_of_raging_spirits_allowed"] = { mod("ActiveRagingSpiritLimit", "BASE", nil), }, diff --git a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua index 16787b918d..0f6f31b301 100644 --- a/src/Data/Skills/act_dex.lua +++ b/src/Data/Skills/act_dex.lua @@ -207,9 +207,6 @@ skills["AnimateWeapon"] = { ["attack_maximum_added_physical_damage_for_ethereal_blades"] = { mod("MinionModifier", "LIST", { mod = mod("PhysicalMax", "BASE", nil, 0, KeywordFlag.Attack, { type = "ActorCondition", actor = "parent", var = "AnimatingLingeringBlades" }) }), }, - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:AnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, }, baseFlags = { spell = true, @@ -309,11 +306,6 @@ skills["AnimateWeaponAltX"] = { minionList = { "AnimatedWeapon", }, - statMap = { - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:AnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, - }, baseFlags = { spell = true, minion = true, @@ -415,9 +407,6 @@ skills["AnimateWeaponAltY"] = { ["attack_maximum_added_physical_damage_for_ethereal_blades"] = { mod("MinionModifier", "LIST", { mod = mod("PhysicalMax", "BASE", nil, 0, KeywordFlag.Attack, { type = "ActorCondition", actor = "parent", var = "AnimatingLingeringBlades" }) }), }, - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:AnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, }, baseFlags = { spell = true, @@ -513,9 +502,6 @@ skills["VaalAnimateWeapon"] = { ["base_movement_velocity_+%"] = { mod("MinionModifier", "LIST", { mod = mod("MovementSpeed", "INC", nil) }), }, - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:VaalAnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, }, baseFlags = { spell = true, diff --git a/src/Data/Skills/other.lua b/src/Data/Skills/other.lua index b1620f6b68..a8fc196fb8 100644 --- a/src/Data/Skills/other.lua +++ b/src/Data/Skills/other.lua @@ -4016,11 +4016,6 @@ skills["TriggeredSummonGhostOnKill"] = { minionList = { "SummonedPhantasm", }, - statMap = { - ["base_number_of_support_ghosts_allowed"] = { - mod("ActivePhantasmLimit", "BASE", nil), - }, - }, baseFlags = { spell = true, minion = true, diff --git a/src/Data/Skills/sup_int.lua b/src/Data/Skills/sup_int.lua index db30b36eb3..b6111ab449 100644 --- a/src/Data/Skills/sup_int.lua +++ b/src/Data/Skills/sup_int.lua @@ -6380,9 +6380,6 @@ skills["SupportSummonPhantasm"] = { "SummonedPhantasm" }, statMap = { - ["base_number_of_support_ghosts_allowed"] = { - mod("ActivePhantasmLimit", "BASE", nil), - }, ["phantasm_minimum_added_physical_damage_to_grant"] = { mod("PhysicalMin", "BASE", nil, ModFlag.Spell, 0, { type = "PerStat", stat = "ActivePhantasmLimit" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Phantasmal Might", effectCond = "PhantasmalMight", allowTotemBuff = true }) }, diff --git a/src/Export/Skills/act_dex.txt b/src/Export/Skills/act_dex.txt index 38c0db316d..ab609d55d3 100644 --- a/src/Export/Skills/act_dex.txt +++ b/src/Export/Skills/act_dex.txt @@ -62,9 +62,6 @@ local skills, mod, flag, skill = ... ["attack_maximum_added_physical_damage_for_ethereal_blades"] = { mod("MinionModifier", "LIST", { mod = mod("PhysicalMax", "BASE", nil, 0, KeywordFlag.Attack, { type = "ActorCondition", actor = "parent", var = "AnimatingLingeringBlades" }) }), }, - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:AnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, }, #mods @@ -73,11 +70,6 @@ local skills, mod, flag, skill = ... minionList = { "AnimatedWeapon", }, - statMap = { - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:AnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, - }, #baseMod skill("minionUseMainHandWeapon", true) #mods @@ -103,9 +95,6 @@ local skills, mod, flag, skill = ... ["attack_maximum_added_physical_damage_for_ethereal_blades"] = { mod("MinionModifier", "LIST", { mod = mod("PhysicalMax", "BASE", nil, 0, KeywordFlag.Attack, { type = "ActorCondition", actor = "parent", var = "AnimatingLingeringBlades" }) }), }, - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:AnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, }, #mods @@ -122,9 +111,6 @@ local skills, mod, flag, skill = ... ["base_movement_velocity_+%"] = { mod("MinionModifier", "LIST", { mod = mod("MovementSpeed", "INC", nil) }), }, - ["base_number_of_animated_weapons_allowed"] = { - mod("Multiplier:VaalAnimatedWeapon", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", unscalable = true }) - }, }, #mods diff --git a/src/Export/Skills/other.txt b/src/Export/Skills/other.txt index 602a0ab03d..484b1c228d 100644 --- a/src/Export/Skills/other.txt +++ b/src/Export/Skills/other.txt @@ -1037,11 +1037,6 @@ local skills, mod, flag, skill = ... minionList = { "SummonedPhantasm", }, - statMap = { - ["base_number_of_support_ghosts_allowed"] = { - mod("ActivePhantasmLimit", "BASE", nil), - }, - }, #mods #skill SummonSentinelOfRadiance diff --git a/src/Export/Skills/sup_int.txt b/src/Export/Skills/sup_int.txt index ffd440ee6d..9dce0c10c9 100644 --- a/src/Export/Skills/sup_int.txt +++ b/src/Export/Skills/sup_int.txt @@ -916,9 +916,6 @@ local skills, mod, flag, skill = ... "SummonedPhantasm" }, statMap = { - ["base_number_of_support_ghosts_allowed"] = { - mod("ActivePhantasmLimit", "BASE", nil), - }, ["phantasm_minimum_added_physical_damage_to_grant"] = { mod("PhysicalMin", "BASE", nil, ModFlag.Spell, 0, { type = "PerStat", stat = "ActivePhantasmLimit" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Phantasmal Might", effectCond = "PhantasmalMight", allowTotemBuff = true }) }, diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index e92bb405a1..513a245f26 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1249,6 +1249,7 @@ function calcs.perform(env, skipEHP) applyEnemyModifiers(env.minion, true) end applyEnemyModifiers(env.enemy, true) + local minionCount = {} for _, activeSkill in ipairs(env.player.activeSkillList) do if activeSkill.skillTypes[SkillType.Brand] then @@ -1331,6 +1332,13 @@ function calcs.perform(env, skipEHP) if activeSkill.minion and activeSkill.minion.minionData and activeSkill.minion.minionData.limit then local limit = m_floor(modDB:Override(nil, activeSkill.minion.minionData.limit) or (calcLib.val(activeSkill.skillModList, activeSkill.minion.minionData.limit) * activeSkill.skillModList:More(activeSkill.skillCfg, "ActiveMinionLimit"))) output[activeSkill.minion.minionData.limit] = m_max(limit, output[activeSkill.minion.minionData.limit] or 0) + if not minionCount[activeSkill.minion.minionData.limit] then + env.player.modDB:NewMod("Multiplier:SummonedMinion", "BASE", output[activeSkill.minion.minionData.limit], "Config", { type = "Condition", var = "Combat" }) + if not activeSkill.skillTypes[SkillType.Vaal] then + env.player.modDB:NewMod("Multiplier:NonVaalSummonedMinion", "BASE", output[activeSkill.minion.minionData.limit], "Config", { type = "Condition", var = "Combat" }) + end + minionCount[activeSkill.minion.minionData.limit] = true + end end if activeSkill.skillTypes[SkillType.CreatesMinion] and not activeSkill.skillTypes[SkillType.MinionsAreUndamagable] then modDB:NewMod("Condition:HaveDamageableMinion", "FLAG", true) diff --git a/src/Modules/ConfigOptions.lua b/src/Modules/ConfigOptions.lua index b81c0a65c9..8abdad1bb2 100644 --- a/src/Modules/ConfigOptions.lua +++ b/src/Modules/ConfigOptions.lua @@ -1108,11 +1108,11 @@ Huge sets the radius to 11. { var = "multiplierNearbyCorpse", type = "count", label = "# of Nearby Corpses:", ifMult = "NearbyCorpse", apply = function(val, modList, enemyModList) modList:NewMod("Multiplier:NearbyCorpse", "BASE", val, "Config", { type = "Condition", var = "Combat" }) end }, - { var = "multiplierSummonedMinion", type = "count", label = "# of Summoned Minions:", ifMult = "SummonedMinion", apply = function(val, modList, enemyModList) - modList:NewMod("Multiplier:SummonedMinion", "BASE", val, "Config", { type = "Condition", var = "Combat" }) + { var = "multiplierSummonedMinion", type = "count", label = "# of Summoned Minions (if not maximum):", ifMult = "SummonedMinion", tooltip = "Use this to override the count if you do not have all your minions summoned", apply = function(val, modList, enemyModList) + modList:NewMod("Multiplier:SummonedMinion", "OVERRIDE", val, "Config", { type = "Condition", var = "Combat" }) end }, - { var = "multiplierNonVaalSummonedMinion", type = "count", label = "# of non-vaal skill Summoned Minions:", ifMult = "NonVaalSummonedMinion", apply = function(val, modList, enemyModList) - modList:NewMod("Multiplier:NonVaalSummonedMinion", "BASE", val, "Config", { type = "Condition", var = "Combat" }) + { var = "multiplierNonVaalSummonedMinion", type = "count", label = "# of non-vaal skill Summoned Minions:", ifMult = "NonVaalSummonedMinion", tooltip = "Use this to override the count if you do not have all your minions summoned", apply = function(val, modList, enemyModList) + modList:NewMod("Multiplier:NonVaalSummonedMinion", "OVERRIDE", val, "Config", { type = "Condition", var = "Combat" }) end }, { var = "conditionOnConsecratedGround", type = "check", label = "Are you on Consecrated Ground?", tooltip = "In addition to allowing any 'while on Consecrated Ground' modifiers to apply,\nConsecrated Ground grants 5% ^xE05030Life ^7Regeneration to players and allies.", apply = function(val, modList, enemyModList) modList:NewMod("Condition:OnConsecratedGround", "FLAG", true, "Config", { type = "Condition", var = "Combat" }) diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 965e814105..2e9dbb0cf1 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -1401,7 +1401,6 @@ local modTagList = { ["per socketed gem"] = { tag = { type = "Multiplier", var = "SocketedGemsIn{SlotName}"}}, ["for each impale on enemy"] = { tag = { type = "Multiplier", var = "ImpaleStacks", actor = "enemy" } }, ["per impale on enemy"] = { tag = { type = "Multiplier", var = "ImpaleStacks", actor = "enemy" } }, - ["per animated weapon"] = { tag = { type = "Multiplier", var = "AnimatedWeapon", actor = "parent" } }, ["per grasping vine"] = { tag = { type = "Multiplier", var = "GraspingVinesCount" } }, ["per fragile regrowth"] = { tag = { type = "Multiplier", var = "FragileRegrowthCount" } }, ["per bark"] = { tag = { type = "Multiplier", var = "BarkskinStacks" } }, @@ -1483,6 +1482,7 @@ local modTagList = { ["per skeleton you own"] = { tag = { type = "PerStat", stat = "ActiveSkeletonLimit", actor = "parent" } }, ["per summoned raging spirit"] = { tag = { type = "PerStat", stat = "ActiveRagingSpiritLimit" } }, ["per summoned phantasm"] = { tag = { type = "PerStat", stat = "ActivePhantasmLimit" } }, + ["per animated weapon"] = { tag = { type = "PerStat", stat = "ActiveAnimatedWeaponLimit", actor = "parent" } }, ["for each raised zombie"] = { tag = { type = "PerStat", stat = "ActiveZombieLimit" } }, ["per zombie you own"] = { tag = { type = "PerStat", stat = "ActiveZombieLimit", actor = "parent" } }, ["per raised zombie"] = { tag = { type = "PerStat", stat = "ActiveZombieLimit" } },