BagMainView = BagMainView or BaseClass(BaseView) BagMainView.Index2Name = { [1] = {id = 1, name = "背包", abName = "bag_asset", light_res = "bag_ui_tab_1_1", dark_res = "bag_ui_tab_1_2", view = "BagView",open_lv = 1}, [2] = {id = 2, name = "仓库", abName = "bag_asset", light_res = "bag_ui_tab_2_1", dark_res = "bag_ui_tab_2_2", view = "DepotView",open_lv = 1}, [3] = {id = 3, name = "吞噬", abName = "bag_asset", light_res = "bag_ui_tab_3_1", dark_res = "bag_ui_tab_3_2", view = "SwallowView",open_lv = GetModuleOpenLevel(150,4)}, } function BagMainView:__init() self.base_file = "bag" self.layout_file = "BagMainView" self.layer_name = "UI" --Main UI Top Active self.destroy_imm = true self.append_to_ctl_queue = true self.change_scene_close = true self.close_fog = true self.mainVo = RoleManager.Instance.mainRoleInfo self.model = GoodsModel:getInstance() self.current_index = false self.hide_maincancas = true self.use_background = G_USING_BG self.model_activity_bg = true self.model_activity_bg_pos = Vector2(-132,52) self.is_trigger_guide = false self:AddPreLoadList("bag", {"BagItem,EquipItem"}) self.bag_view = false self.depotView = false self.tab_name_list = {} local playerLv = RoleManager:getInstance():GetMainRoleVo().level for i, v in ipairs(BagMainView.Index2Name) do if v.open_lv <= playerLv then table.insert(self.tab_name_list, v) end end self.load_callback = function() self:LoadSuccess() self:InitEvent() end self.open_callback = function() self:SeletedTabbar(self.current_index or 1, true) self:ShowTabRedPointState() end self.close_callback = function() end self.destroy_callback = function() self:Remove() end end function BagMainView:GetRealIndex( index ) index = index or 1 for k,v in pairs(self.tab_name_list) do if v.id == index then index = k end end return index end function BagMainView:Open(index) self.current_index = self:GetRealIndex(index) BaseView.Open(self) end function BagMainView:ReOpen(index) self.current_index = self:GetRealIndex(index) self:SeletedTabbar(self.current_index or 1, true)end function BagMainView:LoadSuccess() self.winCon = self:GetChild("winCon") local select_callback = function(index) self:SeletedTabbar(index) end local closeWin_callback = function() self:Close() end self.tabWindowComponent = UITabWindow.New(self.transform,self.tab_name_list,select_callback,closeWin_callback,self.background_wnd,self.winCon, UITabWindow.SizeLarge, false,nil,true) --self.tabWindowComponent:SetBackgroundRes("default_bg_2") self.tabWindowComponent:SetTitleText("背包") self.tabWindowComponent:SetUIBack({target = self, bg1 = GameResPath.GetViewBigBg("default_bg_2")}) self:AddToStageHandler() end function BagMainView:InitEvent() local function on_ans_update_red_dot() self:ShowTabRedPointState() end -- self:BindEvent(BagModel.Instance, BagModel.ANS_UPDATE_EQUIP_RED, on_ans_update_red_dot) self:BindEvent(BagModel.Instance, BagModel.ANS_UPDATE_CURRENCY_EXCHANGE_RED, on_ans_update_red_dot) self:BindEvent(GlobalEventSystem,EventName.UPDATE_BAG_RED,on_ans_update_red_dot) self:BindEvent(EquipCollectModel:getInstance(),EquipCollectConst.ANS_EQUIP_COLLECT_INFO, on_ans_update_red_dot) local function onGuideTrigger() self:AddToStageHandler() end self:BindEvent(GlobalEventSystem, EventName.TRIGGER_GUIDE_TYPE, onGuideTrigger) end --清除界面 function BagMainView:Remove() if self.tabWindowComponent then self.tabWindowComponent:DeleteMe() end self.tabWindowComponent = nil if self.depotView then self.depotView:DeleteMe() end if self.bag_view then self.bag_view:DeleteMe() end if self.swallow_view then self.swallow_view:DeleteMe() end self.swallow_view = nil -- 复原绿屏 CheatModel:getInstance():DisabledGreenScreenEffect() end function BagMainView:SeletedTabbar(index, force) if self.current_index == index and not force then return end if self.tabWindowComponent ~= nil then self.tabWindowComponent:SetTabBarIndex(index) end self.current_index = index if not self.bag_view then self.bag_view = BagView.New(self.winCon, nil, self.layer_name) end if index == 1 then self.model.show_warehouse = false self.model.show_bag_view = true self.bag_view:SetVisible(true) self.bag_view:DoOpenAni(index) self.bag_view:SetCustomVisible(true) self.bag_view:SetBgMaskVisible(false) if self.swallow_view then self.swallow_view:SetVisible(false) end if self.depotView then self.depotView:SetVisible(false) end elseif index == 2 then self.model.show_warehouse = true self.model.show_bag_view = false if not self.depotView then self.depotView = DepotView.New(self.winCon, nil, self.layer_name) end self.bag_view:SetVisible(true) --self.bag_view:SetCustomVisible(false) --SetBgMaskVisible在这里处理先显示拍照后,在隐藏 self.bag_view:SetBgMaskVisible(true) self.depotView:SetVisible(true) self.bag_view:DoOpenAni(index) if self.swallow_view then self.swallow_view:SetVisible(false) end elseif index == 3 then self.model.show_warehouse = false self.model.show_bag_view = false self.bag_view:SetVisible(false) self.bag_view:SetCustomVisible(false) self.bag_view:SetBgMaskVisible(false) if self.depotView then self.depotView:SetVisible(false) end if self.swallow_view == nil then self.swallow_view = SwallowView.New(self.winCon) end self.swallow_view:UpdateView() self.swallow_view:SetVisible(true) end end function BagMainView:ShowTabRedPointState() local swallow_red = BagModel:getInstance():GetSwallowRedDot() local currency_exchange_red = BagModel.getInstance():GetBagEquipSuitActiveRedDot() self.tabWindowComponent:ShowRedPoint(1, currency_exchange_red ) self.tabWindowComponent:ShowRedPoint(3, swallow_red) end function BagMainView:AddToStageHandler() local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_TWO,2) if helpVo then self.is_trigger_guide = true end end function BagMainView:Close() --完成引导 local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_TWO,2) or GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_SUIT_ACTIVE,4) if helpVo then GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo) end if self.is_trigger_guide then GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK) end BaseView.Close(self) end