local CharAttrDetailPropertyCtrl = class("CharAttrDetailPropertyCtrl", BaseCtrl)
CharAttrDetailPropertyCtrl._mapNodeConfig = {
	imgIcon = {sComponentName = "Image"},
	txtProperty = {sComponentName = "TMP_Text"},
	txtValue1 = {sComponentName = "TMP_Text"},
	txtValue2 = {sComponentName = "TMP_Text"},
	btnTip = {
		sComponentName = "UIButton",
		callback = "OnBtnClick_Tip"
	}
}
CharAttrDetailPropertyCtrl._mapEventConfig = {}
function CharAttrDetailPropertyCtrl:SetProperty(mapCharAttr, mapAttrData, bMain, bSimple)
	self._mapNode.imgIcon.gameObject:SetActive(bMain)
	local mapAttributeDesc = self:_GetAttributeDesc(mapCharAttr.sKey)
	if not mapAttributeDesc then
		return
	end
	local sValue, sValueAdd = "", ""
	local nBaseValue = mapAttrData.baseValue
	local nAddValue = mapAttrData.totalValue - mapAttrData.baseValue
	sValue = self:_TransValueFormat(nBaseValue, mapCharAttr.bPercent, mapAttributeDesc.Format)
	sValueAdd = self:_TransValueFormat(nAddValue, mapCharAttr.bPercent, mapAttributeDesc.Format, true)
	if nAddValue <= 0.01 then
		sValueAdd = ""
	end
	if bSimple then
		self:_RefreshContent(mapAttributeDesc.Icon, ConfigTable.GetUIText(mapCharAttr.sLanguageId_Simple), sValue, sValueAdd, mapAttributeDesc.WordID)
	else
		self:_RefreshContent(mapAttributeDesc.Icon, mapAttributeDesc.Desc, sValue, sValueAdd, mapAttributeDesc.WordID)
	end
end
function CharAttrDetailPropertyCtrl:_GetAttributeDesc(sKey)
	local mapAttributeDesc = CacheTable.GetData("_AttributeDesc", sKey)
	if mapAttributeDesc == nil then
		printError("EffectType未配置：" .. sKey)
		self:_RefreshContent(nil, "", "")
		return false
	else
		return mapAttributeDesc
	end
end
function CharAttrDetailPropertyCtrl:_RefreshContent(sIcon, sName, sValue1, sValue2, nWord)
	if sIcon and sIcon ~= "" then
		self:SetPngSprite(self._mapNode.imgIcon, sIcon)
	end
	NovaAPI.SetTMPText(self._mapNode.txtProperty, sName)
	if sValue2 and sValue2 ~= "" then
		self._mapNode.txtValue2.gameObject:SetActive(true)
		NovaAPI.SetTMPText(self._mapNode.txtValue1, sValue1)
		NovaAPI.SetTMPText(self._mapNode.txtValue2, sValue2)
	else
		NovaAPI.SetTMPText(self._mapNode.txtValue1, sValue1)
		self._mapNode.txtValue2.gameObject:SetActive(false)
	end
	if nWord and nWord ~= 0 then
		self._mapNode.btnTip.gameObject:SetActive(true)
		self.sWord = tostring(nWord)
	else
		self._mapNode.btnTip.gameObject:SetActive(false)
	end
end
function CharAttrDetailPropertyCtrl:_TransValueFormat(nValue, bPercent, nFormat, bAdd)
	if bPercent then
		nValue = nValue / 100
	end
	local sValue = FormatEffectValue(nValue, bPercent, nFormat)
	if bAdd then
		sValue = "+" .. sValue
	end
	return sValue
end
function CharAttrDetailPropertyCtrl:OnBtnClick_Tip(btn)
	UTILS.ClickWordLink(btn, self.sWord)
end
return CharAttrDetailPropertyCtrl
