源战役客户端
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

159 lignes
5.0 KiB

PetSupportNormalItem = PetSupportNormalItem or BaseClass(BaseItem)
local PetSupportNormalItem = PetSupportNormalItem
function PetSupportNormalItem:__init()
self.base_file = "pet"
self.layout_file = "PetSupportNormalItem"
self.model = PetModel:getInstance()
self:Load()
end
function PetSupportNormalItem:Load_callback()
self.nodes = {
"bg:obj:img",
"rareBg:img:obj",--稀有度背景标识
"petIcon:img",--宠物图标
"con_star:obj",--星星容器
"con_star/star2:img","con_star/star5:img","con_star/star1:img","con_star/star3:img","con_star/star4:img",
"lockTipCon/tips:tmp",
"lv:tmp",
"noneBg:obj", "addImg:obj",
"lockTipCon:obj",
"lvBg:obj",
"starBg:obj",
}
self:GetChildren(self.nodes)
self.star = {
[1] = self.star1_img,
[2] = self.star2_img,
[3] = self.star3_img,
[4] = self.star4_img,
[5] = self.star5_img
}
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function PetSupportNormalItem:AddEvents( )
local on_click = function ( click_obj )
if self.bg_obj == click_obj then--自身的点击按钮,打开上阵选择界面
if self.is_slot_unlocked then
self.model:Fire(PetConst.OPEN_PET_SUPPORT_CHOOSE_VIEW,self.support_slot)
else--还没解锁这个槽位
-- self.model:Fire(PetConst.OPEN_SUPPORT_UNLOCK_VIEW,self.support_slot)--弹出解锁提示框
end
end
end
AddClickEvent(self.bg_obj, on_click,LuaSoundManager.SOUND_UI.NONE)
--上阵操作后刷新
local on_update_item = function(support_slot,old_support_slot)
if self.support_slot == support_slot then
local new_data = self.model:GetPetSupportDataBySlot(support_slot)
self.data = new_data or 0
local need_play_effect = false
if old_support_slot and old_support_slot == 0 then
need_play_effect = true
end
self:UpdateView(need_play_effect)
end
end
self:BindEvent(self.model, PetConst.UPDATE_SUPPORT_ITEM, on_update_item)
--宠物喂养升级之后刷新等级
local pet_feed = function(vo)
if not self.is_loaded then return end
if not self.data or self.data == 0 then return end
if vo.pet_id == self.data.pet_id then
self.lv_tmp.text = vo.pet_lv
end
end
self:BindEvent(self.model, PetConst.PET_FEED, pet_feed)
end
function PetSupportNormalItem:UpdateView(need_play_effect)
if not self.data or self.data == 0 then--无上阵
self.con_star_obj:SetActive(false)
self.starBg_obj:SetActive(false)
lua_resM:setImageSprite(self, self.petIcon_img, "uiComponent_asset","com_empty")
--判断是否已解锁这个位置
local support_slot_cfg = self.model:GetPetSupportSlotCfg(self.support_slot)
local sum_stars = self.model:CountPetStars()
if sum_stars >= support_slot_cfg.open_sum_star then--已解锁
self.is_slot_unlocked = true--标记为已解锁
self.lockTipCon_obj:SetActive(false)
self.noneBg_obj:SetActive(false)
self.addImg_obj:SetActive(true)
else
self.is_slot_unlocked = false
self.lockTipCon_obj:SetActive(true)
self.tips_tmp.text = string.format("<#ff203a>%s</color>/%s", sum_stars, support_slot_cfg.open_sum_star)
self.noneBg_obj:SetActive(true)
self.addImg_obj:SetActive(false)
end
self.lv_tmp.text = ""
self.lvBg_obj:SetActive(false)
self.rareBg_obj:SetActive(false)
lua_resM:setImageSprite(self,self.bg_img,"pet_asset","pet_item_bg_big")
else
self.is_slot_unlocked = true--标记为已解锁
--获取宠物相关数据
local pet_data = self.model:GetPetListById(self.data.pet_id)
local pet_cfg = self.model:GetPetCfg(pet_data.pet_id, pet_data.pet_star)
lua_resM:setOutsideImageSprite(self, self.petIcon_img, GameResPath.GetPetImage("pet_"..self.data.pet_id.."_"..pet_data.pet_stage),false)--宠物icon
--背景:稀有度、上阵、解锁
lua_resM:setImageSprite(self,self.rareBg_img,"pet_asset","pet_rare_"..pet_cfg.rare_degree)
lua_resM:setImageSprite(self,self.bg_img,"pet_asset","pet_rare_bg_"..pet_cfg.rare_degree)
--星星
self.con_star_obj:SetActive(true)
self.starBg_obj:SetActive(true)
local max_star = self.model:GetMaxStarInStage(pet_data.pet_id,pet_data.pet_stage)
local show_star = self.model:GetNowShowPetStar(pet_data.pet_star)
for i=1,show_star do
lua_resM:setImageSprite(self, self.star[i], "pet_asset", PetConst.stage_message[pet_data.pet_stage].star_res,true)
self.star[i].gameObject:SetActive(true)
end
for i=show_star+1,max_star do
self.star[i].gameObject:SetActive(false)
end
--提示文本
self.tips_tmp.text = ""
self.lv_tmp.text = "LV."..pet_data.pet_lv
self.lvBg_obj:SetActive(true)
self.noneBg_obj:SetActive(false)
self.addImg_obj:SetActive(false)
self.rareBg_obj:SetActive(true)
if need_play_effect then
self:AddUIEffect("ui_hunliqiudianliang", self.bg, "UI", nil, 4, false, nil, false)
end
end
end
function PetSupportNormalItem:SetData(support_slot,data)
self.support_slot = support_slot
self.data = data
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function PetSupportNormalItem:__delete( )
self:ClearUIEffect(self.bg)
end