You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.9 KiB

local ADDON_NAME, PRIVATE_TABLE = ...
local L = LibStub("AceLocale-3.0"):GetLocale("AutoLooter")
local Color = PRIVATE_TABLE.Color
local AutoLooter = LibStub("AceAddon-3.0"):GetAddon("AutoLooter")
local module = AutoLooter:NewModule("Money", "AceEvent-3.0")
module.priority = 200
local reason = Color.GREEN .. L["Coin"]
local GetMoneyString, GetCoinText = GetMoneyString, GetCoinText
local function split(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t = {}
for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
table.insert(t, str)
end
return unpack(t)
end
local wordsValue = {}
wordsValue[GetCoinText(10000):gsub("[0-9]", "")] = 10000 -- gold
wordsValue[GetCoinText(20000):gsub("[0-9]", "")] = 10000 -- gold
wordsValue[GetCoinText(100):gsub("[0-9]", "")] = 100 -- silver
wordsValue[GetCoinText(200):gsub("[0-9]", "")] = 100 -- silver
wordsValue[GetCoinText(1):gsub("[0-9]", "")] = 1 -- copper
wordsValue[GetCoinText(2):gsub("[0-9]", "")] = 1 -- copper
-- totally not a bodge
local function getMoneyValue(moneyText)
if (not moneyText) then return 0 end
local textOnly = moneyText:gsub("[0-9]", "")
local moneyValue = moneyText:gsub("[^0-9]", "")
return (wordsValue[textOnly] or 0) * moneyValue
end
local function extractMoneyValue(moneyString)
-- here be dragons!!!
local a, b, c = split(moneyString, "\n")
local total = getMoneyValue(a) + getMoneyValue(b) + getMoneyValue(c)
return total
end
local function formatMoney(moneyString)
if (AutoLooter.db.profile.printoutIconOnly) then
return GetMoneyString(extractMoneyValue(moneyString))
end
return string.gsub(moneyString, "\n", " ")
end
function module.CanLoot(link, icon, sTitle, nQuantity, currencyID, nRarity, locked, isQuestItem, questId, isActive)
if (nQuantity == 0) then
return true, reason, formatMoney(sTitle), nil
end
end