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
|