源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

244 lines
6.4 KiB

PetShareLookView = PetShareLookView or BaseClass(BaseView)
local PetShareLookView = PetShareLookView
function PetShareLookView:__init()
self.base_file = "pet"
self.layout_file = "PetShareLookView"
self.layer_name = "Activity"
self.destroy_imm = true
self.use_background = true
self.change_scene_close = true
self.hide_maincancas = true
-- self.append_to_ctl_queue = true --是否要添加进界面堆栈
self.need_show_money = false --是否要显示顶部的金钱栏
self.is_set_zdepth = true
self.click_bg_toClose = false
self.close_fog = true
self.click_bg_toClose = true
self.blur_activity_bg = true
-- self.use_show_anim = true
-- self.use_hide_anim = true
self.model = PetModel:getInstance()
self.skill_item_list = {}
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
end
self.open_callback = function ( )
self:OpenSuccess()
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
--16311
function PetShareLookView:Open(vo)
self.data = vo
self.data.pet_stage = math.ceil((vo.pet_star-0.5)/5)
BaseView.Open(self)
end
function PetShareLookView:LoadSuccess()
local nodes = {
"modelCon",
"sexFlag:img",
"raceIcon:img",
"skillCon",
"attrScrollView/Viewport/Content", "attrScrollView",
"playerHeadCon",
"playerVipCon",
"petName:tmp",
"petPower:txt",
"playerPower:tmp",
"playerName:tmp",
"petPowerLabel",
}
self:GetChildren(nodes)
local close_callback = function()
self:Close()
end
self.tabWindowComponent = UITabWindow.New(self.transform, nil, nil, close_callback, self.background_wnd,
self.transform,UITabWindow.SizeSmallNoTab,nil,nil,nil)
self.tabWindowComponent:SetBackgroundRes("pet_share_look_bg")
self.tabWindowComponent:SetTitleText("宠物分享")
-- local function bg_back_func( ... )
-- if self.background_wnd and self.background_wnd:GetComponent("RawImageExtend") then
-- self:MoveUIToBack(self.background_wnd:GetComponent("RawImageExtend"))
-- end
-- self:MoveUIToBack(self.tabWindowComponent.win_bg)
-- end
-- if self.background_wnd then
-- bg_back_func()
-- else
-- self.bg_back_func = bg_back_func
-- end
self.star = {}--星级
for i=1,5 do
self.star[i] = self:GetChild("starCon/star"..i):GetComponent("Image")
end
self.roleItem = HeadRoleItem.New(self.playerHeadCon)
self.roleItem:SetItemSize(84,84)
self.vipItem = RoleVipItem.New(self.playerVipCon)
end
function PetShareLookView:AddEvent()
end
function PetShareLookView:OpenSuccess()
local pet_cfg = self.model:GetPetCfg(self.data.pet_id, self.data.pet_star)
--星级
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", PetConst.stage_message[self.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.petName_tmp.text = Trim(pet_cfg.pet_name)
SetAnchoredPositionX(self.raceIcon,-176-self.petName_tmp.preferredWidth/2-20)
--种族
lua_resM:setImageSprite(self, self.raceIcon_img, "pet_asset", "pet_race_"..pet_cfg.pet_race,true)
--战力
self.petPower_txt.text = self.data.pet_power
SetAnchoredPositionX(self.petPowerLabel,265-self.petPower_txt.preferredWidth/2-56)
--属性栏 先把data转换为我们可用的data
local attr_data = {}
for i,v in ipairs(self.data.attr_list) do
attr_data[i] = {v.attr_id,v.attr_value}
end
self:UpdateAttrList(attr_data)
--技能栏
self:UpdateSkillList()
--宠物模型展示
local res_data = {
layer_name = "Activity",
father_node = self,
transform = self.modelCon,
fashion_type = FuncOpenModel.TypeId.Pet,
figure_id = pet_cfg.figure_id,
position = Vector3(0,-160,-500),
ui_model_type = UIModelCommon.ModelType.Model,
}
FuncOpenModel:getInstance():SetModelRes(res_data)
--玩家数据
local head_data = {
vo = {
id = self.data.role_id,
server_id = self.data.ser_id,
career = self.data.career,
sex = self.data.sex,
turn = self.data.turn,
picture_ver = self.data.picture_ver,
picture = self.data.picture,
profile_photo_id = self.data.profile_photo_id,
dress_board_id = self.data.dress_id,
level = self.data.level,
}
}
self.roleItem:SetData(head_data)
self.playerName_tmp.text = self.data.name
self.playerPower_tmp.text = self.data.fighting
self.vipItem:SetData(self.data.vip_flag,self.data.sup_vip_type)
if self.data.sex==1 then
lua_resM:setImageSprite(self,self.sexFlag_img,"common_asset","com_boy",true)
elseif self.data.sex==2 then
lua_resM:setImageSprite(self,self.sexFlag_img,"common_asset","com_girl",true)
end
SetAnchoredPositionX(self.sexFlag,870+self.playerName_tmp.preferredWidth+3)
end
function PetShareLookView:UpdateAttrList(attr_list)
if not self.attr_list_com then
self.attr_list_com = self:AddUIComponent(UI.ItemListCreator)
end
local info = {
data_list = attr_list,
item_con = self.Content,
item_class = PetShareAttrItem,
-- item_width = 193,
item_height = 49,
space_x = -7,
space_y = 0,
start_x = 1,
start_y = 0,
scroll_view = self.attrScrollView,
create_frequency = 0.01,
on_update_item = function(item, i, v)
item:SetData(i,v,true)
end,
}
self.attr_list_com:UpdateItems(info)
end
function PetShareLookView:UpdateSkillList( )
local skill_table = {}
for i=1,4 do
local data = self.model:GetPetSkillCfg(self.data.pet_id,i,self.data.is_awaken==1)--通过id和槽位获取技能配置
if data then
table.insert(skill_table,data)
end
end
for k,v in pairs(self.skill_item_list) do
v:SetVisible(false)
end
for i,v in ipairs(skill_table) do
local item = self.skill_item_list[i]
if not item then
item = PetShareSkillItem.New(self.skillCon)
self.skill_item_list[i] = item
end
item:SetVisible(true)
item:SetData(v,self.data.pet_id,self.data)
item:SetPosition(21+82*(i-1),12)
end
end
function PetShareLookView:DestroySuccess( )
if self.roleItem then
self.roleItem:DeleteMe()
self.roleItem = nil
end
if self.vipItem then
self.vipItem:DeleteMe()
self.vipItem = nil
end
for i, v in ipairs(self.skill_item_list) do
v:DeleteMe()
end
self.skill_item_list = {}
if self.tabWindowComponent then
self.tabWindowComponent:DeleteMe()
self.tabWindowComponent = nil
end
end