@@ -1666,35 +1666,51 @@ function calcs.perform(env, skipEHP)
16661666 local linkSkills = { }
16671667 local allyBuffs = env .partyMembers [" Aura" ]
16681668 local buffExports = { Aura = {}, Curse = {}, Warcry = {}, Link = {}, EnemyMods = {}, EnemyConditions = {}, PlayerMods = {} }
1669- for spectreId = 1 , # env .spec .build .spectreList do
1670- local spectreData = data .minions [env .spec .build .spectreList [spectreId ]]
1671- for modId = 1 , # spectreData .modList do
1672- local modData = spectreData .modList [modId ]
1673- if modData .name == " EnemyCurseLimit" or modData .name == " EnemyMarkLimit" then
1674- minionCurses .limit = modData .value + 1
1669+ local hasActiveSpectreSkill = false
1670+ for _ , activeSkill in ipairs (env .player .activeSkillList ) do
1671+ local skillFlags = activeSkill .activeEffect .statSet and activeSkill .activeEffect .statSet .skillFlags
1672+ if env .mode == " CALCS" then
1673+ skillFlags = activeSkill .activeEffect .statSetCalcs and activeSkill .activeEffect .statSetCalcs .skillFlags
1674+ end
1675+ if not (skillFlags and skillFlags .disable ) then
1676+ local skillId = activeSkill .activeEffect .grantedEffect .id
1677+ if skillId and skillId :match (" ^SummonSpectre" ) then
1678+ hasActiveSpectreSkill = true
16751679 break
1676- elseif modData .name == " AllyModifier" and modData .type == " LIST" then
1677- buffs [" Spectre" ] = buffs [" Spectre" ] or new (" ModList" )
1678- minionBuffs [" Spectre" ] = minionBuffs [" Spectre" ] or new (" ModList" )
1679- for _ , modValue in pairs (modData .value ) do
1680- local copyModValue = copyTable (modValue )
1681- copyModValue .source = " Spectre:" .. spectreData .name
1682- t_insert (minionBuffs [" Spectre" ], copyModValue )
1683- t_insert (buffs [" Spectre" ], copyModValue )
1684- end
1685- elseif modData .name == " MinionModifier" and modData .type == " LIST" then
1686- minionBuffs [" Spectre" ] = minionBuffs [" Spectre" ] or new (" ModList" )
1687- for _ , modValue in pairs (modData .value ) do
1688- local copyModValue = copyTable (modValue )
1689- copyModValue .source = " Spectre:" .. spectreData .name
1690- t_insert (minionBuffs [" Spectre" ], copyModValue )
1691- end
1692- elseif modData .name == " PlayerModifier" and modData .type == " LIST" then
1693- buffs [" Spectre" ] = buffs [" Spectre" ] or new (" ModList" )
1694- for _ , modValue in pairs (modData .value ) do
1695- local copyModValue = copyTable (modValue )
1696- copyModValue .source = " Spectre:" .. spectreData .name
1697- t_insert (buffs [" Spectre" ], copyModValue )
1680+ end
1681+ end
1682+ end
1683+ if hasActiveSpectreSkill then
1684+ for spectreId = 1 , # env .spec .build .spectreList do
1685+ local spectreData = data .minions [env .spec .build .spectreList [spectreId ]]
1686+ for modId = 1 , # spectreData .modList do
1687+ local modData = spectreData .modList [modId ]
1688+ if modData .name == " EnemyCurseLimit" or modData .name == " EnemyMarkLimit" then
1689+ minionCurses .limit = modData .value + 1
1690+ break
1691+ elseif modData .name == " AllyModifier" and modData .type == " LIST" then
1692+ buffs [" Spectre" ] = buffs [" Spectre" ] or new (" ModList" )
1693+ minionBuffs [" Spectre" ] = minionBuffs [" Spectre" ] or new (" ModList" )
1694+ for _ , modValue in pairs (modData .value ) do
1695+ local copyModValue = copyTable (modValue )
1696+ copyModValue .source = " Spectre:" .. spectreData .name
1697+ t_insert (minionBuffs [" Spectre" ], copyModValue )
1698+ t_insert (buffs [" Spectre" ], copyModValue )
1699+ end
1700+ elseif modData .name == " MinionModifier" and modData .type == " LIST" then
1701+ minionBuffs [" Spectre" ] = minionBuffs [" Spectre" ] or new (" ModList" )
1702+ for _ , modValue in pairs (modData .value ) do
1703+ local copyModValue = copyTable (modValue )
1704+ copyModValue .source = " Spectre:" .. spectreData .name
1705+ t_insert (minionBuffs [" Spectre" ], copyModValue )
1706+ end
1707+ elseif modData .name == " PlayerModifier" and modData .type == " LIST" then
1708+ buffs [" Spectre" ] = buffs [" Spectre" ] or new (" ModList" )
1709+ for _ , modValue in pairs (modData .value ) do
1710+ local copyModValue = copyTable (modValue )
1711+ copyModValue .source = " Spectre:" .. spectreData .name
1712+ t_insert (buffs [" Spectre" ], copyModValue )
1713+ end
16981714 end
16991715 end
17001716 end
0 commit comments