From abb56bc39b55abd7b25ed57657bcf92051bd8d7f Mon Sep 17 00:00:00 2001 From: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com> Date: Sun, 29 Jun 2025 16:32:13 +1000 Subject: [PATCH] Fix Summon Phantasm minion level incorrectly using the active gem level (#8740) The Summon Phantasm support is meant to use the level of the Summon Phantasm gem to determine the level of the minion, not the level of the active skill which it is linked to This also removes the minon flag from the support as it does not grant the minion tag to supported skills in game Co-authored-by: LocalIdentity --- src/Data/Skills/sup_int.lua | 3 --- src/Export/Skills/sup_int.txt | 3 --- src/Modules/CalcActiveSkill.lua | 4 +++- src/Modules/CalcOffence.lua | 4 ++-- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Data/Skills/sup_int.lua b/src/Data/Skills/sup_int.lua index f877e98b..11ebf19f 100644 --- a/src/Data/Skills/sup_int.lua +++ b/src/Data/Skills/sup_int.lua @@ -5194,9 +5194,6 @@ skills["SupportSummonPhantasm"] = { addSkillTypes = { SkillType.CreatesMinion, SkillType.MinionsCanExplode, }, excludeSkillTypes = { SkillType.MinionsPersistWhenSkillRemoved, }, statDescriptionScope = "gem_stat_descriptions", - addFlags = { - minion = true, - }, addMinionList = { "SummonedPhantasm" }, diff --git a/src/Export/Skills/sup_int.txt b/src/Export/Skills/sup_int.txt index c887b9e4..e92cb98a 100644 --- a/src/Export/Skills/sup_int.txt +++ b/src/Export/Skills/sup_int.txt @@ -688,9 +688,6 @@ local skills, mod, flag, skill = ... #mods #skill SupportSummonPhantasm - addFlags = { - minion = true, - }, addMinionList = { "SummonedPhantasm" }, diff --git a/src/Modules/CalcActiveSkill.lua b/src/Modules/CalcActiveSkill.lua index 86005e7e..706d5935 100644 --- a/src/Modules/CalcActiveSkill.lua +++ b/src/Modules/CalcActiveSkill.lua @@ -615,6 +615,7 @@ function calcs.buildActiveSkillModList(env, activeSkill) -- Create minion local minionList, isSpectre + local minionSupportLevel = { } if activeGrantedEffect.minionList then if activeGrantedEffect.minionList[1] then minionList = copyTable(activeGrantedEffect.minionList) @@ -629,6 +630,7 @@ function calcs.buildActiveSkillModList(env, activeSkill) if skillEffect.grantedEffect.support and skillEffect.grantedEffect.addMinionList then for _, minionType in ipairs(skillEffect.grantedEffect.addMinionList) do t_insert(minionList, minionType) + minionSupportLevel[minionType] = skillEffect.grantedEffect.levels[skillEffect.level].levelRequirement end end end @@ -654,7 +656,7 @@ function calcs.buildActiveSkillModList(env, activeSkill) minion.minionData = env.data.minions[minionType] minion.level = activeSkill.skillData.minionLevelIsEnemyLevel and env.enemyLevel or activeSkill.skillData.minionLevelIsPlayerLevel and (m_min(env.build and env.build.characterLevel or activeSkill.skillData.minionLevel or activeEffect.grantedEffectLevel.levelRequirement, activeSkill.skillData.minionLevelIsPlayerLevel)) or - activeSkill.skillData.minionLevel or activeEffect.grantedEffectLevel.levelRequirement + minionSupportLevel[minion.type] or activeSkill.skillData.minionLevel or activeEffect.grantedEffectLevel.levelRequirement -- fix minion level between 1 and 100 minion.level = m_min(m_max(minion.level,1),100) minion.itemList = { } diff --git a/src/Modules/CalcOffence.lua b/src/Modules/CalcOffence.lua index d19a788f..a7de1dcd 100644 --- a/src/Modules/CalcOffence.lua +++ b/src/Modules/CalcOffence.lua @@ -967,7 +967,7 @@ function calcs.offence(env, actor, activeSkill) runSkillFunc("preSkillTypeFunc") -- Calculate skill type stats - if skillFlags.minion then + if activeSkill.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)) end @@ -3649,7 +3649,7 @@ function calcs.offence(env, actor, activeSkill) end end - if skillFlags.minion then + if activeSkill.minion then skillData.summonSpeed = output.SummonedMinionsPerCast * (output.HitSpeed or output.Speed) * skillData.dpsMultiplier end