|
|
- PetEvolvePreView = PetEvolvePreView or BaseClass(BaseView)
- local PetEvolvePreView = PetEvolvePreView
-
- function PetEvolvePreView:__init()
- self.base_file = "pet"
- self.layout_file = "PetEvolvePreView"
- 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
-
- function PetEvolvePreView:Open(pet_id)
- self.pet_id = pet_id
- BaseView.Open(self)
- end
-
- function PetEvolvePreView:LoadSuccess()
- local nodes = {
- "skillCon",--技能图标容器
- "modelCon1","modelCon2","modelCon3",--形象容器
- "desCon/Text_2:tmp", "desCon/Text_4:tmp",
- "confirmBtn:obj",
- "name:tmp", "raceIcon:img",
- }
- 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_preview_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
- end
-
- function PetEvolvePreView:AddEvent()
- local on_click = function ( click_obj )
- if self.confirmBtn_obj == click_obj then
- self:Close()
- end
- end
- AddClickEvent(self.confirmBtn_obj, on_click,LuaSoundManager.SOUND_UI.NONE)
-
-
- end
-
- function PetEvolvePreView:OpenSuccess()
- self:UpdateView()
- end
-
- function PetEvolvePreView:UpdateView()
-
- self:UpdateFigure()
- self:UpdateSkillCon()
-
- local star_1 = self.model:GetStarCanUnlockFigure(self.pet_id,2)
- local star_2 = self.model:GetStarCanUnlockFigure(self.pet_id,3)
- self.Text_2_tmp.text = star_1
- self.Text_4_tmp.text = star_2
-
- local pet_cfg = self.model:GetPetCfg(self.pet_id, 1)
- 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)
- SetAnchoredPositionX(self.raceIcon,7-self.name_tmp.preferredWidth/2-20)
-
- end
-
- --模型展示
- function PetEvolvePreView:UpdateFigure( )
- local pet_cfg_1 = self.model:GetPetCfg(self.pet_id, 1)
- local pet_cfg_2 = self.model:GetPetCfg(self.pet_id, 6)
- local pet_cfg_3 = self.model:GetPetCfg(self.pet_id, 11)
-
- -- 发行绿幕特殊处理
- -- 由于进化预览界面有可能出现在图鉴界面上,加之这是三个模型的展示,需要特殊处理
- local loaded_model_num = 0
- local function green_screen_callback()
- if LoginModel.ENABLE_GREEN_SCREEN then
- loaded_model_num = loaded_model_num + 1
- if loaded_model_num >= 3 then -- 当前是3个模型,完全加载完后再开启绿屏
- local function delay_method( )
- CheatModel:getInstance():SetupGreenScreenEffect(
- true,
- {
- lua_resM:GetPartModel(self, self.modelCon1),
- lua_resM:GetPartModel(self, self.modelCon2),
- lua_resM:GetPartModel(self, self.modelCon3)
- },
- 2, true
- )
- end
- if self.gs_delay_id then
- GlobalTimerQuest:CancelQuest(self.gs_delay_id)
- self.gs_delay_id = nil
- end
- self.gs_delay_id = setTimeout(delay_method, 0.02)
- end
- end
- end
-
- local res_data = {
- layer_name = "Activity",
- father_node = self,
- transform = self.modelCon1,
- fashion_type = FuncOpenModel.TypeId.Pet,
- figure_id = pet_cfg_1.figure_id,
- scale = PetConst.ModelShowConfig[pet_cfg_1.figure_id] and PetConst.ModelShowConfig[pet_cfg_1.figure_id].scale*0.8 or PetConst.ModelShowConfig[1001].scale*0.8,
- position = Vector3(0,-160,-500),
- -- position = Vector3(-15,90,0),
- raycast_size = Vector2(200,260),
- ui_model_type = UIModelCommon.ModelType.Model,
- callBack = green_screen_callback,
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
-
- local res_data = {
- layer_name = "Activity",
- father_node = self,
- transform = self.modelCon2,
- fashion_type = FuncOpenModel.TypeId.Pet,
- figure_id = pet_cfg_2.figure_id,
- scale = PetConst.ModelShowConfig[pet_cfg_2.figure_id] and PetConst.ModelShowConfig[pet_cfg_2.figure_id].scale*0.8 or PetConst.ModelShowConfig[1001].scale*0.8,
- position = Vector3(0,-160,-500),
- -- position = Vector3(0,90,0),
- raycast_size = Vector2(200,260),
- ui_model_type = UIModelCommon.ModelType.Model,
- callBack = green_screen_callback,
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
-
- local res_data = {
- layer_name = "Activity",
- father_node = self,
- transform = self.modelCon3,
- fashion_type = FuncOpenModel.TypeId.Pet,
- figure_id = pet_cfg_3.figure_id,
- scale = PetConst.ModelShowConfig[pet_cfg_3.figure_id] and PetConst.ModelShowConfig[pet_cfg_3.figure_id].scale*0.8 or PetConst.ModelShowConfig[1001].scale*0.8,
- position = Vector3(0,-160,-500),
- -- position = Vector3(25,90,0),
- raycast_size = Vector2(200,260),
- ui_model_type = UIModelCommon.ModelType.Model,
- callBack = green_screen_callback,
- }
- FuncOpenModel:getInstance():SetModelRes(res_data)
- end
-
- --技能展示
- function PetEvolvePreView:UpdateSkillCon( )
- local skill_table = {}
- for i=1,4 do
- local data = self.model:GetPetSkillCfg(self.pet_id,i)--通过id和槽位获取技能配置
- if data then
- table.insert(skill_table,data)
- end
- end
-
- local pet_data = self.model:GetPetListById(self.pet_id)
- local pet_stage = pet_data and pet_data.pet_stage or 0
- local pet_star = pet_data and pet_data.pet_star or 0
- 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 = PetSkillItem.New(self.skillCon)
- self.skill_item_list[i] = item
- end
- item:SetVisible(true)
- item:SetData(v,self.pet_id,2)
- item:SetPosition(7+83*(i-1),1)
- end
- end
-
- function PetEvolvePreView:DestroySuccess( )
- 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
- -- 复原绿屏,同样要特殊处理
- if LoginModel.ENABLE_GREEN_SCREEN then
- if self.gs_delay_id then
- GlobalTimerQuest:CancelQuest(self.gs_delay_id)
- self.gs_delay_id = nil
- end
- if PetController.Instance.pet_base_view
- and PetController.Instance.pet_base_view:HasOpen() then -- 存在绿屏的主界面
- CheatModel:getInstance():DisabledGreenScreenEffect(true)
- LoginModel.ENABLE_GREEN_SCREEN = true
- -- 重新加载界面
- PetController.Instance.pet_base_view:SwitchTab(PetController.Instance.pet_base_view.current_index)
- else
- CheatModel:getInstance():DisabledGreenScreenEffect()
- end
- end
- end
|