源战役客户端
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 

783 linhas
27 KiB

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