|
|
- PetSupportASItem = PetSupportASItem or BaseClass(BaseItem)
- local PetSupportASItem = PetSupportASItem
-
- function PetSupportASItem:__init()
- self.base_file = "pet"
- self.layout_file = "PetSupportASItem"
- self.model = PetModel:getInstance()
-
- self:Load()
- end
-
- function PetSupportASItem:Load_callback()
- self.nodes = {
- "raceIcon:img:obj",
- "modelCon:obj",
- "petStarBg:obj",
- "petStarBg/star4:img","petStarBg/star1:img","petStarBg/star5:img","petStarBg/star2:img","petStarBg/star3:img",
- "name:tmp",
- "emptyClick:obj",
- "nameBg:obj",
- "standBg:img",
- "typeFlag:obj:img",
- "addImg:obj",
- }
- self:GetChildren(self.nodes)
-
- lua_resM:setImageSprite(self, self.standBg_img, "petExtra_asset","pet_support_model_di")
- SetLocalScale(self.addImg,0.8,0.8,0.8)
- SetAnchoredPositionY(self.addImg,-50)
-
- 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 PetSupportASItem:AddEvents( )
- local on_click = function ( click_obj )
- if self.emptyClick_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.emptyClick_obj, on_click,LuaSoundManager.SOUND_UI.NONE)
-
- --上阵操作后刷新
- local on_update_item = function(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 = true
- self:UpdateView(need_play_effect)
- end
- end
- self:BindEvent(self.model, PetConst.UPDATE_SUPPORT_ITEM, on_update_item)
- end
-
- function PetSupportASItem:UpdateView(need_play_effect)
- if not self.data or self.data == 0 then--无上阵
- self.nameBg_obj:SetActive(false)
- self.typeFlag_obj:SetActive(false)
- self.raceIcon_obj:SetActive(false)
- self.name_tmp.text = ""
- self.petStarBg_obj:SetActive(false)
- self.modelCon_obj:SetActive(false)
- --判断是否已解锁这个位置
- 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--标记为已解锁
- else
- self.is_slot_unlocked = false
- end
- self.addImg_obj:SetActive(true)
- else--有上阵
- self.addImg_obj:SetActive(false)
- self.nameBg_obj:SetActive(true)
- self.typeFlag_obj:SetActive(true)
- 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)
- --设置种族icon
- self.raceIcon_obj:SetActive(true)
- lua_resM:setImageSprite(self, self.raceIcon_img, "pet_asset", "pet_race_"..pet_cfg.pet_race,true)
- --名字等级
- self.name_tmp.text = Trim(pet_cfg.pet_name).." LV."..pet_data.pet_lv
- SetAnchoredPositionX(self.raceIcon,-11-self.name_tmp.preferredWidth/2-20)
-
- local type_flag_res = self.support_slot == 1 and "pet_support_1" or "pet_support_2"
- lua_resM:setImageSprite(self, self.typeFlag_img, "pet_asset", type_flag_res, true)
- SetAnchoredPositionX(self.typeFlag,-11+self.name_tmp.preferredWidth/2+35)
- --星星
- self.petStarBg_obj:SetActive(true)
- local max_star = self.model:GetMaxStarInStage(pet_data.pet_id,pet_data.pet_star)
- 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.modelCon_obj:SetActive(true)
-
- local pos_x = 0
- if self.support_slot == 2 then
- pos_x = -25
- elseif self.support_slot == 3 then
- pos_x = 25
- end
-
- local pokemon_diamond_effect = self.model:GetPokemonDiamondEffectRes(self.data.pet_id)
-
- local res_data = {
- father_node = self,
- father_node = self,
- transform = self.modelCon,
- fashion_type = FuncOpenModel.TypeId.Pet,
- figure_id = pet_cfg.figure_id,
- scale = PetConst.ModelShowConfig[pet_cfg.figure_id] and PetConst.ModelShowConfig[pet_cfg.figure_id].scale*0.8 or PetConst.ModelShowConfig[1001].scale*0.8,
- -- position = Vector3(0,-160,-500),--Model
- position = Vector3(pos_x,82,0),
- ui_model_type = UIModelCommon.ModelType.BackModel,
- pokemon_diamond_effect = pokemon_diamond_effect,
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
-
-
- -- if need_play_effect then--暂时不要了
- -- self:AddUIEffect("ui_hunliqiudianliang", self.emptyClick, "UI", nil, 4, false, nil, false)
- -- end
-
- end
- end
-
- function PetSupportASItem: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 PetSupportASItem:__delete( )
- self:ClearUIEffect(self.emptyClick)
- end
|