源战役客户端
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.
 
 
 
 
 

163 rindas
5.2 KiB

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