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

174 lines
5.9 KiB

PetBaseView = PetBaseView or BaseClass(BaseView)
local PetBaseView = PetBaseView
PetBaseView.TabData = {
{id = PetConst.ModuleId.Training, name = "培养", module_id = 163, sub_id = 1, abName = "pet_asset", light_res = "pet_ui_tab_1_1", dark_res = "pet_ui_tab_1_2", },
{id = PetConst.ModuleId.Support, name = "出战", module_id = 163, sub_id = 3, abName = "pet_asset", light_res = "pet_ui_tab_2_1", dark_res = "pet_ui_tab_2_2", },
{id = PetConst.ModuleId.Collection, name = "图鉴", module_id = 163, sub_id = 2, abName = "pet_asset", light_res = "pet_ui_tab_3_1", dark_res = "pet_ui_tab_3_2", },
{id = PetConst.ModuleId.Awake, name = "觉醒", module_id = 163, sub_id = 4, abName = "pet_asset", light_res = "pet_ui_tab_4_1", dark_res = "pet_ui_tab_4_2", },
}
function PetBaseView:__init()
self.base_file = "pet"
self.layout_file = "PetBaseView"
self.layer_name = "UI"
self.destroy_imm = true
self.use_background = G_USING_BG
self.hide_maincancas = true
self.change_scene_close = true
self.append_to_ctl_queue = true --是否要添加进界面堆栈
self.need_show_money = true --是否要显示顶部的金钱栏
-- self.is_set_zdepth = true
self.close_fog = true
self.model_activity_bg = true
self.model_activity_bg_pos = Vector2(-294,160)
self.model_activity_bg_type = 4
self.model = PetModel:getInstance()
self.current_index = nil
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
end
self.open_callback = function ( )
self:OpenSuccess()
self:ShowTabRedPointState()
end
self.switch_callback = function(index)
self:SwitchTab(index)
end
self.close_win_callback = function ( )
self:Close()
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function PetBaseView:Open(index,right_tab_index)
self.current_index = index or 1
self.right_tab_index = right_tab_index or 1
BaseView.Open(self)
end
function PetBaseView:LoadSuccess()
local nodes = {
"winCon",
}
self:GetChildren(nodes)
self.tabWindowComponent = UITabWindow.New(self.transform,PetBaseView.TabData,self.switch_callback,
self.close_win_callback,self.background_wnd,false, UITabWindow.SizeLarge, false,nil,true)
self.tabWindowComponent:SetTitleText("宠物")
self.tabWindowComponent:SetUIBack({target = self, bg1 = GameResPath.GetViewBigBg("default_bg_2")})
end
function PetBaseView:AddEvent()
local function on_ans_update_red_dot()
self:ShowTabRedPointState()
end
self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, on_ans_update_red_dot)
end
function PetBaseView:OpenSuccess()
-- self:SwitchTab(self.current_index or 1)
local list = self.model.pet_list
if not list or TableSize(list) <= 0 then
self.current_index = 3
end
self.tabWindowComponent:SetTabBarIndex(self.current_index or 1)
end
function PetBaseView:SwitchTab( index )
if index == 1 or index == 2 or index == 4 then
local list = self.model.pet_list
if not list or TableSize(list) <= 0 then
Message.show("需要激活至少1只宠物哦!","fault")
self.tabWindowComponent:SetTabBarIndex(PetConst.ModuleId.Collection,false,true)
return
end
end
--切换页签时候,用于防止重复点击item的标识也要重置
self.model.select_collect_item_id = 0
self.model.select_item_id = 0
self.current_index = index
if index == 1 then--宠物培养界面(主界面)
if self.pet_training_view == nil then
self.pet_training_view = PetTrainingView.New(self.winCon)
end
self.pet_training_view:SetData(self.right_tab_index)
self:PopUpChild(self.pet_training_view)
elseif index == 3 then--宠物图鉴界面(宠物收集)
if self.pet_collection_view == nil then
self.pet_collection_view = PetCollectionView.New(self.winCon)
end
self.pet_collection_view:SetData()
self:PopUpChild(self.pet_collection_view)
self.right_tab_index = 1
elseif index == 2 then--宠物声援界面
if self.pet_support_view == nil then
self.pet_support_view = PetSupportView.New(self.winCon)
end
self.pet_support_view:SetData()
self:PopUpChild(self.pet_support_view)
self.right_tab_index = 1
elseif index == 4 then--宠物觉醒界面
if self.pet_awake_view == nil then
self.pet_awake_view = PetAwakeView.New(self.winCon)
end
self.pet_awake_view:SetData()
self:PopUpChild(self.pet_awake_view)
self.right_tab_index = 1
end
end
function PetBaseView:DestroySuccess( )
if self.tabWindowComponent then
self.tabWindowComponent:DeleteMe()
end
self.tabWindowComponent = nil
if self.pet_training_view then
self.pet_training_view:DeleteMe()
end
self.pet_training_view = nil
if self.pet_collection_view then
self.pet_collection_view:DeleteMe()
end
self.pet_collection_view = nil
if self.pet_support_view then
self.pet_support_view:DeleteMe()
end
self.pet_support_view = nil
if self.pet_awake_view then
self.pet_awake_view:DeleteMe()
end
self.pet_awake_view = nil
-- 复原绿屏
CheatModel:getInstance():DisabledGreenScreenEffect()
end
function PetBaseView:ShowTabRedPointState()
local red_info = self.model:GetAllRedDot()
local bool_1 = red_info[PetConst.RED_DOT_TYPE.Feed] or red_info[PetConst.RED_DOT_TYPE.Evolve] or red_info[PetConst.RED_DOT_TYPE.Diamond] or red_info[PetConst.RED_DOT_TYPE.DiamondCompose]
self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Training, bool_1)
local bool_2 = red_info[PetConst.RED_DOT_TYPE.Active]
self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Collection, bool_2)
local bool_3 = red_info[PetConst.RED_DOT_TYPE.Reward] or red_info[PetConst.RED_DOT_TYPE.Vote]
self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Support, bool_3)
local bool_4 = red_info[PetConst.RED_DOT_TYPE.Awake]
self.tabWindowComponent:ShowRedPoint(PetConst.ModuleId.Awake, bool_4)
end