174 lines
6.4 KiB
Lua
174 lines
6.4 KiB
Lua
require("Base/BasePanel")
|
|
HelpFightListPanel = Inherit(BasePanel)
|
|
local this = HelpFightListPanel
|
|
local curSelectHeroList = {}
|
|
local heroDataList = {}
|
|
local curNeedRoleNum
|
|
local openThisPanel
|
|
local curHeroData = {}
|
|
local isChange = false
|
|
--初始化组件(用于子类重写)
|
|
function HelpFightListPanel:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
this.BtnBack = Util.GetGameObject(self.gameObject, "btnBack")
|
|
this.title = Util.GetGameObject(self.gameObject, "bg/title"):GetComponent("Text")
|
|
this.mask = Util.GetGameObject(self.gameObject, "mask")
|
|
this.cardPre = Util.GetGameObject(self.gameObject, "item")
|
|
this.upHero = Util.GetGameObject(self.gameObject, "upObj/upHero")
|
|
local v = Util.GetGameObject(self.gameObject, "scroll"):GetComponent("RectTransform").rect
|
|
|
|
this.Scrollbar = Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar")
|
|
this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView,
|
|
Util.GetGameObject(self.gameObject, "scroll").transform,
|
|
this.cardPre, this.Scrollbar, Vector2.New(v.width, v.height), 1, 1, Vector2.New(10, 20))
|
|
this.ScrollView.moveTween.MomentumAmount = 1
|
|
this.ScrollView.moveTween.Strength = 1
|
|
this.NoneImage = Util.GetGameObject(self.gameObject, "NoneImage")
|
|
this.NoneImage.gameObject:SetActive(false)
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function HelpFightListPanel:BindEvent()
|
|
Util.AddClick(this.BtnBack, function()
|
|
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
|
self:ClosePanel()
|
|
end)
|
|
Util.AddClick(this.mask, function()
|
|
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
|
self:ClosePanel()
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function HelpFightListPanel:AddListener()
|
|
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function HelpFightListPanel:RemoveListener()
|
|
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
local curPos = 0
|
|
local limitQua = 0
|
|
local limitPro = 0
|
|
local openPanel = nil
|
|
function HelpFightListPanel:OnOpen(data, _openPanel)
|
|
openPanel = _openPanel
|
|
this.title.text = data.title
|
|
curPos = data.pos
|
|
limitQua = data.limitQua
|
|
limitPro = data.limitPro
|
|
this.RefreshWindow(data)
|
|
end
|
|
|
|
function HelpFightListPanel:OnShow()
|
|
isChange = false
|
|
end
|
|
|
|
local upHeroData = nil
|
|
function this.RefreshWindow(data)
|
|
local heroDataList = HeroManager.GetHeroDatasByNaturalAndProfession(limitQua, limitPro)
|
|
-- this.HeroSortData(heroDataList)
|
|
if not heroDataList or #heroDataList < 1 then
|
|
this.NoneImage.gameObject:SetActive(true)
|
|
else
|
|
this.NoneImage.gameObject:SetActive(false)
|
|
end
|
|
upHeroData = data.hero
|
|
this.upHero:SetActive(data.hero ~= nil)
|
|
this.ScrollView:SetData(heroDataList, function(index, go)
|
|
this.OnShowSingleCardData(go, heroDataList[index], curPos, false)
|
|
end, false, false)
|
|
if data.hero then
|
|
this.OnShowSingleCardData(this.upHero, data.hero, data.pos, true)
|
|
end
|
|
end
|
|
|
|
function this.OnShowSingleCardData(go, heroData, index, isUp) --isSelect 1选择 2 没选择
|
|
Util.GetGameObject(go.transform, "posIcon"):SetActive(false)
|
|
local frame = Util.GetGameObject(go.transform, "frame"):GetComponent("Image")
|
|
local lvGo = Util.GetGameObject(go.transform, "lv")
|
|
local icon = Util.GetGameObject(go.transform, "icon"):GetComponent("Image")
|
|
local proIcon = Util.GetGameObject(go.transform, "proIcon")
|
|
local name = Util.GetGameObject(go.transform, "name"):GetComponent("Text")
|
|
local starGrid = Util.GetGameObject(go.transform, "star")
|
|
local cardBtn = Util.GetGameObject(go.transform, "icon")
|
|
local proTxt = Util.GetGameObject(go.transform, "proList/pro1"):GetComponent("Text")
|
|
|
|
frame.sprite = this.spLoader:LoadSprite(GetHeroQuantityImageByquality(heroData.heroConfig.Natural))
|
|
lvGo:SetActive(true)
|
|
Util.GetGameObject(lvGo.transform, "Text"):GetComponent("Text").text = heroData.lv
|
|
icon.sprite = this.spLoader:LoadSprite(heroData.icon)
|
|
proIcon:GetComponent("Image").sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(heroData.changeProId))
|
|
name.text = GetLanguageStrById(heroData.heroConfig.ReadingName)
|
|
local star, starType = heroData.GetStar(1)
|
|
SetHeroStars(this.spLoader, starGrid, star, starType, nil, nil, Vector2.New(0, 1))
|
|
LogError("hero star==" .. star)
|
|
local config = ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.AssistanceProperty, "Quality",
|
|
heroData.heroConfig.Natural, "Star", heroData.star)
|
|
local str = ""
|
|
if config then
|
|
for i = 1, #config.Property do
|
|
local k = config.Property[i][1]
|
|
local v = config.Property[i][2]
|
|
str = str ..
|
|
GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.PropertyConfig, i).Info) .. " +" .. v .. "\n"
|
|
end
|
|
proTxt.text = str
|
|
end
|
|
Util.SetParticleSortLayer(starGrid, this.sortingOrder + 1)
|
|
local btn_up = Util.GetGameObject(go.transform, "btn_up")
|
|
Util.GetGameObject(go.transform, "btn_up/Text"):GetComponent("Text").text = Language[11563]
|
|
local btn_down = Util.GetGameObject(go.transform, "btn_down")
|
|
Util.GetGameObject(go.transform, "btn_down/Text"):GetComponent("Text").text = Language[11564]
|
|
btn_up:SetActive(isUp == false and upHeroData == nil)
|
|
btn_down:SetActive(isUp)
|
|
Util.AddOnceClick(btn_up, function()
|
|
NetManager.AssistUpDownRequest(curPos, heroData.dynamicId, 1, function()
|
|
local data = {}
|
|
data.hero = heroData
|
|
data.limitQua = limitQua
|
|
data.limitPro = limitPro
|
|
data.pos = curPos
|
|
this.RefreshWindow(data)
|
|
isChange = true
|
|
end)
|
|
end)
|
|
|
|
Util.AddOnceClick(btn_down, function()
|
|
LogError("heroData.dynamicId===" .. heroData.dynamicId)
|
|
LogError("curpos===================" .. curPos)
|
|
NetManager.AssistUpDownRequest(curPos, heroData.dynamicId, 2, function()
|
|
local data = {}
|
|
data.hero = nil
|
|
data.limitQua = limitQua
|
|
data.limitPro = limitPro
|
|
data.pos = curPos
|
|
this.RefreshWindow(data)
|
|
isChange = true
|
|
end)
|
|
end)
|
|
end
|
|
|
|
function this.HeroSortData(heroData)
|
|
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function HelpFightListPanel:OnClose()
|
|
if isChange then
|
|
openPanel:OnShow()
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function HelpFightListPanel:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
|
|
this.ScrollView = nil
|
|
end
|
|
|
|
return HelpFightListPanel
|