源战役客户端
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

153 rindas
4.1 KiB

PetAwakeItem = PetAwakeItem or BaseClass(BaseItem)
local PetAwakeItem = PetAwakeItem
function PetAwakeItem:__init()
self.base_file = "pet"
self.layout_file = "PetAwakeItem"
self.model = PetModel:getInstance()
self:Load()
end
function PetAwakeItem:Load_callback()
self.nodes = {
"petIcon:img", "rareBg:img:obj",
"selectBg:obj",
"redDot:obj",
"con_star/star1:img", "con_star/star3:img", "con_star/star4:img", "con_star/star5:img", "con_star/star2:img",
"lv:tmp",
"di:obj",
"awakeFlag: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
if self.need_refreshClick then
self:OnClick(self.click_id)
end
end
function PetAwakeItem:AddEvents( )
local on_click = function ( click_obj )
if self.di_obj == click_obj then
self.model:Fire(PetConst.CLICK_AWAKE_PET_ITEM,self.item_id)--刷新主界面宠物信息显示
end
end
AddClickEvent(self.di_obj, on_click)
--事件绑定:点击自身item处理
local click_func = function(id)
self:OnClick(id)
end
self:BindEvent(self.model, PetConst.CLICK_AWAKE_PET_ITEM, click_func)
--宠物进化之后刷新item的状态
local pet_evolve = function(pet_id)
if not self.is_loaded then return end
if pet_id == self.data.pet_id then
self:UpdateView()
end
end
self:BindEvent(self.model, PetConst.PET_EVOLVE, pet_evolve)
--宠物喂养升级之后刷新等级
local pet_feed = function(vo)
if not self.is_loaded 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)
--红点更新
local function on_ans_update_red_dot(tab_id)
if not self.data or self.data.pet_id == 0 or not self.is_loaded then return end
if tab_id == PetConst.RED_DOT_TYPE.Awake then
self:RefreshPetItemRed()
end
end
self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, on_ans_update_red_dot)
end
--点击自己
function PetAwakeItem:OnClick(click_id,just_update)
self.click_id = click_id
if self.is_loaded then
if self.click_id == self.item_id then--判断是否点击中了自己
if not just_update then
self.click_callback(self.data.pet_id)
end
self.selectBg_obj:SetActive(true)
else
self.selectBg_obj:SetActive(false)
end
else
self.need_refreshClick = true
end
end
function PetAwakeItem:UpdateView( )
self.pet_cfg = self.model:GetPetCfg(self.data.pet_id, self.data.pet_star)
if not self.pet_cfg then
Message.show("没找到相关配置","fault")
return
end
lua_resM:setImageSprite(self,self.rareBg_img,"pet_asset","pet_rare_"..self.pet_cfg.rare_degree)--稀有度背景
lua_resM:setOutsideImageSprite(self, self.petIcon_img, GameResPath.GetPetImage("pet_"..self.data.pet_id.."_"..self.data.pet_stage),false)--宠物icon
self.lv_tmp.text = "LV."..self.data.pet_lv
local max_star = self.model:GetMaxStarInStage(self.data.pet_id,self.data.pet_star)
local show_star = self.model:GetNowShowPetStar(self.data.pet_star)
for i=1,show_star do
lua_resM:setImageSprite(self,self.star[i],"pet_asset","pet_star_"..self.data.pet_stage,true)
self.star[i].gameObject:SetActive(true)
end
for i=show_star+1,max_star do
self.star[i].gameObject:SetActive(false)
end
self.awakeFlag_obj:SetActive(self.data.is_awaken == 1)
self:RefreshPetItemRed()
end
function PetAwakeItem:SetData(item_id,data,click_callback)
self.item_id = item_id
self.data = data
self.click_callback = click_callback
-- self.pet_awake_cfg = self.model:GetPetAwakeCfg(self.data.pet_id)
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
self:OnClick(self.click_id,true)
else
self.need_refreshData = true
end
end
function PetAwakeItem:RefreshPetItemRed( )
local red = self.model:GetPetAwakeRedDot(self.data.pet_id)
self.redDot_obj:SetActive(red)
self.data = self.model:GetPetListById(self.data.pet_id)
self.awakeFlag_obj:SetActive(self.data.is_awaken == 1)
end
function PetAwakeItem:__delete( )
end