Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/Data/Minions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@ minions["UnearthBoneConstruct"] = {
attackTime = 1.06,
attackRange = 12,
accuracy = 1,
limit = "ActiveUnearthBoneConstructLimit",
baseMovementSpeed = 37,
spectreReservation = 50,
companionReservation = 30,
Expand Down Expand Up @@ -700,6 +701,7 @@ minions["LivingLightning"] = {
attackTime = 1,
attackRange = 20,
accuracy = 1,
limit = "ActiveLivingLightningLimit",
baseMovementSpeed = 97,
spectreReservation = 50,
companionReservation = 30,
Expand Down
15 changes: 15 additions & 0 deletions src/Data/SkillStatMap.lua
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,9 @@ return {
["display_skill_minions_level_is_corpse_level"] = {
skill("minionLevelIsEnemyLevel", true),
},
["display_minion_level_from_triggering_skill_level"] = {
skill("minionLevelIsTriggeredSkillLevel", true),
},
["active_skill_minion_added_damage_+%_final"] = {
skill("minionDamageEffectiveness", nil),
},
Expand Down Expand Up @@ -2196,6 +2199,9 @@ return {
["active_skill_minion_bleeding_damage_+%_final"] = {
mod("MinionModifier", "LIST", { mod = mod("Damage", "MORE", nil, 0, KeywordFlag.Bleed) }),
},
["minion_base_physical_damage_%_to_convert_to_lightning"] = {
mod("MinionModifier", "LIST", { mod = mod("PhysicalDamageConvertToLightning", "BASE", nil) }),
},
["minion_critical_strike_chance_+%"] = {
mod("MinionModifier", "LIST", { mod = mod("CritChance", "INC", nil) }),
},
Expand Down Expand Up @@ -2275,6 +2281,15 @@ return {
["base_number_of_arbalists"] = {
mod("ActiveArbalistLimit", "BASE", nil),
},
["base_number_of_living_lightning_allowed"] = {
mod("ActiveLivingLightningLimit", "BASE", nil),
},
["base_number_of_skeletal_constructs_allowed"] = {
mod("ActiveUnearthBoneConstructLimit", "BASE", nil),
},
["maximum_hatching_elementals_allowed"] = {
mod("ActiveSkitteringStoneLimit", "BASE", nil),
},
["base_number_of_champions_of_light_allowed"] = {
mod("ActiveSentinelOfPurityLimit", "BASE", nil),
},
Expand Down
9 changes: 9 additions & 0 deletions src/Data/Skills/minion.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1172,11 +1172,20 @@ skills["LivingLightningZap"] = {
label = "Zap",
incrementalEffectiveness = 0.054999999701977,
statDescriptionScope = "skill_stat_descriptions",
statMap = {
["living_lightning_damage_+%_final_per_additional_hit"] = {
mod("Damage", "MORE", nil),
div = 3/2, --Average over 3 hits
},
},
baseFlags = {
attack = true,
melee = true,
chaining = true,
},
baseMods = {
skill("timeOverride", 0.001, { type = "Multiplier", var = "LivingLightningAttackTime" }),
},
constantStats = {
{ "number_of_chains", 3 },
{ "living_lightning_damage_+%_final_per_additional_hit", -30 },
Expand Down
14 changes: 14 additions & 0 deletions src/Data/Skills/sup_int.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3593,6 +3593,14 @@ skills["TriggeredLivingLightningPlayer"] = {
label = "Living Lightning",
incrementalEffectiveness = 0.054999999701977,
statDescriptionScope = "triggered_living_lightning",
statMap = {
["living_lightning_maximum_number_of_attacks"] = {
mod("MinionModifier", "LIST", { mod = mod("RepeatCount", "BASE", nil), }),
},
["living_lightning_beam_attack_time_ms"] = {
mod("MinionModifier", "LIST", { mod = mod("Multiplier:LivingLightningAttackTime", "BASE", nil) }),
},
},
baseFlags = {
minion = true,
},
Expand Down Expand Up @@ -3669,6 +3677,12 @@ skills["TriggeredLivingLightningPlayerTwo"] = {
mod("MinionModifier", "LIST", { mod = mod("Speed", "INC", nil, ModFlag.Attack, 0, { type = "PerStat", stat = "Dex", actor = "parent", div = 10 }) }),
div = 10,
},
["living_lightning_maximum_number_of_attacks"] = {
mod("MinionModifier", "LIST", { mod = mod("RepeatCount", "BASE", nil), }),
},
["living_lightning_beam_attack_time_ms"] = {
mod("MinionModifier", "LIST", { mod = mod("Multiplier:LivingLightningAttackTime", "BASE", nil) }),
},
},
baseFlags = {
minion = true,
Expand Down
2 changes: 2 additions & 0 deletions src/Export/Minions/Minions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ local minions, mod = ...
#emit

#monster Metadata/Monsters/SkeletalConstruct/BoneConstructPlayerSummoned UnearthBoneConstruct
#limit ActiveUnearthBoneConstructLimit
#emit

#monster Metadata/Monsters/RhoaPlayerSummoned/RhoaPlayerSummoned SummonedRhoa
Expand All @@ -73,6 +74,7 @@ local minions, mod = ...
#emit

#monster Metadata/Monsters/Monsters/LivingLightningPlayerSummoned LivingLightning
#limit ActiveLivingLightningLimit
#emit

#monster Metadata/Monsters/Daemon/ArtilleryPlayer/SummonArtilleryDaemon TacticianMinion
Expand Down
7 changes: 7 additions & 0 deletions src/Export/Skills/minion.txt
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,13 @@ skills["MinionInstability"] = {
#skill LivingLightningZap Zap
#set LivingLightningZap
#flags attack melee chaining
statMap = {
["living_lightning_damage_+%_final_per_additional_hit"] = {
mod("Damage", "MORE", nil),
div = 3/2, --Average over 3 hits
},
},
#baseMod skill("timeOverride", 0.001, { type = "Multiplier", var = "LivingLightningAttackTime" })
#mods
#skillEnd

Expand Down
14 changes: 14 additions & 0 deletions src/Export/Skills/sup_int.txt
Original file line number Diff line number Diff line change
Expand Up @@ -783,6 +783,14 @@ statMap = {
#skill TriggeredLivingLightningPlayer
#set TriggeredLivingLightningPlayer
#flags minion
statMap = {
["living_lightning_maximum_number_of_attacks"] = {
mod("MinionModifier", "LIST", { mod = mod("RepeatCount", "BASE", nil), }),
},
["living_lightning_beam_attack_time_ms"] = {
mod("MinionModifier", "LIST", { mod = mod("Multiplier:LivingLightningAttackTime", "BASE", nil) }),
},
},
#mods
#skillEnd

Expand All @@ -804,6 +812,12 @@ statMap = {
mod("MinionModifier", "LIST", { mod = mod("Speed", "INC", nil, ModFlag.Attack, 0, { type = "PerStat", stat = "Dex", actor = "parent", div = 10 }) }),
div = 10,
},
["living_lightning_maximum_number_of_attacks"] = {
mod("MinionModifier", "LIST", { mod = mod("RepeatCount", "BASE", nil), }),
},
["living_lightning_beam_attack_time_ms"] = {
mod("MinionModifier", "LIST", { mod = mod("Multiplier:LivingLightningAttackTime", "BASE", nil) }),
},
},
#mods
#skillEnd
Expand Down
2 changes: 2 additions & 0 deletions src/Modules/CalcActiveSkill.lua
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ function calcs.createActiveSkill(activeEffect, supportList, env, actor, socketGr
-- Track how many active skills are supported by this support effect
if supportEffect.isSupporting and activeEffect.srcInstance then
supportEffect.isSupporting[activeEffect.srcInstance] = true
supportEffect.activeSkillLevel = activeEffect.srcInstance.level
end
if supportEffect.grantedEffect.addFlags and not summonSkill then
-- Support skill adds flags to supported skills (eg. Remote Mine adds 'mine')
Expand Down Expand Up @@ -789,6 +790,7 @@ function calcs.buildActiveSkillModList(env, activeSkill)
minion.type = minionType
minion.minionData = env.data.minions[minionType]
minion.level = activeSkill.skillData.minionLevelIsEnemyLevel and env.enemyLevel or
activeSkill.skillData.minionLevelIsTriggeredSkillLevel and activeEffect.srcInstance.supportEffect and activeEffect.srcInstance.supportEffect.activeSkillLevel and data.minionLevelTable[activeEffect.srcInstance.supportEffect.activeSkillLevel] 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 data.minionLevelTable[activeSkill.activeEffect.level] or 1
-- fix minion level between 1 and 100
Expand Down
2 changes: 2 additions & 0 deletions src/Modules/CalcOffence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2840,6 +2840,8 @@ function calcs.offence(env, actor, activeSkill)
if skillData.hitTimeOverride and not skillData.triggeredOnDeath then
output.HitTime = skillData.hitTimeOverride
output.HitSpeed = 1 / output.HitTime
elseif skillData.timeOverride and not skillData.triggeredOnDeath then
output.Time = skillData.timeOverride
elseif skillData.hitTimeMultiplier and output.Time and not skillData.triggeredOnDeath then
output.HitTime = output.Time * skillData.hitTimeMultiplier
if output.Cooldown and skillData.triggered then
Expand Down