源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

118 lines
3.3 KiB

CloudShoppingItem = CloudShoppingItem or BaseClass(BaseItem)
function CloudShoppingItem:__init()
self.base_file = "cloudShopping"
self.layout_file = "CloudShoppingItem"
self.is_delay_callback = true
self:Load()
end
function CloudShoppingItem:Load_callback()
self.lightBg,
self.mult_go
= GetChildGameObjects(self.transform, {
"lightBg",
"image"
})
self.icon
= GetChildTransforms(self.transform, {
"icon"
})
self.txtMultiple,
self.txtName
= GetChildTexts(self.transform, {
"image/txtMultiple",
"txtName"
})
self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.icon)
self.award_item:SetItemSize(64, 64)
if self.need_refreshData then
self:SetData(self.reward_id)
end
if self.need_show_lightBg then
self:ShowLightBg(self.show_light_bg, self.mul_num)
end
self:InitEvent()
end
function CloudShoppingItem:InitEvent()
local function onBtnClickHandler(target)
if target == self.gameObject then
end
end
AddClickEvent(self.gameObject, onBtnClickHandler)
end
function CloudShoppingItem:SetData(reward_id)
self.reward_id = tonumber(reward_id)
if not self.is_loaded then
self.need_refreshData = true
return
end
self.need_refreshData = false
local cfg = Config.Cloudbuyreward[self.reward_id]
if cfg then
local rewards = ErlangParser:GetInstance():Parse(cfg.reward_list)
if TableSize(rewards) > 0 then
local type_id = 0
local num = 1
if cfg.reward_type == 2 then --按职业区分
local career = RoleManager.Instance:GetMainRoleVo().career
for _,v in pairs(rewards) do
if career == tonumber(v[1]) then
type_id = tonumber(v[2][1][2])
num = tonumber(v[2][1][3])
break
end
end
else
type_id = tonumber(rewards[1][2])
num = tonumber(rewards[1][3])
end
-- local _type = tonumber(rewards[1][1])
-- local goods_Id, _ = GoodsModel:getInstance():GetMappingTypeId(_type, type_id)
self.award_item:SetData(type_id, num)
local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
if goodVo then
self.txtName.text = "<color="..WordManager.GetGoodsColor(goodVo.color) .. ">"..Trim(goodVo.goods_name) .. "</color>"
end
end
end
end
function CloudShoppingItem:ShowLightBg(bool, num, reset)
self.stop_change = not reset
self.show_light_bg = bool
self.mul_num = num
if not self.is_loaded then
self.need_show_lightBg = true
return
end
self.need_show_lightBg = false
self.lightBg:SetActive(bool)
self.txtMultiple.text = num > 1 and ("X" .. num) or ""
self.mult_go:SetActive(num > 1)
end
function CloudShoppingItem:__delete()
if self.award_item then
self.award_item:ReleaseObj()
self.award_item = nil
end
end
function CloudShoppingItem:ResetItem()
if self.is_loaded then
self:ShowLightBg(false, 0, true)
end
end