|
|
- 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
|