diff --git a/Classes/ConfigTab.lua b/Classes/ConfigTab.lua index 4f02f3fb..78a72cb9 100644 --- a/Classes/ConfigTab.lua +++ b/Classes/ConfigTab.lua @@ -72,6 +72,9 @@ local varList = { { var = "conditionUsedLightningSkillInPast10Sec", type = "check", label = "Used a Light. Skill in the past 10s?", ifNode = 61259, apply = function(val, modList, enemyModList) modList:NewMod("Misc", "LIST", { type = "Condition", var = "UsedLightningSkillInPast10Sec" }, "Config", { type = "Condition", var = "Combat" }) end }, + { var = "conditionBlockedHitFromUniqueEnemyRecently", type = "check", label = "Blocked hit from a Unique Recently?", ifNode = 63490, apply = function(val, modList, enemyModList) + modList:NewMod("Misc", "LIST", { type = "Condition", var = "BlockedHitFromUniqueEnemyRecently" }, "Config", { type = "Condition", var = "Combat" }) + end }, { section = "For Effective DPS" }, { var = "conditionEnemyFullLife", type = "check", label = "Is the enemy on Full Life?", apply = function(val, modList, enemyModList) modList:NewMod("Misc", "LIST", { type = "Condition", var = "EnemyFullLife" }, "Config", { type = "Condition", var = "Effective" }) @@ -109,6 +112,9 @@ local varList = { { var = "conditionEnemyShocked", type = "check", label = "Is the enemy Shocked?", tooltip = "In addition to allowing any 'against Shocked Enemies' modifiers to apply,\nthis will apply Shock's Damage Taken modifier to the enemy.", apply = function(val, modList, enemyModList) modList:NewMod("Misc", "LIST", { type = "Condition", var = "EnemyShocked" }, "Config", { type = "Condition", var = "Effective" }) end }, + { var = "conditionEnemyCoveredInAsh", type = "check", label = "Is the enemy covered in Ash?", tooltip = "This adds the following modifiers:\n20% less enemy Movement Speed\n20% increased Fire Damage Taken by enemy", apply = function(val, modList, enemyModList) + enemyModList:NewMod("FireDamageTaken", "INC", 20, "Ash") + end }, { var = "enemyIsBoss", type = "check", label = "Is the enemy a Boss?", tooltip = "This adds the following modifiers:\n60% less Effect of your Curses\n+30% to enemy Elemental Resistances\n+15% to enemy Chaos Resistance", apply = function(val, modList, enemyModList) enemyModList:NewMod("CurseEffect", "MORE", -60, "Boss") enemyModList:NewMod("ElementalResist", "BASE", 30, "Boss") diff --git a/Classes/ItemsTab.lua b/Classes/ItemsTab.lua index 7614370a..917cc3fd 100644 --- a/Classes/ItemsTab.lua +++ b/Classes/ItemsTab.lua @@ -264,11 +264,19 @@ end function ItemsTabClass:EditDisplayItemText() local popup + local function buildRaw() + local editBuf = popup.controls.edit.buf + if editBuf:match("^Rarity: ") then + return editBuf + else + return "Rarity: "..popup.controls.rarity.list[popup.controls.rarity.sel].val.."\n"..popup.controls.edit.buf + end + end popup = main:OpenPopup(500, 500, self.displayItem and "Edit Item Text" or "Create Custom Item from Text", { rarity = common.New("DropDownControl", nil, -190, 10, 100, 18, { {val = "NORMAL",label=data.colorCodes.NORMAL.."Normal"},{val="MAGIC",label=data.colorCodes.MAGIC.."Magic"},{val="RARE",label=data.colorCodes.RARE.."Rare"},{val="UNIQUE",label=data.colorCodes.UNIQUE.."Unique"} }), edit = common.New("EditControl", nil, 0, 40, 480, 420, "", nil, "^%C\t\n", nil, nil, 14), save = common.New("ButtonControl", nil, -45, 470, 80, 20, self.displayItem and "Save" or "Create", function() - self:CreateDisplayItemFromRaw("Rarity: "..popup.controls.rarity.list[popup.controls.rarity.sel].val.."\n"..popup.controls.edit.buf) + self:CreateDisplayItemFromRaw(buildRaw()) main:ClosePopup() end), common.New("ButtonControl", nil, 45, 470, 80, 20, "Cancel", function() @@ -283,11 +291,11 @@ function ItemsTabClass:EditDisplayItemText() end popup.controls.edit.font = "FIXED" popup.controls.save.enabled = function() - local item = itemLib.makeItemFromRaw("Rarity: "..popup.controls.rarity.list[popup.controls.rarity.sel].val.."\n"..popup.controls.edit.buf) + local item = itemLib.makeItemFromRaw(buildRaw()) return item ~= nil end popup.controls.save.tooltip = function() - local item = itemLib.makeItemFromRaw("Rarity: "..popup.controls.rarity.list[popup.controls.rarity.sel].val.."\n"..popup.controls.edit.buf) + local item = itemLib.makeItemFromRaw(buildRaw()) if item then self:AddItemTooltip(item, nil, true) else diff --git a/Data/Gems/sup_int.lua b/Data/Gems/sup_int.lua index 8c19256d..24b4abc2 100644 --- a/Data/Gems/sup_int.lua +++ b/Data/Gems/sup_int.lua @@ -979,7 +979,56 @@ gems["Minion and Totem Elemental Resistance"] = { intelligence = true, support = true, minion = true, - unsupported = true, + color = 3, + requireSkillTypes = { 9, 30, }, + addSkillTypes = { }, + excludeSkillTypes = { }, + baseMods = { + mod("ManaCost", "MORE", 40), + }, + qualityMods = { + --"summon_fire_resistance_+" = 0.5 + --"summon_cold_resistance_+" = 0.5 + --"summon_lightning_resistance_+" = 0.5 + }, + levelMods = { + --[1] = "summon_fire_resistance_+" + --[2] = "summon_cold_resistance_+" + --[3] = "summon_lightning_resistance_+" + [4] = mod("ElementalDamage", "MORE", nil, 0, bit.bor(KeywordFlag.Minion, KeywordFlag.Totem)), + }, + levels = { + [1] = { 25, 25, 25, 10, }, + [2] = { 26, 26, 26, 10, }, + [3] = { 27, 27, 27, 11, }, + [4] = { 28, 28, 28, 11, }, + [5] = { 29, 29, 29, 12, }, + [6] = { 30, 30, 30, 12, }, + [7] = { 31, 31, 31, 13, }, + [8] = { 32, 32, 32, 13, }, + [9] = { 33, 33, 33, 14, }, + [10] = { 34, 34, 34, 14, }, + [11] = { 35, 35, 35, 15, }, + [12] = { 36, 36, 36, 15, }, + [13] = { 37, 37, 37, 16, }, + [14] = { 38, 38, 38, 16, }, + [15] = { 39, 39, 39, 17, }, + [16] = { 40, 40, 40, 17, }, + [17] = { 41, 41, 41, 18, }, + [18] = { 42, 42, 42, 18, }, + [19] = { 43, 43, 43, 19, }, + [20] = { 44, 44, 44, 19, }, + [21] = { 45, 45, 45, 20, }, + [22] = { 46, 46, 46, 20, }, + [23] = { 47, 47, 47, 21, }, + [24] = { 48, 48, 48, 21, }, + [25] = { 49, 49, 49, 22, }, + [26] = { 50, 50, 50, 22, }, + [27] = { 51, 51, 51, 23, }, + [28] = { 52, 52, 52, 23, }, + [29] = { 53, 53, 53, 24, }, + [30] = { 54, 54, 54, 24, }, + }, } gems["Physical to Lightning"] = { lightning = true, diff --git a/Data/New.lua b/Data/New.lua index c913449e..6ee089b3 100644 --- a/Data/New.lua +++ b/Data/New.lua @@ -201,5 +201,37 @@ League: Breach 30% increased Freeze Duration on Enemies 10% chance to Freeze 60% increased Damage if you've Frozen an Enemy Recently -]], +]],[[ +The Pandemonius +Jade Amulet +Unreleased: true +League: Breach ++(20-30) to Dexterity +24% increased Cold Damage ++35% to Cold Resistance +Chill Enemy for 1 second when hit +Blind Chilled Enemies on Hit +Damage Penetrates 20% of Cold Resistance against Chilled Enemies +]],[[ +Light of Lunaris +Jingling Spirit Shield +Unreleased: true +10% increased Spell Damage +78% increased Critical Strike Chance for Spells +133% increased Energy Shield ++5% Chance to Block ++1% to Critical Strike Multiplier per 1% Block Chance ++25% to Critical Strike Multiplier if you've dealt a Non-Critical Strike Recently +]],[[ +The Surrender +Ezomyte Tower Shield +Unreleased: true +League: Breach +Grants level 30 Reckoning Skill +163% increased Armour ++79 to maximum Life +Recover 250 Life when you Block ++6% Chance to Block ++1500 Armour if you've Blocked Recently +]] } \ No newline at end of file diff --git a/Data/Rares.lua b/Data/Rares.lua index 9a41cedd..369c9f13 100644 --- a/Data/Rares.lua +++ b/Data/Rares.lua @@ -1059,16 +1059,15 @@ Crimson Jewel {range:0}(0 to 6)% increased Attack Speed with Two Handed Melee Weapons {range:0}(0 to 18)% increased Critical Strike Chance with One Handed Melee Weapons {range:0}(0 to 18)% increased Critical Strike Chance with Two Handed Melee Weapons -{range:0}+(0 to 12)% to Critical Strike Multiplier with One Handed Melee Weapons -{range:0}+(0 to 12)% to Critical Strike Multiplier with Two Handed Melee Weapons +{range:0}+(0 to 18)% to Critical Strike Multiplier with One Handed Melee Weapons +{range:0}+(0 to 18)% to Critical Strike Multiplier with Two Handed Melee Weapons {jewel suf} {range:0}(0 to 12)% increased Melee Damage {range:0}(0 to 12)% increased Global Critical Strike Chance {range:0}(0 to 14)% increased Melee Critical Strike Chance -{range:0}+(0 to 8)% to Global Critical Strike Multiplier -{range:0}+(0 to 10)% to Melee Critical Strike Multiplier -]], -[[ +{range:0}+(0 to 12)% to Global Critical Strike Multiplier +{range:0}+(0 to 15)% to Melee Critical Strike Multiplier +]],[[ Jewel Viridian Jewel {jewel pre} @@ -1083,16 +1082,15 @@ Viridian Jewel {range:0}(0 to 6)% increased Attack Speed with Two Handed Melee Weapons {range:0}(0 to 18)% increased Critical Strike Chance with One Handed Melee Weapons {range:0}(0 to 18)% increased Critical Strike Chance with Two Handed Melee Weapons -{range:0}+(0 to 12)% to Critical Strike Multiplier with One Handed Melee Weapons -{range:0}+(0 to 12)% to Critical Strike Multiplier with Two Handed Melee Weapons +{range:0}+(0 to 18)% to Critical Strike Multiplier with One Handed Melee Weapons +{range:0}+(0 to 18)% to Critical Strike Multiplier with Two Handed Melee Weapons {jewel suf} {range:0}(0 to 12)% increased Melee Damage {range:0}(0 to 12)% increased Global Critical Strike Chance {range:0}(0 to 14)% increased Melee Critical Strike Chance -{range:0}+(0 to 8)% to Global Critical Strike Multiplier -{range:0}+(0 to 10)% to Melee Critical Strike Multiplier -]], -[[ +{range:0}+(0 to 12)% to Global Critical Strike Multiplier +{range:0}+(0 to 15)% to Melee Critical Strike Multiplier +]],[[ Jewel Cobalt Jewel {jewel pre} @@ -1112,8 +1110,8 @@ Cobalt Jewel {range:0}(0 to 12)% increased Spell Damage {range:0}(0 to 12)% increased Global Critical Strike Chance {range:0}(0 to 14)% increased Critical Strike Chance for Spells -{range:0}+(0 to 8)% to Global Critical Strike Multiplier -{range:0}+(0 to 10)% to Critical Strike Multiplier for Spells +{range:0}+(0 to 12)% to Global Critical Strike Multiplier +{range:0}+(0 to 15)% to Critical Strike Multiplier for Spells ]], } diff --git a/Modules/Calcs.lua b/Modules/Calcs.lua index c8b97c93..da18fdd9 100644 --- a/Modules/Calcs.lua +++ b/Modules/Calcs.lua @@ -18,6 +18,7 @@ local m_max = math.max local s_format = string.format local band = bit.band local bor = bit.bor +local bnot = bit.bnot -- List of all damage types, ordered according to the conversion sequence local dmgTypeList = {"Physical", "Lightning", "Cold", "Fire", "Chaos"} @@ -670,25 +671,27 @@ local function mergeMainMods(env, repSlotName, repItem) item = nil elseif item and item.jewelRadiusIndex then -- Jewel has a radius, add it to the list - local func = item.jewelFunc or function(nodeMods, out, data) + local funcList = item.jewelFunc or { function(nodeMods, out, data) -- Default function just tallies all stats in radius if nodeMods then for _, stat in pairs({"Str","Dex","Int"}) do data[stat] = (data[stat] or 0) + nodeMods:Sum("BASE", nil, stat) end end + end } + for _, func in ipairs(funcList) do + local radiusInfo = data.jewelRadius[item.jewelRadiusIndex] + local node = build.spec.nodes[slot.nodeId] + t_insert(env.radiusJewelList, { + rSq = radiusInfo.rad * radiusInfo.rad, + x = node.x, + y = node.y, + func = func, + item = item, + nodeId = slot.nodeId, + data = { } + }) end - local radiusInfo = data.jewelRadius[item.jewelRadiusIndex] - local node = build.spec.nodes[slot.nodeId] - t_insert(env.radiusJewelList, { - rSq = radiusInfo.rad * radiusInfo.rad, - x = node.x, - y = node.y, - func = func, - item = item, - nodeId = slot.nodeId, - data = { } - }) end end env.itemList[slotName] = item @@ -1599,6 +1602,14 @@ local function performCalcs(env) end end end + if modDB:Sum("FLAG", nil, "SpellDamageAppliesToAttacks") then + -- Spell Damage conversion from Crown of Eyes + for i, mod in ipairs(modDB.mods.Damage or { }) do + if mod.type == "INC" and band(mod.flags, ModFlag.Spell) ~= 0 then + modDB:NewMod("Damage", "INC", mod.value, mod.source, bor(band(mod.flags, bnot(ModFlag.Spell)), ModFlag.Attack), mod.keywordFlags, unpack(mod.tagList)) + end + end + end -- Calculate skill type stats if skillFlags.projectile then @@ -1801,16 +1812,16 @@ local function performCalcs(env) if baseCrit == 100 then output.CritChance = 100 else - output.CritChance = calcVal(modDB, "CritChance", skillCfg, baseCrit) + local base = modDB:Sum("BASE", skillCfg, "CritChance") + output.CritChance = (baseCrit + base) * calcMod(modDB, skillCfg, "CritChance") if env.mode_effective then output.CritChance = output.CritChance + enemyDB:Sum("BASE", nil, "SelfExtraCritChance") end output.CritChance = m_min(output.CritChance, 95) - if baseCrit > 0 then + if (baseCrit + base) > 0 then output.CritChance = m_max(output.CritChance, 5) end if breakdown and output.CritChance ~= baseCrit then - local base = modDB:Sum("BASE", skillCfg, "CritChance") local inc = modDB:Sum("INC", skillCfg, "CritChance") local more = modDB:Sum("MORE", skillCfg, "CritChance") local enemyExtra = enemyDB:Sum("BASE", nil, "SelfExtraCritChance") @@ -2515,7 +2526,7 @@ function calcs.buildOutput(build, mode) output.CombatList = table.concat(combatList, ", ") output.CurseList = table.concat(curseList, ", ") - infoDump(env) + --infoDump(env) end return env diff --git a/Modules/ItemTools.lua b/Modules/ItemTools.lua index 979f9c93..25895264 100644 --- a/Modules/ItemTools.lua +++ b/Modules/ItemTools.lua @@ -70,7 +70,9 @@ function itemLib.parseItemRaw(item) local rarity = item.rawLines[l]:match("^Rarity: (%a+)") if rarity then mode = "GAME" - item.rarity = rarity:upper() + if data.colorCodes[rarity:upper()] then + item.rarity = rarity:upper() + end l = l + 1 end end @@ -216,7 +218,7 @@ function itemLib.parseItemRaw(item) elseif mode == "GAME" and not foundExplicit then item.implicitLines = 0 end - if not item.corrupted and item.base and (item.base.armour or item.base.weapon) then + if not item.corrupted and not item.uniqueID and item.base and (item.base.armour or item.base.weapon) then item.quality = 20 end if item.variantList then @@ -410,9 +412,11 @@ function itemLib.buildItemModListForSlotNum(item, baseList, slotNum) end end elseif item.type == "Jewel" then + item.jewelFunc = nil for _, value in ipairs(modList:Sum("LIST", nil, "Misc")) do if value.type == "JewelFunc" then - item.jewelFunc = value.func + item.jewelFunc = item.jewelFunc or { } + t_insert(item.jewelFunc, value.func) end end end diff --git a/Modules/ModParser.lua b/Modules/ModParser.lua index 4fbaabc6..2ec7356c 100644 --- a/Modules/ModParser.lua +++ b/Modules/ModParser.lua @@ -27,6 +27,7 @@ local formList = { ["^([%d%.]+)%% of"] = "CONV", ["^gain ([%d%.]+)%% of"] = "CONV", ["penetrates (%d+)%%"] = "PEN", + ["penetrates (%d+)%% of"] = "PEN", ["penetrates (%d+)%% of enemy"] = "PEN", ["^([%d%.]+)%% of (.+) regenerated per second"] = "REGENPERCENT", ["^([%d%.]+) (.+) regenerated per second"] = "REGENFLAT", @@ -339,10 +340,10 @@ local modTagList = { -- Player status conditions ["when on low life"] = { tag = { type = "Condition", var = "LowLife" } }, ["while on low life"] = { tag = { type = "Condition", var = "LowLife" } }, - ["when not on low life"] = { tag = { type = "Condition", var = "NotLowLife" } }, - ["while not on low life"] = { tag = { type = "Condition", var = "NotLowLife" } }, + ["when not on low life"] = { tag = { type = "Condition", var = "LowLife", neg = true } }, + ["while not on low life"] = { tag = { type = "Condition", var = "LowLife", neg = true } }, ["when on full life"] = { tag = { type = "Condition", var = "FullLife" } }, - ["when not on full life"] = { tag = { type = "Condition", var = "NotFullLife" } }, + ["when not on full life"] = { tag = { type = "Condition", var = "FullLife", neg = true } }, ["while no mana is reserved"] = { tag = { type = "Condition", var = "NoManaReserved" } }, ["while at maximum power charges"] = { tag = { type = "Condition", var = "AtMaxPowerCharges" } }, ["while at maximum frenzy charges"] = { tag = { type = "Condition", var = "AtMaxFrenzyCharges" } }, @@ -366,6 +367,7 @@ local modTagList = { ["if you were damaged by a hit recently"] = { tag = { type = "Condition", var = "BeenHitRecently" } }, ["if you haven't been hit recently"] = { tag = { type = "Condition", var = "NotBeenHitRecently" } }, ["if you've taken no damage from hits recently"] = { tag = { type = "Condition", var = "NotBeenHitRecently" } }, + ["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've used a fire skill in the past 10 seconds"] = { tag = { type = "Condition", var = "UsedFireSkillInPast10Sec" } }, @@ -418,6 +420,7 @@ local specialModList = { ["life regeneration is applied to energy shield instead"] = { flag("ZealotsOath") }, ["life leech applies instantly%. life regeneration has no effect%."] = { flag("VaalPact"), flag("NoLifeRegen") }, ["deal no non%-fire damage"] = { flag("DealNoPhysical"), flag("DealNoLightning"), flag("DealNoCold"), flag("DealNoChaos") }, + ["(%d+)%% of physical, cold and lightning damage converted to fire damage"] = function(num) return { mod("PhysicalDamageConvertToFire", "BASE", num), mod("LightningDamageConvertToFire", "BASE", num), mod("ColdDamageConvertToFire", "BASE", num) } end, ["removes all mana%. spend life instead of mana for skills"] = { mod("Mana", "MORE", -100), flag("BloodMagic") }, ["enemies you hit with elemental damage temporarily get (%+%d+)%% resistance to those elements and (%-%d+)%% resistance to other elements"] = function(plus, _, minus) minus = tonumber(minus) @@ -432,8 +435,8 @@ local specialModList = { end, -- Ascendancy notables ["movement skills cost no mana"] = { mod("ManaCost", "MORE", -100, nil, 0, KeywordFlag.Movement) }, - ["projectiles have 100%% additional chance to pierce targets at the start of their movement, losing this chance as the projectile travels farther"] = { mod("PierceChance", "BASE", 100) }, - ["projectile critical strike chance increased by arrow pierce chance"] = { mod("CritChance", "INC", 100, nil, ModFlag.Projectile) }, + ["projectiles have 100%% additional chance to pierce targets at the start of their movement, losing this chance as the projectile travels farther"] = { mod("PierceChance", "BASE", 50, { type = "Condition", var = "Effective" }) }, + ["projectile critical strike chance increased by arrow pierce chance"] = { mod("CritChance", "INC", 1, nil, ModFlag.Projectile, 0, { type = "PerStat", stat = "PierceChance", div = 1 }) }, ["always poison on hit while using a flask"] = { mod("PoisonChance", "BASE", 100, { type = "Condition", var = "UsingFlask" }) }, ["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, @@ -535,6 +538,7 @@ local specialModList = { ["cannot block attacks"] = { flag("CannotBlockAttacks") }, ["projectiles pierce while phasing"] = { mod("PierceChance", "BASE", 100, { type = "Condition", var = "Phasing" }) }, ["increases and reductions to minion damage also affects you"] = { flag("MinionDamageAppliesToPlayer") }, + ["increases and reductions to spell damage also apply to attacks"] = { flag("SpellDamageAppliesToAttacks") }, ["armour is increased by uncapped fire resistance"] = { mod("Armour", "INC", 1, { type = "PerStat", stat = "FireResistTotal", div = 1 }) }, ["critical strike chance is increased by uncapped lightning resistance"] = { mod("CritChance", "INC", 1, { type = "PerStat", stat = "LightningResistTotal", div = 1 }) }, ["critical strikes deal no damage"] = { flag("NoCritDamage") }, @@ -622,9 +626,9 @@ local function getMatchConv(others, dst, type) if nodeMods then for _, mod in ipairs(nodeMods) do for _, other in pairs(others) do - if mod.name:match(other) then - out:NewMod(mod.name, type, -mod.value, "Tree:Jewel") - out:NewMod(mod.name:gsub(other, dst), type, mod.value, "Tree:Jewel") + if mod.name:match(other) and mod.type == type then + out:NewMod(mod.name, type, -mod.value, "Tree:Jewel", mod.flags, mod.keywordFlags) + out:NewMod(mod.name:gsub(other, dst), type, mod.value, "Tree:Jewel", mod.flags, mod.keywordFlags) end end end diff --git a/README.md b/README.md index 8547d4cd..22aaa63e 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,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.2.20 - 2016/12/02 + * Added 'The Pandemonius', 'Light of Lunaris' and 'The Surrender' + * Added support for the Minion and Totem Elemental Resistances gem + * The new elemental damage multiplier has been added to this gem + * Added support for the Spell Damage->Attack Damage modifier on Crown of Eyes + * Imported items no longer have their quality normalised + * Fixed Avatar of Fire not working after the passive tree update + * Fixed bug preventing Cold Steel from applying both conversions + * Corrected the ranges of the crit multipler modifiers on the jewel templates + * Various minor tweaks and fixes + ### 1.2.19 - 2016/11/30 * Updated the passive tree to 2.5.0 * Added 'The Halcyon' diff --git a/changelog.txt b/changelog.txt index 72676917..ed2ab3fd 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,13 @@ +VERSION[1.2.20][2016/12/02] + * Added 'The Pandemonius', 'Light of Lunaris' and 'The Surrender' + * Added support for the Minion and Totem Elemental Resistances gem + * The new elemental damage multiplier has been added to this gem + * Added support for the Spell Damage->Attack Damage modifier on Crown of Eyes + * Imported items no longer have their quality normalised + * Fixed Avatar of Fire not working after the passive tree update + * Fixed bug preventing Cold Steel from applying both conversions + * Corrected the ranges of the crit multipler modifiers on the jewel templates + * Various minor tweaks and fixes VERSION[1.2.19][2016/11/30] * Updated the passive tree to 2.5.0 * Added 'The Halcyon' diff --git a/manifest.xml b/manifest.xml index 295a2713..ff9f3c48 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,20 +1,20 @@ - + - + - + @@ -24,7 +24,7 @@ - + @@ -44,24 +44,24 @@ - + - + - + - - + + - +