Skip to content

Commit 26d77ca

Browse files
github-actions[bot]LocalIdentityLocalIdentity
authored
[pob1-port] Add support to auto calculate minion count for mods on Bonemeld and Farrul Bloodline (#1835)
* Apply changes from PathOfBuildingCommunity/PathOfBuilding#9832 * Remove extra PoB 1 lines --------- Co-authored-by: LocalIdentity <LocalIdentity@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
1 parent 7bc6645 commit 26d77ca

3 files changed

Lines changed: 25 additions & 5 deletions

File tree

src/Data/SkillStatMap.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2416,6 +2416,12 @@ return {
24162416
["base_number_of_skeletons_allowed"] = {
24172417
mod("ActiveSkeletonLimit", "BASE", nil),
24182418
},
2419+
["base_number_of_animated_weapons_allowed"] = {
2420+
mod("ActiveAnimatedWeaponLimit", "BASE", nil),
2421+
},
2422+
["base_number_of_support_ghosts_allowed"] = {
2423+
mod("ActivePhantasmLimit", "BASE", nil),
2424+
},
24192425
["base_number_of_raging_spirits_allowed"] = {
24202426
mod("ActiveRagingSpiritLimit", "BASE", nil),
24212427
},

src/Modules/CalcPerform.lua

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1076,7 +1076,7 @@ function calcs.perform(env, skipEHP)
10761076
applyEnemyModifiers(env.enemy, true)
10771077

10781078
local minionTypeCount, ammoTypeCount, grenadeTypeCount = 0, 0, 0
1079-
local minionType, ammoType, grenadeType = { }, { }, { }
1079+
local minionCount, minionType, ammoType, grenadeType = { }, { }, { }, { }
10801080
for _, activeSkill in ipairs(env.player.activeSkillList) do
10811081
local skillFlags
10821082
if env.mode == "CALCS" then
@@ -1147,6 +1147,16 @@ function calcs.perform(env, skipEHP)
11471147
local limit = activeSkill.skillModList:Sum("BASE", nil, activeSkill.minion.minionData.limit)
11481148
output[activeSkill.minion.minionData.limit] = m_max(limit, output[activeSkill.minion.minionData.limit] or 0)
11491149
end
1150+
if activeSkill.minion and activeSkill.minion.minionData and activeSkill.minion.minionData.limit then
1151+
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")))
1152+
output[activeSkill.minion.minionData.limit] = m_max(limit, output[activeSkill.minion.minionData.limit] or 0)
1153+
if not minionCount[activeSkill.minion.minionData.limit] then
1154+
env.player.modDB:NewMod("Multiplier:SummonedMinion", "BASE", output[activeSkill.minion.minionData.limit], "Config", { type = "Condition", var = "Combat" })
1155+
env.player.modDB:NewMod("Multiplier:MinionPresenceCount", "BASE", output[activeSkill.minion.minionData.limit], "Config", { type = "Condition", var = "Combat" })
1156+
minionCount[activeSkill.minion.minionData.limit] = true
1157+
t_insert(minionCount, activeSkill.minion.minionData.limit)
1158+
end
1159+
end
11501160
if activeSkill.activeEffect.grantedEffect and activeSkill.skillTypes[SkillType.Minion] and activeSkill.skillTypes[SkillType.Persistent] and not minionType[activeSkill.activeEffect.grantedEffect.id] then
11511161
minionTypeCount = minionTypeCount + 1
11521162
minionType[activeSkill.activeEffect.grantedEffect.id] = true
@@ -1195,6 +1205,10 @@ function calcs.perform(env, skipEHP)
11951205
-- Stat sorting category calcs
11961206
output.EffectiveLootRarityMod = calcLib.mod(modDB, nil, "LootRarity")
11971207
output.Spirit = m_floor(calcLib.val(modDB, nil, "Spirit"))
1208+
1209+
if #minionCount == 1 then
1210+
modDB.conditions["OnlyMinion"] = true
1211+
end
11981212

11991213
-- Special Rarity / Quantity Calc for Bisco's
12001214
local lootQuantityNormalEnemies = modDB:Sum("INC", nil, "LootQuantityNormalEnemies")

src/Modules/ConfigOptions.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -972,11 +972,11 @@ Huge sets the radius to 11.
972972
{ var = "multiplierNearbyCorpse", type = "count", label = "# of Nearby Corpses:", ifMult = "NearbyCorpse", apply = function(val, modList, enemyModList)
973973
modList:NewMod("Multiplier:NearbyCorpse", "BASE", val, "Config", { type = "Condition", var = "Combat" })
974974
end },
975-
{ var = "multiplierSummonedMinion", type = "count", label = "# of Summoned Minions:", ifMult = "SummonedMinion", apply = function(val, modList, enemyModList)
976-
modList:NewMod("Multiplier:SummonedMinion", "BASE", val, "Config", { type = "Condition", var = "Combat" })
975+
{ 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)
976+
modList:NewMod("Multiplier:SummonedMinion", "OVERRIDE", val, "Config", { type = "Condition", var = "Combat" })
977977
end },
978-
{ var = "multiplierMinionsInPresence", type = "count", label = "# of Minions in your Presence:", ifMult = "MinionPresenceCount", apply = function(val, modList, enemyModList)
979-
modList:NewMod("Multiplier:MinionPresenceCount", "BASE", val, "Config", { type = "Condition", var = "Combat" })
978+
{ var = "multiplierMinionsInPresence", type = "count", label = "# of Minions in your Presence:", ifMult = "MinionPresenceCount", tooltip = "Use this to override the count if you do not have all your minions summoned", apply = function(val, modList, enemyModList)
979+
modList:NewMod("Multiplier:MinionPresenceCount", "OVERRIDE", val, "Config", { type = "Condition", var = "Combat" })
980980
end },
981981
{ 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)
982982
modList:NewMod("Condition:OnConsecratedGround", "FLAG", true, "Config", { type = "Condition", var = "Combat" })

0 commit comments

Comments
 (0)