Skip to content

Commit 8ea878c

Browse files
majochemLocalIdentity
andauthored
Add support for "Blackflame Covenant" Keystone (#1264)
* Add support for "Blackflame Covenant" Keystone Adds support for: - Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes - Fire Spells Convert 100% of Fire Damage to Chaos Damage - Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage Technically also supports other elemental versions of those same mods. "Lightning Spells convert 50% of cold damage to fire damage" would also work for example. Limitation: "Flammability" mechanic is not yet supported and therefore not specifically addressed. Should be covered by `ChaosCanIgnite` flag if introduced later * Fix effective DPS breakdown --------- Co-authored-by: LocalIdentity <[email protected]>
1 parent c6aa778 commit 8ea878c

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/Data/ModCache.lua

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4307,8 +4307,7 @@ c["Chance to Deflect is Lucky"]={nil,"Chance to Deflect is Lucky "}
43074307
c["Chance to Evade is Unlucky"]={nil,"Chance to Evade is Unlucky "}
43084308
c["Chance to Evade is Unlucky Chance to Deflect is Lucky"]={nil,"Chance to Evade is Unlucky Chance to Deflect is Lucky "}
43094309
c["Chance to Hit with Attacks can exceed 100%"]={{[1]={[1]={skillType=1,type="Skilltype"},flags=0,keywordFlags=0,name="Condition:HitChanceCanExceed100",type="FLAG",value=true}},nil}
4310-
c["Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes"]={nil,"Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes "}
4311-
c["Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage"]={nil,"Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage "}
4310+
c["Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes"]={{[1]={[1]={skillType=2,type="SkillType"},[2]={skillType=28,type="SkillType"},flags=0,keywordFlags=0,name="ChaosCanIgnite",type="FLAG",value=true}},nil}
43124311
c["Chaos Damage from Hits also Contributes to Electrocute Buildup"]={nil,"Chaos Damage from Hits also Contributes to Electrocute Buildup "}
43134312
c["Chaos Damage from Hits also Contributes to Electrocute Buildup Attacks Gain 20% of Physical Damage as extra Chaos Damage"]={nil,"Chaos Damage from Hits also Contributes to Electrocute Buildup Attacks Gain 20% of Physical Damage as extra Chaos Damage "}
43144313
c["Chaos Damage from Hits also Contributes to Freeze Buildup"]={nil,"Chaos Damage from Hits also Contributes to Freeze Buildup "}
@@ -4598,9 +4597,7 @@ c["Fire Damage from Hits Contributes to Shock Chance instead of Flammability and
45984597
c["Fire Damage from Hits Contributes to Shock Chance instead of Flammability and Ignite Magnitudes Cold Damage from Hits Contributes to Flammability and Ignite Magnitudes instead of Chill Magnitude or Freeze Buildup"]={nil,"Fire Damage from Hits Contributes to Shock Chance instead of Flammability and Ignite Magnitudes Cold Damage from Hits Contributes to Flammability and Ignite Magnitudes instead of Chill Magnitude or Freeze Buildup "}
45994598
c["Fire Resistance is unaffected by Area Penalties"]={nil,"Fire Resistance is unaffected by Area Penalties "}
46004599
c["Fire Resistance is unaffected by Area Penalties Lightning Resistance is unaffected by Area Penalties"]={nil,"Fire Resistance is unaffected by Area Penalties Lightning Resistance is unaffected by Area Penalties "}
4601-
c["Fire Spells Convert 100% of Fire Damage to Chaos Damage"]={nil,"Fire Spells Convert 100% of Fire Damage to Chaos Damage "}
4602-
c["Fire Spells Convert 100% of Fire Damage to Chaos Damage Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes"]={nil,"Fire Spells Convert 100% of Fire Damage to Chaos Damage Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes "}
4603-
c["Fire Spells Convert 100% of Fire Damage to Chaos Damage Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage"]={nil,"Fire Spells Convert 100% of Fire Damage to Chaos Damage Chaos Damage from Fire Spells Contributes to Flammability and Ignite Magnitudes Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage "}
4600+
c["Fire Spells Convert 100% of Fire Damage to Chaos Damage"]={{[1]={[1]={skillType=2,type="SkillType"},[2]={skillType=28,type="SkillType"},flags=0,keywordFlags=0,name="FireDamageConvertToChaos",type="BASE",value="100"}},nil}
46044601
c["Fissure Skills have a 20% chance to create an additional Fissure"]={nil,"Fissure Skills have a 20% chance to create an additional Fissure "}
46054602
c["Flammability Magnitude is doubled"]={{},"Magnitude "}
46064603
c["Flasks gain 0.17 charges per Second"]={{[1]={flags=0,keywordFlags=0,name="FlaskChargesGenerated",type="BASE",value=0.17}},nil}
@@ -4964,7 +4961,7 @@ c["Hits have 25% reduced Critical Hit Chance against you"]={{[1]={flags=0,keywor
49644961
c["Hits ignore non-negative Elemental Resistances of Frozen Enemies"]={{[1]={[1]={actor="enemy",type="ActorCondition",var="Frozen"},flags=0,keywordFlags=0,name="IgnoreNonNegativeEleRes",type="FLAG",value=true}},nil}
49654962
c["Hits that Heavy Stun Enemies have Culling Strike"]={{[1]={[1]={type="Condition",var="AlwaysHeavyStunning"},flags=0,keywordFlags=0,name="CullPercent",type="MAX",value=10}},nil}
49664963
c["If you would gain a Charge, Allies in your Presence gain that Charge instead"]={nil,"If you would gain a Charge, that Charge instead "}
4967-
c["Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage"]={nil,"Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage "}
4964+
c["Ignite inflicted with Fire Spells deals Chaos Damage instead of Fire Damage"]={{[1]={[1]={skillType=2,type="SkillType"},[2]={skillType=28,type="SkillType"},flags=0,keywordFlags=0,name="IgniteToChaos",type="FLAG",value=true},[2]={[1]={skillType=2,type="SkillType"},[2]={skillType=28,type="SkillType"},flags=0,keywordFlags=0,name="SkillData",type="LIST",value={key="IgniteToChaos",value=true}}},nil}
49684965
c["Ignites you cause are reflected back to you"]={nil,"Ignites you cause are reflected back to you "}
49694966
c["Ignites you cause are reflected back to you 40% reduced Magnitude of Ignite on you"]={nil,"Ignites you cause are reflected back to you 40% reduced Magnitude of Ignite on you "}
49704967
c["Ignites you inflict deal Damage 15% faster"]={{[1]={flags=0,keywordFlags=0,name="IgniteFaster",type="INC",value=15}},nil}

src/Modules/CalcSections.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,11 +1046,11 @@ return {
10461046
{ label = "Source Chaos", textSize = 12, notFlag = "attack", haveOutput = "IgniteChaosMax", { format = "{0:output:IgniteChaosMin} to {0:output:IgniteChaosMax}", { breakdown = "IgniteChaos" }, }, },
10471047
{ label = "MH Source Chaos", bgCol = colorCodes.MAINHANDBG, textSize = 12, flag = "weapon1Attack", haveOutput = "MainHand.IgniteChaosMax", { format = "{0:output:MainHand.IgniteChaosMin} to {0:output:MainHand.IgniteChaosMax}", { breakdown = "MainHand.IgniteChaos" }, }, },
10481048
{ label = "OH Source Chaos", bgCol = colorCodes.OFFHANDBG, textSize = 12, flag = "weapon2Attack", haveOutput = "OffHand.IgniteChaosMax", { format = "{0:output:OffHand.IgniteChaosMin} to {0:output:OffHand.IgniteChaosMax}", { breakdown = "OffHand.IgniteChaos" }, }, },
1049-
{ label = "Effective DPS Mod", flag = "effective", notFlag = "igniteToChaos", { format = "x {3:output:IgniteEffMult}",
1049+
{ label = "Effective DPS Mod", flag = "effective", notSkillData = "IgniteToChaos", { format = "x {3:output:IgniteEffMult}",
10501050
{ breakdown = "IgniteEffMult" },
10511051
{ label = "Enemy modifiers", modName = { "FireResist", "ElementalResist", "DamageTaken", "DamageTakenOverTime", "FireDamageTaken", "FireDamageTakenOverTime", "ElementalDamageTaken" }, enemy = true },
10521052
}, },
1053-
{ label = "Effective DPS Mod", flagList = { "effective", "igniteToChaos" }, { format = "x {3:output:IgniteEffMult}",
1053+
{ label = "Effective DPS Mod", flag = "effective", skillData = "IgniteToChaos", { format = "x {3:output:IgniteEffMult}",
10541054
{ breakdown = "IgniteEffMult" },
10551055
{ label = "Enemy modifiers", modName = { "ChaosResist", "DamageTaken", "DamageTakenOverTime", "ChaosDamageTaken", "ChaosDamageTakenOverTime" }, enemy = true },
10561056
}, },

src/Modules/ModParser.lua

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2390,6 +2390,12 @@ local specialModList = {
23902390
mod("Damage", "INC", 1, nil, bor(ModFlag.Projectile, ModFlag.Attack), { type = "PerStat", stat = "Str", div = 2 } ),
23912391
flag("NoStrBonusToLife") }
23922392
end,
2393+
["(%a+) spells convert (%d+)%% of (%a+) damage to (%a+) damage"] = function (_, spellType, num, fromType, toType) return { mod(firstToUpper(fromType) .. "DamageConvertTo" .. firstToUpper(toType), "BASE", num, { type = "SkillType", skillType = SkillType.Spell }, { type = "SkillType", skillType = SkillType[firstToUpper(spellType)] }) } end, -- Blackflame Covenant
2394+
["(%a+) damage from (%a+) spells contributes to flammability and ignite magnitudes"] = function(_, sourceType, spellType) return { flag(firstToUpper(sourceType) .. "CanIgnite", { type = "SkillType", skillType = SkillType.Spell }, { type = "SkillType", skillType = SkillType[firstToUpper(spellType)] })} end,
2395+
["ignite inflicted with (%a+) spells deals chaos damage instead of fire damage"] = function (_, spellType) return {
2396+
flag("IgniteToChaos", { type = "SkillType", skillType = SkillType.Spell },{ type = "SkillType", skillType = SkillType[firstToUpper(spellType)]}),
2397+
mod("SkillData", "LIST", { key = "IgniteToChaos", value = true }, { type = "SkillType", skillType = SkillType.Spell },{ type = "SkillType", skillType = SkillType[firstToUpper(spellType)]}),
2398+
} end,
23932399
-- Legacy support
23942400
["(%d+)%% chance to defend with double armour"] = function(numChance) return {
23952401
mod("ArmourDefense", "MAX", 100, "Armour Mastery: Max Calc", { type = "Condition", var = "ArmourMax" }),

0 commit comments

Comments
 (0)