@@ -638,9 +638,13 @@ function calcs.buildActiveSkillModList(env, activeSkill)
638638
639639 -- The damage fixup stat applies x% less base Attack Damage and x% more base Attack Speed as confirmed by Openarl Jan 4th 2024
640640 -- Implemented in this manner as the stat exists on the minion not the skills
641- if activeSkill .actor and activeSkill .actor .minionData and activeSkill .actor .minionData .damageFixup then
642- skillModList :NewMod (" Damage" , " MORE" , - 100 * activeSkill .actor .minionData .damageFixup , " Damage Fixup" , ModFlag .Attack )
643- skillModList :NewMod (" Speed" , " MORE" , 100 * activeSkill .actor .minionData .damageFixup , " Damage Fixup" , ModFlag .Attack )
641+ if activeSkill .actor and activeSkill .actor .minionData then
642+ if activeSkill .actor .minionData .damageFixup then
643+ skillModList :NewMod (" Damage" , " MORE" , - 100 * activeSkill .actor .minionData .damageFixup , " Damage Fixup" , ModFlag .Attack )
644+ skillModList :NewMod (" Speed" , " MORE" , 100 * activeSkill .actor .minionData .damageFixup , " Damage Fixup" , ModFlag .Attack )
645+ elseif activeSkill .actor .minionData .damage ~= 1 then
646+ skillModList :NewMod (" Damage" , " MORE" , (activeSkill .actor .minionData .damage - 1 ) * 100 , activeSkill .actor .minionData .name .. " Damage Multiplier" , ModFlag .Attack )
647+ end
644648 end
645649 if skillModList :Flag (activeSkill .skillCfg , " DisableSkill" ) and not skillModList :Flag (activeSkill .skillCfg , " EnableSkill" ) then
646650 skillFlags .disable = true
@@ -819,13 +823,13 @@ function calcs.buildActiveSkillModList(env, activeSkill)
819823 end
820824
821825 -- Create minion
822- local minionList , isSpectre , isBeastCompanion
826+ local minionList , monsterDamage
823827 if activeGrantedEffect .minionList and activeGrantedEffect .name :match (" ^Spectre" ) then
824828 minionList = copyTable (env .build .spectreList )
825- isSpectre = true
829+ monsterDamage = true
826830 elseif activeGrantedEffect .minionList and activeGrantedEffect .name :match (" ^Companion" ) then
827831 minionList = copyTable (env .build .beastList )
828- isBeastCompanion = true
832+ monsterDamage = true
829833 elseif activeGrantedEffect .minionList and activeGrantedEffect .minionList [1 ] then
830834 minionList = copyTable (activeGrantedEffect .minionList )
831835 else
@@ -879,8 +883,9 @@ function calcs.buildActiveSkillModList(env, activeSkill)
879883 minion .lifeTable = env .data .monsterAllyLifeTable
880884 end
881885 local attackTime = minion .minionData .attackTime
882- local damageTable = (isSpectre or minion .minionData .hostile ) and env .data .monsterDamageTable or env .data .monsterAllyDamageTable
883- local damage = damageTable [minion .level ] * minion .minionData .damage
886+ local damageTable = (monsterDamage or minion .minionData .hostile ) and env .data .monsterDamageTable or env .data .monsterAllyDamageTable
887+ minion .hiddenDamageFixup = monsterDamage and (round (env .data .monsterAllyDamageTable [minion .level ] / damageTable [minion .level ] * data .misc .SpectreBeastDamageFixup , 2 ) - 1 ) or 0
888+ local damage = damageTable [minion .level ]
884889 if not minion .minionData .baseDamageIgnoresAttackSpeed then -- minions with this flag do not factor attack time into their base damage
885890 damage = damage * attackTime
886891 end
0 commit comments