源战役客户端
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.
 
 
 
 
 

113 lines
3.4 KiB

ChildHeartRewardItem = ChildHeartRewardItem or BaseClass(BaseItem)
local ChildHeartRewardItem = ChildHeartRewardItem
function ChildHeartRewardItem:__init()
self.base_file = "child"
self.layout_file = "ChildHeartRewardItem"
self.model = ChildModel:getInstance()
self:Load()
end
function ChildHeartRewardItem:Load_callback()
self.nodes = {
"heartValue:tmp", "hasGetImg:obj", "canGetImg:obj", "awardCon",
}
self:GetChildren(self.nodes)
self:AddEvents()
self:UpdateBaseView( )
if self.need_refreshData then
self:UpdateView()
end
end
function ChildHeartRewardItem:AddEvents( )
local on_click = function ( click_obj )
if self.canGetImg_obj == click_obj then
if self.click_callback and self.data.reward_id then
self.click_callback(self.data.reward_id)
end
end
end
AddClickEvent(self.canGetImg_obj, on_click)
end
function ChildHeartRewardItem:UpdateBaseView( )
end
function ChildHeartRewardItem:UpdateView( )
if self.data then
local data = self.data
self.heartValue_tmp.text = data.need_exp
self.is_last_reward = self.model:GetMaxHeartValue( ) == data.need_exp
if self.is_last_reward then
self.image_item = {}
self.image_item.gameObject = UiFactory.createChild(self.awardCon, UIType.Image)
self.image_item.transform = self.image_item.gameObject.transform
self.image_item.img = self.image_item.gameObject:GetComponent("Image")
lua_resM:setImageSprite(self, self.image_item.img, "child_asset", "child_heart_baby_icon", true)
-- SetSizeDelta(self.image_item.transform, 78, 78)
SetAnchoredPosition(self.image_item.transform, 0, 0)
else
-- 设置奖励
local reward_data = data.reward_new[1]
self.main_reward_item = self.main_reward_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon)
self.main_reward_item:SetPosition(0, 0)
self.main_reward_item:SetItemSize(78, 78)
self.main_reward_item:SetVisible(true)
local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(reward_data[1], reward_data[2])
local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
if goodVo then
self.main_reward_item:SetData(goodVo.type_id, reward_data[3] , goodVo.color, 0, lock,true,nil)
end
end
-- 领取状态
local reward_status = self.model:GetHeartRewardStatus(data.reward_id)
local info = self.model:GetChildInfo()
local cur_heart_value = info.heart_link_exp or 0
local need_gray = false
if cur_heart_value >= data.need_exp then -- 可以领哦
if reward_status == 1 then -- 已经领了
self.canGetImg_obj:SetActive(false)
self.hasGetImg_obj:SetActive(true)
need_gray = true
else -- 没有领
self.canGetImg_obj:SetActive(true)
self.hasGetImg_obj:SetActive(false)
need_gray = false
end
else -- 还不可以领
self.canGetImg_obj:SetActive(false)
self.hasGetImg_obj:SetActive(false)
need_gray = false
end
if self.is_last_reward then
SetImageGray(self.image_item.img, need_gray)
else
self.main_reward_item:SetGray(need_gray)
end
end
end
function ChildHeartRewardItem:SetData( data, click_callback )
self.data = data
self.click_callback = click_callback
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function ChildHeartRewardItem:__delete( )
if self.main_reward_item then
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.main_reward_item)
self.main_reward_item = nil
end
end