From 8f4a766a58f028a9c67535983d6bdd6af5e61344 Mon Sep 17 00:00:00 2001 From: Kevin Lyles Date: Mon, 8 Feb 2010 12:50:00 -0600 Subject: [PATCH] added an equip stat handler --- Regexps.lua | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/Regexps.lua b/Regexps.lua index b760768..5426f20 100644 --- a/Regexps.lua +++ b/Regexps.lua @@ -112,7 +112,44 @@ local FoodAffixes = { " +for %d+ hours?%.$", } +local EquipStatsMatchLines = { + "^equip: increases [^t].* by ", + "^equip: increases your effective stealth level", + "^equip: increases effective stealth level", + "^equip: improves [^t].* by ", + "^equip: restores ", + "^equip: increases the block value of your shield by ", + "^equip: [+-]?%d+ all resistances%.$", + "^equip: [+-]?%d+ armor%.$", +} + +local EquipStatsUnweightedLines = { + " when fighting ", + " spell power of ", + " pet[' ]", + " you kill a target ", + " against ", + " while ", + " periodic damage done by ", + " you use ", +} + +local EquipStatsPreprocessLines = { + {" effective stealth level%.$", " effective stealth level by 1."}, +} + +local EquipStatsAffixes = { + "^equip: +", + "^increases ", + "^improves +", + "^restores +", + "^your +", + " +does not work for players above level %d+%.$", + "%.$", +} + EffectHandlers = { + {EquipStatsMatchLines, {}, EquipStatsUnweightedLines, EquipStatsPreprocessLines, EquipStatsAffixes, "equipStats"}, {FoodMatchLines, FoodIgnoreLines, FoodUnweightedLines, FoodPreprocessLines, FoodAffixes, "food"}, } @@ -333,16 +370,41 @@ MultipleStatLines = { end end end}, + -- item 10779 + {"(%a[%a ]+) by (%d+), (%a[%a ]+) by (%d+),? and your normal health regeneration by (%d+)", + function(text, pattern) + local start, _, stat1, val1, stat2, val2, val3 = string.find(text, pattern) + if start then + local stats = WeightsWatcher.newStatTable() + stats[stat1] = tonumber(val1) + stats[stat2] = tonumber(val2) + stats["hp5"] = tonumber(val3) + return stats + end + end}, -- currently used only by items 31864 and 31872 {"^([^,]+) & ([^,]+)$", WeightsWatcher.twoStats}, -- currently only used by item 28363 {"^([^,]+), ([^,]+)$", WeightsWatcher.twoStats}, + {"^chance to resist (%a+) and (%a+) effects by (%d+)%%$", + function(text, pattern) + local start, _, effect1, effect2, value = string.find(text, pattern) + if start then + value = tonumber(value) + local stats = WeightsWatcher.newStatTable() + stats[effect1 .. " resist chance (percent)"] = value + stats[effect2 .. " resist chance (percent)"] = value + return stats + end + end}, } SingleStatLines = { {"^([+-]?%d+) ([^b]%a+)$", WeightsWatcher.statNumFirst}, + {"^the (block value) of your shield by (%d+)$", WeightsWatcher.statNameFirst}, + {"^shield (block rating) by ([+-]?%d+)$", WeightsWatcher.statNameFirst}, {"^(all stats) are reduced by (%d+)$", function(text, pattern) local start, _, name, value = string.find(text, pattern) @@ -357,6 +419,10 @@ SingleStatLines = { return WeightsWatcher.newStatTable({[name] = -tonumber(value)}) end end}, + {"^effective stealth level by (%d+)$", + function(text, pattern) + return WeightsWatcher.singleStatValueOnly(text, pattern, "increased stealth") + end}, -- Tends to eat other stats if not last {"^(%a[%a ]+) by (%d+)$", WeightsWatcher.statNameFirst}, @@ -400,6 +466,14 @@ SingleStatLines = { {"^([+-]?%d+) (all stats)$", WeightsWatcher.statNumFirst}, {"^([+-]?%d+) to (all stats)$", WeightsWatcher.statNumFirst}, + {"^chance to resist (%a+) effects by (%d+)%%$", + function(text, pattern) + local start, _, effect, value = string.find(text, pattern) + if start then + return WeightsWatcher.newStatTable({[effect .. " resist chance (percent)"] = tonumber(value)}) + end + end}, + -- random suffix enchants {"^([+-]?%d+) (%a+ spell damage)$", WeightsWatcher.statNumFirst}, -- Used only for random enchant id 1470 -- 1.7.9.5