|
|
-
- ItemUseView = ItemUseView or BaseClass(BaseView)
-
- ItemUseView.UIStyle =
- {
- Normal = 1, --正常装备,单个道具使用
- BatUse = 2, --多个道具,批量使用
- Auction = 3, --便捷上架拍卖
- Designation = 4, --称号快捷穿戴
- }
-
- ItemUseView.ViewDepth = 750
-
- function ItemUseView:__init()
- self.base_file = "itemUse"
- self.layout_file = "ItemUseView"
- self.layer_name = "Activity"
- self.destroy_imm = false
- self.is_delay_callback = false
- self.open_wnd_anim = 0
- self.is_set_zdepth = true
- self.mask_open_sound = true
- self.mask_close_sound = true
- self.close_mode = CloseMode.CloseDestroy
- self.force_no_ctl_queue = true
- -- self.change_scene_close = true
- self.model = ItemUseModel:getInstance()
- self.goods_model = GoodsModel:getInstance()
- self.mainVo = RoleManager.Instance.mainRoleInfo
- self.transform_x = ScreenWidth/2-377--377是对右边的值
- self.transform_y = -ScreenHeight/2+177--177是对下边的值
- self.ui_style = ItemUseView.UIStyle.Normal
- self.is_in_anim = false
-
- self.cur_use = 0
- self.max_use = 0
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:InitEvent()
- UIDepth.SetUIDepth(self.gameObject,true,ItemUseView.ViewDepth) --强制设置层级
- end
- self.open_callback = function ()
- self:LayoutUI()
- self:ResetCloseTimer()
-
-
- GlobalEventSystem:Fire(EventName.SET_LOCAK_VIEW_LAYER)
- end
- self.close_callback = function ()
- self:ClearCloseTimer()
- -- self.item_icon:clearResRef()
- self:ClearTimer()
- if self.need_fire_auto then
- local need_do_task = self.close_by_hand == true and true or false
- GuideModel:getInstance():BeginTask(self.layout_file,need_do_task)
- self.need_fire_auto = false
- end
- end
- self.destroy_callback = function ()
- self:Clear()
- end
- end
-
- function ItemUseView:ResetCloseTimer( )
- self:ClearCloseTimer()
- -- self:StartCloseTimer()
- end
-
- function ItemUseView:Open(vo,forceAutoSec)
- self.vo = vo
- self.forceAutoSec = forceAutoSec
- if self.vo then
- self.type_id = self.vo.type_id
- self.goods_id = self.vo.goods_id
- self.num = self.model:GetGoodsNumById(self.goods_id)
- self.goods_vo = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.vo.type_id)
- end
- BaseView.Open(self)
- end
-
- function ItemUseView:Clear()
- if self.dynamic_event_id then
- GlobalEventSystem:UnBind(self.dynamic_event_id)
- self.dynamic_event_id = nil
- end
- if self.item_icon then
- self.item_icon:ReleaseObj()
- self.item_icon = nil
- end
-
- if self.refresh_item_id then
- GoodsModel:getInstance():UnBind(self.refresh_item_id)
- self.refresh_item_id = nil
- end
- if self.scale_anim_id then
- TweenLite.Stop(self.scale_anim_id)
- self.scale_anim_id = nil
- end
-
- if self.mark_goods_update_id then
- MarketModel:getInstance():UnBind(self.mark_goods_update_id)
- end
- self:ClearTimer()
- self:ClearCloseTimer()
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.designation_image)
- end
-
- function ItemUseView:LayoutUI()
- if self.vo then
- self:AddToStageHandler()
- SetLocalScale(self.gameObject.transform, 1, 1,1)
- self:ClearTimer()
-
- local type_id = self.vo.type_id
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- local num = self.model:GetGoodsNumById(self.goods_id)
- self.max_use = 0
- self.cur_use = 0
-
- self.close_btn:SetActive(true)
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.designation_image)
- if goods_basic then
- local nameStr = GoodsModel.GetRealGoodsName(goods_basic)
- if utf8len(nameStr) > 8 then
- nameStr = SubStringUTF8(nameStr, 1, 7) .. "..."
- end
- self.name.text = HtmlColorTxt(nameStr, WordManager.GetGoodsColor(goods_basic.color))
- if self.item_icon then
- if goods_basic.type == GoodsModel.TYPE.EQUIP then
- local stren_data = EquipModel:getInstance():GetBagEquipAwaraItemInfo(self.vo)
- stren_data.equip_key = "EquipView"
- stren_data.key_value = "show_bag_view"
- self.stren_data = stren_data
- self.item_icon:SetData(type_id,num,self.vo.color,stren_data)
- else
- self.item_icon:SetData(type_id,num,self.vo.color)
- end
- self.item_icon:SetVisible(true)
- end
- if self:IsBatchUseGoods(goods_basic, num) then
- self.ui_style = ItemUseView.UIStyle.BatUse
- elseif self:IsActionEquip(self.vo, goods_basic) then
- self.ui_style = ItemUseView.UIStyle.Auction
- elseif self:IsDesignationGoods(goods_basic) then
- self.ui_style = ItemUseView.UIStyle.Designation
- else
- self.ui_style = ItemUseView.UIStyle.Normal
- end
- if self.ui_style == ItemUseView.UIStyle.Auction then
- self.auction_group:SetActive(true)
- self.base_group:SetActive(false)
- self.designation_group_obj:SetActive(false)
- SetAnchoredPosition(self.item_parent.transform , 71, 167)
- SetAnchoredPosition(self.name.transform, 60, 116)
- SetAnchoredPosition(self.effect_con.transform, 64.5, 162)
- self.base_price_txt.text = tostring(goods_basic.trade_price or 0)
- self.fixed_price_txt.text = tostring(goods_basic.buyout_price or 0)
- SetAnchoredPosition(self.transform, self.transform_x-123, self.transform_y+31)--这里的123是因为变宽了向右移,31是多了一个栏 用右下角对齐 需要往上移动
- elseif self.ui_style == ItemUseView.UIStyle.Designation then
- self.auction_group:SetActive(false)
- self.designation_group_obj:SetActive(true)
- self.base_group:SetActive(false)
- self.item_icon:SetVisible(false)
- local cfg = Config.Dsgt
- local designation_id = DesignationModel:GetInstance():GetDesignationIdByGoodsId(type_id)
- cc.ActionManager:getInstance():removeAllActionsFromTarget(self.designation_image)
- if cfg[designation_id].type == 1 then--文字称号(文字称号也用图片了)
- lua_resM:setOutsideImageSprite(self, self.designation_image_img, GameResPath.GetDesignImage(cfg[designation_id].id), true)
- self.designation_image_obj:SetActive(true)
- elseif cfg[designation_id].type == 2 then--图片称号
- lua_resM:setOutsideImageSprite(self, self.designation_image_img, GameResPath.GetDesignImage(cfg[designation_id].id), true)
- self.designation_image_obj:SetActive(true)
- elseif cfg[designation_id].type == 3 then--特效称号
- if not self.dynamic_image_obj then
- self.dynamic_image_obj = UiFactory.createChild(self.designation_image, UIType.Image, "dynamic_image")
- self.dynamic_image_img = self.dynamic_image_obj:GetComponent("Image")
- self.dynamic_image = self.dynamic_image_obj.transform
- SetAnchoredPosition(self.dynamic_image,0,0)
- else
- self.dynamic_image_obj:SetActive(true)
- end
- self.designation_image_obj:SetActive(true)
- local data = DesignationModel:GetInstance():GetDynamicDesignationCFG(designation_id)
- local res = Split(data[1].res,"_")--分割出来配置 然后取文字
- local font_res = res[1] or ""
- lua_resM:setImageSprite(self, self.dynamic_image_img, data[1].ab, font_res.."_font", true)
- local action = cc.Animation.New(data,0.15)
- cc.ActionManager:getInstance():addAction(cc.RepeatForever.New(action),self.designation_image.transform)
- end
- self.designation_tip_text_tmp.text = cfg[designation_id].description
- self.name.text = ""
- SetAnchoredPosition(self.transform, self.transform_x-80, self.transform_y+90)--这里的123是因为变宽了向右移,60是变高了 用右下角对齐 需要往上移动
- self:CheckShowEffectAndAutoUse()
- else
- self.auction_group:SetActive(false)
- self.designation_group_obj:SetActive(false)
- self.base_group:SetActive(true)
- SetAnchoredPosition(self.item_parent.transform , 9.5, 51.5)
- SetAnchoredPosition(self.name.transform, -1, 1)
- SetAnchoredPosition(self.effect_con.transform, 3, 61.5)
-
- if goods_basic.type == GoodsModel.TYPE.EQUIP then --10是装备
- if self:IsAutoEquip() then
- self.use_btn_text.text = "装备"
- self.close_btn:SetActive(false)
- else
- self.use_btn_text.text = "查看"
- end
- self:ChangeState()
- else
- self.use_btn_text.text = "使用"
- end
-
- if self.ui_style == ItemUseView.UIStyle.BatUse then
- self.addNumCon.gameObject:SetActive(true)
- SetAnchoredPositionY(self.use_btn.transform, -80)
- self.cur_use = num
- self.max_use = num
- self:ChangeCountNum()
- SetAnchoredPosition(self.transform, self.transform_x, self.transform_y+14)--这里的14是因为多了一个栏 用右下角对齐 需要往上移动
- else
- self.addNumCon.gameObject:SetActive(false)
- if self:IsShowAutoUse() then
- SetAnchoredPositionY(self.use_btn.transform, -52)
- else
- SetAnchoredPositionY(self.use_btn.transform, -64)
- end
- SetAnchoredPosition(self.transform, self.transform_x, self.transform_y)
- end
- self:CheckShowEffectAndAutoUse()
- end
- end
- end
- end
-
- function ItemUseView:LoadSuccess()
-
- self.use_btn = self:GetChild("contain/base_group/UseBtn").gameObject
- self.close_btn = self:GetChild("contain/base_group/CloseBtn").gameObject
-
- self.use_btn_text = self:GetChild("contain/base_group/UseBtn/Text"):GetComponent("TextMeshProUGUI")
- self.name = self:GetChild("contain/item_name"):GetComponent("TextMeshProUGUI")
-
- self.item_parent = self:GetChild("contain/ItemParent")
-
- -- self.item_icon = AwardItem.New(self.item_parent, nil, "Top")
- self.item_icon = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_parent)
- self.item_icon:SetItemSize(78, 78)
-
- self.transform.localPosition = Vector3(ScreenWidth/2 - 490,-ScreenHeight/2 + 160,0)
-
- self.tip_text = self:GetChild("contain/base_group/Tip"):GetComponent("TextMeshProUGUI")
- self.tip_obj = self:GetChild("contain/base_group/Tip").gameObject
-
- self.effect_con = self:GetChild("contain/EffectCon").gameObject
-
- self.Border_img = self:GetChild("contain/base_group/Border"):GetComponent("Image")
-
- self.addNumCon = self:GetChild("contain/base_group/addNumCon")
- self.del_btn_obj = self:GetChild("contain/base_group/addNumCon/del_btn").gameObject
- self.add_btn_obj = self:GetChild("contain/base_group/addNumCon/add_btn").gameObject
- self.count_btn_obj = self:GetChild("contain/base_group/addNumCon/count_btn").gameObject
- self.count_num_txt = self:GetChild("contain/base_group/addNumCon/count_num"):GetComponent("TextMeshProUGUI")
-
- self.base_group = self:GetChild("contain/base_group").gameObject
- self.auction_group = self:GetChild("contain/auction_group").gameObject
- self.base_price_txt = self:GetChild("contain/auction_group/base_price"):GetComponent("TextMeshProUGUI")
- self.fixed_price_txt = self:GetChild("contain/auction_group/fixed_price"):GetComponent("TextMeshProUGUI")
- self.close_btn_2 = self:GetChild("contain/auction_group/CloseBtn2").gameObject
- self.auction_btn = self:GetChild("contain/auction_group/auctionBtn").gameObject
-
- --称号快捷使用
- self.nodes = {
- "contain/designation_group:obj", "contain/designation_group/designation_btn:obj", "contain/designation_group/CloseBtn3:obj",
- "contain/designation_group/designation_time_text:tmp", "contain/designation_group/designation_tip_text:tmp",
- "contain/designation_group/designation_name_text:tmp", "contain/designation_group/designation_image:img:obj",
- "contain:obj"
- }
- self:GetChildren(self.nodes)
- GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW_SUCCESS, ItemUseView.ViewDepth)
- self.transform:SetAsLastSibling()
- end
-
- function ItemUseView:InitEvent()
- local function onBtnClickHandler(target, x, y)
- if target == self.use_btn then
- self:CloseGuide()
- self:UseCall()
- self:NextItemUse(true)
- elseif target == self.auction_btn then
- self:AuctionCall()
- self:NextItemUse(true)
- elseif target == self.close_btn then
- self:CloseGuide()
- self:NextItemUse(true)
- elseif target == self.close_btn_2 then
- self:NextItemUse(true)
- elseif target == self.CloseBtn3_obj then
- self:NextItemUse(true)
- elseif target == self.del_btn_obj then
- self.cur_use = self.cur_use - 1
- self:ChangeCountNum()
-
- elseif target == self.add_btn_obj then
- self.cur_use = self.cur_use + 1
- self:ChangeCountNum()
-
- elseif target == self.count_btn_obj then
- local function call_back(final_number)
- self.cur_use = final_number
- self:ChangeCountNum()
- end
-
- EventSystem.Fire(GlobalEventSystem,EventName.OPEN_CALCULATOR_VIEW,self.max_use,call_back, Vector3(x, y, 0), 9)
- elseif target == self.designation_btn_obj then
- self:UseCall()
- self:NextItemUse(true)
- end
- end
-
- AddClickEventHz(0.5,self.use_btn,onBtnClickHandler,LuaSoundManager.SOUND_UI.CLOSE)
- AddClickEventHz(0.5,self.designation_btn_obj,onBtnClickHandler,LuaSoundManager.SOUND_UI.CLOSE)
- AddClickEventHz(0.5,self.auction_btn,onBtnClickHandler,LuaSoundManager.SOUND_UI.CLOSE)
- AddClickEventHz(0.5,self.close_btn,onBtnClickHandler,LuaSoundManager.SOUND_UI.CLOSE)
- AddClickEventHz(0.5,self.close_btn_2,onBtnClickHandler,LuaSoundManager.SOUND_UI.CLOSE)
- AddClickEventHz(0.5,self.CloseBtn3_obj,onBtnClickHandler,LuaSoundManager.SOUND_UI.CLOSE)
- AddClickEvent(self.del_btn_obj,onBtnClickHandler)
- AddClickEvent(self.add_btn_obj,onBtnClickHandler)
- AddClickEvent(self.count_btn_obj,onBtnClickHandler)
-
- local change_dynamic = function (goods_id)
- self:ChangeState()
- end
- self.dynamic_event_id = GlobalEventSystem:Bind(GoodsModel.CHANGE_GOODS_DYNAMIC,change_dynamic)
-
- local function onRefreshItemNum()
- if self.vo then
- local goods_id = self.vo.goods_id
- local num = self.model:GetGoodsNumById(goods_id)
- if self.num ~= num and num > 0 then
- self.num = num
- if self.item_icon then
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.vo.type_id)
- if goods_basic.type == GoodsModel.TYPE.EQUIP then
- local stren_data = EquipModel:getInstance():GetBagEquipAwaraItemInfo(self.vo)
- stren_data.equip_key = "EquipView"
- stren_data.key_value = "show_bag_view"
- self.stren_data = stren_data
- self.item_icon:SetData(self.vo.type_id,num,self.vo.color,stren_data)
- local can_tip, flag = EquipModel:getInstance():EquipCanShowGoodsTip(self.vo)
- self.item_icon:ChangeEquipState(flag)
- else
- self.item_icon:SetData(self.vo.type_id,num,self.vo.color)
- if self:IsBatchUseGoods(goods_basic, num) then
- self.max_use = num
- self.cur_use = num
- self.count_num_txt.text = tostring(self.cur_use)
- end
- end
- end
- end
- end
- end
- self.refresh_item_id = GoodsModel:getInstance():Bind(GoodsModel.CHANGE_BAGLIST,onRefreshItemNum)
-
- local function item_click_func(target,target2,x,y)
- if self.vo then
- local type_id = self.vo.type_id
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
-
- if goods_basic then
- if goods_basic.type == GoodsModel.TYPE.EQUIP then --装备
- if goods_basic.subtype == 12 then --时装物品
- UIToolTipMgr:getInstance():AppendGoodsTips(goods_basic.type_id, x, y,self.vo)
- else
- self.stren_data.key_value = "show_bag_view"
- UIToolTipMgr:getInstance():AppendEquipTips(goods_basic.type_id, x, y,self.vo,nil,true,nil,self.stren_data and self.stren_data.key_value)
- end
- else --普通物品
- UIToolTipMgr:getInstance():AppendGoodsTips(goods_basic.type_id, x, y, self.vo)
- end
- end
- end
- end
-
- if self.item_icon then
- self.item_icon.ClickCallFun = item_click_func
- end
-
- --监听别的itemuseview打开了
- local function onOpenItemUseViewSuccess(layer_count)
- if self.is_in_anim then
- self:ResetViewUIZDepth(layer_count)
- end
- end
- self:BindEvent(GlobalEventSystem, EventName.OPEN_ITEM_USE_VIEW_SUCCESS, onOpenItemUseViewSuccess)
-
- local function onSceneStartHandler()
- self:ChangeSceneHandle()
- end
- self:ChangeSceneHandle()
- self:BindEvent(GlobalEventSystem, EventName.SCENE_LOAD_VIEW_COMPLETE, onSceneStartHandler)
-
- local function onGuideTrigger()
- self:AddToStageHandler()
- end
- self:BindEvent(GlobalEventSystem, EventName.TRIGGER_GUIDE_TYPE, onGuideTrigger)
-
- local function onLittleMove(is_out)
- if not is_out then
- self:ResetViewUIZDepth(ItemUseView.ViewDepth)
- end
- end
- self:BindEvent(GlobalEventSystem, EventName.PLAY_MAINUI_MOVIE_EVENT, onLittleMove)
-
- local function onMarkGoodsUpdate( )
- if MarketModel:getInstance():IsMaxMarketGoods() then
- if self.ui_style == ItemUseView.UIStyle.Auction then
- self:NextItemUse(true)
- end
- end
- end
- self.mark_goods_update_id = MarketModel:getInstance():BindOne("goods_shelves_list", onMarkGoodsUpdate)
- end
-
- function ItemUseView:OnCLickUseBtn( )
- if self.vo then
- if self:IsEquipNormalType() then
- --如果数 可自动穿戴的装备,直接穿
- if self:IsAutoEquip() then
- EquipModel:getInstance():WearEquip( self.vo, true )
- else
- --如果该部位有装备,则打开装备对比,并且打开背包
- local serires, pos = self:GetEquipSeriesAndPos()
- local equip = GoodsModel.getInstance():GetTargetSeriesTargetPosEquip(serires, pos)
- if equip then
- GlobalEventSystem:Fire(EventName.ITEM_USE_DELAY_OPEN_EQUIP_TOOL, self.vo)
- end
- GoodsModel.getInstance():SetBagEquipChooseIndex(serires)
- GlobalEventSystem:Fire(EventName.OPEN_BAG_VIEW_IF_NOT, 1)
- --OpenFun.Open(150,1)
- end
- self:CustomClose()
- else
- local use_args = {}
- local type_id = self.vo.type_id
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- if self:IsBatchUseGoods(goods_basic, self.vo.goods_num) then
- use_args.force_batch_use = true
- use_args.use_num = self.cur_use > 0 and self.cur_use or 1
- end
- GoodsModel:getInstance():Fire(GoodsModel.TRY_TO_USE_GOODS, self.vo, nil, use_args)
- self:CustomClose()
- end
- end
- end
-
- function ItemUseView:NextItemUse(force_oepn)
- local goods_id = self.vo.goods_id
- self.model:ClearIdData(goods_id)
- local vo = self.model:GetItemShowVo()
- if vo then
- local function call_back()
- self:Close()
- --GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,vo, nil, force_oepn)
- end
- self:DoViewAnim(false, call_back)
- GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,vo, nil, force_oepn, true)
- else
- self:CustomClose()
- end
- end
-
- function ItemUseView:CustomClose()
- local function call_back()
- self:Close()
- end
- self:DoViewAnim(false, call_back)
- end
-
- function ItemUseView:IsEquipNormalType()
- if self.vo then
- local type_id = self.vo.type_id
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- if goods_basic then
- return goods_basic.type == GoodsModel.TYPE.EQUIP
- end
- end
- return false
- end
-
- function ItemUseView:IsItemType()
- if self.vo then
- local type_id = self.vo.type_id
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- if goods_basic then
- return goods_basic.type ~= GoodsModel.TYPE.God and goods_basic.type ~= GoodsModel.TYPE.DESIGNATION
- end
- end
- return false
- end
-
- function ItemUseView:Show()
- self.gameObject:SetActive(true)
- end
-
- function ItemUseView:Hide()
- self.gameObject:SetActive(false)
- end
-
- function ItemUseView:IsShowEffect()
- return false
- end
-
- function ItemUseView:GetGoodsId()
- if self.vo then
- return self.vo.goods_id
- end
- return nil
- end
-
- function ItemUseView:GetTypeId()
- if self.vo then
- return self.vo.type_id
- end
- return nil
- end
-
- function ItemUseView:ShowTipText()
- if self:IsEquipNormalType() or self.model:IsEquipSpecialType(self.vo.type_id) then
- self.tip_text.text = "<color=#ffa229>"..self.sec .."</color>".."秒后自动装备"
- elseif self:IsItemType() then
- self.tip_text.text = "<color=#ffa229>"..self.sec .."</color>".."秒后自动使用"
- elseif self:IsDesignationGoods() then
- self.designation_time_text_tmp.text = "<color=#ffa229>"..self.sec .."</color>".."秒后自动穿戴"
- else
- self.tip_text.text = "<color=#ffa229>"..self.sec .."</color>".."秒后自动装备"
- end
- end
-
- function ItemUseView:CheckShowEffectAndAutoUse()
- if self:IsShowEffect() then
- self.effect_con:SetActive(true)
-
- local function load_end_func( )
- local renders = self.effect_con:GetComponentsInChildren(typeof(UnityEngine.Renderer))
- if renders then
- for i = 0, renders.Length - 1 do
- local render = renders[i]
- render.sortingOrder = 111
- end
- end
- end
-
- self:AddUIEffect("ui_effect_yindao_biankuang", self.effect_con.transform, self.layer_name, nil, nil, true, nil, nil,nil,load_end_func)
- else
- self.effect_con:SetActive(false)
- end
-
- if self:IsShowAutoUse() or self.forceAutoSec then
- self:ClearTimer()
- self.tip_obj:SetActive(true)
-
- self.sec = self.forceAutoSec or 5
- self:ShowTipText()
- local function onTimer()
- self.sec = self.sec - 1
- if self.sec < 1 then
- self:OnCLickUseBtn()
- self:ClearTimer()
- self:NextItemUse(true)
- else
- self:ShowTipText()
- end
- end
- self.timer_id = GlobalTimerQuest:AddPeriodQuest(onTimer,1,-1)
- else
- self.tip_obj:SetActive(false)
- end
- end
-
- function ItemUseView:ClearTimer()
- if self.timer_id then
- GlobalTimerQuest:CancelQuest(self.timer_id)
- self.timer_id = nil
- end
- end
-
- function ItemUseView:ChangeState( )
- self.item_icon:ChangeEquipState(nil)
- local basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(self.type_id)
- if basic == nil then
- return
- end
- if self.vo.type == GoodsModel.TYPE.EQUIP and self.vo.goods_num > 0 then
- local can_tip, flag = EquipModel:getInstance():EquipCanShowGoodsTip(self.vo)
- self.item_icon:ChangeEquipState(flag)
- end
- end
-
- --5秒后自动关闭,并清除所有数据
- function ItemUseView:StartCloseTimer( )
- local time = 5
- local function onTimer()
- time = time -1
- if time< 0 then
- --清除数据
- local goods_id = self.vo.goods_id
- self.model:ClearIdData(goods_id)
- local vo = self.model:GetItemShowVo()
- if vo then
- local function call_back()
- self:Close()
- --GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,vo)
- end
- self:DoViewAnim(false, call_back)
- GlobalEventSystem:Fire(EventName.OPEN_ITEM_USE_VIEW,vo)
- else
- self:CustomClose()
- end
- end
- end
- self.close_timer_id = GlobalTimerQuest:AddPeriodQuest(onTimer,1,-1)
- end
-
- function ItemUseView:ClearCloseTimer()
- if self.close_timer_id then
- GlobalTimerQuest:CancelQuest(self.close_timer_id)
- self.close_timer_id = nil
- end
- end
-
- --是否显示自动使用提示
- function ItemUseView:IsShowAutoUse( )
- if (self:IsEquipNormalType() and self:IsAutoEquip())
- then
- return true
- end
- -- if ((self:IsEquipNormalType() and self:IsAutoEquip()) or self.model:IsEquipSpecialType(self.vo.type_id) or self:IsDesignationGoods())
- -- and RoleManager.Instance.mainRoleInfo.level < 150 then
- -- return true
- -- end
- end
-
- function ItemUseView:UseCall( )
- self:ResetCloseTimer()
- self:OnCLickUseBtn()
- end
-
- function ItemUseView:AuctionCall( )
- self:ResetCloseTimer()
- GlobalEventSystem:Fire(EventName.OPEN_MARKET_VIEW, MarketConst.TabId.SalesHall)
- end
-
- --是否可以批量批量使用
- function ItemUseView:IsBatchUseGoods( goods_basic, num )
- return goods_basic and goods_basic.type ~= GoodsModel.TYPE.EQUIP and goods_basic.batch_use == 1 and num > 1
- end
-
- --是否可以上架(可以上架,并且不是本职业使用,的装备)
- function ItemUseView:IsActionEquip(goods_vo, goods_basic )
- local bool = GetModuleOpenLevel(155)--得市场开了才能弹出
- return bool and not MarketModel:getInstance():IsMaxMarketGoods() and self.goods_model:IsEquipCanAuctionButNoUse(goods_vo, goods_basic)
- end
-
- function ItemUseView:IsDesignationGoods( goods_basic )
- if goods_basic then
- return goods_basic.type == GoodsModel.TYPE.DESIGNATION
- end
- if self.vo then
- local type_id = self.vo.type_id
- local goods_basic = GoodsModel:getInstance():GetGoodsBasicByTypeId(type_id)
- if goods_basic then
- return goods_basic.type == GoodsModel.TYPE.DESIGNATION
- end
- end
- return false
- end
-
-
- function ItemUseView:ChangeCountNum()
- if self.max_use == 0 then return end
- self.cur_use = self.cur_use < 1 and 1 or self.cur_use
- self.cur_use = self.cur_use > self.max_use and self.max_use or self.cur_use
- self.count_num_txt.text = tostring(self.cur_use)
- end
-
-
- function ItemUseView:DoViewAnim(show, call_back)
- if not ClientConfig.view_scale_ani_mode then
- if call_back then
- call_back()
- end
- return
- end
-
- if not self.gameObject then return end
- self.is_in_anim = true
- local tween_type = show and TweenFunc.EASE_OUT_BACK or TweenFunc.EASE_IN_BACK
- local cfg = show and BaseView.OpenCloseScaleCfg[1] or BaseView.OpenCloseScaleCfg[2]
- local cur_scale = Vector3.New(cfg.start_scale, cfg.start_scale, cfg.start_scale)
- local target_scale = Vector3.New(cfg.end_scale, cfg.end_scale, cfg.end_scale)
- --local target_scale = Vector3.New(3,3, 3)
- local time = cfg.time
- SetLocalScale(self.gameObject.transform, cur_scale.x, cur_scale.y, cur_scale.z)
- if self.scale_anim_id then
- TweenLite.Stop(self.scale_anim_id)
- self.scale_anim_id = nil
- end
- self:ResetUIZDepth()
- self.scale_anim_id = TweenLite.to(self, self.gameObject.transform, TweenLite.UiAnimationType.SCALE, target_scale, time, call_back, tween_type)
- end
-
- function ItemUseView:ResetViewUIZDepth(layer_count)
- UIDepth.SetUIDepth(self.gameObject,true, layer_count + 10)
- end
-
- function ItemUseView:ChangeSceneHandle()
- local is_hide = SceneManager.Instance:IsJumpOneScene() or SceneManager.Instance:IsMirrorPkRankScene()
- self.contain_obj:SetActive(not is_hide)
-
- end
-
- --是否是可以自动传的装备(1代装备)
- function ItemUseView:IsAutoEquip()
- if not self.vo or not self.vo.type_id then return false end
- --105级之前自动穿戴
- if RoleManager.Instance.mainRoleInfo.level <= 105 then
- return true
- end
- local cfg = Config.Equipment[self.vo.type_id]
- --1代装备,绿色品质,普通装备(不包括首饰和守护)
- return cfg and cfg.series == 1 and self.vo.color <= 1 and cfg.equip_type < EquipModel.EquipType.Necklace
- end
-
- --当前装备的代数和部位
- function ItemUseView:GetEquipSeriesAndPos()
- local cfg = Config.Equipment[self.vo.type_id]
- if cfg then
- return cfg.series, cfg.equip_type
- end
- end
-
- function ItemUseView:AddToStageHandler()
- local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_ONE,1)
- or GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_TWO,1)
- if not helpVo then return end
- local help_type = helpVo.help_type
- if help_type == HelpType.TYPE_EQUIP_COLLECT_ONE or help_type == HelpType.TYPE_EQUIP_COLLECT_TWO then
- local step = helpVo.step
- local button = false
- if (help_type == HelpType.TYPE_EQUIP_COLLECT_ONE and step == 1) or (help_type == HelpType.TYPE_EQUIP_COLLECT_TWO and step == 1) then
- button = self.use_btn
- end
- if button then
- local function call_back()
-
- end
- GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, button.transform.parent.transform, call_back, helpVo, self.layout_file)
- end
- GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK)
- GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT)
- else
- GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW)
- end
- end
-
- function ItemUseView:Close()
- self:CloseGuide()
- BaseView.Close(self)
- end
-
- function ItemUseView:CloseGuide()
- local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_ONE,1)
- or GuideModel:getInstance():GetHelpVo(HelpType.TYPE_EQUIP_COLLECT_TWO,1)
- if helpVo then
- GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
- end
- end
-
-
-
|