local MainlineLevelInfoCtrl = class("MainlineLevelInfoCtrl", BaseCtrl)
MainlineLevelInfoCtrl._mapNodeConfig = {
	txtLevelRecommend = {sComponentName = "TMP_Text"},
	txtNum = {sComponentName = "TMP_Text"},
	txtName = {sComponentName = "TMP_Text"},
	txtIntroduce = {sComponentName = "TMP_Text"},
	Task = {sComponentName = "Transform", nCount = 3},
	item = {
		sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl",
		nCount = 5
	},
	itemBtn = {
		sNodeName = "item",
		sComponentName = "Button",
		callback = "OnBtnClick_Reward",
		nCount = 5
	},
	btnCloseLevelInfo = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Close"
	},
	btnConfirmInfo = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Confirm"
	},
	txtCountEnergy = {sComponentName = "TMP_Text"},
	btnCancelInfo = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Close"
	},
	btnEnemy = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_MonsterInfo"
	},
	imgIconInfo = {sComponentName = "Image"},
	btnAllReward = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_AllReward"
	}
}
MainlineLevelInfoCtrl._mapEventConfig = {}
function MainlineLevelInfoCtrl:Awake()
	self.animator = self.gameObject:GetComponent("Animator")
end
function MainlineLevelInfoCtrl:FadeOut(callback)
	if type(callback) == "function" then
		callback()
	end
end
function MainlineLevelInfoCtrl:OnEnable()
end
function MainlineLevelInfoCtrl:OnDisable()
end
function MainlineLevelInfoCtrl:OnDestroy()
end
function MainlineLevelInfoCtrl:OnRelease()
end
function MainlineLevelInfoCtrl:OpenLevelInfo(nMainlineId, nStar, tbTarget)
	self.nMainlineId = nMainlineId
	local mapMainline = ConfigTable.GetData_Mainline(nMainlineId)
	if mapMainline == nil then
		printError("nil mainlineData" .. nMainlineId)
		return
	end
	for index = 1, 3 do
		local rtTask = self._mapNode.Task[index]
		local rtDone = rtTask:Find("imgDone").gameObject
		local rtUnDone = rtTask:Find("imgUnDone").gameObject
		rtDone:SetActive(tbTarget[index])
		rtUnDone:SetActive(not tbTarget[index])
	end
	self.tbReward = decodeJson(mapMainline.RewardPreview)
	for index = 1, 5 do
		if self.tbReward[index] ~= nil then
			local bRecive = false
			if self.tbReward[index][3] == 1 and 0 < nStar then
				bRecive = true
			end
			self.tbReward[index][4] = bRecive
		end
	end
	self.tbAfterReward = {}
	for key, value in pairs(self.tbReward) do
		table.insert(self.tbAfterReward, value)
	end
	for index = 1, 5 do
		self._mapNode.itemBtn[index].interactable = self.tbAfterReward[index] ~= nil
		if self.tbAfterReward[index] ~= nil then
			if self.tbReward[index][4] == nil then
			end
			local bReceive = self.tbReward[index][4]
			self._mapNode.item[index]:SetItem(self.tbAfterReward[index][1], nil, nil, nil, bReceive, self.tbAfterReward[index][3] == 1, self.tbAfterReward[index][3] == 2)
		else
			self._mapNode.item[index]:SetItem(nil)
		end
	end
	self.gameObject:SetActive(true)
	NovaAPI.SetTMPText(self._mapNode.txtLevelRecommend, mapMainline.Recommend)
	NovaAPI.SetTMPText(self._mapNode.txtNum, mapMainline.Num)
	NovaAPI.SetTMPText(self._mapNode.txtName, mapMainline.Name)
	NovaAPI.SetTMPText(self._mapNode.txtIntroduce, mapMainline.Desc)
	NovaAPI.SetTMPText(self._mapNode.txtCountEnergy, mapMainline.EnergyConsume)
	self.animator:Play("open")
end
function MainlineLevelInfoCtrl:OnBtnClick_Close()
	self.gameObject:SetActive(false)
	EventManager.Hit("SelectMainlineBattle", false)
end
function MainlineLevelInfoCtrl:OnBtnClick_Confirm()
	local mapMainline = ConfigTable.GetData_Mainline(self.nMainlineId)
	if nil ~= mapMainline then
		local nNeedEnergy = mapMainline.EnergyConsume
		local nCurEnergy = PlayerData.Base:GetCurEnergy().nEnergy
		if nNeedEnergy > nCurEnergy then
			EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("MainlineData_Energy"))
			return
		end
		self.gameObject:SetActive(false)
		EventManager.Hit("SelectMainlineBattle", true)
	end
end
function MainlineLevelInfoCtrl:OnBtnClick_MonsterInfo(btn)
	EventManager.Hit("OpenMainlineMonsterInfo", self.nMainlineId)
end
function MainlineLevelInfoCtrl:OnBtnClick_AllReward(btn)
	EventManager.Hit("OpenAllReward", self.tbReward)
end
function MainlineLevelInfoCtrl:OnBtnClick_Reward(btn)
	local nIdx = table.indexof(self._mapNode.itemBtn, btn)
	if self.tbAfterReward[nIdx] ~= nil then
		local nTid = self.tbAfterReward[nIdx][1]
		UTILS.ClickItemGridWithTips(nTid, btn.transform, false, true, false)
	end
end
return MainlineLevelInfoCtrl
