From d065b5aaf71fec2e7e0c12cb30bdbafa83f162a2 Mon Sep 17 00:00:00 2001 From: Alar of Daggerspine Date: Tue, 27 Jan 2015 00:01:15 +0100 Subject: [PATCH] Happy follower release --- GarrisonCommander.lua | 54 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/GarrisonCommander.lua b/GarrisonCommander.lua index 8198ba3..8708f31 100644 --- a/GarrisonCommander.lua +++ b/GarrisonCommander.lua @@ -16,9 +16,9 @@ local xprint=function() end local xdump=function() end local xtrace=function() end --@debug@ ---xprint=function(...) print("DBG",...) end ---xdump=function(d,t) print(t) DevTools_Dump(d) end ---xtrace=trace +xprint=function(...) print("DBG",...) end +xdump=function(d,t) print(t) DevTools_Dump(d) end +xtrace=trace --@end-debug@ local pairs=pairs local select=select @@ -981,9 +981,10 @@ function addon:CompleteParty(missionID,mission,skipBusy,skipMaxed) local rank=data.rank local quality=data.quality repeat - if ((perc or 0) <100) then + perc=tonumber(perc) or 0 + if ((perc) <100) then pushFollower(followerID) - local newperc=select(4,G.GetPartyMissionInfo(missionID)) + local newperc=tonumber(select(4,G.GetPartyMissionInfo(missionID))) or 0 removeFollower(followerID) if (newperc > candidatePerc) then candidatePerc=newperc @@ -1633,7 +1634,9 @@ end function addon:EventGARRISON_MISSION_BONUS_ROLL_COMPLETE(event,missionID,completed,success) --@debug@ xprint(event,missionID,completed,success) + self:MissionAutoComplete(event,missionID,completed,success) --@end-debug@ + self:RefreshFollowerStatus() end --- --@param #number missionID mission identifier @@ -1646,9 +1649,10 @@ end --GARRISON_MISSION_NPC_OPENED ?? --GARRISON_MISSION_BONUS_ROLL_COMPLETE missionID nil -- -function addon:EventGARRISON_MISSION_COMPLETE_RESPONSE(event,missionID,completed,success) +function addon:EventGARRISON_MISSION_COMPLETE_RESPONSE(event,missionID,completed,rewards) --@debug@ - xprint(event,missionID) + xprint(event,missionID,completed,rewards) + self:MissionAutoComplete(event,missionID,completed,rewards) --@end-debug@ dbcache.history[missionID][time()]={result=100,success=success} dbcache.seen[missionID]=nil @@ -1656,7 +1660,6 @@ function addon:EventGARRISON_MISSION_COMPLETE_RESPONSE(event,missionID,completed dbcache.seen[missionID]=nil counters[missionID]=nil parties[missionID]=nil - self:RefreshFollowerStatus() end function addon:EventGARRISON_FOLLOWER_REMOVED() wipe(followersCache) @@ -4330,7 +4333,42 @@ function addon:ExperimentalSetUp() addon:ActivateButton(bt,"MissionComplete","Complete all missions without confirmation") end addon.SetUp=addon.ExperimentalSetUp +do + local missions={} + local missionsIndex=1 + local currentmission + function addon:MissionComplete(this,button) + missions=G.GetCompleteMissions() + --GMFMissions.CompleteDialog.BorderFrame.ViewButton:SetEnabled(false) -- Disabling standard Blizzard Completion + if (missions and #missions > 0) then + missionsIndex=1 + print("We have " .. #missions .. " missions to complete") + self:MissionAutoComplete("LOOP") + end + end + function addon:MissionAutoComplete(event,missionID,completed,custom) +-- C_Garrison.MarkMissionComplete Mark mission as complete and prepare it for bonus roll, da chiamare solo in caso di successo +-- C_Garrison.MissionBonusRoll + if (event=="GARRISON_MISSION_COMPLETE_RESPONSE") then + xprint(missionID,completed,"Mission result:", custom) + elseif (event=="GARRISON_MISSION_BONUS_ROLL_COMPLETE") then + xprint(missionID,completed,"Mission result:") + xdump(custom,"ROLL") + xdump(G.GetMissionPartyInfo(missionID),'partyinfo') + xdump(G.GetMissionInfo(missionID),'info') + else + local mission=missions[missionsIndex] + if (mission) then + missionID=mission.missionID + xprint(event,missionID) + xdump({G.GetPartyMissionInfo(missionID)},'PARTYINFO') + xdump({G.GetMissionInfo(missionID)},'INFO') + xdump(mission,"MISSION") + end + end + end +end --- Enable a trace for every function call. It's a VERY heavy debug -- -- 1.7.9.5