Skip to content

Commit 101d685

Browse files
authored
Add support for Minion Revival Time (#847)
1 parent 2d120f0 commit 101d685

File tree

7 files changed

+33
-5
lines changed

7 files changed

+33
-5
lines changed

src/Data/ModCache.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2915,11 +2915,11 @@ c["Meta Skills gain 35% more Energy"]={nil,"Meta Skills gain 35% more Energy "}
29152915
c["Meta Skills gain 8% increased Energy"]={nil,"Meta Skills gain 8% increased Energy "}
29162916
c["Minions Recoup 10% of Damage taken as Life"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="LifeRecoup",type="BASE",value=10}}}},nil}
29172917
c["Minions Regenerate 3% of Life per second"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="LifeRegenPercent",type="BASE",value=3}}}},nil}
2918-
c["Minions Revive 15% faster"]={nil,"Revive 15% faster "}
2919-
c["Minions Revive 15% faster You gain 2% Life when one of your Minions is Revived"]={nil,"Revive 15% faster You gain 2% Life when one of your Minions is Revived "}
2920-
c["Minions Revive 25% faster"]={nil,"Revive 25% faster "}
2921-
c["Minions Revive 5% faster"]={nil,"Revive 5% faster "}
2922-
c["Minions Revive 50% faster"]={nil,"Revive 50% faster "}
2918+
c["Minions Revive 13% faster"]={{[1]={flags=0,keywordFlags=0,name="MinionRevivalTime",type="INC",value=-13}},nil}
2919+
c["Minions Revive 15% faster"]={{[1]={flags=0,keywordFlags=0,name="MinionRevivalTime",type="INC",value=-15}},nil}
2920+
c["Minions Revive 25% faster"]={{[1]={flags=0,keywordFlags=0,name="MinionRevivalTime",type="INC",value=-25}},nil}
2921+
c["Minions Revive 5% faster"]={{[1]={flags=0,keywordFlags=0,name="MinionRevivalTime",type="INC",value=-5}},nil}
2922+
c["Minions Revive 50% faster"]={{[1]={flags=0,keywordFlags=0,name="MinionRevivalTime",type="INC",value=-50}},nil}
29232923
c["Minions deal (25-35)% increased Damage"]={nil,"(25-35)% increased Damage "}
29242924
c["Minions deal (8-13)% increased Damage"]={nil,"(8-13)% increased Damage "}
29252925
c["Minions deal 10% increased Damage"]={{[1]={flags=0,keywordFlags=0,name="MinionModifier",type="LIST",value={mod={flags=0,keywordFlags=0,name="Damage",type="INC",value=10}}}},nil}

src/Data/Skills/act_int.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13306,6 +13306,12 @@ skills["SacrificePlayer"] = {
1330613306
label = "Sacrifice",
1330713307
incrementalEffectiveness = 0.054999999701977,
1330813308
statDescriptionScope = "harvester",
13309+
statMap = {
13310+
["harvester_minion_resummon_speed_+%_final"] = {
13311+
mod("MinionRevivalTime", "MORE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" } ),
13312+
mult = -1,
13313+
},
13314+
},
1330913315
baseFlags = {
1331013316
minion = true,
1331113317
},

src/Export/Skills/act_int.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,12 @@ statMap = {
839839
#skill SacrificePlayer
840840
#set SacrificePlayer
841841
#flags minion
842+
statMap = {
843+
["harvester_minion_resummon_speed_+%_final"] = {
844+
mod("MinionRevivalTime", "MORE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" } ),
845+
mult = -1,
846+
},
847+
},
842848
#mods
843849
#skillEnd
844850

src/Modules/CalcOffence.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,6 +1165,19 @@ function calcs.offence(env, actor, activeSkill)
11651165
}
11661166
end
11671167
end
1168+
if activeSkill.skillTypes[SkillType.CreatesSkeletonMinion] then
1169+
local minionRevivalTimeMod = calcLib.mod(skillModList, skillCfg, "MinionRevivalTime")
1170+
local baseMinionRevivalTime = data.misc.MinionRevivalTimeBase
1171+
output.MinionRevivalTime = baseMinionRevivalTime * minionRevivalTimeMod
1172+
if breakdown then
1173+
breakdown.MinionRevivalTime = {
1174+
s_format("%.3fs ^8(Base Revival Time)", baseMinionRevivalTime),
1175+
s_format("x %.2f ^8(effect modifiers)", minionRevivalTimeMod),
1176+
s_format("\n"),
1177+
s_format("= %.3fs ^8(Total Revival Time)", output.MinionRevivalTime),
1178+
}
1179+
end
1180+
end
11681181
if activeSkill.skillTypes[SkillType.Warcry] then
11691182
local full_duration = calcSkillDuration(skillModList, skillCfg, activeSkill.skillData, env, enemyDB)
11701183
local cooldownOverride = skillModList:Override(skillCfg, "CooldownRecovery")

src/Modules/CalcSections.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,7 @@ return {
627627
{ label = "Armour Break / hit", haveOutput = "ArmourBreakPerHit", { format = "{0:output:ArmourBreakPerHit}", { modName = "ArmourBreakPerHit", modType = "BASE"} }, },
628628
{ label = "Soul Cost", color = colorCodes.RAGE, haveOutput = "SoulHasCost", { format = "{0:output:SoulCost}", { breakdown = "SoulCost" }, { modName = { "SoulCost" }, cfg = "skill" }, }, },
629629
{ label = "Active Minion Limit", haveOutput = "ActiveMinionLimit", { format = "{0:output:ActiveMinionLimit}" } },
630+
{ label = "Minion Revival Time", haveOutput = "MinionRevivalTime", { format = "{2:output:MinionRevivalTime}", { breakdown = "MinionRevivalTime" }, { modName = { "MinionRevivalTime" } } },},
630631
{ label = "Quantity Multiplier", haveOutput = "QuantityMultiplier", { format = "{0:output:QuantityMultiplier}",
631632
{ breakdown = "QuantityMultiplier" },
632633
{ modName = { "QuantityMultiplier" }, cfg = "skill" },

src/Modules/Data.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ data.misc = { -- magic numbers
184184
TrapTriggerRadiusBase = 10,
185185
MineDetonationRadiusBase = 60,
186186
MineAuraRadiusBase = 35,
187+
MinionRevivalTimeBase = 8,
187188
BrandAttachmentRangeBase = 30,
188189
ProjectileDistanceCap = 150,
189190
MinStunChanceNeeded = 20,

src/Modules/ModParser.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3953,6 +3953,7 @@ local specialModList = {
39533953
["totems gain %+(%d+)%% to (%w+) resistance"] = function(num, _, resistance) return { mod("Totem"..firstToUpper(resistance).."Resist", "BASE", num) } end,
39543954
["totems gain %+(%d+)%% to all elemental resistances"] = function(num) return { mod("TotemElementalResist", "BASE", num) } end,
39553955
-- Minions
3956+
["minions revive (%d+)%% faster"] = function(num) return { mod("MinionRevivalTime", "INC", -num) } end,
39563957
["your strength is added to your minions"] = { flag("StrengthAddedToMinions") },
39573958
["your dexterity is added to your minions"] = { flag("DexterityAddedToMinions") },
39583959
["half of your strength is added to your minions"] = { flag("HalfStrengthAddedToMinions") },

0 commit comments

Comments
 (0)