local BountyRewardCell = class("BountyRewardCell", BaseCell)

function BountyRewardCell:init()
	local uiMap = self:getUIMap()
	self.bg = uiMap["bounty_reward_cell.bg"]
	self.icon = uiMap["bounty_reward_cell.icon"]
	self.numTx = uiMap["bounty_reward_cell.num"]
	self.check = uiMap["bounty_reward_cell.check"]
	self.fragment = uiMap["bounty_reward_cell.fragment"]
	self.light = uiMap["bounty_reward_cell.light"]
	self.lock = uiMap["bounty_reward_cell.lock"]
	self.matchImg = uiMap["bounty_reward_cell.match_img"]
	self.sImg = uiMap["bounty_reward_cell.s"]
	self.skin = uiMap["bounty_reward_cell.skin"]
	self.skinQlt = uiMap["bounty_reward_cell.skin.img_qlt"]

	self:hideLight()
	self.baseObject:addClickListener(function()
		if self.clickCallback then
			self.clickCallback()
		elseif self.rewardId ~= nil then
			ModuleManager.TipsManager:showRewardTips(self.rewardId, self.rewardType, self.baseObject)
		end
	end)
end

function BountyRewardCell:refresh(reward, isPro, isLock, showCheck)
	self:showCheck(showCheck)
	if isPro then
		self.bg:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_board_2")
	else
		self.bg:setSprite(GConst.ATLAS_PATH.ACT_COMMON, "act_common_board_1")
	end
	if isLock then
		self.lock:setVisible(true)
	else
		self.lock:setVisible(false)
	end
	if reward.type == GConst.REWARD_TYPE.ITEM then
		self:_refreshItem(reward)
		self.rewardId = reward.id
		self.rewardType = reward.type
	else
		self.rewardId = nil
	end
end

function BountyRewardCell:_refreshItem(item)
	local info = ConfigManager:getConfig("item")[item.id]
	if info == nil then
		return
	end
	self.numTx:setText(item.count or item.num)
	if info.type == GConst.ItemConst.ITEM_TYPE.HERO_FRAGMENT then
		self.skin:setVisible(false)
		local heroInfo = ConfigManager:getConfig("hero")[info.parameter]
		if heroInfo then
			self.icon:setSprite(GConst.ATLAS_PATH.ICON_HERO, heroInfo.icon)
			self.matchImg:setSprite(GConst.ATLAS_PATH.ICON_HERO, GConst.HeroConst.MATCH_ICON_NAME[heroInfo.position])
			self.matchImg:setVisible(true)
			self.sImg:setVisible(heroInfo.qlt >= 4)
		else
			self.icon:setSprite(GConst.ATLAS_PATH.COMMON, "common_alpha")
			self.matchImg:setVisible(false)
			self.sImg:setVisible(false)
		end
		self.fragment:setVisible(true)
	elseif info.type == GConst.ItemConst.ITEM_TYPE.SKIN then
		-- 皮肤道具
		self.skin:setVisible(true)
		self.matchImg:setVisible(false)
		self.fragment:setVisible(false)
		local skinInfo = ConfigManager:getConfig("skin")[info.parameter]
		if skinInfo then
			self.skin:setVisible(true)
			self.sImg:setVisible(skinInfo.qlt >= 4)
			self.icon:setSprite(GConst.ATLAS_PATH.ICON_HERO, skinInfo.icon)
			self.skin:setSprite(GConst.ATLAS_PATH.ICON_HERO, "frame_dec_" .. skinInfo.qlt)
			self.skinQlt:setSprite(GConst.ATLAS_PATH.HERO, "hero_skin_" .. skinInfo.qlt)
		else
			self.icon:setSprite(GConst.ATLAS_PATH.COMMON, "common_alpha")
			self.sImg:setVisible(false)
		end
	else
		self.icon:setSprite(GConst.ATLAS_PATH.ICON_ITEM, info.icon)
		self.fragment:setVisible(false)
		self.matchImg:setVisible(false)
		self.sImg:setVisible(false)
		self.skin:setVisible(false)
	end
end

function BountyRewardCell:showCheck(show)
	self.check:setVisible(show == true)
end

function BountyRewardCell:setVisible(visible)
	self.baseObject:setActive(visible)
end

function BountyRewardCell:setAnchoredPositionX(x)
	self.baseObject:setAnchoredPositionX(x)
end

function BountyRewardCell:setTouchEnable(enable)
	self.baseObject:setTouchEnable(enable)
end

function BountyRewardCell:addClickListener(callback)
	self.clickCallback = callback
end

function BountyRewardCell:showLight()
	self.light:setVisible(true)
end

function BountyRewardCell:hideLight()
	self.light:setVisible(false)
end

return BountyRewardCell