diff --git a/GarrisonCommander.lua b/GarrisonCommander.lua
index 9bce16e..ae34bed 100644
--- a/GarrisonCommander.lua
+++ b/GarrisonCommander.lua
@@ -426,12 +426,12 @@ print("Initialize")
self:AddSlider("MAXRESCHANCE",80,50,100,L["Minum needed chance"],L["Applied when maximise result is enabled. Default is 80%"])
ns.bigscreen=self:GetBoolean("BIGSCREEN")
self:AddLabel("Followers Panel")
- self:AddSlider("MAXMISSIONS",5,1,8,L["Mission shown for follower"],nil,1)
- self:AddSlider("MINPERC",50,0,100,L["Minimun chance success under which ignore missions"],nil,5)
- self:AddToggle("ILV",true,L["Show weapon/armor level"],L["When checked, show on each follower button weapon and armor level for maxed followers"])
- self:AddToggle("IXP",true,L["Show xp to next level"],L["When checked, show on each follower button missing xp to next level"])
- self:AddToggle("UPG",true,L["Show upgrade options"],L["Only meaningful upgrades are shown"])
- self:AddToggle("NOCONFIRM",true,L["Don't ask for confirmation"],L["If checked, clicking an upgrade icon will consume the item and upgrade the follower\n|cFFFF0000NO QUESTION ASKED|r"])
+ self:AddSlider("MAXMISSIONS",5,1,8,L["Mission shown"],L["Mission shown for follower"],1)
+ self:AddSlider("MINPERC",50,0,100,L["Minimun chance"],L["Minimun chance success under which ignore missions"],5)
+ self:AddToggle("ILV",true,L["Show itemlevel"],L["When checked, show on each follower button weapon and armor level for maxed followers"])
+ self:AddToggle("IXP",true,L["Show xp"],L["When checked, show on each follower button missing xp to next level"])
+ self:AddToggle("UPG",true,L["Show upgrades"],L["Only meaningful upgrades are shown"])
+ self:AddToggle("NOCONFIRM",true,L["Don't ask confirmation"],L["If checked, clicking an upgrade icon will consume the item and upgrade the follower\n|cFFFF0000NO QUESTION ASKED|r"])
self:AddToggle("SWAPBUTTONS",false,L["Swap upgrades position"],L["IF checked, shows armors on the left and weapons on the right "])
self:AddLabel("Buildings Panel")
self:AddToggle("HF",false,L["Hide followers"],L["Do not show follower icon on plots"])
@@ -532,6 +532,8 @@ end
function addon:ApplyMAXMISSIONS(value)
MAXMISSIONS=value
BUSY_MESSAGE=format(BUSY_MESSAGE_FORMAT,MAXMISSIONS,MINPERC)
+ if ns.bigscreen and GMF.FollowerTab:IsVisible() then
+ end
end
function addon:ApplyMINPERC(value)
MINPERC=value
@@ -603,7 +605,7 @@ function addon:SetThreatColor(obj,threat)
end
function addon:HookedGarrisonMissionButton_AddThreatsToTooltip(missionID)
- if (ns.ns.GMC:IsVisible()) then return end
+ if (ns.GMF.MissionControlTab:IsVisible()) then return end
return self:RenderTooltip(missionID)
end
function addon:AddIconsToFollower(missionID,useful,followers,members,followerTypeID)
@@ -1080,6 +1082,9 @@ function addon:AddOptionToOptionsLayer(o,flag,maxsize)
if (info) then
local data={option=info}
local widget
+--@debug@
+ print("Adding option",flag,info.type,info)
+--@end-debug@
if (info.type=="toggle") then
widget=AceGUI:Create("CheckBox")
local value=self:GetBoolean(flag)
@@ -1101,6 +1106,16 @@ function addon:AddOptionToOptionsLayer(o,flag,maxsize)
widget:SetCallback("OnClick",function(widget,event,value)
self[info.func](self,data,value)
end)
+ elseif (info.type=="range") then
+ local value=self:GetNumber(flag)
+ widget=AceGUI:Create("Slider")
+ widget:SetLabel(info.name)
+ widget:SetValue(value)
+ widget:SetSliderValues(info.min,info.max,info.step)
+ widget:SetWidth(maxsize)
+ widget:SetCallback("OnClick",function(widget,event,value)
+ self[info.func](self,data,value)
+ end)
else
widget=AceGUI:Create("Label")
widget:SetText(info.name)
@@ -1477,7 +1492,12 @@ print("Setup")
--collectgarbage("step",10)
--/Interface/FriendsFrame/UI-Toast-FriendOnlineIcon
end
-
+function addon:RefreshMenu()
+ if not self.currentmenu or not self.currentmenu:IsVisible() then
+ self:RemoveMenu()
+ self:AddMenu()
+ end
+end
function addon:AddMenu()
--@debug@
print("Adding Menu")
@@ -1485,7 +1505,17 @@ print("Adding Menu")
if GCF.Menu then
return
end
- local menu,size=self:CreateOptionsLayer(MP and 'CKMP' or nil,'BIGSCREEN','IGM','IGP','NOFILL','MSORT','MAXRES','USEFUL')
+ local menu,size
+ if GMF.MissionTab:IsVisible() then
+ self.currentmenu=GMF.MissionTab
+ menu,size=self:CreateOptionsLayer(MP and 'CKMP' or nil,'BIGSCREEN','IGM','IGP','NOFILL','MSORT','MAXRES','USEFUL')
+ elseif GMF.FollowerTab:IsVisible() then
+ self.currentmenu=GMF.FollowerTab
+ menu,size=self:CreateOptionsLayer('BIGSCREEN',ns.bigscreen and 'MAXMISSIONS' or nil,ns.bigscreen and 'MINPERC' or nil,'ILV','IXP','UPG','NOCONFIRM','SWAPBUTTONS')
+ elseif GMF.MissionControlTab:IsVisible() then
+ self.currentmenu=GMF.MissionControlTab
+ menu,size=self:CreateOptionsLayer('BIGSCREEN')
+ end
--@debug@
self:AddOptionToOptionsLayer(menu,'DBG')
self:AddOptionToOptionsLayer(menu,'TRC')
@@ -2115,8 +2145,8 @@ end
function addon:OpenLastTab()
lastTab=lastTab or PanelTemplates_GetSelectedTab(GMF)
if lastTab then
- if ns.GMC:IsVisible() then
- ns.GMC:Hide()
+ if GMF.MissionControlTab:IsVisible() then
+ GMF.MissionControlTab:Hide()
GMF.tabMC:SetChecked(false)
if lastTab==2 then
GMF.FollowerTab:Show()
@@ -2140,19 +2170,20 @@ function addon:OpenMissionsTab()
return self:OpenLastTab()
end
function addon:OpenMissionControlTab()
- if (not ns.GMC:IsVisible()) then
+ if (not GMF.MissionControlTab:IsVisible()) then
lastTab=PanelTemplates_GetSelectedTab(GMF)
GMF.FollowerTab:Hide()
GMF.FollowerList:Hide()
GMF.MissionTab:Hide()
GMF.TitleText:SetText(L["Garrison Commander Mission Control"])
- ns.GMC:Show()
- ns.GMC.startButton:Click()
+ GMF.MissionControlTab:Show()
+ GMF.MissionControlTab.startButton:Click()
GMF.tabMC:SetChecked(true)
else
GMF.tabMC:SetChecked(false)
self:OpenLastTab()
end
+ self:RefreshMenu()
end
function addon:OnClick_GarrisonMissionFrame_MissionComplete_NextMissionButton(this,button)
local frame = GMF.MissionComplete
@@ -2790,6 +2821,7 @@ function addon:HookedGarrisonMissionList_SetTab(tab)
for i=1,#GMFMissionListButtons do
GMFMissionListButtons.lastMissionID=nil
end
+ self:RefreshMenu()
if (HD) then addon:ResetSinks() end
end
function addon:HookedClickOnTabs(tab)
@@ -2797,6 +2829,9 @@ function addon:HookedClickOnTabs(tab)
print(tab)
--@end-debug@
lastTab=tab
+ if GCF then
+ self:RefreshMenu()
+ end
end
function addon:GarrisonMissionFrame_SelectTab(frame,tab)
--@debug@
@@ -2810,8 +2845,9 @@ function addon:GarrisonMissionFrame_SelectTab(frame,tab)
if (HD) then addon:ResetSinks() end
if GMF.tabMC then
GMF.tabMC:SetChecked(false)
- ns.GMC:Hide()
+ GMF.MissionControlTab:Hide()
end
+ self:RefreshMenu()
end
function addon:HookedGarrisonMissionButton_SetRewards(frame,rewards,numRewards)
collectgarbage("step",300)
diff --git a/MissionControl.lua b/MissionControl.lua
index 4e96fc8..45dd6b4 100644
--- a/MissionControl.lua
+++ b/MissionControl.lua
@@ -11,7 +11,6 @@ local factory=addon:GetFactory()
local aMissions={}
local chardb
local db
-local GMC
local GMF=GarrisonMissionFrame
local GMCUsedFollowers={}
local wipe=wipe
@@ -100,6 +99,7 @@ function module:GMCRunMission(missionID,start)
--@debug@
print("Asked to start mission",missionID)
--@end-debug@
+ local GMC=GMF.MissionControlTab
if (start) then
G.StartMission(missionID)
PlaySound("UI_Garrison_CommandTable_MissionStart")
@@ -137,6 +137,7 @@ do
local currentMission=0
local x=0
function module:GMCCalculateMissions(this,elapsed)
+ local GMC=GMF.MissionControlTab
db.news.MissionControl=true
timeElapsed = timeElapsed + elapsed
if (#aMissions == 0 ) then
@@ -204,6 +205,7 @@ do
end
function module:GMC_OnClick_Run(this,button)
+ local GMC=GMF.MissionControlTab
this:Disable()
GMC.logoutButton:Disable()
do
@@ -224,7 +226,7 @@ function module:GMC_OnClick_Run(this,button)
end
end
function module:GMC_OnClick_Start(this,button)
-
+ local GMC=GMF.MissionControlTab
--@debug@
print(C("-------------------------------------------------","Yellow"))
--@end-debug@
@@ -256,6 +258,7 @@ print(C("-------------------------------------------------","Yellow"))
end
local chestTexture
local function drawItemButtons()
+ local GMC=GMF.MissionControlTab
local scale=1.1
local h=37 -- itemButtonTemplate standard size
local gap=5
@@ -404,8 +407,8 @@ function module:OnInitialized()
db=addon.db.global
chardb=addon.privatedb.profile
chestTexture='GarrMission-'..UnitFactionGroup('player').. 'Chest'
- GMC = CreateFrame('FRAME', 'GMCOptions', GMF)
- ns.GMC=GMC
+ local GMC = CreateFrame('FRAME', nil, GMF)
+ GMF.MissionControlTab=GMC
settings=chardb.missionControl
tOrder=settings.rewardOrder
if settings.version < 2 then
@@ -494,7 +497,7 @@ function module:OnInitialized()
return GMC
end
function module:GMCBuildChance()
- _G['GMC']=GMC
+ local GMC=GMF.MissionControlTab
--Chance
GMC.cf = CreateFrame('FRAME', nil, GMC)
GMC.cf:SetSize(256, 150)
@@ -546,6 +549,7 @@ function module:GMCBuildChance()
return GMC.cf
end
local function timeslidechange(this,value)
+ local GMC=GMF.MissionControlTab
local value = math.floor(value)
if (this.max) then
settings.maxDuration = max(value,settings.minDuration)
@@ -561,6 +565,7 @@ local function timeslidechange(this,value)
end
function module:GMCBuildDuration()
-- Duration
+ local GMC=GMF.MissionControlTab
GMC.tf = CreateFrame('FRAME', nil, GMC)
GMC.tf:SetSize(256, 180)
GMC.tf:SetPoint('LEFT', 80, 120)
@@ -604,6 +609,7 @@ function module:GMCBuildDuration()
end
function module:GMCBuildRewards()
--Allowed rewards
+ local GMC=GMF.MissionControlTab
GMC.aif = CreateFrame('FRAME', nil, GMC)
GMC.itf = GMC.aif:CreateFontString()
GMC.itf:SetFontObject('GameFontNormalHuge')
@@ -616,25 +622,8 @@ function module:GMCBuildRewards()
end
function module:GMCBuildMissionList()
- -- Mission list on follower panels
--- local ml=CreateFrame("Frame",nil,GMC)
--- addBackdrop(ml)
--- ml:Show()
--- ml.Missions={}
--- ml.Parties={}
--- GMC.ml=ml
--- local fs=ml:CreateFontString(nil, "BACKGROUND", "GameFontNormalHugeBlack")
--- fs:SetPoint("TOPLEFT",0,-5)
--- fs:SetPoint("TOPRIGHT",0,-5)
--- fs:SetText(READY)
--- fs:SetTextColor(C.Green())
--- fs:SetHeight(30)
--- fs:SetJustifyV("CENTER")
--- fs:Show()
--- GMC.progressText=fs
--- GMC.ml.Header=fs
--- return GMC.ml
local ml={widget=AceGUI:Create("GMCLayer"),Parties={}}
+ local GMC=GMF.MissionControlTab
ml.widget:SetTitle(READY)
ml.widget:SetTitleColor(C.Green())
ml.widget:SetTitleHeight(40)