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

216 lines
6.9 KiB

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