Release 1.3.5

- Added support for Malediction's added Chaos
- Added many condition options
- Added support for the damage bonus from Sanctify
This commit is contained in:
Openarl
2017-02-21 02:24:03 +10:00
parent 57c3c4a0fe
commit 8dc54c000c
6 changed files with 75 additions and 6 deletions

View File

@@ -17,6 +17,9 @@ local varList = {
{ var = "conditionFullLife", type = "check", label = "Are you always on Full Life?", ifCond = "FullLife", tooltip = "You will automatically be considered to be on Full Life if you have Chaos Innoculation,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "FullLife" }, "Config")
end },
{ var = "conditionFullEnergyShield", type = "check", label = "Are you always on Full Energy Shield?", ifCond = "FullES", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "FullEnergyShield" }, "Config")
end },
{ var = "igniteMode", type = "list", label = "Ignite calculation mode:", tooltip = "Controls how the base damage for ignite is calculated:\nAverage Damage: Ignite is based on the average damage dealt, factoring in crits and non-crits.\nCrit Damage: Ignite is based on crit damage only.", list = {{val="AVERAGE",label="Average Damage"},{val="CRIT",label="Crit Damage"}} },
{ section = "When In Combat" },
{ var = "usePowerCharges", type = "check", label = "Do you use Power Charges?" },
@@ -37,6 +40,9 @@ local varList = {
{ var = "conditionUsingFlask", type = "check", label = "Do you have a Flask active?", ifCond = "UsingFlask", tooltip = "This is automatically enabled if you have a flask active,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "UsingFlask" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionHaveTotem", type = "check", label = "Do you have a Totem summoned?", ifCond = "HaveTotem", tooltip = "You will automatically be considered to have a Totem if your main skill is a Totem,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "HaveTotem" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionOnConsecratedGround", type = "check", label = "Are you on Consecrated Ground?", tooltip = "In addition to allowing any 'while on Consecrated Ground' modifiers to apply,\nthis will apply the 4% life regen modifier granted by Consecrated Ground.", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "OnConsecratedGround" }, "Config", { type = "Condition", var = "Combat" })
end },
@@ -85,6 +91,15 @@ local varList = {
{ var = "conditionBeenSavageHitRecently", type = "check", label = "Have you been Savage Hit Recently?", ifCond = "BeenSavageHitRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "BeenSavageHitRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionHitByFireDamageRecently", type = "check", label = "Have you been hit by Fire Recently?", ifCond = "HitByFireDamageRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "HitByFireDamageRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionHitByColdDamageRecently", type = "check", label = "Have you been hit by Cold Recently?", ifCond = "HitByColdDamageRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "HitByColdDamageRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionHitByLightningDamageRecently", type = "check", label = "Have you been hit by Light. Recently?", ifCond = "HitByLightningDamageRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "HitByLightningDamageRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionBlockedRecently", type = "check", label = "Have you Blocked Recently?", ifCond = "BlockedRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "BlockedRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
@@ -97,6 +112,12 @@ local varList = {
{ var = "conditionCastSpellRecently", type = "check", label = "Have you Cast a Spell Recently?", ifNode = 3154, tooltip = "You will automatically be considered to have Cast a Spell Recently if your main skill is a spell,\nbut you can use this option to force it if necessary.", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "CastSpellRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionUsedWarcryRecently", type = "check", label = "Have you used a Warcry Recently?", ifCond = "UsedWarcryRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "UsedWarcryRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionConsumedCorpseRecently", type = "check", label = "Consumed a corpse Recently?", ifCond = "ConsumedCorpseRecently", apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "ConsumedCorpseRecently" }, "Config", { type = "Condition", var = "Combat" })
end },
{ var = "conditionUsedFireSkillInPast10Sec", type = "check", label = "Used a Fire Skill in the past 10s?", ifNode = 61259, apply = function(val, modList, enemyModList)
modList:NewMod("Misc", "LIST", { type = "Condition", var = "UsedFireSkillInPast10Sec" }, "Config", { type = "Condition", var = "Combat" })
end },

View File

@@ -1103,6 +1103,7 @@ local function performCalcs(env)
condList["UsedMovementSkillRecently"] = true
end
if env.mainSkill.skillFlags.totem then
condList["HaveTotem"] = true
condList["SummonedTotemRecently"] = true
end
if env.mainSkill.skillFlags.mine then
@@ -1180,6 +1181,7 @@ local function performCalcs(env)
if activeSkill.curseModList then
activeSkill.debuffSkill = true
condList["EnemyCursed"] = true
modDB.multipliers["CurseOnEnemy"] = (modDB.multipliers["CurseOnEnemy"] or 0) + 1
local inc = modDB:Sum("INC", skillCfg, "CurseEffect") + enemyDB:Sum("INC", nil, "CurseEffect") + skillModList:Sum("INC", skillCfg, "CurseEffect")
local more = modDB:Sum("MORE", skillCfg, "CurseEffect") * enemyDB:Sum("MORE", nil, "CurseEffect") * skillModList:Sum("MORE", skillCfg, "CurseEffect")
enemyDB:ScaleAddList(activeSkill.curseModList, (1 + inc / 100) * more)

View File

@@ -288,6 +288,7 @@ local modFlagList = {
["with mines"] = { keywordFlags = KeywordFlag.Mine },
["trap"] = { keywordFlags = KeywordFlag.Trap },
["with traps"] = { keywordFlags = KeywordFlag.Trap },
["for traps"] = { keywordFlags = KeywordFlag.Trap },
["totem"] = { keywordFlags = KeywordFlag.Totem },
["with totem skills"] = { keywordFlags = KeywordFlag.Totem },
["minion"] = { keywordFlags = KeywordFlag.Minion },
@@ -381,9 +382,11 @@ local modTagList = {
["when on full life"] = { tag = { type = "Condition", var = "FullLife" } },
["when not on full life"] = { tag = { type = "Condition", var = "FullLife", neg = true } },
["while no mana is reserved"] = { tag = { type = "Condition", var = "NoManaReserved" } },
["while on full energy shield"] = { tag = { type = "Condition", var = "FullEnergyShield" } },
["while at maximum power charges"] = { tag = { type = "Condition", var = "AtMaxPowerCharges" } },
["while at maximum frenzy charges"] = { tag = { type = "Condition", var = "AtMaxFrenzyCharges" } },
["while at maximum endurance charges"] = { tag = { type = "Condition", var = "AtMaxEnduranceCharges" } },
["while you have a totem"] = { tag = { type = "Condition", var = "HaveTotem" } },
["while you have fortify"] = { tag = { type = "Condition", var = "Fortify" } },
["during onslaught"] = { tag = { type = "Condition", var = "Onslaught" } },
["while you have onslaught"] = { tag = { type = "Condition", var = "Onslaught" } },
@@ -419,6 +422,7 @@ local modTagList = {
["if you've blocked a hit from a unique enemy recently"] = { tag = { type = "Condition", var = "BlockedHitFromUniqueEnemyRecently" } },
["if you've attacked recently"] = { tag = { type = "Condition", var = "AttackedRecently" } },
["if you've cast a spell recently"] = { tag = { type = "Condition", var = "CastSpellRecently" } },
["if you have consumed a corpse recently"] = { tag = { type = "Condition", var = "ConsumedCorpseRecently" } },
["if you've used a fire skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedFireSkillInPast10Sec" } },
["if you've used a cold skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedColdSkillInPast10Sec" } },
["if you've used a lightning skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedLightningSkillInPast10Sec" } },
@@ -444,6 +448,7 @@ local modTagList = {
["against chilled enemies"] = { tag = { type = "Condition", var = "EnemyChilled" }, flags = ModFlag.Hit },
["enemies which are chilled"] = { tag = { type = "Condition", var = "EnemyChilled" }, flags = ModFlag.Hit },
["against frozen, shocked or ignited enemies"] = { tag = { type = "Condition", varList = {"EnemyFrozen","EnemyShocked","EnemyIgnited"} }, flags = ModFlag.Hit },
["against enemies affected by elemental status ailments"] = { tag = { type = "Condition", varList = {"EnemyFrozen","EnemyChilled","EnemyShocked","EnemyIgnited"} }, flags = ModFlag.Hit },
["against enemies that are affected by elemental status ailments"] = { tag = { type = "Condition", varList = {"EnemyFrozen","EnemyChilled","EnemyShocked","EnemyIgnited"} }, flags = ModFlag.Hit },
["against enemies that are affected by no elemental status ailments"] = { tagList = { { type = "Condition", varList = {"EnemyFrozen","EnemyChilled","EnemyShocked","EnemyIgnited"}, neg = true }, { type = "Condition", var = "Effective" } }, flags = ModFlag.Hit },
}
@@ -492,7 +497,13 @@ local specialModList = {
["armour received from body armour is doubled"] = { flag("Unbreakable") },
["gain (%d+)%% of maximum mana as extra maximum energy shield"] = function(num) return { mod("ManaGainAsEnergyShield", "BASE", num) } end,
["you have fortify"] = { mod("Misc", "LIST", { type = "Condition", var = "Fortify"}) },
["(%d+)%% increased damage of each damage type for which you have a matching golem"] = function(num) return { mod("PhysicalDamage", "INC", num, { type = "Condition", var = "HavePhysicalGolem"}), mod("LightningDamage", "INC", num, { type = "Condition", var = "HaveLightningGolem"}), mod("ColdDamage", "INC", num, { type = "Condition", var = "HaveColdGolem"}), mod("FireDamage", "INC", num, { type = "Condition", var = "HaveFireGolem"}), mod("ChaosDamage", "INC", num, { type = "Condition", var = "HaveChaosGolem"}) } end,
["(%d+)%% increased damage of each damage type for which you have a matching golem"] = function(num) return {
mod("PhysicalDamage", "INC", num, { type = "Condition", var = "HavePhysicalGolem"}),
mod("LightningDamage", "INC", num, { type = "Condition", var = "HaveLightningGolem"}),
mod("ColdDamage", "INC", num, { type = "Condition", var = "HaveColdGolem"}),
mod("FireDamage", "INC", num, { type = "Condition", var = "HaveFireGolem"}),
mod("ChaosDamage", "INC", num, { type = "Condition", var = "HaveChaosGolem"})
} end,
["100%% increased effect of buffs granted by your elemental golems"] = { flag("LiegeOfThePrimordial") },
["every 10 seconds, gain (%d+)%% increased elemental damage for 4 seconds"] = function(num) return { mod("ElementalDamage", "INC", num, { type = "Condition", var = "PendulumOfDestruction" }) } end,
["every 10 seconds, gain (%d+)%% increased radius of area skills for 4 seconds"] = function(num) return { mod("AreaRadius", "INC", num, { type = "Condition", var = "PendulumOfDestruction" }) } end,
@@ -514,6 +525,20 @@ local specialModList = {
["non%-critical strikes penetrate (%d+)%% of enemy elemental resistances"] = function(num) return { mod("ElementalPenetration", "BASE", num, { type = "Condition", var = "CriticalStrike", neg = true }) } end,
["movement speed cannot be modified to below base value"] = { flag("MovementSpeedCannotBeBelowBase") },
["your offering skills also affect you"] = { flag("OfferingsAffectPlayer") },
["consecrated ground you create grants (%d+)%% increased damage to you and allies"] = function(num) return { mod("Damage", "INC", num, { type = "Condition", var = "OnConsecratedGround" }) } end,
["for each element you've been hit by damage of recently, (%d+)%% increased damage of that element"] = function(num) return {
mod("FireDamage", "INC", num, { type = "Condition", var = "HitByFireDamageRecently" }),
mod("ColdDamage", "INC", num, { type = "Condition", var = "HitByColdDamageRecently" }),
mod("LightningDamage", "INC", num, { type = "Condition", var = "HitByLightningDamageRecently" })
} end,
["when you kill an enemy, for each curse on that enemy, gain (%d+)%% of non%-chaos damage as extra chaos damage for 4 seconds"] = function(num) return {
mod("PhysicalDamageGainAsChaos", "BASE", num, { type = "Condition", var = "KilledRecently" }, { type = "Multiplier", var = "CurseOnEnemy" }),
mod("LightningDamageGainAsChaos", "BASE", num, { type = "Condition", var = "KilledRecently" }, { type = "Multiplier", var = "CurseOnEnemy" }),
mod("ColdDamageGainAsChaos", "BASE", num, { type = "Condition", var = "KilledRecently" }, { type = "Multiplier", var = "CurseOnEnemy" }),
mod("FireDamageGainAsChaos", "BASE", num, { type = "Condition", var = "KilledRecently" }, { type = "Multiplier", var = "CurseOnEnemy" })
} end,
["you and nearby allies have (%d+)%% increased attack, cast and movement speed if you've used a warcry recently"] = function(num) return { mod("Speed", "INC", num, { type = "Condition", var = "UsedWarcryRecently" }), mod("MovementSpeed", "INC", num, { type = "Condition", var = "UsedWarcryRecently" }) } end,
["warcries cost no mana"] = { mod("ManaCost", "MORE", -100, nil, 0, KeywordFlag.Warcry) },
-- Special node types
["(%d+)%% of block chance applied to spells"] = function(num) return { mod("BlockChanceConv", "BASE", num) } end,
["(%d+)%% additional block chance with staves"] = function(num) return { mod("BlockChance", "BASE", num, { type = "Condition", var = "UsingStaff" }) } end,

View File

@@ -47,6 +47,17 @@ Head over to the [Releases](https://github.com/Openarl/PathOfBuilding/releases)
![ss3](https://cloud.githubusercontent.com/assets/19189971/18089780/f0ff234a-6f04-11e6-8c88-6193fe59a5c4.png)
## Changelog
### 1.3.5 - 2017/02/21
* Added support for the extra Chaos Damage from Malediction
* The bonus only applies with "Have you killed Recently?" enabled, and scales based on the number of active curse skills
* Added options to the Configuration tab for:
* Are you always on Full Energy Shield?
* Do you have a Totem summoned?
* Have you been hit by Fire/Cold/Lightning Recently? (for Paragon of Calamity)
* Have you used a Warcry Recently?
* Consumed a corpse Recently?
* Added support for the "Consecrated Ground grants 40% increased Damage" modifier from Sanctify
### 1.3.4 - 2017/02/20
* Added support for the Offering skills and Mistress of Sacrifice

View File

@@ -1,3 +1,13 @@
VERSION[1.3.5][2017/02/21]
* Added support for the extra Chaos Damage from Malediction
* The bonus only applies with "Have you killed Recently?" enabled, and scales based on the number of active curse skills
* Added options to the Configuration tab for:
* Are you always on Full Energy Shield?
* Do you have a Totem summoned?
* Have you been hit by Fire/Cold/Lightning Recently? (for Paragon of Calamity)
* Have you used a Warcry Recently?
* Consumed a corpse Recently?
* Added support for the "Consecrated Ground grants 40% increased Damage" modifier from Sanctify
VERSION[1.3.4][2017/02/20]
* Added support for the Offering skills and Mistress of Sacrifice
VERSION[1.3.3][2017/02/19]

View File

@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<PoBVersion>
<Version number="1.3.4"/>
<Version number="1.3.5"/>
<Source part="program" url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/"/>
<Source part="tree" url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/tree.zip"/>
<Source url="https://raw.githubusercontent.com/Openarl/PathOfBuilding/{branch}/runtime-win32.zip" part="runtime" platform="win32"/>
<File sha1="8a7163c306feb866be7f8d66c71b282c9f99be94" name="Launch.lua" part="program"/>
<File sha1="d8e42beeb38baabcc197d658e4c0af33419eeff3" name="UpdateCheck.lua" part="program"/>
<File sha1="4f17937f2b37784e169a3792b235f2a0a3961e61" name="UpdateApply.lua" part="program"/>
<File sha1="eb2ab2d5663283daa1d89265f35353dc2f822dcc" name="changelog.txt" part="program"/>
<File sha1="aba6191496174d311eb5a6398385da7bb32a5716" name="changelog.txt" part="program"/>
<File sha1="231a4fe264d84294427edacbf3e29ec4b301712e" name="Classes/BuildListControl.lua" part="program"/>
<File sha1="deffd663ba726d938fcbe2870aab8a4e982587fa" name="Classes/ButtonControl.lua" part="program"/>
<File sha1="412639a254d0e275d9cc2286c5d76d3b0a9a0e8e" name="Classes/CalcBreakdownControl.lua" part="program"/>
<File sha1="e30db9887e852afc1b149e2ee34cc124bc6d7a0a" name="Classes/CalcSectionControl.lua" part="program"/>
<File sha1="0177c313de6d62cc53c7dfff20a055b26de7c1b7" name="Classes/CalcsTab.lua" part="program"/>
<File sha1="05bb6f2625f647454990605d6c2e20c786c992b4" name="Classes/CheckBoxControl.lua" part="program"/>
<File sha1="f524723750b652f231da65f453ac1c3679b17edd" name="Classes/ConfigTab.lua" part="program"/>
<File sha1="16af68d2eee83d3e2d4b3d429da119ad994e2554" name="Classes/ConfigTab.lua" part="program"/>
<File sha1="bbb08f183746d6ec023e2bd08fb7a89d365381da" name="Classes/Control.lua" part="program"/>
<File sha1="ae55fe1093e727872bc01cc94fa987395f944313" name="Classes/ControlHost.lua" part="program"/>
<File sha1="9f05f72260f896eea09c1a8fb28f58973ce4d3ff" name="Classes/DropDownControl.lua" part="program"/>
@@ -44,13 +44,13 @@
<File sha1="4b7675c8b4fe71cade7dd3d70793df1ed8022d01" name="Classes/UndoHandler.lua" part="program"/>
<File sha1="06cef31ee7a133da6a9c4b8b4b9e859901c4a4a4" name="Modules/Build.lua" part="program"/>
<File sha1="8a07fe01c53b785ebb6256236e781fbaabd36c0e" name="Modules/BuildList.lua" part="program"/>
<File sha1="2538e96f9fdd53aaf2915ca4c1d2c06aba9dbd72" name="Modules/Calcs.lua" part="program"/>
<File sha1="bd26c62326f763ca16fbd35c23e24bedb1f644a9" name="Modules/Calcs.lua" part="program"/>
<File sha1="4063501d4bf32511b5eddcb08ad8037866846179" name="Modules/CalcSections.lua" part="program"/>
<File sha1="761af85f3e1c5601fdb790356a09aefe2f5a64e3" name="Modules/Common.lua" part="program"/>
<File sha1="cc9721ab97b5cfb9c707f4523168b9df618db083" name="Modules/Data.lua" part="program"/>
<File sha1="4426369a8320676d96df73dea35e1a6cafdd3d19" name="Modules/ItemTools.lua" part="program"/>
<File sha1="e66e6bd244bb5d6112dbade17f7d4640a58f6b3a" name="Modules/Main.lua" part="program"/>
<File sha1="4fa1af18fb1b338c737b4157dd12a284739427ea" name="Modules/ModParser.lua" part="program"/>
<File sha1="757d5d348dce142a8f348c8c6428d73f2da285be" name="Modules/ModParser.lua" part="program"/>
<File sha1="5f93a9d8f58e0d5990a1f84e1ab1d53fbd35fb56" name="Modules/ModTools.lua" part="program"/>
<File sha1="e7ee7e5b6388facb7bf568517ecc401590757df7" name="Assets/ring.png" part="program"/>
<File sha1="9a320bfe629b1cf3f14fc77fbbf2508d0a5b2841" name="Assets/small_ring.png" part="program"/>