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
|