|
|
-
- require("game.itemUse.ItemUseModel")
- require("game.itemUse.ItemUseView")
- require("game.itemUse.SpecialEquipExpiredView")
-
- ItemUseController = ItemUseController or BaseClass(BaseController)
-
- function ItemUseController:__init()
- ItemUseController.Instance = self
- self.model = ItemUseModel:getInstance()
-
- self:EnableCheckoutClear()
- self:InitEvent()
- end
-
- function ItemUseController:RemoveCheckOutEvent()
- if self.check_use_timer then
- GlobalTimerQuest:CancelQuest(self.check_use_timer)
- self.check_use_timer = nil
- end
- end
-
- function ItemUseController:InitEvent()
-
- --游戏登陆加载配置
- local function game_start_func()
- self.model:ClearData()
- end
- GlobalEventSystem:Bind(EventName.GAME_START, game_start_func)
-
-
- -- local onHideUseView = function ()
- -- self.model:HideItemUseView()
- -- end
- -- GlobalEventSystem:Bind(SceneEventType.OPEN_SCENE_LOAD_VIEW,onHideUseView)
-
- local function onReOpenItemUseView()
- if Scene.Instance:IsSceneProloadFinish() then
- self:TryOpenItemUseView()
- end
- end
- GlobalEventSystem:Bind(EventName.REOPEN_ITEM_USE_VIEW,onReOpenItemUseView)
-
- --打开道具使用界面
- local function onItemUseView(vo,forceAutoSec,is_force_show, open_new)
- -- if OffLineModel:getInstance().showingTipView or GiftModel:getInstance().is_show_reward_view or SceneManager:getInstance():IsOnButterflyScene() then
- -- return
- -- end
- if not GoodsModel:getInstance():CheckCanFlyGood() and not is_force_show then--检查飞道具图标的条件
- return
- end
- if EmpowerModel:GetInstance():GetIsShowingGameView() and not EmpowerModel:GetInstance():GetIsShowingShopView() then
- return
- end
-
- -- print('Cat:ItemUseController.lua[86] data', self.ItemUseView1 == nil, self.ItemUseView2 == nil)
- -- print(debug.traceback())
- if not open_new then
- if self.ItemUseView == nil then
- self.ItemUseView = ItemUseView.New()
- end
- self.ItemUseView:Open(vo,forceAutoSec)
- else
- local view_siblingindex = false
- if self.ItemUseView == nil then
- self.ItemUseView = ItemUseView.New()
- else
- self.ItemUseView_old = self.ItemUseView
- self.ItemUseView = ItemUseView.New()
- end
- self.ItemUseView:Open(vo,forceAutoSec)
- end
-
- -- print('Cat:ItemUseController.lua[86] data', self.ItemUseView == nil)
- -- if self.ItemUseView == nil then
- -- self.ItemUseView = ItemUseView.New()
- -- end
- -- self.ItemUseView:Open(vo,forceAutoSec)
- end
-
- GlobalEventSystem:Bind(EventName.OPEN_ITEM_USE_VIEW,onItemUseView)
-
-
- --道具添加到第一个便捷使用
- local function OnFirstQuickUseGoods(type_id)
- local goods_num,_,goods_vo_list = GoodsModel.getInstance():GetTypeGoodsNum(type_id)
- if goods_num <= 0 or not goods_vo_list or #goods_vo_list <= 0 then return end
-
- local goods_vo = goods_vo_list[1]
- self.model:AddForceUseTip(goods_vo)
- if self.ItemUseView and self.ItemUseView:HasOpen() then
- GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,goods_vo, nil, true)
- else
- self.model:ShowItemUseView()
- end
- end
-
- GlobalEventSystem:Bind(EventName.FIRST_QUICK_USE_GOODS, OnFirstQuickUseGoods)
-
- --打开d道具使用界面
- local function onCloseItemUseView()
- if self.ItemUseView then
- self.ItemUseView:Close()
- end
- end
-
- GlobalEventSystem:Bind(EventName.CLOSE_ITEM_USE_VIEW,onCloseItemUseView)
- --是否强制跳过判断
- local function onChangeBagListHandler(is_force)
- if Scene.Instance:IsSceneProloadFinish() --[[and (SceneManager.Instance:IsMainCityorYieldScene() or SceneManager.Instance:IsExpScene())--]] then
- if self.ItemUseView and self.ItemUseView:HasOpen() then
- --如果这个界面是打开的,而且背包还有这个东西,则不刷新界面
- -- local type_id = self.ItemUseView:GetTypeId()
- local goods_id = self.ItemUseView:GetGoodsId()
- if self.model:ContainGoodsId(goods_id) then
- -- print('Cat:ItemUseController.lua[75]return goods_id', goods_id)
- return
- end
- end
-
- local vo, is_equip = self.model:GetItemShowVo()
-
- print('Cat:ItemUseController.lua[80] vo', vo,is_open_luckdraw)
- if vo then
- --新手临时穿戴第一件装备
- if is_equip and RoleManager:getInstance():GetMainRoleVo().level <= 3 then
- EquipModel:getInstance():WearEquip(vo, true )
- else
- GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,vo, nil, is_force)
- end
- else
- if self.ItemUseView then
- self.ItemUseView:Close()
- end
- end
- end
- end
- GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST,onChangeBagListHandler)
- GoodsModel:getInstance():Bind(GoodsModel.CHANGE_EQUIPLIST,onChangeBagListHandler)
- OperateActivityModel:getInstance():Bind(OperateActivityModel.QUIK_USE,onChangeBagListHandler)
-
- local function onReShowGoodUseEvent()
- self.model:CheckReShowGood()
- end
- GoodsModel:getInstance():Bind(GoodsModel.RESHOW_GOODS_USE_VIEW_BY_FASHION,onReShowGoodUseEvent)
-
-
- local function scene_start_func()
-
- if self.delay_timer == nil then
- local delay_callback = function()
- onChangeBagListHandler()
- self.delay_timer = nil
- end
- self.delay_timer = GlobalTimerQuest:AddDelayQuest(delay_callback, 0.5)
- end
- end
- GlobalEventSystem:Bind(EventName.SCENE_LOAD_VIEW_COMPLETE,scene_start_func)
-
-
- local function onOpenExpiredView(flag, goods_id,type)
- if flag then
- if self.SpecialEquipExpiredView == nil then
- self.SpecialEquipExpiredView = SpecialEquipExpiredView.New()
- end
- self.SpecialEquipExpiredView:Open(goods_id,type)
- else
- if self.SpecialEquipExpiredView and self.SpecialEquipExpiredView:HasOpen() then
- self.SpecialEquipExpiredView:Close()
- end
- end
- end
- GlobalEventSystem:Bind(EventName.OPEN_EXPIRED_VIEW, onOpenExpiredView)
-
-
- local function onCheckItemUseListOtherEquipCanWearEvent()
- local function delay_method( )
- self.model:CheckItemUseListOtherEquipCanWear()
- end
- setTimeout(delay_method, 0.5) --延迟检测物品使用tips,不然可能新的装备还没有穿上
- end
- GlobalEventSystem:Bind(EventName.CHECK_ITEM_USE_EQUIP_CAN_SHOW, onCheckItemUseListOtherEquipCanWearEvent)
-
-
- local function onDelayShowEquipToolEvent(vo)
- local equip_vo = vo
- if equip_vo then
- local function delay_method( )
- local stren_data = EquipModel:getInstance():GetBagEquipAwaraItemInfo(equip_vo)
- stren_data.key_value = "show_bag_view"
- UIToolTipMgr:getInstance():AppendEquipTips(equip_vo.type_id, x, y,stren_data and stren_data.goods_vo,nil,nil,nil,stren_data and stren_data.key_value)
- end
- setTimeout(delay_method, 0.5) --延迟检测物品使用tips,不然可能新的装备还没有穿上
- end
- end
- GlobalEventSystem:Bind(EventName.ITEM_USE_DELAY_OPEN_EQUIP_TOOL, onDelayShowEquipToolEvent)
-
- -- -- 隐藏或者显示 物品使用界面 1 为隐藏 2为显示
- -- local function onShowOrHideItemUseView(handle)
- -- if self.ItemUseView and self.ItemUseView:HasOpen() then
- -- if handle == 1 then
- -- self.ItemUseView:Hide()
- -- elseif handle == 2 then
- -- self.ItemUseView:Show()
- -- end
- -- end
- -- end
- -- GlobalEventSystem:Bind(EventName.SHOW_OR_HIDE_ITEMUSEVIEW, onShowOrHideItemUseView)
- end
-
- -- 切换场景判断是否显示界面
- function ItemUseController:TryOpenItemUseView()
- local vo = self.model:GetItemShowVo()
- if vo then
- GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,vo)
- end
- end
|