TradeSkillMaster/Core/Service/Accounting/Garrison.lua

57 lines
1.9 KiB
Lua
Raw Normal View History

2020-11-13 14:13:12 -05:00
-- ------------------------------------------------------------------------------ --
-- TradeSkillMaster --
-- https://tradeskillmaster.com --
-- All Rights Reserved - Detailed license information included with addon. --
-- ------------------------------------------------------------------------------ --
local _, TSM = ...
local Garrison = TSM.Accounting:NewPackage("Garrison")
local Event = TSM.Include("Util.Event")
local private = {}
local GOLD_TRAIT_ID = 256 -- traitId for the treasure hunter trait which increases gold from missions
-- ============================================================================
-- Module Functions
-- ============================================================================
function Garrison.OnInitialize()
if not TSM.IsWowClassic() then
Event.Register("GARRISON_MISSION_COMPLETE_RESPONSE", private.MissionComplete)
end
end
-- ============================================================================
-- Misson Reward Tracking
-- ============================================================================
function private.MissionComplete(_, missionId)
local moneyAward = 0
local info = C_Garrison.GetBasicMissionInfo(missionId)
if not info then
return
end
local rewards = info.rewards or info.overMaxRewards
for _, reward in pairs(rewards) do
if reward.title == GARRISON_REWARD_MONEY and reward.currencyID == 0 then
moneyAward = moneyAward + reward.quantity
end
end
if moneyAward > 0 then
-- check for followers which give bonus gold
local multiplier = 1
for _, followerId in ipairs(info.followers) do
for _, trait in ipairs(C_Garrison.GetFollowerAbilities(followerId)) do
if trait.id == GOLD_TRAIT_ID then
multiplier = multiplier + 1
end
end
end
moneyAward = moneyAward * multiplier
TSM.Accounting.Money.InsertGarrisonIncome(moneyAward)
end
end