miduo_client/Assets/ManagedResources/~Lua/Modules/HelpFight/HelpFightPanel.lua

193 lines
6.9 KiB
Lua

require("Base/BasePanel")
HelpFightPanel = Inherit(BasePanel)
local assConfig=ConfigManager.GetConfig(ConfigName.AssistanceConfig)
--初始化组件(用于子类重写)
function HelpFightPanel:InitComponent()
self.spLoader = SpriteLoader.New()
self.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, {showType = UpViewOpenType.ShowLeft})
self.btnBack = Util.GetGameObject(self.gameObject, "Back/BackBtn")
self.AddProTxt=Util.GetGameObject(self.gameObject, "AddProTxt"):GetComponent("Text")
self.helpBtn = Util.GetGameObject(self.gameObject, "HelpBtn")
self.scrollRect=Util.GetGameObject(self.gameObject, "scroll")
self.prefab = Util.GetGameObject(self.gameObject, "item")
self.tipInfo=Util.GetGameObject(self.gameObject, "tipInfo"):GetComponent("Text")
self.ScrollBar=Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar")
local v2 = self.scrollRect:GetComponent("RectTransform").rect
self.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView, self.scrollRect.transform,self.prefab, self.ScrollBar, Vector2.New(v2.width, v2.height), 1, 4, Vector2.New(75,20))
self.ScrollView.moveTween.MomentumAmount = 1
self.ScrollView.moveTween.Strength = 1
end
--绑定事件(用于子类重写)
function HelpFightPanel:BindEvent()
Util.AddClick(self.btnBack,function()
self:ClosePanel()
end)
Util.AddClick(self.helpBtn,function()
UIManager.OpenPanel(UIName.HelpPopup, 146,0,0)
end)
end
--添加事件监听(用于子类重写)
function HelpFightPanel:AddListener()
end
--移除事件监听(用于子类重写)
function HelpFightPanel:RemoveListener()
end
--界面打开时调用(用于子类重写)
function HelpFightPanel:OnOpen()
end
function HelpFightPanel:OnSortingOrderChange()
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function HelpFightPanel:OnShow()
self.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.HongMengTower})
local list={}
local heroList=HelpFightManager.HelpFightList
for key,v in ConfigPairs(assConfig) do
--LogError("id=="..v.Id)
local data={}
data.config=v
if heroList[key].heroId~="" and heroList[key].heroId~=nil then
data.hero=HeroManager.GetSingleHeroData(heroList[key].heroId)
end
data.state=heroList[key].state
list[key]=data
end
LogError("list len==============="..#list)
self.ScrollView:SetData(list, function (index, go)
self:SingleItemDataShow(go, list[index],index)
end)
local addProList,addNum=HelpFightManager.GetAllAddPro()
if #addProList==0 then
local aaa={1,2,3,4}
for i=1,#aaa do
addProList[aaa[i]]=0
end
end
local str=""
for k, v in pairs(addProList) do
str=str..GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.PropertyConfig,k).Info).." +"..v.." "..string.format("(阵位加成%s%%)\n\n",addNum/100)
end
self.AddProTxt.text=str
--self.tipInfo.text=""
end
function HelpFightPanel:SingleItemDataShow(_go,_data,_index)
LogError("_data.id================================".._data.config.Id)
local frame=Util.GetGameObject(_go,"Box/Empty/frame"):GetComponent("Image")
local infoTxt=Util.GetGameObject(_go,"infoTxt"):GetComponent("Text")
local lockObj =Util.GetGameObject(_go,"Box/Empty/lock")
local tipObj=Util.GetGameObject(_go,"Box/Empty/tipInfo")
local heroObj=Util.GetGameObject(_go,"GameObject")
local frame1 = Util.GetGameObject(heroObj, "frame"):GetComponent("Image")
local lvGo = Util.GetGameObject(heroObj, "lv")
local icon = Util.GetGameObject(heroObj, "icon"):GetComponent("Image")
local proIcon = Util.GetGameObject(heroObj, "proIcon")
local redPoint = Util.GetGameObject(_go, "redPoint")
--local name = Util.GetGameObject(heroObj, "name"):GetComponent("Text")
local starGrid = Util.GetGameObject(heroObj, "star")
local tipTxt=Util.GetGameObject(_go,"Box/Empty/tipInfo/Text"):GetComponent("Text")
local proTxt=Util.GetGameObject(_go,"proList/pro1"):GetComponent("Text")
frame.sprite= self.spLoader:LoadSprite(GetBgByHeroNatural(_data.config.Quality))
local title=GetHeroNaturalStrByNatural(_data.config.Quality).." "..HeroElementDef[_data.config.ProfessionLimit]
redPoint:SetActive(HelpFightManager.CheckRedPointByPosition(_index))
infoTxt.text=title
lockObj:SetActive(_data.state==0)
tipObj:SetActive(_data.state==0)
tipTxt.text=string.format("%s天后开启",_data.config.Experience)
local proList={}
if _data.hero then
heroObj:SetActive(true)
frame1.sprite = self.spLoader:LoadSprite(GetHeroQuantityImageByquality(_data.hero.heroConfig.Natural))
lvGo:SetActive(true)
Util.GetGameObject(lvGo.transform, "Text"):GetComponent("Text").text = _data.hero.lv
icon.sprite = self.spLoader:LoadSprite(_data.hero.icon)
proIcon:GetComponent("Image").sprite = self.spLoader:LoadSprite(GetProStrImageByProNum(_data.hero.changeProId))
--name.text = SubString2(GetLanguageStrById(_data.hero.heroConfig.ReadingName),8)
local star,starType = _data.hero.GetStar(1)
SetHeroStars(self.spLoader, starGrid, star,starType,nil,nil,Vector2.New(0,1))
Util.SetParticleSortLayer(starGrid,self.sortingOrder + 1)
local config=ConfigManager.TryGetConfigDataByDoubleKey(ConfigName.AssistanceProperty,"Quality",_data.hero.heroConfig.Natural,"Star",_data.hero.star)
if config then
proList=config.Property
end
Util.AddClick(icon.gameObject,function ()
local data={}
data.title=title
data.hero=_data.hero
data.limitQua=_data.config.Quality
data.limitPro=_data.config.ProfessionLimit
data.pos=_index
UIManager.OpenPanel(UIName.HelpFightListPanel,data,self)
end)
else
proList={{1,0},{2,0},{3,0},{4,0}}
heroObj:SetActive(false)
end
--显示属性
local str=""
for i = 1, #proList do
local k=proList[i][1]
local v=proList[i][2]
str=str..GetLanguageStrById(ConfigManager.GetConfigData(ConfigName.PropertyConfig,i).Info).." +"..v.."\n"
end
proTxt.text=str
Util.AddClick(frame.gameObject,function()
local data={}
data.title=title
data.hero=nil
data.limitQua=_data.config.Quality
data.limitPro=_data.config.ProfessionLimit
data.pos=_index
UIManager.OpenPanel(UIName.HelpFightListPanel,data,self)
end)
end
--界面关闭时调用(用于子类重写)
function HelpFightPanel:OnClose()
end
--界面销毁时调用(用于子类重写)
function HelpFightPanel:OnDestroy()
self.spLoader:Destroy()
SubUIManager.Close(self.UpView)
end
return HelpFightPanel