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

214 lines
9.1 KiB
Lua
Raw Normal View History

2020-06-23 18:36:24 +08:00
----- 献祭 -----
2020-05-09 13:31:21 +08:00
local this = {}
local sortingOrder=0
local tabSortType = 0
local tarHero
local selectHeroData={}--选择的英雄list did = data
2020-07-06 16:27:27 +08:00
local maxSelectNum = 30--最大选择数量
2020-05-09 13:31:21 +08:00
function this:InitComponent(gameObject)
--上部内容
this.helpBtn=Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/HelpBtn")
this.helpPos=this.helpBtn:GetComponent("RectTransform").localPosition
--回溯按钮
this.confirmBtn=Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/ConfirmBtn")
this.shopBtn=Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/shopBtn")
this.selectText = Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/selectNumText"):GetComponent("Text")
this.selectBtn = Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/btns/selectBtn")
this.noSelectBtn = Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/btns/noSelectBtn")
this.cardPre = Util.GetGameObject(gameObject,"item")
this.scrollbar = Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/Scrollbar"):GetComponent("Scrollbar")
2020-06-03 19:09:01 +08:00
this.Empty = Util.GetGameObject(gameObject,"Content/Resolve_Dismantle/Empty")
2020-05-09 13:31:21 +08:00
local v21 = Util.GetGameObject(gameObject, "Content/Resolve_Dismantle/ItemListRoot"):GetComponent("RectTransform").rect
this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, Util.GetGameObject(gameObject, "Content/Resolve_Dismantle/ItemListRoot").transform,
this.cardPre, this.scrollbar, Vector2.New(-v21.x*2, -v21.y*2), 1, 5, Vector2.New(45,15))
this.ScrollView.moveTween.MomentumAmount = 1
this.ScrollView.moveTween.Strength = 1
end
function this:BindEvent()
Util.AddClick(this.helpBtn,function()
UIManager.OpenPanel(UIName.HelpPopup,HELP_TYPE.Resolve_Dismantle,this.helpPos.x,this.helpPos.y)
end)
Util.AddClick(this.confirmBtn,function()
if tonumber(LengthOfTable(selectHeroData))==0 then
2020-06-23 18:36:24 +08:00
PopupTipPanel.ShowTip(Language[11787])
2020-05-09 13:31:21 +08:00
else
UIManager.OpenPanel(UIName.GeneralPopup,GENERAL_POPUP_TYPE.ResolveDismantle,
HeroManager.GetHeroReturnItems(selectHeroData,GENERAL_POPUP_TYPE.ResolveDismantle),selectHeroData)
end
end)
Util.AddClick(this.selectBtn, function()
this.QuickSelectListData(1)
if LengthOfTable(selectHeroData) > 0 then
this.noSelectBtn.gameObject:SetActive(true)
end
end)
Util.AddClick(this.noSelectBtn, function()
this.QuickSelectListData(2)
this.noSelectBtn.gameObject:SetActive(false)
end)
Util.AddClick(this.shopBtn, function()
local isActive, errorTip = ShopManager.IsActive(SHOP_TYPE.SOUL_CONTRACT_SHOP)
if not isActive then
2020-06-23 18:36:24 +08:00
PopupTipPanel.ShowTip(errorTip or Language[10528])
2020-05-09 13:31:21 +08:00
return
end
UIManager.OpenPanel(UIName.MainShopPanel, SHOP_TYPE.SOUL_CONTRACT_SHOP)
end)
end
function this:AddListener()
end
function this:RemoveListener()
end
function this:OnShow(...)
sortingOrder =0
this.SortTypeClick(sortingOrder)
end
--展示数据
function this.SortTypeClick(_sortType)
tabSortType=_sortType
selectHeroData={}
2020-07-13 11:15:53 +08:00
tarHero=HeroManager.GetAllHeroDataMsinusUpWar(_sortType,2)
2020-06-23 18:36:24 +08:00
this.selectText.text = Language[11775].."0/"..#tarHero
2020-05-09 13:31:21 +08:00
this.noSelectBtn.gameObject:SetActive(false)
this.SortHeroDatas(tarHero)
2020-06-03 19:09:01 +08:00
this.Empty:SetActive(#tarHero <= 0)
2020-05-09 13:31:21 +08:00
this.ScrollView:SetData(tarHero, function (index, go)
this.SingleHeroDataShow(go, tarHero[index])
end)
end
--英雄单个数据展示
function this.SingleHeroDataShow(go,_heroData)
local heroData = _heroData
local _go = go
Util.GetGameObject(_go.transform, "frame"):GetComponent("Image").sprite = Util.LoadSprite(GetHeroQuantityImageByquality(heroData.heroConfig.Quality))
Util.GetGameObject(_go.transform, "lv/Text"):GetComponent("Text").text = heroData.lv
Util.GetGameObject(_go.transform, "Text"):GetComponent("Text").text = heroData.heroConfig.ReadingName
Util.GetGameObject(_go.transform, "icon"):GetComponent("Image").sprite = Util.LoadSprite(GetResourcePath(heroData.heroConfig.Icon))
2020-06-03 19:09:01 +08:00
Util.GetGameObject(_go.transform, "posIcon"):SetActive(false)--:GetComponent("Image").sprite = Util.LoadSprite(heroData.professionIcon)
2020-05-09 13:31:21 +08:00
Util.GetGameObject(_go.transform, "proIcon"):GetComponent("Image").sprite = Util.LoadSprite(GetProStrImageByProNum(heroData.heroConfig.PropertyName))
--Util.GetGameObject(_go.transform, "heroStage"):GetComponent("Image").sprite = Util.LoadSprite(HeroStageSprite[heroData.heroConfig.HeroStage])
local starGrid = Util.GetGameObject(_go.transform, "star")
SetHeroStars(starGrid, heroData.star)
local choosed =Util.GetGameObject(_go.transform, "choosed")
local formationMask =Util.GetGameObject(_go.transform, "formationMask")
formationMask:SetActive(heroData.isFormation ~= "" )
local lockMask =Util.GetGameObject(_go.transform, "lockMask")
lockMask:SetActive(heroData.lockState == 1)
choosed:SetActive(selectHeroData[heroData.dynamicId] ~= nil)
local cardclickBtn = Util.GetGameObject(_go.transform, "icon")
2020-06-23 18:36:24 +08:00
this.selectText.text = Language[11775]..LengthOfTable(selectHeroData).."/"..#tarHero
2020-05-09 13:31:21 +08:00
Util.AddOnceClick(cardclickBtn, function()
if selectHeroData[heroData.dynamicId] then
choosed:SetActive(false)
selectHeroData[heroData.dynamicId] = nil
2020-06-23 18:36:24 +08:00
this.selectText.text = Language[11775]..LengthOfTable(selectHeroData).."/"..#tarHero
2020-05-09 13:31:21 +08:00
this.noSelectBtn.gameObject:SetActive(LengthOfTable(selectHeroData)>0)
return
end
2020-07-06 16:27:27 +08:00
if LengthOfTable(selectHeroData) >= maxSelectNum then
PopupTipPanel.ShowTip(string.format(Language[12211],maxSelectNum))
return
end
2020-05-09 13:31:21 +08:00
selectHeroData[heroData.dynamicId]=heroData
choosed:SetActive(true)
2020-06-23 18:36:24 +08:00
this.selectText.text = Language[11775]..LengthOfTable(selectHeroData).."/"..#tarHero
2020-05-09 13:31:21 +08:00
this.noSelectBtn.gameObject:SetActive(LengthOfTable(selectHeroData)>0)
end)
Util.AddOnceClick(formationMask, function()
if heroData.isFormation ~= "" then
-- 复位角色的状态
2020-06-23 18:36:24 +08:00
MsgPanel.ShowTwo(Language[11788]..heroData.isFormation..Language[11789], nil, function()
2020-05-09 13:31:21 +08:00
if heroData.isFormations[1] then
if heroData.isFormations[1] == FormationTypeDef.FORMATION_NORMAL then
UIManager.OpenPanel(UIName.FormationPanelV2, FORMATION_TYPE.SAVE_FORMATION)
elseif heroData.isFormations[1] == FormationTypeDef.FORMATION_ARENA_DEFEND then
JumpManager.GoJump(8001)
elseif heroData.isFormations[1] == FormationTypeDef.FORMATION_ENDLESS_MAP then
JumpManager.GoJump(57001)
end
end
end)
return
end
end)
Util.AddOnceClick(lockMask, function()
if heroData.lockState == 1 then
2020-06-23 18:36:24 +08:00
MsgPanel.ShowTwo(Language[11790], nil, function()
2020-05-09 13:31:21 +08:00
NetManager.HeroLockEvent(heroData.dynamicId,0,function ()
2020-06-23 18:36:24 +08:00
PopupTipPanel.ShowTip(Language[11791])
2020-05-09 13:31:21 +08:00
HeroManager.UpdateSingleHeroLockState(heroData.dynamicId,0)
lockMask:SetActive(false)
end)
end)
return
end
end)
end
--英雄排序
function this.SortHeroDatas(_heroDatas)
--上阵最优先星级优先同星级等级优先同星级同等级按sortId排序。排序时降序排序。
table.sort(_heroDatas, function(a, b)
if a ==nil or b == nil then
return
end
if a.isFormation == "" and b.isFormation == "" then
if a.lockState == b.lockState then
if a.heroConfig.Natural ==b.heroConfig.Natural then
if a.star == b.star then
if a.lv == b.lv then
return a.heroConfig.Id > b.heroConfig.Id
else
return a.lv < b.lv
end
else
return a.star < b.star
end
else
return a.heroConfig.Natural < b.heroConfig.Natural
end
else
return a.lockState < b.lockState
end
else
return a.isFormation == "" and not b.dynamicId ~= ""
end
end)
end
--快速选择英雄 或者 装备
function this.QuickSelectListData(type)
if type == 1 then
selectHeroData={}
for k, v in pairs(tarHero) do
2020-07-06 16:27:27 +08:00
if LengthOfTable(selectHeroData)<maxSelectNum and v.isFormation == "" and v.lockState == 0 then
2020-05-09 13:31:21 +08:00
selectHeroData[v.dynamicId]=v
else
break
end
end
this.ScrollView:SetData(tarHero, function (index, go)
this.SingleHeroDataShow(go, tarHero[index])
end)
else
selectHeroData={}
this.ScrollView:SetData(tarHero, function (index, go)
this.SingleHeroDataShow(go, tarHero[index])
end)
end
end
function this:OnClose()
end
function this:OnDestroy()
end
2020-06-23 18:36:24 +08:00
return this