local RegionBossFormationCharCtrl = class("RegionBossFormationCharCtrl", BaseCtrl)
local GameResourceLoader = require("Game.Common.Resource.GameResourceLoader")
local ResType = GameResourceLoader.ResType
local typeof = typeof
RegionBossFormationCharCtrl._mapNodeConfig = {
	trParent = {sComponentName = "Transform"},
	rtInfo = {
		sCtrlName = "Game.UI.TemplateEx.TemplateCharInfoCtrl"
	},
	btnSelect = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Select"
	},
	btnAdd = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Select"
	},
	Animator = {sNodeName = "rtInfo", sComponentName = "Animator"},
	btnDetail = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Detail"
	},
	txtBtnDetail = {
		sComponentName = "TMP_Text",
		sLanguageId = "Formation_Btn_Info"
	},
	txtBtnEmpty = {
		sComponentName = "TMP_Text",
		sLanguageId = "MainlineFormationDisc_HintEmpty"
	},
	txtLeader = {
		sComponentName = "TMP_Text",
		sLanguageId = "Build_Leader"
	},
	txtSub = {sComponentName = "TMP_Text", sLanguageId = "Build_Sub"}
}
RegionBossFormationCharCtrl._mapEventConfig = {}
function RegionBossFormationCharCtrl:OnRender(tbTeamMemberId, index)
	if tbTeamMemberId[index] == nil then
		self._mapNode.btnAdd.gameObject:SetActive(false)
		self._mapNode.rtInfo.gameObject:SetActive(false)
		return
	end
	self.mIndex = index
	self.nCharId = tbTeamMemberId[index].nTid
	self._mapNode.btnAdd.gameObject:SetActive(self.nCharId <= 0)
	self._mapNode.rtInfo.gameObject:SetActive(self.nCharId > 0)
	if self.nCharId > 0 then
		local tbTeamId = {}
		for _, v in pairs(tbTeamMemberId) do
			table.insert(tbTeamId, v.nTid)
		end
		self.tbTeamId = tbTeamId
		local mapCharData = PlayerData.Char:GetCharDataByTid(self.nCharId)
		local mapCharCfgData = ConfigTable.GetData_Character(self.nCharId)
		local nTrialId = tbTeamMemberId[index].nTrialId
		local mapTrailCfg
		if nTrialId then
			mapTrailCfg = ConfigTable.GetData("TrialCharacter", nTrialId)
		end
		self._mapNode.rtInfo:Refresh(mapCharData, mapCharCfgData, mapTrailCfg)
		self._mapNode.Animator:Play("rtInfo_up")
	end
end
function RegionBossFormationCharCtrl:ShowRawImage(nCharId)
	local mapSkin = ConfigTable.GetData_CharacterSkin(PlayerData.Char:GetCharSkinId(nCharId))
	if not mapSkin then
		self.mData = nil
		return
	else
		self.mData = mapSkin
	end
	local callback = function(obj)
		if not self.mActive then
			return
		end
		self:showModel(obj)
	end
	local sFullPath = string.format("%s.prefab", GameResourceLoader.RootPath, mapSkin.Model)
	self:LoadAssetAsync(sFullPath, typeof(GameObject), callback)
end
function RegionBossFormationCharCtrl:OnEnable()
	self.mActive = true
end
function RegionBossFormationCharCtrl:OnDisable()
	self.mActive = false
end
function RegionBossFormationCharCtrl:OnBtnClick_Select(btn)
	local sTip = ConfigTable.GetUIText("RegionBoss_Member_CannotBeChanged")
	EventManager.Hit(EventId.OpenMessageBox, sTip)
end
function RegionBossFormationCharCtrl:OnBtnClick_Detail(btn)
	if self.tbTeamId ~= nil then
		EventManager.Hit(EventId.OpenPanel, PanelId.CharBgPanel, PanelId.CharInfo, self.nCharId, self.tbTeamId, false)
	end
end
return RegionBossFormationCharCtrl
