Skip to content

Commit a3da8a2

Browse files
author
LocalIdentity
committed
Add support for new Runegrafts
Tinctures applied to you have 30% increased Effect while affected by no Flasks Enemies Poisoned by you have 10% of Physical Damage they deal converted to Chaos Spells have Added Spell Damage equal to 30% of Physical Damage of your Equipped Two handed Weapon 50% increased Damage with Damaging Ailments you inflict while you are affected by the same Ailment
1 parent c1f21fd commit a3da8a2

3 files changed

Lines changed: 26 additions & 12 deletions

File tree

src/Data/ModCache.lua

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5788,8 +5788,7 @@ c["50% increased Damage if you have Shocked an Enemy Recently"]={{[1]={[1]={type
57885788
c["50% increased Damage on Burning Ground"]={{[1]={[1]={type="Condition",var="OnBurningGround"},flags=0,keywordFlags=0,name="Damage",type="INC",value=50}},nil}
57895789
c["50% increased Damage while on Consecrated Ground"]={{[1]={[1]={type="Condition",var="OnConsecratedGround"},flags=0,keywordFlags=0,name="Damage",type="INC",value=50}},nil}
57905790
c["50% increased Damage with Bleeding"]={{[1]={flags=0,keywordFlags=4194304,name="Damage",type="INC",value=50}},nil}
5791-
c["50% increased Damage with Damaging Ailments you inflict while you are affected by the same Ailment"]={{[1]={flags=0,keywordFlags=0,name="Damage",type="INC",value=50}}," with Damaging Ailments you inflict while you are affected by the same Ailment "}
5792-
c["50% increased Damage with Damaging Ailments you inflict while you are affected by the same Ailment Limited to 1 Runegraft of Suffering"]={{[1]={flags=0,keywordFlags=0,name="Damage",type="INC",value=50}}," with Damaging Ailments you inflict while you are affected by the same Ailment Limited to 1 Runegraft of Suffering "}
5791+
c["50% increased Damage with Damaging Ailments you inflict while you are affected by the same Ailment"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Bleeding"},[2]={type="Condition",var="Bleeding"},flags=0,keywordFlags=4194304,name="Damage",type="INC",value=50},[2]={[1]={actor="enemy",type="ActorCondition",var="Ignited"},[2]={type="Condition",var="Ignited"},flags=0,keywordFlags=8388608,name="Damage",type="INC",value=50},[3]={[1]={actor="enemy",type="ActorCondition",var="Poisoned"},[2]={type="Condition",var="Poisoned"},flags=0,keywordFlags=2097152,name="Damage",type="INC",value=50}},nil}
57935792
c["50% increased Damage with Hits and Ailments against Bleeding Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Bleeding"},flags=0,keywordFlags=786432,name="Damage",type="INC",value=50}},nil}
57945793
c["50% increased Damage with Hits and Ailments against Blinded Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Blinded"},flags=0,keywordFlags=786432,name="Damage",type="INC",value=50}},nil}
57955794
c["50% increased Damage with Hits and Ailments against Enemies affected by 3 Spider's Webs"]={{[1]={[1]={actor="enemy",threshold=3,type="MultiplierThreshold",var="Spider's WebStack"},flags=0,keywordFlags=786432,name="Damage",type="INC",value=50}},nil}
@@ -8510,8 +8509,7 @@ c["Enemies Poisoned by you cannot Regenerate Life"]={nil,"you cannot Regenerate
85108509
c["Enemies Poisoned by you cannot Regenerate Life +6% to Damage over Time Multiplier for Poison while wielding a Claw or Dagger"]={nil,"you cannot Regenerate Life +6% to Damage over Time Multiplier for Poison while wielding a Claw or Dagger "}
85118510
c["Enemies Poisoned by you cannot deal Critical Strikes"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Poisoned"},flags=0,keywordFlags=0,name="NeverCrit",type="FLAG",value=true}}},[2]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Poisoned"},flags=0,keywordFlags=0,name="Condition:NeverCrit",type="FLAG",value=true}}}},nil}
85128511
c["Enemies Poisoned by you have -5% to Chaos Resistance"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Poisoned"},flags=0,keywordFlags=0,name="ChaosResist",type="BASE",value=-5}}}},nil}
8513-
c["Enemies Poisoned by you have 10% of Physical Damage they deal converted to Chaos"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Poisoned"},flags=0,keywordFlags=0,name="PhysicalDamage",type="BASE",value=10}}}}," they deal converted to Chaos "}
8514-
c["Enemies Poisoned by you have 10% of Physical Damage they deal converted to Chaos Limited to 1 Runegraft of Rotblood"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Poisoned"},flags=0,keywordFlags=0,name="PhysicalDamage",type="BASE",value=10}}}}," they deal converted to Chaos Limited to 1 Runegraft of Rotblood "}
8512+
c["Enemies Poisoned by you have 10% of Physical Damage they deal converted to Chaos"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Poisoned"},flags=0,keywordFlags=0,name="PhysicalDamageConvertToChaos",type="BASE",value=10}}}},nil}
85158513
c["Enemies Shocked by you have 13% of Physical Damage they deal converted to Lightning"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Shocked"},flags=0,keywordFlags=0,name="PhysicalDamageConvertToLightning",type="BASE",value=13}}}},nil}
85168514
c["Enemies Shocked by you have 15% of Physical Damage they deal converted to Lightning"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",var="Shocked"},flags=0,keywordFlags=0,name="PhysicalDamageConvertToLightning",type="BASE",value=15}}}},nil}
85178515
c["Enemies Shocked or Frozen by you take 5% increased Elemental Damage"]={{[1]={flags=0,keywordFlags=0,name="EnemyModifier",type="LIST",value={mod={[1]={type="Condition",varList={[1]="Shocked",[2]="Frozen"}},flags=0,keywordFlags=0,name="ElementalDamageTaken",type="INC",value=5}}}},nil}
@@ -10447,8 +10445,7 @@ c["Projectile Attack Skills have 60% increased Critical Strike Chance"]={{[1]={[
1044710445
c["Projectile Barrages have no spread"]={nil,"Projectile Barrages have no spread "}
1044810446
c["Projectile Barrages have no spread You take no Extra Damage from Critical Strikes while Elusive"]={nil,"Projectile Barrages have no spread You take no Extra Damage from Critical Strikes while Elusive "}
1044910447
c["Projectiles Chain +1 times while you have Phasing"]={{[1]={[1]={type="Condition",var="Phasing"},flags=1024,keywordFlags=0,name="ChainCountMax",type="BASE",value=1}},nil}
10450-
c["Projectiles Chain an additional time"]={nil,"Chain an additional time "}
10451-
c["Projectiles Chain an additional time Limited to 1 Runegraft of Refraction"]={nil,"Chain an additional time Limited to 1 Runegraft of Refraction "}
10448+
c["Projectiles Chain an additional time"]={{[1]={flags=1024,keywordFlags=0,name="ChainCountMax",type="BASE",value=1}},nil}
1045210449
c["Projectiles Fork"]={{[1]={flags=1024,keywordFlags=0,name="ForkOnce",type="FLAG",value=true},[2]={flags=1024,keywordFlags=0,name="ForkCountMax",type="BASE",value=1}},nil}
1045310450
c["Projectiles Pierce 2 additional Targets"]={{[1]={flags=0,keywordFlags=0,name="PierceCount",type="BASE",value=2}},nil}
1045410451
c["Projectiles Pierce 2 additional Targets if 2 Hunter Items are Equipped"]={{[1]={[1]={threshold=2,type="MultiplierThreshold",var="HunterItem"},flags=0,keywordFlags=0,name="PierceCount",type="BASE",value="2"}},nil}
@@ -11987,8 +11984,7 @@ c["Spells have 30% increased Critical Strike Chance per Intensity"]={{[1]={[1]={
1198711984
c["Spells have 40% increased Critical Strike Chance per Intensity"]={{[1]={[1]={type="Multiplier",var="Intensity"},flags=2,keywordFlags=0,name="CritChance",type="INC",value=40}},nil}
1198811985
c["Spells have 50% increased Critical Strike Chance per Intensity"]={{[1]={[1]={type="Multiplier",var="Intensity"},flags=2,keywordFlags=0,name="CritChance",type="INC",value=50}},nil}
1198911986
c["Spells have Added Spell Damage equal to 30% of Physical Damage of"]={nil,"dded Spell Damage equal to 30% of Physical Damage of "}
11990-
c["Spells have Added Spell Damage equal to 30% of Physical Damage of your Equipped Two handed Weapon"]={nil,"dded Spell Damage equal to 30% of Physical Damage of your Equipped Two handed Weapon "}
11991-
c["Spells have Added Spell Damage equal to 30% of Physical Damage of your Equipped Two handed Weapon Limited to 1 Runegraft of the Spellbound"]={nil,"dded Spell Damage equal to 30% of Physical Damage of your Equipped Two handed Weapon Limited to 1 Runegraft of the Spellbound "}
11987+
c["Spells have Added Spell Damage equal to 30% of Physical Damage of your Equipped Two handed Weapon"]={{[1]={flags=0,keywordFlags=0,name="WeaponPhysAppliesToSpells",type="FLAG",value=true},[2]={[1]={type="Condition",var="UsingTwoHandedWeapon"},flags=0,keywordFlags=0,name="WeaponPhysAppliesToSpellsPercent",type="BASE",value=30}},nil}
1199211988
c["Spells have a 20% chance to deal Double Damage"]={{[1]={flags=2,keywordFlags=0,name="DoubleDamageChance",type="BASE",value=20}},nil}
1199311989
c["Spells inflict Intimidate on Critical Strike for 4 seconds"]={nil,"Spells inflict Intimidate on Critical Strike for 4 seconds "}
1199411990
c["Spells which can gain Intensity have +1 to maximum Intensity"]={{[1]={flags=0,keywordFlags=0,name="Multiplier:IntensityLimit",type="BASE",value=1}},nil}
@@ -12191,8 +12187,7 @@ c["Tinctures applied to you have 10% increased Effect"]={{[1]={[1]={actor="playe
1219112187
c["Tinctures applied to you have 10% reduced Mana Burn rate"]={{[1]={[1]={actor="player",type="ActorCondition"},flags=0,keywordFlags=0,name="TinctureManaBurnRate",type="INC",value=-10}},nil}
1219212188
c["Tinctures applied to you have 15% increased Effect"]={{[1]={[1]={actor="player",type="ActorCondition"},flags=0,keywordFlags=0,name="TinctureEffect",type="INC",value=15}},nil}
1219312189
c["Tinctures applied to you have 15% increased Effect if you've used a Life Flask Recently"]={{[1]={[1]={actor="player",type="ActorCondition"},[2]={type="Condition",var="UsingLifeFlask"},flags=0,keywordFlags=0,name="TinctureEffect",type="INC",value=15}},nil}
12194-
c["Tinctures applied to you have 30% increased Effect while affected by no Flasks"]={nil,"Tinctures applied to you have 30% increased Effect while affected by no Flasks "}
12195-
c["Tinctures applied to you have 30% increased Effect while affected by no Flasks Limited to 1 Runegraft of the Imbued"]={nil,"Tinctures applied to you have 30% increased Effect while affected by no Flasks Limited to 1 Runegraft of the Imbued "}
12190+
c["Tinctures applied to you have 30% increased Effect while affected by no Flasks"]={{[1]={[1]={actor="player",type="ActorCondition"},[2]={neg=true,type="Condition",var="UsingFlask"},flags=0,keywordFlags=0,name="TinctureEffect",type="INC",value=30}},nil}
1219612191
c["Tinctures applied to you have 30% less Mana Burn rate"]={{[1]={[1]={actor="player",type="ActorCondition"},flags=0,keywordFlags=0,name="TinctureManaBurnRate",type="MORE",value=-30}},nil}
1219712192
c["Tinctures applied to you have 5% increased Effect"]={{[1]={[1]={actor="player",type="ActorCondition"},flags=0,keywordFlags=0,name="TinctureEffect",type="INC",value=5}},nil}
1219812193
c["Tinctures applied to you have 5% reduced Mana Burn rate"]={{[1]={[1]={actor="player",type="ActorCondition"},flags=0,keywordFlags=0,name="TinctureManaBurnRate",type="INC",value=-5}},nil}
@@ -12947,7 +12942,5 @@ c["up to a maximum of 150%"]={nil,"up to a maximum of 150% "}
1294712942
c["up to a maximum of 150% Damageable Minions take 5% increased Damage for each second they have been alive,\nup to a maximum of 50%"]={nil,"up to a maximum of 150% Damageable Minions take 5% increased Damage for each second they have been alive,\nup to a maximum of 50% "}
1294812943
c["up to a maximum of 50%"]={nil,"up to a maximum of 50% "}
1294912944
c["used if you've Hit an enemy with a Weapon Recently"]={nil,"used if you've Hit an enemy with a Weapon Recently "}
12950-
c["your Equipped Two handed Weapon"]={nil,"your Equipped Two handed Weapon "}
12951-
c["your Equipped Two handed Weapon Limited to 1 Runegraft of the Spellbound"]={nil,"your Equipped Two handed Weapon Limited to 1 Runegraft of the Spellbound "}
1295212945
c["your maximum number of Crab Barriers"]={nil,"your maximum number of Crab Barriers "}
1295312946
c["your maximum number of Power Charges"]={nil,"your maximum number of Power Charges "}

src/Modules/CalcOffence.lua

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,14 @@ function calcs.offence(env, actor, activeSkill)
844844
end
845845
end
846846
end
847+
if skillModList:Flag(nil, "WeaponPhysAppliesToSpells") then
848+
-- Phys from weapon to Spells from Runegraft
849+
local mult = (skillModList:Sum("BASE", skillCfg, "WeaponPhysAppliesToSpellsPercent") or 100) / 100
850+
if actor.weaponData1 then
851+
skillModList:NewMod("PhysicalMin", "BASE", m_floor((actor.weaponData1["PhysicalMin"] or 0) * mult), "Runegraft of the Spellbound", ModFlag.Spell)
852+
skillModList:NewMod("PhysicalMax", "BASE", m_floor((actor.weaponData1["PhysicalMax"] or 0) * mult), "Runegraft of the Spellbound", ModFlag.Spell)
853+
end
854+
end
847855
if skillData.gainPercentBaseWandDamageToSpells then
848856
local mult = skillData.gainPercentBaseWandDamageToSpells / 100
849857
if actor.weaponData1.type == "Wand" and actor.weaponData2.type == "Wand" then

src/Modules/ModParser.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1653,6 +1653,7 @@ local modTagList = {
16531653
["during flask effect"] = { tag = { type = "Condition", var = "UsingFlask" } },
16541654
["during any flask effect"] = { tag = { type = "Condition", var = "UsingFlask" } },
16551655
["while under no flask effects"] = { tag = { type = "Condition", var = "UsingFlask", neg = true } },
1656+
["while affected by no flasks"] = { tag = { type = "Condition", var = "UsingFlask", neg = true } },
16561657
["during effect of any mana flask"] = { tag = { type = "Condition", var = "UsingManaFlask" } },
16571658
["during effect of any life flask"] = { tag = { type = "Condition", var = "UsingLifeFlask" } },
16581659
["if you've used a life flask in the past 10 seconds"] = { tag = { type = "Condition", var = "UsingLifeFlask" } },
@@ -3302,6 +3303,7 @@ local specialModList = {
33023303
["nearby enemies convert (%d+)%% of their (%a+) damage to (%a+)"] = function(num, _, damageFrom, damageTo) return { mod("EnemyModifier", "LIST", { mod = mod((damageFrom:gsub("^%l", string.upper)).."DamageConvertTo"..(damageTo:gsub("^%l", string.upper)), "BASE", num ) }), } end,
33033304
["enemies ignited by you have (%d+)%% of (%a+) damage they deal converted to (%a+)"] = function(num, _, damageFrom, damageTo) return { mod("EnemyModifier", "LIST", { mod = mod((damageFrom:gsub("^%l", string.upper)).."DamageConvertTo"..(damageTo:gsub("^%l", string.upper)), "BASE", num, { type = "Condition", var = "Ignited" }) }), } end,
33043305
["enemies shocked by you have (%d+)%% of (%a+) damage they deal converted to (%a+)"] = function(num, _, damageFrom, damageTo) return { mod("EnemyModifier", "LIST", { mod = mod((damageFrom:gsub("^%l", string.upper)).."DamageConvertTo"..(damageTo:gsub("^%l", string.upper)), "BASE", num, { type = "Condition", var = "Shocked" }) }), } end,
3306+
["enemies poisoned by you have (%d+)%% of (%a+) damage they deal converted to (%a+)"] = function(num, _, damageFrom, damageTo) return { mod("EnemyModifier", "LIST", { mod = mod((damageFrom:gsub("^%l", string.upper)).."DamageConvertTo"..(damageTo:gsub("^%l", string.upper)), "BASE", num, { type = "Condition", var = "Poisoned" }) }), } end,
33053307
["shield crush and spectral shield throw do not gain added physical damage based on armour or evasion on shield"] = { flag("Condition:ShieldThrowCrushNoArmourEvasion", { type = "SkillName", skillNameList = { "Spectral Shield Throw", "Shield Crush" }, includeTransfigured = true })},
33063308
["shield crush and spectral shield throw gains (%d+) to (%d+) added lightning damage per (%d+) energy shield on shield"] = function(_, min, max, num) return {
33073309
mod("LightningMin", "BASE", min, 0, 0, { type = "Condition", var = "OffHandAttack" }, { type = "PerStat", stat = "EnergyShieldOnWeapon 2", div = num }, { type = "SkillName", skillNameList = { "Spectral Shield Throw", "Shield Crush" }, includeTransfigured = true }),
@@ -3461,6 +3463,11 @@ local specialModList = {
34613463
mod("BleedFaster", "INC", num, { type = "Condition", var = "AffectedByMalevolence" }),
34623464
mod("PoisonFaster", "INC", num, { type = "Condition", var = "AffectedByMalevolence" }),
34633465
} end,
3466+
["(%d+)%% increased damage with damaging ailments you inflict while you are affected by the same ailment"] = function(num) return {
3467+
mod("Damage", "INC", num, nil, 0, KeywordFlag.Bleed, { type = "ActorCondition", actor = "enemy", var = "Bleeding" }, { type = "Condition", var = "Bleeding" }),
3468+
mod("Damage", "INC", num, nil, 0, KeywordFlag.Ignite, { type = "ActorCondition", actor = "enemy", var = "Ignited" }, { type = "Condition", var = "Ignited" }),
3469+
mod("Damage", "INC", num, nil, 0, KeywordFlag.Poison, { type = "ActorCondition", actor = "enemy", var = "Poisoned" }, { type = "Condition", var = "Poisoned" }),
3470+
} end,
34643471
["ignited enemies burn (%d+)%% faster"] = function(num) return { mod("IgniteBurnFaster", "INC", num) } end,
34653472
["ignited enemies burn (%d+)%% slower"] = function(num) return { mod("IgniteBurnSlower", "INC", num) } end,
34663473
["enemies ignited by an attack burn (%d+)%% faster"] = function(num) return { mod("IgniteBurnFaster", "INC", num, nil, ModFlag.Attack) } end,
@@ -4283,6 +4290,7 @@ local specialModList = {
42834290
["your blink and mirror arrow clones use your gloves"] = { flag("BlinkAndMirrorUseGloves") },
42844291
-- Projectiles
42854292
["skills chain %+(%d) times"] = function(num) return { mod("ChainCountMax", "BASE", num) } end,
4293+
["projectiles chain an additional time"] = { mod("ChainCountMax", "BASE", 1, nil, ModFlag.Projectile)},
42864294
["projectiles chain %+(%d) times"] = function(num) return { mod("ChainCountMax", "BASE", num, nil, ModFlag.Projectile) } end,
42874295
["arrows chain %+(%d) times"] = function(num) return { mod("ChainCountMax", "BASE", num, nil, 0, KeywordFlag.Arrow) } end,
42884296
["skills chain an additional time while at maximum frenzy charges"] = { mod("ChainCountMax", "BASE", 1, { type = "StatThreshold", stat = "FrenzyCharges", thresholdStat = "FrenzyChargesMax" }) },
@@ -4938,6 +4946,7 @@ local specialModList = {
49384946
["flasks applied to you have (%d+)%% reduced effect"] = function(num) return { mod("FlaskEffect", "INC", -num, { type = "ActorCondition", actor = "player"}) } end,
49394947
["tinctures applied to you have (%d+)%% increased effect"] = function(num) return { mod("TinctureEffect", "INC", num, { type = "ActorCondition", actor = "player"}) } end,
49404948
["tinctures applied to you have (%d+)%% increased effect if you've used a life flask recently"] = function(num) return { mod("TinctureEffect", "INC", num, { type = "ActorCondition", actor = "player"}, { type = "Condition", var = "UsingLifeFlask" }) } end,
4949+
["tinctures applied to you have (%d+)%% increased effect while affected by no flasks"] = function(num) return { mod("TinctureEffect", "INC", num, { type = "ActorCondition", actor = "player"}, { type = "Condition", var = "UsingFlask", neg = true }) } end,
49414950
["tinctures have (%d+)%% increased effect while at or above (%d+) stacks of mana burn"] = function(num, _, threshold) return { mod("TinctureEffect", "INC", num, { type = "MultiplierThreshold", varList = {"ManaBurnStacks", "WeepingWoundsStacks"}, threshold = tonumber(threshold) }) } end,
49424951
["tinctures applied to you have (%d+)%% reduced mana burn rate"] = function(num) return { mod("TinctureManaBurnRate", "INC", -num, { type = "ActorCondition", actor = "player"}) } end,
49434952
["tinctures applied to you have (%d+)%% less mana burn rate"] = function(num) return { mod("TinctureManaBurnRate", "MORE", -num, { type = "ActorCondition", actor = "player"}) } end,
@@ -5023,6 +5032,10 @@ local specialModList = {
50235032
["spells have an additional life cost equal to (%d+)%% of your maximum life"] = function(num) return {
50245033
mod("LifeCostBase", "BASE", 1, { type = "PercentStat", stat = "Life", percent = num, floor = true }, { type = "SkillType", skillType = SkillType.Spell })
50255034
} end,
5035+
["spells have added spell damage equal to (%d+)%% of physical damage of your equipped two handed weapon"] = function(num) return {
5036+
flag("WeaponPhysAppliesToSpells"),
5037+
mod("WeaponPhysAppliesToSpellsPercent", "BASE", num, { type = "Condition", var = "UsingTwoHandedWeapon" })
5038+
} end,
50265039
["spells cost %+(%d+)%% of life"] = function(num) return {
50275040
mod("LifeCostBase", "BASE", 1, { type = "PercentStat", stat = "Life", percent = num, floor = true }, { type = "SkillType", skillType = SkillType.Spell })
50285041
} end,

0 commit comments

Comments
 (0)