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
6 changes: 6 additions & 0 deletions src/Data/SkillStatMap.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2395,6 +2395,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),
},
Expand Down
16 changes: 15 additions & 1 deletion src/Modules/CalcPerform.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1069,7 +1069,7 @@ function calcs.perform(env, skipEHP)
applyEnemyModifiers(env.enemy, true)

local minionTypeCount, ammoTypeCount, grenadeTypeCount = 0, 0, 0
local minionType, ammoType, grenadeType = { }, { }, { }
local minionCount, minionType, ammoType, grenadeType = { }, { }, { }, { }
for _, activeSkill in ipairs(env.player.activeSkillList) do
local skillFlags
if env.mode == "CALCS" then
Expand Down Expand Up @@ -1140,6 +1140,16 @@ function calcs.perform(env, skipEHP)
local limit = activeSkill.skillModList:Sum("BASE", nil, activeSkill.minion.minionData.limit)
output[activeSkill.minion.minionData.limit] = m_max(limit, output[activeSkill.minion.minionData.limit] or 0)
end
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" })
env.player.modDB:NewMod("Multiplier:MinionPresenceCount", "BASE", output[activeSkill.minion.minionData.limit], "Config", { type = "Condition", var = "Combat" })
minionCount[activeSkill.minion.minionData.limit] = true
t_insert(minionCount, activeSkill.minion.minionData.limit)
end
end
if activeSkill.activeEffect.grantedEffect and activeSkill.skillTypes[SkillType.Minion] and activeSkill.skillTypes[SkillType.Persistent] and not minionType[activeSkill.activeEffect.grantedEffect.id] then
minionTypeCount = minionTypeCount + 1
minionType[activeSkill.activeEffect.grantedEffect.id] = true
Expand Down Expand Up @@ -1188,6 +1198,10 @@ function calcs.perform(env, skipEHP)
-- Stat sorting category calcs
output.EffectiveLootRarityMod = calcLib.mod(modDB, nil, "LootRarity")
output.Spirit = m_floor(calcLib.val(modDB, nil, "Spirit"))

if #minionCount == 1 then
modDB.conditions["OnlyMinion"] = true
end

-- Special Rarity / Quantity Calc for Bisco's
local lootQuantityNormalEnemies = modDB:Sum("INC", nil, "LootQuantityNormalEnemies")
Expand Down
8 changes: 4 additions & 4 deletions src/Modules/ConfigOptions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -960,11 +960,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 = "multiplierMinionsInPresence", type = "count", label = "# of Minions in your Presence:", ifMult = "MinionPresenceCount", apply = function(val, modList, enemyModList)
modList:NewMod("Multiplier:MinionPresenceCount", "BASE", val, "Config", { type = "Condition", var = "Combat" })
{ 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)
modList:NewMod("Multiplier:MinionPresenceCount", "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" })
Expand Down
Loading