initial commit
This commit is contained in:
56
Core/Service/Accounting/Garrison.lua
Normal file
56
Core/Service/Accounting/Garrison.lua
Normal file
@@ -0,0 +1,56 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- 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
|
||||
Reference in New Issue
Block a user