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