diff --git a/Classes/SkillsTab.lua b/Classes/SkillsTab.lua index c93a4941..c99232e2 100644 --- a/Classes/SkillsTab.lua +++ b/Classes/SkillsTab.lua @@ -210,10 +210,11 @@ end function SkillsTabClass:FindSkillGem(nameSpec) -- Search for gem name using increasingly broad search patterns local patternList = { - "^ "..nameSpec.."$", -- Exact match + "^ "..nameSpec:gsub("%a", function(a) return "["..a:upper()..a:lower().."]" end).."$", -- Exact match (case-insensitive) "^"..nameSpec:gsub("%a", " %0%%l+").."$", -- Simple abbreviation ("CtF" -> "Cold to Fire") "^"..nameSpec:gsub(" ",""):gsub("%l", "%%l*%0").."%l+$", -- Abbreviated words ("CldFr" -> "Cold to Fire") - "^"..nameSpec:gsub(" ",""):gsub("%a", ".*%0") -- Global abbreviation ("CtoF" -> "Cold to Fire") + "^"..nameSpec:gsub(" ",""):gsub("%a", ".*%0"), -- Global abbreviation ("CtoF" -> "Cold to Fire") + "^"..nameSpec:gsub(" ",""):gsub("%a", function(a) return ".*".."["..a:upper()..a:lower().."]" end), -- Case insensitive global abbreviation ("ctof" -> "Cold to Fire") } local gemName, gemData for i, pattern in ipairs(patternList) do diff --git a/Data/Gems/sup_dex.lua b/Data/Gems/sup_dex.lua index dae6e6d9..58c9542b 100644 --- a/Data/Gems/sup_dex.lua +++ b/Data/Gems/sup_dex.lua @@ -1085,36 +1085,36 @@ gems["Trap"] = { trapThrowingSpeedInc = 0.5, }, levels = { - [1] = { trap_damageMore = 1.2, }, - [2] = { trap_damageMore = 1.21, }, - [3] = { trap_damageMore = 1.22, }, - [4] = { trap_damageMore = 1.23, }, - [5] = { trap_damageMore = 1.24, }, - [6] = { trap_damageMore = 1.25, }, - [7] = { trap_damageMore = 1.26, }, - [8] = { trap_damageMore = 1.27, }, - [9] = { trap_damageMore = 1.28, }, - [10] = { trap_damageMore = 1.29, }, - [11] = { trap_damageMore = 1.3, }, - [12] = { trap_damageMore = 1.31, }, - [13] = { trap_damageMore = 1.32, }, - [14] = { trap_damageMore = 1.33, }, - [15] = { trap_damageMore = 1.34, }, - [16] = { trap_damageMore = 1.35, }, - [17] = { trap_damageMore = 1.36, }, - [18] = { trap_damageMore = 1.37, }, - [19] = { trap_damageMore = 1.38, }, - [20] = { trap_damageMore = 1.39, }, - [21] = { trap_damageMore = 1.4, }, - [22] = { trap_damageMore = 1.41, }, - [23] = { trap_damageMore = 1.42, }, - [24] = { trap_damageMore = 1.43, }, - [25] = { trap_damageMore = 1.44, }, - [26] = { trap_damageMore = 1.45, }, - [27] = { trap_damageMore = 1.46, }, - [28] = { trap_damageMore = 1.47, }, - [29] = { trap_damageMore = 1.48, }, - [30] = { trap_damageMore = 1.49, }, + [1] = { trapHit_damageMore = 1.2, }, + [2] = { trapHit_damageMore = 1.21, }, + [3] = { trapHit_damageMore = 1.22, }, + [4] = { trapHit_damageMore = 1.23, }, + [5] = { trapHit_damageMore = 1.24, }, + [6] = { trapHit_damageMore = 1.25, }, + [7] = { trapHit_damageMore = 1.26, }, + [8] = { trapHit_damageMore = 1.27, }, + [9] = { trapHit_damageMore = 1.28, }, + [10] = { trapHit_damageMore = 1.29, }, + [11] = { trapHit_damageMore = 1.3, }, + [12] = { trapHit_damageMore = 1.31, }, + [13] = { trapHit_damageMore = 1.32, }, + [14] = { trapHit_damageMore = 1.33, }, + [15] = { trapHit_damageMore = 1.34, }, + [16] = { trapHit_damageMore = 1.35, }, + [17] = { trapHit_damageMore = 1.36, }, + [18] = { trapHit_damageMore = 1.37, }, + [19] = { trapHit_damageMore = 1.38, }, + [20] = { trapHit_damageMore = 1.39, }, + [21] = { trapHit_damageMore = 1.4, }, + [22] = { trapHit_damageMore = 1.41, }, + [23] = { trapHit_damageMore = 1.42, }, + [24] = { trapHit_damageMore = 1.43, }, + [25] = { trapHit_damageMore = 1.44, }, + [26] = { trapHit_damageMore = 1.45, }, + [27] = { trapHit_damageMore = 1.46, }, + [28] = { trapHit_damageMore = 1.47, }, + [29] = { trapHit_damageMore = 1.48, }, + [30] = { trapHit_damageMore = 1.49, }, } } gems["Trap Cooldown"] = { diff --git a/Modules/Calcs.lua b/Modules/Calcs.lua index a7fb3d79..e230804c 100644 --- a/Modules/Calcs.lua +++ b/Modules/Calcs.lua @@ -855,6 +855,9 @@ local function finaliseMods(env, output) if data.weaponTypeInfo[weapon1Type] and data.weaponTypeInfo[weapon2Type] then condList["DualWielding"] = true end + if weapon1Type == "None" and not data.weaponTypeInfo[weapon2Type] then + condList["Unarmed"] = true + end if getMiscVal(modDB, "gear", "NormalCount", 0) > 0 then condList["UsingNormalItem"] = true end @@ -1124,7 +1127,7 @@ local function performCalcs(env, output) if getMiscVal(modDB, nil, "cannotEvade", false) then output.total_evadeChance = 0 else - local attackerLevel = getMiscVal(modDB, "misc", "evadeMonsterLevel", false) and m_min(getMiscVal(modDB, "monster", "level", 1), #data.enemyAccuracyTable) or m_min(env.build.characterLevel, 80) + local attackerLevel = getMiscVal(modDB, "misc", "evadeMonsterLevel", false) and m_min(getMiscVal(modDB, "monster", "level", 1), #data.enemyAccuracyTable) or m_max(m_min(env.build.characterLevel, 80), 1) output.total_evadeChance = 1 - calcHitChance(output.total_evasion, data.enemyAccuracyTable[attackerLevel]) end buildSpaceTable(modDB) @@ -1379,7 +1382,7 @@ local function performCalcs(env, output) output.total_hitChance = 1 else output.total_accuracy = calcVal(modDB, "accuracy") - local targetLevel = getMiscVal(modDB, "misc", "hitMonsterLevel", false) and m_min(getMiscVal(modDB, "monster", "level", 1), #data.enemyEvasionTable) or m_min(env.build.characterLevel, 79) + local targetLevel = getMiscVal(modDB, "misc", "hitMonsterLevel", false) and m_min(getMiscVal(modDB, "monster", "level", 1), #data.enemyEvasionTable) or m_max(m_min(env.build.characterLevel, 79), 1) local targetEvasion = data.enemyEvasionTable[targetLevel] if env.mode_effective then targetEvasion = targetEvasion * getMiscVal(modDB, "effective", "evasionMore", 1) diff --git a/Modules/ModParser.lua b/Modules/ModParser.lua index b8900236..33583a5f 100644 --- a/Modules/ModParser.lua +++ b/Modules/ModParser.lua @@ -154,6 +154,7 @@ local modNameList = { -- Other skill modifiers ["radius"] = "aoeRadius{suf}", ["radius of area skills"] = "aoeRadius{suf}", + ["area of effect"] = "aoeRadius{suf}", ["duration"] = "duration{suf}", ["skill effect duration"] = "duration{suf}", ["chaos skill effect duration"] = "chaos_duration{suf}", @@ -293,6 +294,7 @@ local specialSpaceList = { ["with shields"] = "CondMod_UsingShield_", ["while dual wielding"] = "CondMod_DualWielding_", ["while wielding a staff"] = "CondMod_UsingStaff_", + ["while unarmed"] = "CondMod_Unarmed_", ["with a normal item equipped"] = "CondMod_UsingNormalItem_", ["with a magic item equipped"] = "CondMod_UsingMagicItem_", ["with a rare item equipped"] = "CondMod_UsingRareItem_", diff --git a/README.md b/README.md index 0b209c02..3d4bc5dc 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,12 @@ 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.0.19 - 2016/09/02 + * Fixed error that would occur if you set your character level to 0 + * Added support for "while Unarmed" modifiers + * Added latest patch changes + * Gem name input is a bit more lenient (it's somewhat case-insensitive now) + ### 1.0.18 - 2016/09/02 * Items now automatically equip when added to the build if there is an empty slot which the item can go in * Automatically focus the edit control in the tree import/export popups diff --git a/manifest.xml b/manifest.xml index c4836615..e631cd58 100644 --- a/manifest.xml +++ b/manifest.xml @@ -1,6 +1,6 @@ - + @@ -29,20 +29,20 @@ - + - + - + @@ -51,7 +51,7 @@ - +