diff --git a/src/Classes/PartyTab.lua b/src/Classes/PartyTab.lua index 9867899c17..0fc4369a98 100644 --- a/src/Classes/PartyTab.lua +++ b/src/Classes/PartyTab.lua @@ -763,7 +763,7 @@ function PartyTabClass:ParseBuffs(list, buf, buffType, label) elseif line == "---" then mode = "Name" else - if line:find("|") and currentName ~= "SKIP" then + if line:find("|") and currentName ~= "SKIP" and not line:find("MinionModifier|LIST") then if currentModType == "otherEffects" then currentName, currentEffect, line = line:match("([%w ]-%w+)|(%w+)|(.+)") end diff --git a/src/Data/ModCache.lua b/src/Data/ModCache.lua index a12000dfdb..933e36f450 100644 --- a/src/Data/ModCache.lua +++ b/src/Data/ModCache.lua @@ -6796,7 +6796,7 @@ c["Arrows gain Critical Strike Chance as they travel farther, up to 100% increas c["Arrows gain Damage as they travel farther, dealing up to 50% increased Damage with Hits to targets"]={{[1]={[1]={ramp={[1]={[1]=35,[2]=0},[2]={[1]=70,[2]=1}},type="DistanceRamp"},flags=131076,keywordFlags=0,name="Damage",type="INC",value=50}},nil} c["Arrows that Pierce have +50% to Critical Strike Multiplier"]={{[1]={[1]={stat="PierceCount",threshold=1,type="StatThreshold"},flags=131072,keywordFlags=0,name="CritMultiplier",type="BASE",value=50}},nil} c["Arrows that Pierce have 50% chance to cause Bleeding"]={{[1]={[1]={stat="PierceCount",threshold=1,type="StatThreshold"},flags=1025,keywordFlags=0,name="BleedChance",type="BASE",value=50}},nil} -c["Aspect of the Avian also grants Avian's Might and Avian's Flight to nearby Allies"]={{[1]={[1]={skillName="Aspect of the Avian",type="SkillName"},flags=0,keywordFlags=0,name="ExtraSkillMod",type="LIST",value={mod={flags=0,keywordFlags=0,name="AppliesToPartyMembers",type="FLAG",value=true}}}},nil} +c["Aspect of the Avian also grants Avian's Might and Avian's Flight to nearby Allies"]={{[1]={[1]={skillName="Aspect of the Avian",type="SkillName"},flags=0,keywordFlags=0,name="ExtraSkillMod",type="LIST",value={mod={flags=0,keywordFlags=0,name="BuffAppliesToAllies",type="FLAG",value=true}}}},nil} c["Aspect of the Cat has no Reservation"]={{[1]={[1]={skillId="CatAspect",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationFlat",value=0}},[2]={[1]={skillId="CatAspect",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationFlat",value=0}},[3]={[1]={skillId="CatAspect",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="manaReservationPercent",value=0}},[4]={[1]={skillId="CatAspect",type="SkillId"},[2]={neg=true,skillType=119,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="lifeReservationPercent",value=0}}},nil} c["Aspect of the Spider can inflict Spider's Web on Enemies an additional time"]={{[1]={[1]={skillName="Aspect of the Spider",type="SkillName"},flags=0,keywordFlags=0,name="ExtraSkillMod",type="LIST",value={mod={flags=0,keywordFlags=0,name="Multiplier:SpiderWebApplyStackMax",type="BASE",value=1}}}},nil} c["Aspect of the Spider inflicts Spider's Webs and Hinder every 0.5 Seconds instead"]={nil,"Aspect of the Spider inflicts Spider's Webs and Hinder every 0.5 Seconds instead "} diff --git a/src/Data/Skills/other.lua b/src/Data/Skills/other.lua index 229f609e75..5957db3f96 100644 --- a/src/Data/Skills/other.lua +++ b/src/Data/Skills/other.lua @@ -143,19 +143,20 @@ skills["BirdAspect"] = { ["chance_to_deal_double_damage_%"] = { mod("DoubleDamageChance", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Might", effectCond = "AviansMightActive" }), }, + ["minion_chance_to_deal_double_damage_%"] = { + mod("MinionModifier", "LIST", { mod = mod("DoubleDamageChance", "BASE", nil) }, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Might", effectCond = "AviansMightActive" }), + }, ["base_movement_velocity_+%"] = { mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Flight", effectCond = "AviansFlightActive" }), }, ["minion_movement_speed_+%"] = { + mod("MinionModifier", "LIST", { mod = mod("MovementSpeed", "INC", nil) }, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Flight", effectCond = "AviansFlightActive" }), }, }, baseFlags = { cast = true, duration = true, }, - baseMods = { - skill("buffMinions", true), - }, constantStats = { { "chance_to_deal_double_damage_%", 10 }, { "minion_chance_to_deal_double_damage_%", 10 }, @@ -2812,7 +2813,7 @@ skills["SummonHarbingerOfTimeUber"] = { }, baseMods = { mod("ActionSpeed", "INC", 10, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Greater Harbinger of Time", modCond = "GreaterHarbingerOfTime" }), - skill("buffMinions", true), + skill("buffAllies", true), }, constantStats = { { "alternate_minion", 7 }, @@ -2958,7 +2959,7 @@ skills["SummonHarbingerOfTime"] = { }, baseMods = { mod("ActionSpeed", "INC", 10, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Harbinger of Time", modCond = "HarbingerOfTime" }), - skill("buffMinions", true), + skill("buffAllies", true), }, constantStats = { { "alternate_minion", 1 }, diff --git a/src/Export/Skills/other.txt b/src/Export/Skills/other.txt index 6a2862e70d..012d611861 100644 --- a/src/Export/Skills/other.txt +++ b/src/Export/Skills/other.txt @@ -57,13 +57,16 @@ local skills, mod, flag, skill = ... ["chance_to_deal_double_damage_%"] = { mod("DoubleDamageChance", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Might", effectCond = "AviansMightActive" }), }, + ["minion_chance_to_deal_double_damage_%"] = { + mod("MinionModifier", "LIST", { mod = mod("DoubleDamageChance", "BASE", nil) }, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Might", effectCond = "AviansMightActive" }), + }, ["base_movement_velocity_+%"] = { mod("MovementSpeed", "INC", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Flight", effectCond = "AviansFlightActive" }), }, ["minion_movement_speed_+%"] = { + mod("MinionModifier", "LIST", { mod = mod("MovementSpeed", "INC", nil) }, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Avian's Flight", effectCond = "AviansFlightActive" }), }, }, -#baseMod skill("buffMinions", true) #mods #skill CatAspect @@ -773,7 +776,7 @@ local skills, mod, flag, skill = ... #flags spell minion fromItem = true, #baseMod mod("ActionSpeed", "INC", 10, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Greater Harbinger of Time", modCond = "GreaterHarbingerOfTime" }) -#baseMod skill("buffMinions", true) +#baseMod skill("buffAllies", true) #mods #skill SummonHarbingerOfTheArcane @@ -805,7 +808,7 @@ local skills, mod, flag, skill = ... #flags spell minion fromItem = true, #baseMod mod("ActionSpeed", "INC", 10, 0, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Harbinger of Time", modCond = "HarbingerOfTime" }) -#baseMod skill("buffMinions", true) +#baseMod skill("buffAllies", true) #mods #skill TriggeredSummonGhostOnKill Triggered Summon Phantasm diff --git a/src/Modules/CalcPerform.lua b/src/Modules/CalcPerform.lua index 1d7537fe3d..d3c25646f0 100644 --- a/src/Modules/CalcPerform.lua +++ b/src/Modules/CalcPerform.lua @@ -1710,7 +1710,7 @@ function calcs.perform(env, fullDPSSkipEHP) buffs[buff.name].notBuff = true end end - if env.minion and (buff.applyMinions or buff.applyAllies) then + if env.minion and (buff.applyMinions or buff.applyAllies or skillModList:Flag(nil, "BuffAppliesToAllies")) then activeSkill.minionBuffSkill = true env.minion.modDB.conditions["AffectedBy"..buff.name:gsub(" ","")] = true local srcList = new("ModList") @@ -1719,7 +1719,7 @@ function calcs.perform(env, fullDPSSkipEHP) srcList:ScaleAddList(buff.modList, (1 + inc / 100) * more) mergeBuff(srcList, minionBuffs, buff.name) end - if partyTabEnableExportBuffs and (skillModList:Flag(nil, "AppliesToPartyMembers") or buff.name == "Harbinger of Time" or buff.name == "Greater Harbinger of Time") then -- special case + if partyTabEnableExportBuffs and (buff.applyAllies or skillModList:Flag(nil, "BuffAppliesToAllies") or skillModList:Flag(nil, "BuffAppliesToPartyMembers")) then local inc = modStore:Sum("INC", skillCfg, "BuffEffect") + skillModList:Sum("INC", skillCfg, buff.name:gsub(" ", "").."Effect") local more = modStore:More(skillCfg, "BuffEffect") buffExports["Aura"]["otherEffects"] = buffExports["Aura"]["otherEffects"] or { } diff --git a/src/Modules/ModParser.lua b/src/Modules/ModParser.lua index 640f71a805..5ba094d155 100644 --- a/src/Modules/ModParser.lua +++ b/src/Modules/ModParser.lua @@ -3331,7 +3331,7 @@ local specialModList = { ["([%+%-][%d%.]+) seconds to avian's might duration"] = function(num) return { mod("PrimaryDuration", "BASE", num, { type = "SkillName", skillName = "Aspect of the Avian" }) } end, ["([%+%-][%d%.]+) seconds to avian's flight duration"] = function(num) return { mod("SecondaryDuration", "BASE", num, { type = "SkillName", skillName = "Aspect of the Avian" }) } end, ["aspect of the spider can inflict spider's web on enemies an additional time"] = { mod("ExtraSkillMod", "LIST", { mod = mod("Multiplier:SpiderWebApplyStackMax", "BASE", 1) }, { type = "SkillName", skillName = "Aspect of the Spider" }) }, - ["aspect of the avian also grants avian's might and avian's flight to nearby allies"] = { mod("ExtraSkillMod", "LIST", { mod = flag("AppliesToPartyMembers") }, { type = "SkillName", skillName = "Aspect of the Avian" }) }, + ["aspect of the avian also grants avian's might and avian's flight to nearby allies"] = { mod("ExtraSkillMod", "LIST", { mod = flag("BuffAppliesToAllies") }, { type = "SkillName", skillName = "Aspect of the Avian" }) }, ["marked enemy takes (%d+)%% increased damage"] = function(num) return { mod("EnemyModifier", "LIST", { mod = mod("DamageTaken", "INC", num) }, {type = "ActorCondition", actor = "enemy", var = "Marked" }), } end,