miduo_client/Assets/ManagedResources/~Lua/Modules/Resolve/View/Resolve_EquipTreasure.lua

173 lines
7.8 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

----- 宝器分解 -----
local this = {}
local sortingOrder=0
local tabSortType = 0
local tarEquipTreasure
local selectEquipTreasureData={}--选择的宝器list did = data
local maxSelectNum = 30--最大选择数量
function this:InitComponent(gameObject)
--上部内容
this.helpBtn=Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/HelpBtn")
this.helpPos=this.helpBtn:GetComponent("RectTransform").localPosition
--回溯按钮
this.confirmBtn=Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/ConfirmBtn")
this.shopBtn=Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/shopBtn")
this.selectText = Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/selectNumText"):GetComponent("Text")
Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/btns").gameObject:SetActive(false)
this.selectBtn = Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/btns/selectBtn")
this.noSelectBtn = Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/btns/noSelectBtn")
this.cardPre = Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/equipTreasurePre")
this.scrollbar = Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/Scrollbar"):GetComponent("Scrollbar")
this.Empty = Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/Empty")
this.EmptyText = Util.GetGameObject(gameObject,"Content/Resolve_EquipTreasure/Empty/Bg/Text"):GetComponent("Text")
this.EmptyText.text = "无可分解宝物!"
local v21 = Util.GetGameObject(gameObject, "Content/Resolve_EquipTreasure/ItemListRoot"):GetComponent("RectTransform").rect
this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(gameObject, "Content/Resolve_EquipTreasure/ItemListRoot").transform,
this.cardPre, this.scrollbar, Vector2.New(v21.width, v21.height), 1, 5, Vector2.New(43,15))
this.ScrollView.moveTween.MomentumAmount = 1
this.ScrollView.moveTween.Strength = 1
maxSelectNum =tonumber(ConfigManager.GetConfigData(ConfigName.SpecialConfig,55).Value)
Util.GetGameObject(this.confirmBtn,"Image"):GetComponent("Image").sprite = Util.LoadSprite("h_xianji_fenjieanniu_zh")
end
function this:BindEvent()
Util.AddClick(this.helpBtn,function()
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.TreasureResolve,this.helpPos.x,this.helpPos.y)
end)
Util.AddClick(this.confirmBtn,function()
if tonumber(LengthOfTable(selectEquipTreasureData))==0 then
PopupTipPanel.ShowTip("请选择需要分解的宝物!")
else
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.ResolveEquipTreasure,
EquipTreasureManager.GetEquipTreasureResolveItems(selectEquipTreasureData),selectEquipTreasureData)
end
end)
Util.AddClick(this.selectBtn, function()
this.QuickSelectListData(1)
if LengthOfTable(selectEquipTreasureData) > 0 then
this.noSelectBtn.gameObject:SetActive(true)
end
end)
Util.AddClick(this.noSelectBtn, function()
this.QuickSelectListData(2)
this.noSelectBtn.gameObject:SetActive(false)
end)
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(...)
local args={...}
sortingOrder =0
sortingOrder = PlayerManager.now_index or 0
LogGreen(PlayerManager.now_index)
this.SortTypeClick(sortingOrder,args[3],args[4])
end
--展示数据
function this.SortTypeClick(_sortType,isTop,isAni)
tabSortType=_sortType
selectEquipTreasureData={}
if tabSortType == 0 then
tarEquipTreasure=EquipTreasureManager.GetAllTreasures()
else
tarEquipTreasure=EquipTreasureManager.GetAllTreasures(tabSortType)
end
this.selectText.text = "已选:".."0/"..maxSelectNum
this.noSelectBtn.gameObject:SetActive(false)
tarEquipTreasure = this.SortDatas(tarEquipTreasure)
this.Empty:SetActive(#tarEquipTreasure <= 0)
this.ScrollView:SetData(tarEquipTreasure, function (index, go)
this.SingleHeroDataShow(go, tarEquipTreasure[index])
end,isTop,isAni)
-- this.ScrollView:ForeachItemGO(function(index, go)
-- Timer.New(function()
-- go.gameObject:SetActive(true)
-- PlayUIAnim(go.gameObject)
-- end, 0.001 * (index - 1)):Start()
-- end)
end
function this.SortDatas(tarEquipTreasure)
table.sort(
tarEquipTreasure,
function(a, b)
if a.quantity == b.quantity then
if a.lv == b.lv then
return a.refineLv < b.refineLv
else
return a.lv < b.lv
end
else
return a.quantity < b.quantity
end
end
)
return tarEquipTreasure
end
--英雄单个数据展示
function this.SingleHeroDataShow(go,_equipTreasureData)
local _go = go
Util.GetGameObject(_go.transform, "frame"):GetComponent("Image").sprite = Util.LoadSprite(GetHeroQuantityImageByquality(_equipTreasureData.itemConfig.Quantity))
Util.GetGameObject(_go.transform, "icon"):GetComponent("Image").sprite = Util.LoadSprite(GetResourcePath(_equipTreasureData.itemConfig.ResourceID))
Util.GetGameObject(_go.transform, "equipTreaseureStoringLv"):GetComponent("Text").text = _equipTreasureData.lv > 0 and _equipTreasureData.lv or ""
Util.GetGameObject(_go.transform, "equipTreaseureRefine"):GetComponent("Text").text = _equipTreasureData.refineLv > 0 and _equipTreasureData.refineLv or ""
Util.GetGameObject(_go.transform, "Text"):GetComponent("Text").text =SubString2(GetLanguageStrById(_equipTreasureData.itemConfig.Name),8)
Util.GetGameObject(_go.transform, "proIcon"):GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(_equipTreasureData.itemConfig.PropertyName))
local choosed =Util.GetGameObject(_go.transform, "choosed")
choosed:SetActive(selectEquipTreasureData[_equipTreasureData.idDyn] ~= nil)
local cardclickBtn = Util.GetGameObject(_go.transform, "icon")
this.selectText.text = "已选:"..LengthOfTable(selectEquipTreasureData).."/"..maxSelectNum
Util.AddOnceClick(cardclickBtn, function()
if selectEquipTreasureData[_equipTreasureData.idDyn] then
choosed:SetActive(false)
selectEquipTreasureData[_equipTreasureData.idDyn] = nil
this.selectText.text = "已选:"..LengthOfTable(selectEquipTreasureData).."/"..maxSelectNum
this.noSelectBtn.gameObject:SetActive(LengthOfTable(selectEquipTreasureData)>0)
return
end
if LengthOfTable(selectEquipTreasureData) >= maxSelectNum then
PopupTipPanel.ShowTip(string.format("最多选择%s个宝物",maxSelectNum))
return
end
selectEquipTreasureData[_equipTreasureData.idDyn]=_equipTreasureData
choosed:SetActive(true)
this.selectText.text = "已选:"..LengthOfTable(selectEquipTreasureData).."/"..maxSelectNum
this.noSelectBtn.gameObject:SetActive(LengthOfTable(selectEquipTreasureData)>0)
end)
end
--快速选择英雄 或者 装备
function this.QuickSelectListData(type)
if type == 1 then
selectEquipTreasureData={}
for k, v in pairs(tarEquipTreasure) do
if LengthOfTable(selectEquipTreasureData)<maxSelectNum then
selectEquipTreasureData[v.idDyn]=v
else
break
end
end
this.ScrollView:SetData(tarEquipTreasure, function (index, go)
this.SingleHeroDataShow(go, tarEquipTreasure[index])
end,true,true)
else
selectEquipTreasureData={}
this.ScrollView:SetData(tarEquipTreasure, function (index, go)
this.SingleHeroDataShow(go, tarEquipTreasure[index])
end,true,true)
end
end
function this:OnClose()
end
function this:OnDestroy()
end
return this