Quantcast

9.0.1 Version

Giovanni G [10-17-20 - 22:42]
9.0.1 Version
Filename
.project
BuildingPage.lua
Debug.lua
FollowerCache.lua
GarrisonCommander-Broker/ldb.lua
GarrisonCommander.lua
Init.lua
MissionCache.lua
MissionCompletion.lua
OrderHall.lua
PartyCache.lua
ShipYard.lua
Widgets.lua
diff --git a/.project b/.project
index 540725e..b9173f1 100644
--- a/.project
+++ b/.project
@@ -20,11 +20,4 @@
 		<nature>org.eclipse.koneki.ldt.nature</nature>
 		<nature>org.eclipse.ldt.nature</nature>
 	</natures>
-	<linkedResources>
-		<link>
-			<name>_pkgmeta</name>
-			<type>1</type>
-			<location>D:/home/giovanni/git/Wow/GarrisonCommander/.pkgmeta</location>
-		</link>
-	</linkedResources>
 </projectDescription>
diff --git a/BuildingPage.lua b/BuildingPage.lua
index 3aca8f9..acd7d6b 100644
--- a/BuildingPage.lua
+++ b/BuildingPage.lua
@@ -16,9 +16,17 @@ local addon=addon
 local GBF=GarrisonBuildingFrame
 local GBFMap=GBF.MapFrame
 local CreateFrame=CreateFrame
-local GARRISON_FOLLOWER_MAX_LEVEL=GARRISON_FOLLOWER_MAX_LEVEL
+local GARRISON_FOLLOWER_MAX_LEVEL=40
 local new,del=ns.new,ns.del
 local module=addon:NewSubClass("BuildingPage") --#module
+local LE_FOLLOWER_TYPE_GARRISON_6_0=Enum.GarrisonFollowerType.FollowerType_6_0
+local LE_FOLLOWER_TYPE_SHIPYARD_6_2=Enum.GarrisonFollowerType.FollowerType_6_2
+local LE_FOLLOWER_TYPE_GARRISON_7_0=Enum.GarrisonFollowerType.FollowerType_7_0
+local LE_FOLLOWER_TYPE_GARRISON_8_0=Enum.GarrisonFollowerType.FollowerType_8_0
+local LE_GARRISON_TYPE_6_0=Enum.GarrisonType.Type_6_0
+local LE_GARRISON_TYPE_6_2=Enum.GarrisonType.Type_6_2
+local LE_GARRISON_TYPE_7_0=Enum.GarrisonType.Type_7_0
+local LE_GARRISON_TYPE_8_0=Enum.GarrisonType.Type_8_0
 function module:OnInitialize()
 	--module:SafeHookScript(GBFMap,"OnShow","AddFollowersToMap")
 	module:SafeSecureHook("GarrisonBuildingList_Show","AddCheckBox")
@@ -69,7 +77,7 @@ function module:AddFollowerToPlot(plot)
 			info.level=level
 			info.portraitIconID=portraitIconID
 			info.displayID=portraitIconID
-			info.followerTypeID=_G.LE_FOLLOWER_TYPE_GARRISON_6_0
+			info.followerTypeID=LE_FOLLOWER_TYPE_GARRISON_6_0
 			GMF:SetFollowerPortrait(frame.PortraitFrame, info, false)
 			frame.PortraitFrame.Empty:Hide()
 			del(info)
diff --git a/Debug.lua b/Debug.lua
index 01df0b2..e0fa1a3 100644
--- a/Debug.lua
+++ b/Debug.lua
@@ -188,7 +188,7 @@ function addon:DumpStatus(title)
 		local followerID=followersCache[i].followerID
 		scroll:AddRow(format("%s (%s): %d",self:GetFollowerData(followerID,'fullname'),self:GetFollowerData(followerID,'followerID'),G.GetFollowerXP(followerID)))
 	end
-	scroll:AddRow("Garrison resources: " .. select(2,GetCurrencyInfo(GARRISON_CURRENCY)))
+	scroll:AddRow("Garrison resources: " .. C_CurrencyInfo.GetCurrencyInfo(GARRISON_CURRENCY)['quantity'])
 	scroll:AddRow("Money: " .. GetMoneyString(GetMoney()))
 end
 function addon:DumpFollowers()
diff --git a/FollowerCache.lua b/FollowerCache.lua
index 8ee8723..281ecc4 100644
--- a/FollowerCache.lua
+++ b/FollowerCache.lua
@@ -14,12 +14,18 @@ local tinsert=tinsert
 local tContains=tContains
 local wipe=wipe
 local Mbase = {}
-local GARRISON_FOLLOWER_MAX_LEVEL=GARRISON_FOLLOWER_MAX_LEVEL
+local GARRISON_FOLLOWER_MAX_LEVEL=40
 local format=format
 local tostring=tostring
 local GetItemInfo=GetItemInfo
-local LE_FOLLOWER_TYPE_GARRISON_6_0=_G.LE_FOLLOWER_TYPE_GARRISON_6_0
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=_G.LE_FOLLOWER_TYPE_SHIPYARD_6_2
+local LE_FOLLOWER_TYPE_GARRISON_6_0=Enum.GarrisonFollowerType.FollowerType_6_0
+local LE_FOLLOWER_TYPE_SHIPYARD_6_2=Enum.GarrisonFollowerType.FollowerType_6_2
+local LE_FOLLOWER_TYPE_GARRISON_7_0=Enum.GarrisonFollowerType.FollowerType_7_0
+local LE_FOLLOWER_TYPE_GARRISON_8_0=Enum.GarrisonFollowerType.FollowerType_8_0
+local LE_GARRISON_TYPE_6_0=Enum.GarrisonType.Type_6_0
+local LE_GARRISON_TYPE_6_2=Enum.GarrisonType.Type_6_2
+local LE_GARRISON_TYPE_7_0=Enum.GarrisonType.Type_7_0
+local LE_GARRISON_TYPE_8_0=Enum.GarrisonType.Type_8_0
 local maxrank=_G.GARRISON_FOLLOWER_MAX_UPGRADE_QUALITY[LE_FOLLOWER_TYPE_GARRISON_6_0]*1000+GARRISON_FOLLOWER_MAX_LEVEL
 local module=addon:NewSubClass('FollowerCache') --#module
 local cache={} --#cache
@@ -262,12 +268,12 @@ function addon:GetCache(followerTypeID)
 	return module.caches[followerTypeID]
 end
 function addon:GMCBusy(followerID,value)
-	if not followerID then
+	if not followerID then
 		GMCUsedFollowersCount=0
-		wipe(GMCUsedFollowers)
-		return
+		wipe(GMCUsedFollowers)
+		return
 	end
-	if value and not GMCUsedFollowers[followerID] then
+	if value and not GMCUsedFollowers[followerID] then
 		GMCUsedFollowers[followerID]=true
 		GMCUsedFollowersCount=GMCUsedFollowersCount+1
 	end
diff --git a/GarrisonCommander-Broker/ldb.lua b/GarrisonCommander-Broker/ldb.lua
index 702658e..4c3a7d0 100644
--- a/GarrisonCommander-Broker/ldb.lua
+++ b/GarrisonCommander-Broker/ldb.lua
@@ -38,8 +38,6 @@ local format=format
 local table=table
 local math=math
 local GetQuestResetTime=GetQuestResetTime
-local CalendarGetDate=CalendarGetDate
-local CalendarGetAbsMonth=CalendarGetAbsMonth
 local GameTooltip=GameTooltip
 local pairs=pairs
 local select=select
@@ -48,7 +46,6 @@ local NEXT=NEXT
 local NONE=C(NONE,"Red")
 local DONE=C(DONE,"Green")
 local NEED=C(NEED,"Red")
-local IsQuestFlaggedCompleted=IsQuestFlaggedCompleted
 local CAPACITANCE_SHIPMENT_COUNT=CAPACITANCE_SHIPMENT_COUNT -- "%d of %d Work Orders Available";
 local CAPACITANCE_SHIPMENT_READY=CAPACITANCE_SHIPMENT_READY -- "Work Order ready for pickup!";
 local CAPACITANCE_START_WORK_ORDER=CAPACITANCE_START_WORK_ORDER -- "Start Work Order";
@@ -67,14 +64,14 @@ KEY_BUTTON1="Shift " .. KEY_BUTTON1
 KEY_BUTTON2="Shift " .. KEY_BUTTON2
 local EMPTY=EMPTY -- "Empty"
 local GARRISON_CACHE=GARRISON_CACHE
-local LE_FOLLOWER_TYPE_GARRISON_6_0=_G.LE_FOLLOWER_TYPE_GARRISON_6_0
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=_G.LE_FOLLOWER_TYPE_SHIPYARD_6_2
-local LE_FOLLOWER_TYPE_GARRISON_7_0=_G.LE_FOLLOWER_TYPE_GARRISON_7_0
-local LE_FOLLOWER_TYPE_GARRISON_8_0=_G.LE_FOLLOWER_TYPE_GARRISON_8_0
-local LE_GARRISON_TYPE_6_0=_G.LE_GARRISON_TYPE_6_0
-local LE_GARRISON_TYPE_6_2=_G.LE_GARRISON_TYPE_6_2
-local LE_GARRISON_TYPE_7_0=_G.LE_GARRISON_TYPE_7_0
-local LE_GARRISON_TYPE_8_0=_G.LE_GARRISON_TYPE_8_0
+local LE_FOLLOWER_TYPE_GARRISON_6_0=Enum.GarrisonFollowerType.FollowerType_6_0
+local LE_FOLLOWER_TYPE_SHIPYARD_6_2=Enum.GarrisonFollowerType.FollowerType_6_2
+local LE_FOLLOWER_TYPE_GARRISON_7_0=Enum.GarrisonFollowerType.FollowerType_7_0
+local LE_FOLLOWER_TYPE_GARRISON_8_0=Enum.GarrisonFollowerType.FollowerType_8_0
+local LE_GARRISON_TYPE_6_0=Enum.GarrisonType.Type_6_0
+local LE_GARRISON_TYPE_6_2=Enum.GarrisonType.Type_6_2
+local LE_GARRISON_TYPE_7_0=Enum.GarrisonType.Type_7_0
+local LE_GARRISON_TYPE_8_0=Enum.GarrisonType.Type_8_0
 local dbversion=1
 local frequency=5
 local ldbtimer=nil
@@ -196,7 +193,7 @@ end
 function addon:CheckDateReset()
 	local oldToday=today
 	local reset=GetQuestResetTime()
-	local t= C_Calendar.GetDate()
+	local t= C_DateAndTime.GetCurrentCalendarTime()
 	local day=t.monthDay
 	local year=t.year
 	local month=t.month
@@ -422,7 +419,7 @@ function addon:DelayedInit()
 	end
 end
 function addon:GetImprovedCacheSize()
-	if IsQuestFlaggedCompleted(37485) then
+	if C_QuestLog.IsQuestFlaggedCompleted(37485) then
 		return 1000 -- Arakkoa item
 --[[
 	elseif IsQuestFlaggedCompleted(38445) then
diff --git a/GarrisonCommander.lua b/GarrisonCommander.lua
index 802fb43..f71cd77 100644
--- a/GarrisonCommander.lua
+++ b/GarrisonCommander.lua
@@ -27,10 +27,24 @@ local pin=false
 local baseHeight
 local minHeight
 local addon=addon --#addon
-local LE_FOLLOWER_TYPE_GARRISON_6_0=_G.LE_FOLLOWER_TYPE_GARRISON_6_0
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=_G.LE_FOLLOWER_TYPE_SHIPYARD_6_2
-local LE_GARRISON_TYPE_6_0=_G.LE_GARRISON_TYPE_6_0
-local LE_GARRISON_TYPE_6_2=_G.LE_GARRISON_TYPE_6_2
+local LE_FOLLOWER_TYPE_GARRISON_6_0=Enum.GarrisonFollowerType.FollowerType_6_0
+local LE_FOLLOWER_TYPE_SHIPYARD_6_2=Enum.GarrisonFollowerType.FollowerType_6_2
+local LE_FOLLOWER_TYPE_GARRISON_7_0=Enum.GarrisonFollowerType.FollowerType_7_0
+local LE_FOLLOWER_TYPE_GARRISON_8_0=Enum.GarrisonFollowerType.FollowerType_8_0
+local LE_GARRISON_TYPE_6_0=Enum.GarrisonType.Type_6_0
+local LE_GARRISON_TYPE_6_2=Enum.GarrisonType.Type_6_2
+local LE_GARRISON_TYPE_7_0=Enum.GarrisonType.Type_7_0
+local LE_GARRISON_TYPE_8_0=Enum.GarrisonType.Type_8_0
+local GARRISON_MISSION_AVAILABILITY1=GARRISON_MISSION_AVAILABILITY..'\n %s'
+local GARRISON_MISSION_AVAILABILITY2=GARRISON_MISSION_ENVIRONMENT:sub(1,10)..GARRISON_MISSION_AVAILABILITY..':|r %s'
+local GARRISON_MISSION_ID=GARRISON_MISSION_ENVIRONMENT:sub(1,10)..'MissionID:|r |cffffffff%s|r'
+local fakeinfo={followerID=false}
+local fakeframe={}
+local mainframes={
+  [LE_FOLLOWER_TYPE_GARRISON_6_0]="GarrisonMissionFrame",
+  [LE_FOLLOWER_TYPE_SHIPYARD_6_2]="GarrisonShipyardFrame",
+
+}
 ns.bigscreen=true
 local tprint=print
 local backdrop = {
@@ -93,10 +107,8 @@ local GARRISON_MISSION_PERCENT_CHANCE="%d%%"-- GARRISON_MISSION_PERCENT_CHANCE
 --local GARRISON_FOLLOWER_BUSY_COLOR=GARRISON_FOLLOWER_BUSY_COLOR
 --local GARRISON_FOLLOWER_INACTIVE_COLOR=GARRISON_FOLLOWER_INACTIVE_COLOR
 --local GARRISON_CURRENCY=GARRISON_CURRENCY  --824
-local LE_FOLLOWER_TYPE_GARRISON_6_0=LE_FOLLOWER_TYPE_GARRISON_6_0
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=LE_FOLLOWER_TYPE_SHIPYARD_6_2
 local GARRISON_FOLLOWER_MAX_UPGRADE_QUALITY=GARRISON_FOLLOWER_MAX_UPGRADE_QUALITY[LE_FOLLOWER_TYPE_GARRISON_6_0]
---local GARRISON_FOLLOWER_MAX_LEVEL=GARRISON_FOLLOWER_MAX_LEVEL -- 100
+local GARRISON_FOLLOWER_MAX_LEVEL=40

 local GARRISON_CURRENCY=GARRISON_CURRENCY
 local GetMoneyString=GetMoneyString
@@ -135,8 +147,6 @@ local MAXMISSIONS=8
 local MINPERC=20
 local BUSY_MESSAGE_FORMAT=L["Only first %1$d missions with over %2$d%% chance of success are shown"]
 local BUSY_MESSAGE=format(BUSY_MESSAGE_FORMAT,MAXMISSIONS,MINPERC)
-local LE_FOLLOWER_TYPE_GARRISON_6_0=_G.LE_FOLLOWER_TYPE_GARRISON_6_0
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=_G.LE_FOLLOWER_TYPE_SHIPYARD_6_2
 local GarrisonFollowerPortrait_Set=GarrisonFollowerPortrait_Set
 if not GarrisonFollowerPortrait_Set then
 	GarrisonFollowerPortrait_Set=function(portrait, iconFileID)
@@ -686,7 +696,10 @@ function addon:AddFollowersToTooltip(missionID,followerTypeID)
 	local cost=self:GetMissionData(missionID,'cost')
 	local currency=self:GetMissionData(missionID,'costCurrencyTypesID')
 	if cost and currency then
-		local _,available,texture=GetCurrencyInfo(currency)
+		local _,available,texture=self:GetCurrencyInfo(currency)
+		if not texture then
+		  print("Not found texture for",currency,self:GetCurrencyInfo(currency))
+		end
 		GameTooltip:AddDoubleLine(TABARDVENDORCOST,format("%d |T%s:0|t",cost,texture),nil,nil,nil,C[cost>available and 'Red' or 'Green']())
 	end
 	local members=party.members
@@ -731,7 +744,7 @@ function addon:AddFollowersToTooltip(missionID,followerTypeID)
 	end
 	if type(party.materialMultiplier)=="table" then
 		for k,v in pairs(party.materialMultiplier) do
-			GameTooltip:AddDoubleLine((GetCurrencyInfo(k)),v..'x',C.Green())
+			GameTooltip:AddDoubleLine((self:GetCurrencyInfo(k)),v..'x',C.Green())
 		end
 	end
 	if party.xpBonus>0 then
@@ -1922,16 +1935,6 @@ function addon:GetFollowerStatus(followerID,withTime,colored)
 		return colored and C(AVAILABLE,"Green") or AVAILABLE
 	end
 end
-local GARRISON_MISSION_AVAILABILITY1=GARRISON_MISSION_AVAILABILITY..'\n %s'
-local GARRISON_MISSION_AVAILABILITY2=GARRISON_MISSION_ENVIRONMENT:sub(1,10)..GARRISON_MISSION_AVAILABILITY..':|r %s'
-local GARRISON_MISSION_ID=GARRISON_MISSION_ENVIRONMENT:sub(1,10)..'MissionID:|r |cffffffff%s|r'
-local fakeinfo={followerID=false}
-local fakeframe={}
-local mainframes={
-	[LE_FOLLOWER_TYPE_GARRISON_6_0]="GarrisonMissionFrame",
-	[LE_FOLLOWER_TYPE_SHIPYARD_6_2]="GarrisonShipyardFrame",
-
-}
 function addon:FillMissionPage(missionInfo)

 	if type(missionInfo)=="number" then missionInfo=self:GetMissionData(missionInfo) end
@@ -2904,7 +2907,7 @@ function addon:AddThreatsToButton(button,mission,missionID,bigscreen)
 		button.Env.missionID=missionID
 		local party=button.party
 		if not mission.typeIcon then
-			mission.typeIcon=select(5,G.GetMissionInfo(missionID))
+			mission.typeIcon=G.GetMissionDeploymentInfo(missionID)['environmentTexture']
 		end
 		if mission.typeIcon then
 			button.Env.IsEnv=true
@@ -2925,7 +2928,7 @@ function addon:AddThreatsToButton(button,mission,missionID,bigscreen)
 			button.Env:SetScript("OnEnter",nil)
 			button.Env:Hide()
 		end
-		local enemies=mission.enemies or select(8,G.GetMissionInfo(missionID))
+		local enemies=mission.enemies or G.GetMissionDeploymentInfo(missionID)['enemies']
 		local threats=self:GetParty(missionID,'threats')
 		for i,enemy in ipairs(enemies) do
 			for mechanicID, mechanic in pairs(enemy.mechanics) do
diff --git a/Init.lua b/Init.lua
index 20b4b70..e217a60 100644
--- a/Init.lua
+++ b/Init.lua
@@ -54,8 +54,13 @@ ns.GSF=_G.GarrisonShipyardFrame
 ns.GMFMissions=ns.GMF.MissionTab.MissionList
 ns.GSFMissions=ns.GSF.MissionTab.MissionList
 _G.GARRISON_FOLLOWER_MAX_ITEM_LEVEL = _G.GARRISON_FOLLOWER_MAX_ITEM_LEVEL or 675
+local NavalDomination={
+	Alliance=39068,
+	Horde=39246
+}
 ns.quests={}
-GetQuestsCompleted(ns.quests)
+ns.quests[NavalDomination.Alliance]=C_QuestLog.IsQuestFlaggedCompleted(NavalDomination.Alliance)
+ns.quests[NavalDomination.Horde]=C_QuestLog.IsQuestFlaggedCompleted(NavalDomination.Horde)
 function addon:EventQUEST_TURNED_IN(event,quest,item,gold)
 	ns.quests[quest]=true
 end
diff --git a/MissionCache.lua b/MissionCache.lua
index 9216dc3..a2ac670 100644
--- a/MissionCache.lua
+++ b/MissionCache.lua
@@ -11,9 +11,15 @@ local tcontains=tContains
 local wipe=wipe
 local GARRISON_CURRENCY=GARRISON_CURRENCY
 local GARRISON_SHIP_OIL_CURRENCY=GARRISON_SHIP_OIL_CURRENCY
-local GARRISON_FOLLOWER_MAX_LEVEL=GARRISON_FOLLOWER_MAX_LEVEL
-local LE_FOLLOWER_TYPE_GARRISON_6_0=_G.LE_FOLLOWER_TYPE_GARRISON_6_0
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=_G.LE_FOLLOWER_TYPE_SHIPYARD_6_2
+local GARRISON_FOLLOWER_MAX_LEVEL=40
+local LE_FOLLOWER_TYPE_GARRISON_6_0=Enum.GarrisonFollowerType.FollowerType_6_0
+local LE_FOLLOWER_TYPE_SHIPYARD_6_2=Enum.GarrisonFollowerType.FollowerType_6_2
+local LE_FOLLOWER_TYPE_GARRISON_7_0=Enum.GarrisonFollowerType.FollowerType_7_0
+local LE_FOLLOWER_TYPE_GARRISON_8_0=Enum.GarrisonFollowerType.FollowerType_8_0
+local LE_GARRISON_TYPE_6_0=Enum.GarrisonType.Type_6_0
+local LE_GARRISON_TYPE_6_2=Enum.GarrisonType.Type_6_2
+local LE_GARRISON_TYPE_7_0=Enum.GarrisonType.Type_7_0
+local LE_GARRISON_TYPE_8_0=Enum.GarrisonType.Type_8_0
 local GMF=GMF
 local GSF=GSF
 local GMFMissions=GMFMissions
@@ -224,7 +230,7 @@ function module:AddExtraData(mission)
 	if mission.missionID == dbg then print("Final gold",mission.gold) DevTools_Dump(mission.moreClasses)end
 --@end-debug@
 	if not mission.class then mission.class="other" end
-	local xp=select(2,G.GetMissionInfo(mission.missionID))
+	local xp=G.GetMissionDeploymentInfo(mission.missionID)['xp']
 	if not mission.xp or mission.xp==0 then mission.xp=xp end
 	mission.globalXp=tonumber(mission.xp) or 0 + tonumber(mission.xpBonus) or 0
 end
@@ -409,7 +415,7 @@ local function isValid(self)
 	for i=1,#self.list do
 		local id=self.list[i]
 		if id < 10000 then
-			print(GetCurrencyInfo(id))
+			print(self:GetCurrencyInfo(id))
 		else
 			print(GetItemInfo(id))
 		end
@@ -430,11 +436,11 @@ local function newMissionType(key,name,icon,maxable,mat,func,...)
 end
 classes[LE_FOLLOWER_TYPE_GARRISON_6_0]={
 	newMissionType('xp',L['Follower experience'],'XPBonus_icon',false,false,nil,0),
-	newMissionType('resources',GetCurrencyInfo(GARRISON_CURRENCY),'inv_garrison_resource',true,true,nil,-GARRISON_CURRENCY),
-	newMissionType('oil',GetCurrencyInfo(GARRISON_SHIP_OIL_CURRENCY),'garrison_oil',true,true,isOilMission,128316),
+	newMissionType('resources',C_CurrencyInfo.GetCurrencyInfo(GARRISON_CURRENCY)['name'],'inv_garrison_resource',true,true,nil,-GARRISON_CURRENCY),
+	newMissionType('oil',C_CurrencyInfo.GetCurrencyInfo(GARRISON_SHIP_OIL_CURRENCY)['name'],'garrison_oil',true,true,isOilMission,128316),
 	newMissionType('rush',L['Rush orders'],'INV_Scroll_12',false,false,nil,122595,122594,122596,122592,122590,122593,122591,122576),
-	newMissionType('apexis',GetCurrencyInfo(823),'inv_apexis_draenor',false,false,nil,-823),
-	newMissionType('seal',GetCurrencyInfo(994),'ability_animusorbs',false,false,nil,-994),
+	newMissionType('apexis',C_CurrencyInfo.GetCurrencyInfo(823)['name'],'inv_apexis_draenor',false,false,nil,-823),
+	newMissionType('seal',C_CurrencyInfo.GetCurrencyInfo(994)['name'],'ability_animusorbs',false,false,nil,-994),
 	newMissionType('gold',BONUS_ROLL_REWARD_MONEY,'inv_misc_coin_01',false,false,nil,0),
 	newMissionType('followerUpgrade',L['Follower equipment set or upgrade'],'Garrison_ArmorUpgrade',false,false,nil,0),
 	newMissionType('primalspirit',L['Reagents'],'6BF_Explosive_shard',false,false,nil,118472,120945,113261,113262,113263,113264),
@@ -449,8 +455,8 @@ classes[LE_FOLLOWER_TYPE_GARRISON_6_0]={
 classes[LE_FOLLOWER_TYPE_SHIPYARD_6_2]={
 	newMissionType('xp',L['Follower experience'],'XPBonus_icon',false,false,nil,0),
 	newMissionType('rush',L['Rush orders'],'INV_Scroll_12',false,false,nil,122595,122594,122596,122592,122590,122593,122591,122576),
-	newMissionType('apexis',GetCurrencyInfo(823),'inv_apexis_draenor',false,false,nil,-823),
-	newMissionType('seal',GetCurrencyInfo(994),'ability_animusorbs',false,false,nil,-994),
+	newMissionType('apexis',C_CurrencyInfo.GetCurrencyInfo(823)['name'],'inv_apexis_draenor',false,false,nil,-823),
+	newMissionType('seal',C_CurrencyInfo.GetCurrencyInfo(994)['name'],'ability_animusorbs',false,false,nil,-994),
 	newMissionType('gold',BONUS_ROLL_REWARD_MONEY,'inv_misc_coin_01',false,false,nil,0),
 	newMissionType('followerUpgrade',L['Follower equipment set or upgrade'],'Garrison_ArmorUpgrade',false,false,nil,0),
 	newMissionType('primalspirit',L['Reagents'],'6BF_Explosive_shard',false,false,nil,118472,120945,113261,113262,113263,113264),
diff --git a/MissionCompletion.lua b/MissionCompletion.lua
index 25f80fc..1f986ca 100644
--- a/MissionCompletion.lua
+++ b/MissionCompletion.lua
@@ -10,8 +10,14 @@ local GSFMissions=GarrisonMissionFrameMissions
 local GARRISON_CURRENCY=GARRISON_CURRENCY
 local GARRISON_SHIP_OIL_CURRENCY=_G.GARRISON_SHIP_OIL_CURRENCY
 local SEAL_CURRENCY=994
-local LE_FOLLOWER_TYPE_GARRISON_6_0=_G.LE_FOLLOWER_TYPE_GARRISON_6_0 -- 1
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=_G.LE_FOLLOWER_TYPE_SHIPYARD_6_2 -- 2
+local LE_FOLLOWER_TYPE_GARRISON_6_0=Enum.GarrisonFollowerType.FollowerType_6_0
+local LE_FOLLOWER_TYPE_SHIPYARD_6_2=Enum.GarrisonFollowerType.FollowerType_6_2
+local LE_FOLLOWER_TYPE_GARRISON_7_0=Enum.GarrisonFollowerType.FollowerType_7_0
+local LE_FOLLOWER_TYPE_GARRISON_8_0=Enum.GarrisonFollowerType.FollowerType_8_0
+local LE_GARRISON_TYPE_6_0=Enum.GarrisonType.Type_6_0
+local LE_GARRISON_TYPE_6_2=Enum.GarrisonType.Type_6_2
+local LE_GARRISON_TYPE_7_0=Enum.GarrisonType.Type_7_0
+local LE_GARRISON_TYPE_8_0=Enum.GarrisonType.Type_8_0
 local pairs=pairs
 local format=format
 local strsplit=strsplit
@@ -158,7 +164,7 @@ function module:MissionComplete(this,button,skiprescheck)
 		end
 		local stop
 		for id,qt in pairs(wasted) do
-			local name,current,_,_,_,cap=GetCurrencyInfo(id)
+			local name,current,_,_,_,cap=addon:GetCurrencyInfo(id)
 			--@debug@
 			print(name,current,qt,cap)
 			--@end-debug@
@@ -267,7 +273,7 @@ function module:MissionAutoComplete(event,ID,arg1,arg2,arg3,arg4,...)
 				step=0
 				currentMission.state=0
 				currentMission.goldMultiplier=currentMission.goldMultiplier or 1
-				currentMission.xp=select(2,G.GetMissionInfo(currentMission.missionID))
+				currentMission.xp=G.GetMissionDeploymentInfo(currentMission.missionID)['xp']
 				report:AddMissionButton(currentMission,addon:GetParty(currentMission.missionID),currentMission.successChance,"report")
 			end
 			if (step==0) then
@@ -345,7 +351,7 @@ function module:MissionsPrintResults(success)
 			report:AddIconText(v.icon,GetMoneyString(v.qt))
 		else
 			-- Other currency reward
-			report:AddIconText(v.icon,GetCurrencyLink(k,v.qt))
+			report:AddIconText(v.icon,C_CurrencyInfo.GetCurrencyLink(k,v.qt))
 		end
 	end
 	local items=new()
diff --git a/OrderHall.lua b/OrderHall.lua
index 57e8b4e..97402c2 100644
--- a/OrderHall.lua
+++ b/OrderHall.lua
@@ -10,11 +10,10 @@ local pairs=pairs
 local format=format
 local strsplit=strsplit
 local select=select
-local GetCurrencyInfo=GetCurrencyInfo
 local generated
 local GARRISON_CURRENCY=GARRISON_CURRENCY
 local GARRISON_SHIP_OIL_CURRENCY=GARRISON_SHIP_OIL_CURRENCY
-local GARRISON_FOLLOWER_MAX_LEVEL=GARRISON_FOLLOWER_MAX_LEVEL
+local GARRISON_FOLLOWER_MAX_LEVEL=45
 local LE_FOLLOWER_TYPE_GARRISON_6_0=LE_FOLLOWER_TYPE_GARRISON_6_0
 local LE_FOLLOWER_TYPE_SHIPYARD_6_2=LE_FOLLOWER_TYPE_SHIPYARD_6_2
 local LE_FOLLOWER_TYPE_GARRISON_7_0=LE_FOLLOWER_TYPE_GARRISON_7_0
@@ -31,7 +30,7 @@ local UpgradeButtons={}
 local pool={}
 function module:OnInitialize(...)
 	if not ns.GHF then return end -- Waiting to be late initialized by init routine
-	OHFFollowerTab=OrderHallMissionFrame.FollowerTab -- Contains model view
+	OHFFollowerTab=OrderHallMissionFrame.FollowerTab -- Contains model view
 	if GetAddOnEnableState(UnitName("player"),"OrderHallCommander") > 0 then
 		ns.ignoreHall=true
 		return
@@ -137,8 +136,8 @@ function module:AcquireButton()
 		b:SetSize(40,40)
 		b.Icon:SetSize(40,40)
 		b:EnableMouse(true)
-		b:RegisterForClicks("LeftButtonDown")
-	end
+		b:RegisterForClicks("LeftButtonDown")
+	end
 	tinsert(UpgradeButtons,b)
 	return b
 end
@@ -170,17 +169,17 @@ function module:RefreshUpgrades(model,followerID,displayID,showWeapon)
 	if follower.iLevel <850 then
 		for _,id in pairs(addon:GetData("Upgrades")) do
 			previous=self:RenderUpgradeButton(id,previous)
-		end
+		end
 	end
 	if follower.isMaxLevel and  follower.quality ~=LE_ITEM_QUALITY_EPIC then
 		for _,id in pairs(addon:GetData("Xp")) do
 			previous=self:RenderUpgradeButton(id,previous)
-		end
+		end
 	end
 	if follower.quality >=LE_ITEM_QUALITY_RARE then
 		for _,id in pairs(addon:GetData("Equipment")) do
 			previous=self:RenderUpgradeButton(id,previous)
-		end
+		end
 	end
 end
 function module:RenderUpgradeButton(id,previous)
@@ -195,14 +194,14 @@ function module:RenderUpgradeButton(id,previous)
 		end
 		previous=b
 		b.itemID=id
-		b:SetAttribute("item",select(2,GetItemInfo(id)))
+		b:SetAttribute("item",select(2,GetItemInfo(id)))
 		GarrisonMissionFrame_SetItemRewardDetails(b)
 		b.Quantity:SetFormattedText("%d",qt)
 		b.Quantity:SetTextColor(C.Yellow())
 		b.Quantity:Show()
 		b:Show()
 		return b
-end
+end
 function module:Setup(this,...)
 --@debug@
 print("Doing one time initialization for",this:GetName(),...)
@@ -338,12 +337,12 @@ function addon:SetBackdrop(frame,r,g,b)
 	g=g or 0
 	b=b or 0
    frame:SetBackdrop({
-         bgFile = "Interface/Tooltips/UI-Tooltip-Background",
-         edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
-         tile = true, tileSize = 16, edgeSize = 16,
+         bgFile = "Interface/Tooltips/UI-Tooltip-Background",
+         edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
+         tile = true, tileSize = 16, edgeSize = 16,
          insets = { left = 4, right = 4, top = 4, bottom =   4}
       }
-   )
+   )
    frame:SetBackdropColor(r,g,b,1)
 end
 do
diff --git a/PartyCache.lua b/PartyCache.lua
index 3812a16..8940d3a 100644
--- a/PartyCache.lua
+++ b/PartyCache.lua
@@ -60,7 +60,7 @@ local ID,maxFollowers,members,ignored,threats=0,1,{},{},{}
 function party:Open(missionID,followers)
 	maxFollowers=followers
 	ID=missionID
-	local enemies=select(8,G.GetMissionInfo(ID))
+	local enemies=G.GetMissionDeploymentInfo(ID)['enemies']
 	if (type(enemies)=="table") then
 		for enemy,data in pairs(enemies) do
 			for menace,more in pairs(data.mechanics) do
diff --git a/ShipYard.lua b/ShipYard.lua
index 161e146..c0d3607 100644
--- a/ShipYard.lua
+++ b/ShipYard.lua
@@ -14,13 +14,18 @@ local kpairs=addon:GetKpairs()
 local format=format
 local strsplit=strsplit
 local select=select
-local GetCurrencyInfo=GetCurrencyInfo
 local generated
 local GARRISON_CURRENCY=GARRISON_CURRENCY
 local GARRISON_SHIP_OIL_CURRENCY=GARRISON_SHIP_OIL_CURRENCY
-local GARRISON_FOLLOWER_MAX_LEVEL=GARRISON_FOLLOWER_MAX_LEVEL
-local LE_FOLLOWER_TYPE_GARRISON_6_0=LE_FOLLOWER_TYPE_GARRISON_6_0
-local LE_FOLLOWER_TYPE_SHIPYARD_6_2=LE_FOLLOWER_TYPE_SHIPYARD_6_2
+local GARRISON_FOLLOWER_MAX_LEVEL=40
+local LE_FOLLOWER_TYPE_GARRISON_6_0=Enum.GarrisonFollowerType.FollowerType_6_0
+local LE_FOLLOWER_TYPE_SHIPYARD_6_2=Enum.GarrisonFollowerType.FollowerType_6_2
+local LE_FOLLOWER_TYPE_GARRISON_7_0=Enum.GarrisonFollowerType.FollowerType_7_0
+local LE_FOLLOWER_TYPE_GARRISON_8_0=Enum.GarrisonFollowerType.FollowerType_8_0
+local LE_GARRISON_TYPE_6_0=Enum.GarrisonType.Type_6_0
+local LE_GARRISON_TYPE_6_2=Enum.GarrisonType.Type_6_2
+local LE_GARRISON_TYPE_7_0=Enum.GarrisonType.Type_7_0
+local LE_GARRISON_TYPE_8_0=Enum.GarrisonType.Type_8_0
 local GARRISON_FOLLOWER_MAX_UPGRADE_QUALITY=GARRISON_FOLLOWER_MAX_UPGRADE_QUALITY[LE_FOLLOWER_TYPE_SHIPYARD_6_2]
 local module=addon:NewSubClass('ShipYard') --#Module
 local GameTooltip=GameTooltip
@@ -171,7 +176,7 @@ function module:HookedGarrisonShipyardMap_SetupBonus(missionList,frame,mission)
 	if not addendum then
 		if mission.inProgress then return end
 		i=i+1
-		addendum=CreateFrame("Frame",nil,frame)
+		addendum=CreateFrame("Frame",nil,frame,"BackdropTemplate")
 		addendum:SetPoint("TOP",frame,"BOTTOM",0,10)
 --@debug@
 		addendum:EnableMouse(true)
@@ -209,7 +214,7 @@ function module:HookedGarrisonShipyardMap_SetupBonus(missionList,frame,mission)
 		return
 	end
 	if cost and currency then
-		local _,available=GetCurrencyInfo(currency)
+		local available=C_CurrencyInfo.GetCurrencyInfo(currency)['quantity']
 		if cost>available then
 			addendum:SetBackdropBorderColor(1,0,0)
 		else
@@ -309,7 +314,7 @@ print("Doing one time initialization for",this:GetName(),...)

 	GSF.FollowerStatusInfo=GSF.BorderFrame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
 	GSF.ResourceInfo=GSF.BorderFrame:CreateFontString(nil, "OVERLAY", "GameFontNormal")
-	GSF.ResourceFormat="|TInterface\\Icons\\garrison_oil:0|t %s " .. GetCurrencyInfo(GARRISON_SHIP_OIL_CURRENCY)
+	GSF.ResourceFormat="|TInterface\\Icons\\garrison_oil:0|t %s " .. C_CurrencyInfo.GetCurrencyInfo(GARRISON_SHIP_OIL_CURRENCY)['name']
 	GSF.ResourceInfo:SetPoint("TOPLEFT",5,0)
 	GSF.ResourceInfo:SetHeight(25)
 	GSF.FollowerStatusInfo:SetPoint("TOPRIGHT",-30,0)
@@ -386,7 +391,7 @@ function module:EventCHAT_MSG_CURRENCY(event)
 end
 function module:RefreshCurrency()
 	if GSF:IsVisible() then
-		local qt=select(2,GetCurrencyInfo(GARRISON_SHIP_OIL_CURRENCY))
+		local qt=C_CurrencyInfo.GetCurrencyInfo(GARRISON_SHIP_OIL_CURRENCY)['quantity']
 		GSF.ResourceInfo:SetFormattedText(GSF.ResourceFormat,qt)
 		if qt > 1000 then
 			GSF.ResourceInfo:SetTextColor(C.Green())
diff --git a/Widgets.lua b/Widgets.lua
index 48a1130..aa04b8d 100644
--- a/Widgets.lua
+++ b/Widgets.lua
@@ -298,7 +298,7 @@ local function GMCLayer()
 	end
 	---@function [parent=#GMCLayer]
 	local function Constructor()
-		local frame=CreateFrame("Frame")
+		local frame=CreateFrame("Frame",nil,nil,"BackdropTemplate")
 		local title=frame:CreateFontString(nil, "BACKGROUND", "GameFontNormalHugeBlack")
 		title:SetJustifyH("CENTER")
 		title:SetJustifyV("CENTER")