Skip to content

Commit

Permalink
Archmage Support
Browse files Browse the repository at this point in the history
  • Loading branch information
LocalIdentity committed Mar 23, 2024
1 parent dfbbf4d commit 3a8afed
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 56 deletions.
95 changes: 47 additions & 48 deletions src/Data/Skills/sup_int.lua
Original file line number Diff line number Diff line change
Expand Up @@ -301,80 +301,79 @@ skills["SupportArcaneSurge"] = {
}
skills["SupportArchmage"] = {
name = "Archmage",
description = "Supports spell skills that deal damage with hits and have no reservation. Cannot support arcane skills, Vaal skills, or skills used by totems, traps or mines. Cannot modify the skills of minions.",
description = "Supports spell skills that deal damage with hits and have no reservation. Cannot support brand skills, orb skills, arcane skills, Vaal skills, or skills used by totems, traps or mines. Cannot modify the skills of minions.",
color = 3,
baseEffectiveness = 0.17499999701977,
incrementalEffectiveness = 0.039000000804663,
support = true,
requireSkillTypes = { SkillType.Damage, SkillType.Spell, SkillType.AND, },
addSkillTypes = { },
excludeSkillTypes = { SkillType.SummonsTotem, SkillType.Trapped, SkillType.RemoteMined, SkillType.HasReservation, SkillType.Vaal, SkillType.Arcane, },
excludeSkillTypes = { SkillType.SummonsTotem, SkillType.Trapped, SkillType.RemoteMined, SkillType.HasReservation, SkillType.Vaal, SkillType.Arcane, SkillType.Orb, SkillType.Brand, },
ignoreMinionTypes = true,
statDescriptionScope = "gem_stat_descriptions",
statMap = {
["manaweave_cost_equals_%_unreserved_mana"] = {
skill("baseManaCostIsAtLeastPercentUnreservedMana", nil),
mod("ManaCost", "BASE", nil, 0, 0, { type = "PercentStat", stat = "ManaUnreserved" , percent = 1 }),
},
["manaweave_added_lightning_damage_%_cost_if_payable"] = {
mod("LightningMin", "BASE", nil, 0, 0, { type = "PerStat", stat = "ManaCost" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "PerStat", stat = "ManaCost" }),
div = 100,
mod("LightningMin", "BASE", nil, 0, 0, { type = "PercentStat", stat = "ManaUnreserved" , percent = 1 }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "PercentStat", stat = "ManaUnreserved" , percent = 1 }),
},
},
qualityStats = {
Default = {
{ "base_mana_cost_-%", -0.5 },
{ "spell_damage_+%", 0.5 },
},
},
constantStats = {
{ "manaweave_cost_equals_%_unreserved_mana", 5 },
{ "manaweave_added_lightning_damage_%_cost_if_payable", 75 },
},
stats = {
"global_minimum_added_lightning_damage",
"global_maximum_added_lightning_damage",
"manaweave_added_lightning_damage_%_cost_if_payable",
},
levels = {
[1] = { 0.10000000149012, 1.8999999761581, levelRequirement = 31, statInterpolation = { 3, 3, }, },
[2] = { 0.10000000149012, 1.8999999761581, levelRequirement = 34, statInterpolation = { 3, 3, }, },
[3] = { 0.10000000149012, 1.8999999761581, levelRequirement = 36, statInterpolation = { 3, 3, }, },
[4] = { 0.10000000149012, 1.8999999761581, levelRequirement = 38, statInterpolation = { 3, 3, }, },
[5] = { 0.10000000149012, 1.8999999761581, levelRequirement = 40, statInterpolation = { 3, 3, }, },
[6] = { 0.10000000149012, 1.8999999761581, levelRequirement = 42, statInterpolation = { 3, 3, }, },
[7] = { 0.10000000149012, 1.8999999761581, levelRequirement = 44, statInterpolation = { 3, 3, }, },
[8] = { 0.10000000149012, 1.8999999761581, levelRequirement = 46, statInterpolation = { 3, 3, }, },
[9] = { 0.10000000149012, 1.8999999761581, levelRequirement = 48, statInterpolation = { 3, 3, }, },
[10] = { 0.10000000149012, 1.8999999761581, levelRequirement = 50, statInterpolation = { 3, 3, }, },
[11] = { 0.10000000149012, 1.8999999761581, levelRequirement = 52, statInterpolation = { 3, 3, }, },
[12] = { 0.10000000149012, 1.8999999761581, levelRequirement = 54, statInterpolation = { 3, 3, }, },
[13] = { 0.10000000149012, 1.8999999761581, levelRequirement = 56, statInterpolation = { 3, 3, }, },
[14] = { 0.10000000149012, 1.8999999761581, levelRequirement = 58, statInterpolation = { 3, 3, }, },
[15] = { 0.10000000149012, 1.8999999761581, levelRequirement = 60, statInterpolation = { 3, 3, }, },
[16] = { 0.10000000149012, 1.8999999761581, levelRequirement = 62, statInterpolation = { 3, 3, }, },
[17] = { 0.10000000149012, 1.8999999761581, levelRequirement = 64, statInterpolation = { 3, 3, }, },
[18] = { 0.10000000149012, 1.8999999761581, levelRequirement = 66, statInterpolation = { 3, 3, }, },
[19] = { 0.10000000149012, 1.8999999761581, levelRequirement = 68, statInterpolation = { 3, 3, }, },
[20] = { 0.10000000149012, 1.8999999761581, levelRequirement = 70, statInterpolation = { 3, 3, }, },
[21] = { 0.10000000149012, 1.8999999761581, levelRequirement = 72, statInterpolation = { 3, 3, }, },
[22] = { 0.10000000149012, 1.8999999761581, levelRequirement = 74, statInterpolation = { 3, 3, }, },
[23] = { 0.10000000149012, 1.8999999761581, levelRequirement = 76, statInterpolation = { 3, 3, }, },
[24] = { 0.10000000149012, 1.8999999761581, levelRequirement = 78, statInterpolation = { 3, 3, }, },
[25] = { 0.10000000149012, 1.8999999761581, levelRequirement = 80, statInterpolation = { 3, 3, }, },
[26] = { 0.10000000149012, 1.8999999761581, levelRequirement = 82, statInterpolation = { 3, 3, }, },
[27] = { 0.10000000149012, 1.8999999761581, levelRequirement = 84, statInterpolation = { 3, 3, }, },
[28] = { 0.10000000149012, 1.8999999761581, levelRequirement = 86, statInterpolation = { 3, 3, }, },
[29] = { 0.10000000149012, 1.8999999761581, levelRequirement = 88, statInterpolation = { 3, 3, }, },
[30] = { 0.10000000149012, 1.8999999761581, levelRequirement = 90, statInterpolation = { 3, 3, }, },
[31] = { 0.10000000149012, 1.8999999761581, levelRequirement = 91, statInterpolation = { 3, 3, }, },
[32] = { 0.10000000149012, 1.8999999761581, levelRequirement = 92, statInterpolation = { 3, 3, }, },
[33] = { 0.10000000149012, 1.8999999761581, levelRequirement = 93, statInterpolation = { 3, 3, }, },
[34] = { 0.10000000149012, 1.8999999761581, levelRequirement = 94, statInterpolation = { 3, 3, }, },
[35] = { 0.10000000149012, 1.8999999761581, levelRequirement = 95, statInterpolation = { 3, 3, }, },
[36] = { 0.10000000149012, 1.8999999761581, levelRequirement = 96, statInterpolation = { 3, 3, }, },
[37] = { 0.10000000149012, 1.8999999761581, levelRequirement = 97, statInterpolation = { 3, 3, }, },
[38] = { 0.10000000149012, 1.8999999761581, levelRequirement = 98, statInterpolation = { 3, 3, }, },
[39] = { 0.10000000149012, 1.8999999761581, levelRequirement = 99, statInterpolation = { 3, 3, }, },
[40] = { 0.10000000149012, 1.8999999761581, levelRequirement = 100, statInterpolation = { 3, 3, }, },
[1] = { 0.10000000149012, 1.8999999761581, 10, levelRequirement = 31, statInterpolation = { 3, 3, }, },
[2] = { 0.10000000149012, 1.8999999761581, 10, levelRequirement = 34, statInterpolation = { 3, 3, }, },
[3] = { 0.10000000149012, 1.8999999761581, 11, levelRequirement = 36, statInterpolation = { 3, 3, }, },
[4] = { 0.10000000149012, 1.8999999761581, 11, levelRequirement = 38, statInterpolation = { 3, 3, }, },
[5] = { 0.10000000149012, 1.8999999761581, 12, levelRequirement = 40, statInterpolation = { 3, 3, }, },
[6] = { 0.10000000149012, 1.8999999761581, 12, levelRequirement = 42, statInterpolation = { 3, 3, }, },
[7] = { 0.10000000149012, 1.8999999761581, 13, levelRequirement = 44, statInterpolation = { 3, 3, }, },
[8] = { 0.10000000149012, 1.8999999761581, 13, levelRequirement = 46, statInterpolation = { 3, 3, }, },
[9] = { 0.10000000149012, 1.8999999761581, 14, levelRequirement = 48, statInterpolation = { 3, 3, }, },
[10] = { 0.10000000149012, 1.8999999761581, 14, levelRequirement = 50, statInterpolation = { 3, 3, }, },
[11] = { 0.10000000149012, 1.8999999761581, 15, levelRequirement = 52, statInterpolation = { 3, 3, }, },
[12] = { 0.10000000149012, 1.8999999761581, 15, levelRequirement = 54, statInterpolation = { 3, 3, }, },
[13] = { 0.10000000149012, 1.8999999761581, 16, levelRequirement = 56, statInterpolation = { 3, 3, }, },
[14] = { 0.10000000149012, 1.8999999761581, 16, levelRequirement = 58, statInterpolation = { 3, 3, }, },
[15] = { 0.10000000149012, 1.8999999761581, 17, levelRequirement = 60, statInterpolation = { 3, 3, }, },
[16] = { 0.10000000149012, 1.8999999761581, 17, levelRequirement = 62, statInterpolation = { 3, 3, }, },
[17] = { 0.10000000149012, 1.8999999761581, 18, levelRequirement = 64, statInterpolation = { 3, 3, }, },
[18] = { 0.10000000149012, 1.8999999761581, 18, levelRequirement = 66, statInterpolation = { 3, 3, }, },
[19] = { 0.10000000149012, 1.8999999761581, 19, levelRequirement = 68, statInterpolation = { 3, 3, }, },
[20] = { 0.10000000149012, 1.8999999761581, 19, levelRequirement = 70, statInterpolation = { 3, 3, }, },
[21] = { 0.10000000149012, 1.8999999761581, 20, levelRequirement = 72, statInterpolation = { 3, 3, }, },
[22] = { 0.10000000149012, 1.8999999761581, 20, levelRequirement = 74, statInterpolation = { 3, 3, }, },
[23] = { 0.10000000149012, 1.8999999761581, 21, levelRequirement = 76, statInterpolation = { 3, 3, }, },
[24] = { 0.10000000149012, 1.8999999761581, 21, levelRequirement = 78, statInterpolation = { 3, 3, }, },
[25] = { 0.10000000149012, 1.8999999761581, 22, levelRequirement = 80, statInterpolation = { 3, 3, }, },
[26] = { 0.10000000149012, 1.8999999761581, 22, levelRequirement = 82, statInterpolation = { 3, 3, }, },
[27] = { 0.10000000149012, 1.8999999761581, 23, levelRequirement = 84, statInterpolation = { 3, 3, }, },
[28] = { 0.10000000149012, 1.8999999761581, 23, levelRequirement = 86, statInterpolation = { 3, 3, }, },
[29] = { 0.10000000149012, 1.8999999761581, 24, levelRequirement = 88, statInterpolation = { 3, 3, }, },
[30] = { 0.10000000149012, 1.8999999761581, 24, levelRequirement = 90, statInterpolation = { 3, 3, }, },
[31] = { 0.10000000149012, 1.8999999761581, 25, levelRequirement = 91, statInterpolation = { 3, 3, }, },
[32] = { 0.10000000149012, 1.8999999761581, 25, levelRequirement = 92, statInterpolation = { 3, 3, }, },
[33] = { 0.10000000149012, 1.8999999761581, 26, levelRequirement = 93, statInterpolation = { 3, 3, }, },
[34] = { 0.10000000149012, 1.8999999761581, 26, levelRequirement = 94, statInterpolation = { 3, 3, }, },
[35] = { 0.10000000149012, 1.8999999761581, 27, levelRequirement = 95, statInterpolation = { 3, 3, }, },
[36] = { 0.10000000149012, 1.8999999761581, 27, levelRequirement = 96, statInterpolation = { 3, 3, }, },
[37] = { 0.10000000149012, 1.8999999761581, 28, levelRequirement = 97, statInterpolation = { 3, 3, }, },
[38] = { 0.10000000149012, 1.8999999761581, 28, levelRequirement = 98, statInterpolation = { 3, 3, }, },
[39] = { 0.10000000149012, 1.8999999761581, 29, levelRequirement = 99, statInterpolation = { 3, 3, }, },
[40] = { 0.10000000149012, 1.8999999761581, 29, levelRequirement = 100, statInterpolation = { 3, 3, }, },
},
}
skills["SupportBlasphemy"] = {
Expand Down
2 changes: 1 addition & 1 deletion src/Data/StatDescriptions/gem_stat_descriptions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -11793,7 +11793,7 @@ return {
[2]="#"
}
},
text="Supported Skills have base Mana Cost equal to {0}% of Unreserved Maximum Mana, if that value is higher\nSupported Skills gain Added Lightning Damage equal to {1}% of Mana Cost, if Mana Cost is not higher than the maximum you could spend"
text="Supported Skills have added Mana Cost equal to {0}% of Unreserved Maximum Mana\nSupported Skills gain Added Lightning Damage equal to {1}% of Unreserved Maximum Mana"
},
[2]={
[1]={
Expand Down
7 changes: 3 additions & 4 deletions src/Export/Skills/sup_int.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,11 @@ local skills, mod, flag, skill = ...
#skill SupportArchmage
statMap = {
["manaweave_cost_equals_%_unreserved_mana"] = {
skill("baseManaCostIsAtLeastPercentUnreservedMana", nil),
mod("ManaCost", "BASE", nil, 0, 0, { type = "PercentStat", stat = "ManaUnreserved" , percent = 1 }),
},
["manaweave_added_lightning_damage_%_cost_if_payable"] = {
mod("LightningMin", "BASE", nil, 0, 0, { type = "PerStat", stat = "ManaCost" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "PerStat", stat = "ManaCost" }),
div = 100,
mod("LightningMin", "BASE", nil, 0, 0, { type = "PercentStat", stat = "ManaUnreserved" , percent = 1 }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "PercentStat", stat = "ManaUnreserved" , percent = 1 }),
},
},
#mods
Expand Down
3 changes: 0 additions & 3 deletions src/Modules/CalcOffence.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1547,9 +1547,6 @@ function calcs.offence(env, actor, activeSkill)
--Divine Blessing / Totem aura skills that have a percent reservation, round instead of floor the value. This corrects the final result if it would round up
divineBlessingCorrection = round((output[resource] or 0) * reservedPercent / 100 * mult) - m_floor((output[resource] or 0) * reservedPercent / 100 * mult)
end
if resource == "Mana" and skillData.baseManaCostIsAtLeastPercentUnreservedMana then -- Archmage
baseCost = m_max(baseCost, m_max(m_floor((output.ManaUnreserved or 0) * skillData.baseManaCostIsAtLeastPercentUnreservedMana / 100)), 1)
end
end
val.baseCost = val.baseCost + baseCost
val.baseCostNoMult = val.baseCostNoMult + baseCostNoMult
Expand Down

0 comments on commit 3a8afed

Please sign in to comment.