miduo_client/Assets/ManagedResources/~Lua/Modules/HandBook/HandBookHeroInfoPanel.lua

557 lines
26 KiB
Lua
Raw Normal View History

2020-05-09 13:31:21 +08:00
require("Base/BasePanel")
HandBookHeroInfoPanel = Inherit(BasePanel)
local this = HandBookHeroInfoPanel
local heroConFigData
local leftHeroData
local rightHeroData
local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
local heroLevelConfig = ConfigManager.GetConfig(ConfigName.HeroLevelConfig)
local itemConfig=ConfigManager.GetConfig(ConfigName.ItemConfig)
local allAddProVal = {}
local isClickLeftOrRightBtn = true
2020-06-28 17:52:29 +08:00
local index=0
local leftIndex=0
local rightIndex=0
2020-05-09 13:31:21 +08:00
local starType = 1
local type = 1
2020-06-28 17:52:29 +08:00
local _leftStar=0
local _curStar=0
local _rightStar=0
2020-05-09 13:31:21 +08:00
--初始化组件(用于子类重写)
function HandBookHeroInfoPanel:InitComponent()
self.btnBack = Util.GetGameObject(self.transform, "btnBack")
2020-08-24 23:38:17 +08:00
self.bgImageList = {}
for i = 1, 4 do
self.bgImageList[i] = Util.GetGameObject(self.transform, "bg/di ("..i..")")
end
2020-05-09 13:31:21 +08:00
self.curObj= Util.GetGameObject(self.transform, "curObj")
self.leftObj= Util.GetGameObject(self.transform, "leftObj")
self.rightObj= Util.GetGameObject(self.transform, "rightObj")
self.leftBtn = Util.GetGameObject(self.transform, "leftBtn/GameObject")
self.rightBtn = Util.GetGameObject(self.transform, "rightBtn/GameObject")
self.dragView = SubUIManager.Open(SubUIConfig.DragView, self.gameObject.transform)
self.dragView.transform:SetSiblingIndex(1)
self.starGrid = Util.GetGameObject(self.transform, "info/sartAndLvLayout/starGrid")
self.heroName = Util.GetGameObject(self.transform, "info/nameAndPossLayout/heroName"):GetComponent("Text")
self.profession = Util.GetGameObject(self.transform, "info/nameAndPossLayout/proImage/proImage"):GetComponent("Image")
--定位描述
self.posBgImage=Util.GetGameObject(self.transform,"pos"):GetComponent("Image")
self.posImage=Util.GetGameObject(self.transform,"pos/posImage"):GetComponent("Image")
self.posText=Util.GetGameObject(self.transform,"pos/posText"):GetComponent("Text")
--详情
Util.GetGameObject(self.transform,"roleInfoLayout/pro/atk/proName"):GetComponent("Text").text = propertyConfig[2].Info
Util.GetGameObject(self.transform,"roleInfoLayout/pro/hp/proName"):GetComponent("Text").text = propertyConfig[1].Info
Util.GetGameObject(self.transform,"roleInfoLayout/pro/phyDef/proName"):GetComponent("Text").text = propertyConfig[3].Info
Util.GetGameObject(self.transform,"roleInfoLayout/pro/magDef/proName"):GetComponent("Text").text = propertyConfig[4].Info
-- Util.GetGameObject(self.transform,"roleInfoLayout/pro/speed/proName"):GetComponent("Text").text = propertyConfig[5].Info
self.atkPro=Util.GetGameObject(self.transform,"roleInfoLayout/pro/atk/proValue"):GetComponent("Text")
self.hpPro=Util.GetGameObject(self.transform,"roleInfoLayout/pro/hp/proValue"):GetComponent("Text")
self.phyDef=Util.GetGameObject(self.transform,"roleInfoLayout/pro/phyDef/proValue"):GetComponent("Text")
self.magDef=Util.GetGameObject(self.transform,"roleInfoLayout/pro/magDef/proValue"):GetComponent("Text")
-- self.speed=Util.GetGameObject(self.transform,"roleInfoLayout/pro/speed/proValue"):GetComponent("Text")
self.skillGrid=Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Skill/skill")
self.selsectSkillImage=Util.GetGameObject(self.transform,"roleInfoLayout/selsectSkillImage")
self.allProButton=Util.GetGameObject(self.transform,"roleInfoLayout/allProButton")
--定位
-- self.location=Util.GetGameObject(self.transform,"roleInfoLayout/Location")
-- self.infoText=Util.GetGameObject(self.location,"Info"):GetComponent("Text")
-- self.radar = Util.GetGameObject(self.location, "ProRadarImage/Radar"):GetComponent("RadarChart")
self.skillName=Util.GetGameObject(self.transform,"roleInfoLayout/skillName")
self.skillLine=Util.GetGameObject(self.transform,"roleInfoLayout/skillLine")
self.talismanBtn=Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Other/TalismanBtn")
-- self.talismanFrame=Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Other/TalismanBtn"):GetComponent("Image")
self.talismanIcon=Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Other/TalismanBtn/Icon"):GetComponent("Image")
-- self.talismanInfo=Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Other/TalismanInfo")
self.btnStart = Util.GetGameObject(self.transform, "btnList/btnStart")
self.btnMaxStar = Util.GetGameObject(self.transform, "btnList/btnMaxStar")
2020-06-28 17:52:29 +08:00
self.btnMaxStar.gameObject:SetActive(false)
2020-05-09 13:31:21 +08:00
self.btnSkin = Util.GetGameObject(self.transform, "btnList/btnSkin")
self.selectBtn = Util.GetGameObject(self.transform, "btnList/selectBtn")
self.roleInfoLayout = Util.GetGameObject(self.transform,"roleInfoLayout")
self.roleStoryLayout = Util.GetGameObject(self.transform,"roleStoryLayout")
--传记
self.btnStory = Util.GetGameObject(self.transform, "btnList/btnStory")
self.infoTextStory = Util.GetGameObject(self.transform,"roleStoryLayout/infoBg/infoRect/infoText"):GetComponent("Text")
this.trigger=Util.GetEventTriggerListener(self.dragView.gameObject)
this.trigger.onBeginDrag = this.trigger.onBeginDrag + this.OnBeginDrag
this.trigger.onDrag = this.trigger.onDrag + this.OnDrag
this.trigger.onEndDrag = this.trigger.onEndDrag + this.OnEndDrag
this.talentBtn=Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Other/talentBtn")
this.talentProgress=Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Other/talentBtn/progress"):GetComponent("Text")
2020-05-15 16:52:35 +08:00
this.posBtn=Util.GetGameObject(self.gameObject,"posBtn")--定位按钮
2020-05-09 13:31:21 +08:00
end
--绑定事件(用于子类重写)
function HandBookHeroInfoPanel:BindEvent()
Util.AddClick(self.btnBack, function()
self:ClosePanel()
end)
Util.AddClick(self.allProButton, function()
2020-06-18 20:39:29 +08:00
UIManager.OpenPanel(UIName.RoleProInfoPopup,allAddProVal,heroConFigData,false)
2020-05-09 13:31:21 +08:00
end)
Util.AddClick(self.btnStart, function()
2020-06-23 18:36:24 +08:00
self:SetSelectBtn(self.btnStart, Language[11097])
2020-06-28 17:52:29 +08:00
if _curStar and _curStar>5 then
self:OnShowHeroData(1,2,_curStar)
else
self:OnShowHeroData(1,1,heroConFigData.Star)
end
2020-05-09 13:31:21 +08:00
end)
Util.AddClick(self.btnMaxStar, function()
2020-06-23 18:36:24 +08:00
self:SetSelectBtn(self.btnMaxStar, Language[11098])
2020-05-09 13:31:21 +08:00
if heroConFigData.RankupConsumeMaterial and #heroConFigData.RankupConsumeMaterial > 0 then
self:OnShowHeroData(1,2,heroConFigData.RankupConsumeMaterial[#heroConFigData.RankupConsumeMaterial][1])
else
self:OnShowHeroData(1,2,heroConFigData.Star)
end
end)
Util.AddClick(self.btnStory, function()
self:SetSelectBtn(self.btnStory, Language[12158])
2020-05-09 13:31:21 +08:00
self:OnShowHeroData(2,1,heroConFigData.Star)
end)
Util.AddClick(self.btnSkin, function()
2020-06-23 18:36:24 +08:00
PopupTipPanel.ShowTip(Language[11100])
2020-05-09 13:31:21 +08:00
end)
Util.AddClick(this.leftBtn, function()
self:LeftBtnOnClick()
end)
Util.AddClick(this.rightBtn, function()
self:RightBtnOnClick()
end)
2020-05-15 16:52:35 +08:00
Util.AddClick(this.posBtn, function()
UIManager.OpenPanel(UIName.RolePosInfoPopup,heroConFigData)
end)
2020-05-09 13:31:21 +08:00
end
local heroDatas = {}
2020-06-28 17:52:29 +08:00
--界面打开时调用(用于子类重写) 第一个参数 英雄数据 第二个参数 属性id
function HandBookHeroInfoPanel:OnOpen(...)
local temp={...}
2020-05-09 13:31:21 +08:00
heroDatas = {}
2020-06-28 17:52:29 +08:00
--[[for id, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.HeroConfig)) do
if (temp[2]==0 or v.PropertyName == temp[2]) then
2020-05-09 13:31:21 +08:00
table.insert(heroDatas,v)
end
end
2020-06-28 17:52:29 +08:00
self:SortHeroNatural(heroDatas)]]
heroConFigData = temp[1]
if(temp[3]) then
_curStar=temp[3]
end
heroDatas=PlayerManager.heroHandBookListData[_curStar]
for n,m in ipairs(heroDatas) do
if heroConFigData.Id==m.Id then
index=n
else
index=1
end
end
2020-05-09 13:31:21 +08:00
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function HandBookHeroInfoPanel:OnShow()
isClickLeftOrRightBtn = true
for i = 1, #heroDatas do
if heroConFigData.Id == heroDatas[i].Id then
index = i
end
end
2020-06-28 17:52:29 +08:00
2020-05-09 13:31:21 +08:00
self:UpdateLiveList()
this.leftLiveObj = this:LoadHerolive(leftHeroData,self.leftObj)
this.rightLiveObj = this:LoadHerolive(rightHeroData,self.rightObj)
this.curLiveObj = this:LoadHerolive(heroConFigData,self.curObj)
2020-06-28 17:52:29 +08:00
if _curStar and _curStar > 5 then
self:OnShowHeroData(1,2,_curStar)
else
self:OnShowHeroData(1,1,heroConFigData.Star)
end
2020-06-23 18:36:24 +08:00
self:SetSelectBtn(self.btnStart, Language[11097])
2020-05-09 13:31:21 +08:00
--self.curLiveObj = self:LoadHerolive(heroConFigData,self.curObj)
self.dragView:SetDragGO(this.curLiveObj)
2020-08-24 22:03:28 +08:00
2020-05-09 13:31:21 +08:00
end
2020-06-28 17:52:29 +08:00
--展示英雄信息 第一个参数1 属性面板 2 故事面板 第二个参数 1初始 2 6星和10星 第三个参数 显示星级
2020-05-09 13:31:21 +08:00
function HandBookHeroInfoPanel:OnShowHeroData(_type,_starType,_star)
2020-08-24 23:38:17 +08:00
for i = 1, 4 do
if heroConFigData.PropertyName == i then
self.bgImageList[i]:SetActive(true)
else
self.bgImageList[i]:SetActive(false)
end
end
2020-05-09 13:31:21 +08:00
self.dragView:SetDragGO(this.curLiveObj)
type = _type
self.roleInfoLayout:SetActive( _type == 1)
self.roleStoryLayout:SetActive( _type == 2)
SetHeroStars(self.starGrid, _star)
self.heroName.text = heroConFigData.ReadingName
self.profession.sprite =Util.LoadSprite(GetProStrImageByProNum(heroConFigData.PropertyName))
--定位描述相关
self.posBgImage.sprite=Util.LoadSprite(GetHeroPosBgStr(heroConFigData.Profession))
self.posImage.sprite=Util.LoadSprite(GetHeroPosStr(heroConFigData.Profession))
self.posText.text=heroConFigData.HeroLocation
2020-06-28 17:52:29 +08:00
2020-05-09 13:31:21 +08:00
this.talentBtn:SetActive(heroConFigData.OpenPassiveSkillRules ~= nil)
--self.quality.sprite=Util.LoadSprite(GetQualityIconByQualityNumer(heroConFigData.Natural))
--计算面板属性
allAddProVal=self:CalculateHeroAllProValList(_starType,_star)
self.atkPro.text=allAddProVal[HeroProType.Attack]
self.hpPro.text=allAddProVal[HeroProType.Hp]
self.phyDef.text=allAddProVal[HeroProType.PhysicalDefence]
self.magDef.text=allAddProVal[HeroProType.MagicDefence]
--技能点击特殊处理
self.selsectSkillImage:SetActive(false)
self.skillGrid:GetComponent("Canvas").sortingOrder = self.sortingOrder + 1
local triggerCallBack
local skillList = HeroManager.GetCurHeroSidAndCurStarAllSkillDatas(heroConFigData.Id,_star)
for i = 1, self.skillGrid.transform.childCount do
self.skillGrid.transform:GetChild(i-1).gameObject:SetActive(false)
end
for i = 1, #skillList do
if skillList[i] and skillList[i].skillConfig and skillList[i].skillConfig.Name then
local go = self.skillGrid.transform:GetChild(i-1).gameObject
go:SetActive(true)
Util.GetGameObject(go.transform,"s"):GetComponent("Image").sprite=Util.LoadSprite(GetResourcePath(skillList[i].skillConfig.Icon))
2020-06-23 18:36:24 +08:00
Util.GetGameObject(go.transform,"s/Text"):GetComponent("Text").text=skillList[i].skillConfig.Name--Language[10470].. 1(skillList[i].skillConfig.Id % 10)
2020-05-09 13:31:21 +08:00
Util.GetGameObject(go.transform,"SkillTypeImage"):GetComponent("Image").sprite=Util.LoadSprite(GetSkillType(skillList[i]))
Util.AddOnceClick(Util.GetGameObject(go.transform,"s"), function()
if Game.GlobalEvent:HasEvent(GameEvent.UI.OnClose, triggerCallBack) then
Game.GlobalEvent:RemoveEvent(GameEvent.UI.OnClose, triggerCallBack)
end
self.selsectSkillImage:SetActive(true)
self.selsectSkillImage.transform.position=Util.GetGameObject(go.transform,"s").transform.position
local skillData = {}
skillData.skillConfig = skillList[i].skillConfig
local maxLv= HeroManager.GetHeroSkillMaxLevel(heroConFigData.Id,skillData.skillConfig.Type)
local panel = UIManager.OpenPanel(UIName.SkillInfoPopup,skillData,1,10,maxLv,i)
self.skillGrid:GetComponent("Canvas").sortingOrder = panel.sortingOrder + 1
triggerCallBack = function (panelType, p)
if panelType == UIName.SkillInfoPopup and panel == p then --监听到SkillInfoPopup关闭把层级设回去
self.skillGrid:GetComponent("Canvas").sortingOrder = self.sortingOrder + 1
Game.GlobalEvent:RemoveEvent(GameEvent.UI.OnClose, triggerCallBack)
self.selsectSkillImage:SetActive(false)
end
end
Game.GlobalEvent:AddEvent(GameEvent.UI.OnClose, triggerCallBack)
end)
end
end
--定位
2020-05-25 19:16:23 +08:00
this.posBtn.gameObject:SetActive(heroConFigData.ShowHeroLocation==1)
2020-05-09 13:31:21 +08:00
-- self.infoText.text = heroConFigData.HeroLocation
-- self.radar:SetEdges({heroConFigData.AttackScale/100,heroConFigData.DefenseScale/100,heroConFigData.AssistScale/100})
-- self.radar.color = Color.New(238/255,211/255,156/255,102/255)
-- PlayUIAnim(self.location,function ()
--Log("end!!!!!")
-- end)
--技能 布局变动
self.skillLine.gameObject:SetActive(not (heroConFigData.OpenPassiveSkillRules == nil and heroConFigData.EquipTalismana==nil))
if heroConFigData.OpenPassiveSkillRules == nil and heroConFigData.EquipTalismana==nil then
Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Skill"):GetComponent("LayoutElement").minWidth=500
Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Skill/skill"):GetComponent("GridLayoutGroup").startAxis=0
self.skillName.transform:DOAnchorPos(Vector3.New(442,308,0),0)
else
Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Skill"):GetComponent("LayoutElement").minWidth=150
Util.GetGameObject(self.transform,"roleInfoLayout/Panel/Skill/skill"):GetComponent("GridLayoutGroup").startAxis=1
self.skillName.transform:DOAnchorPos(Vector3.New(274,308,0),0)
end
--法宝
self.talismanBtn.gameObject:SetActive(heroConFigData.EquipTalismana~=nil)
-- self.talismanInfo.gameObject:SetActive(heroConFigData.EquipTalismana==nil)
if heroConFigData.EquipTalismana~=nil then
-- self.talismanFrame.sprite=Util.LoadSprite(TalismanBubble[itemConfig[heroConFigData.EquipTalismana[2]].Quantity])
self.talismanIcon.sprite = Util.LoadSprite(GetResourcePath(itemConfig[heroConFigData.EquipTalismana[2]].ResourceID))
end
--法宝
Util.AddOnceClick(self.talismanBtn.gameObject,function()
if starType==1 then
UIManager.OpenPanel(UIName.TalismanInfoPopup,heroConFigData,1,1)
elseif starType==2 then
UIManager.OpenPanel(UIName.TalismanInfoPopup,heroConFigData,1,75)
end
end)
--传记
Util.GetGameObject(self.transform,"roleStoryLayout/infoBg/infoRect/infoText"):GetComponent("RectTransform").anchoredPosition = Vector2.New(-2, 0)
local stroyStr = string.gsub(heroConFigData.HeroStory,"#","\n")
self.infoTextStory.text = string.gsub(stroyStr,"|","  ")--传记
end
2020-06-28 17:52:29 +08:00
2020-05-09 13:31:21 +08:00
--根据界面数据加载动态立绘
function HandBookHeroInfoPanel:LoadHerolive(_heroData, _objPoint)
--TODO:动态加载立绘
local testLive = poolManager:LoadLive(GetResourcePath(_heroData.Live), _objPoint.transform,
Vector3.one * _heroData.Scale, Vector3.New(_heroData.Position[1], _heroData.Position[2], 0))
local SkeletonGraphic = testLive:GetComponent("SkeletonGraphic")
local idle = function() SkeletonGraphic.AnimationState:SetAnimation(0, "idle", true) end
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete + idle
poolManager:SetLiveClearCall(_heroData.Live, testLive, function ()
SkeletonGraphic.AnimationState.Complete = SkeletonGraphic.AnimationState.Complete - idle
end)
return testLive
end
2020-06-28 17:52:29 +08:00
--计算英雄属性 1 初始 2 指定星级 _starNum星级变化
2020-05-09 13:31:21 +08:00
function HandBookHeroInfoPanel:CalculateHeroAllProValList(_starType,_starNum)
local allAddProVal = {}
for i, v in ConfigPairs(propertyConfig) do
allAddProVal[i] = 0
end
2020-06-28 17:52:29 +08:00
local heroRankupConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.HeroRankupConfig, "Star", heroConFigData.Star, "LimitStar", _starNum)
local curLvNum=1
2020-05-09 13:31:21 +08:00
local breakId = 0
local upStarId = 0
if _starType == 2 then
2020-06-28 17:52:29 +08:00
--等级
curLvNum = heroRankupConfig.OpenLevel
--解锁天赋
2020-05-09 13:31:21 +08:00
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.HeroRankupConfig)) do
2020-06-28 17:52:29 +08:00
if v.OpenStar == _starNum and v.Star==heroConFigData.Star then
2020-05-09 13:31:21 +08:00
if v.Type == 1 then
breakId = v.Id
end
if v.Type == 2 then
upStarId = v.Id
end
end
end
2020-06-28 17:52:29 +08:00
if breakId==0 then
breakId=6
end
2020-05-09 13:31:21 +08:00
end
allAddProVal[HeroProType.Attack]=HeroManager.CalculateProVal(heroConFigData.Attack, curLvNum, breakId,upStarId,HeroProType.Attack)
allAddProVal[HeroProType.Hp]=HeroManager.CalculateProVal(heroConFigData.Hp, curLvNum, breakId,upStarId,HeroProType.Hp)
allAddProVal[HeroProType.PhysicalDefence]=HeroManager.CalculateProVal(heroConFigData.PhysicalDefence, curLvNum, breakId,upStarId,HeroProType.PhysicalDefence)
allAddProVal[HeroProType.MagicDefence]=HeroManager.CalculateProVal(heroConFigData.MagicDefence, curLvNum, breakId,upStarId,HeroProType.MagicDefence)
--allAddProVal[HeroProType.Speed]= math.floor(((curSpeedFormulaData[1] * math.pow(breakId, 3) + curSpeedFormulaData[2] * math.pow(breakId, 2) + curSpeedFormulaData[3] * breakId + curSpeedFormulaData[4]) + heroConFigData.Speed * speedNum))
2020-06-18 20:39:29 +08:00
--for i = 1, #heroConFigData.SecondaryFactor do
-- local proId = heroConFigData.SecondaryFactor[i][1]
-- if propertyConfig[proId].Style ==2 then
-- allAddProVal[heroConFigData.SecondaryFactor[i][1]] = heroConFigData.SecondaryFactor[i][2]/10000
-- else
-- allAddProVal[heroConFigData.SecondaryFactor[i][1]] = heroConFigData.SecondaryFactor[i][2]
-- end
--end
2020-05-09 13:31:21 +08:00
Util.AddOnceClick(this.talentBtn,function()
UIManager.OpenPanel(UIName.RoleTalentPopup,heroConFigData,breakId,upStarId)
end)
if heroConFigData.OpenPassiveSkillRules then
local openlists,compoundOpenNum,compoundNum = HeroManager.GetAllPassiveSkillIds(heroConFigData,breakId,upStarId)
this.talentProgress.text = #openlists - compoundOpenNum .."/"..#heroConFigData.OpenPassiveSkillRules - compoundNum
2020-06-28 17:52:29 +08:00
2020-05-09 13:31:21 +08:00
end
return allAddProVal
end
--页签选中效果设置
function HandBookHeroInfoPanel:SetSelectBtn(_btn, btnText)
self.selectBtn.transform:SetParent(_btn.transform)
self.selectBtn.transform.localScale = Vector3.one
self.selectBtn.transform.localPosition=Vector3.zero
Util.GetGameObject(self.selectBtn.transform, "Text"):GetComponent("Text").text = btnText
end
function HandBookHeroInfoPanel:UpdateLiveList()
2020-06-28 17:52:29 +08:00
if index - 1 > 0 then
_leftStar = _curStar
leftIndex = index - 1
leftHeroData=heroDatas[leftIndex]
else
if _curStar==10 then
_leftStar = 1
elseif _curStar==6 then
_leftStar = 10
else
_leftStar = _curStar+1
end
leftIndex=#PlayerManager.heroHandBookListData[_leftStar]
leftHeroData=PlayerManager.heroHandBookListData[_leftStar][leftIndex]
end
if index + 1 <= #heroDatas then
_rightStar = _curStar
rightIndex = index + 1
rightHeroData=heroDatas[rightIndex]
else
if _curStar==10 then
_rightStar = 6
elseif _curStar==1 then
_rightStar = 10
else
_rightStar = _curStar - 1
end
rightIndex = 1
rightHeroData=PlayerManager.heroHandBookListData[_rightStar][rightIndex]
end
2020-05-09 13:31:21 +08:00
end
2020-06-28 17:52:29 +08:00
2020-05-09 13:31:21 +08:00
--右切换按钮点击
function HandBookHeroInfoPanel:RightBtnOnClick()
if isClickLeftOrRightBtn == false then
return
end
isClickLeftOrRightBtn = false
self.rightBtn:GetComponent("Button").enabled = false
2020-07-03 18:24:44 +08:00
local oldIndexConfigData = heroDatas[index]
2020-06-28 17:52:29 +08:00
index =rightIndex
if _curStar ~= _rightStar then
_curStar = _rightStar
heroDatas = PlayerManager.heroHandBookListData[_curStar]
end
2020-05-09 13:31:21 +08:00
heroConFigData = heroDatas[index]
if this.leftLiveObj then
poolManager:UnLoadLive(GetResourcePath(leftHeroData.Live), this.leftLiveObj)
this.leftLiveObj = nil
end
2020-06-28 17:52:29 +08:00
2020-05-09 13:31:21 +08:00
this.curLiveObj.transform:SetParent(self.leftObj.transform)
2020-07-03 18:24:44 +08:00
this.curLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(oldIndexConfigData.Position[1],oldIndexConfigData.Position[2]), 0.5, false):SetEase(Ease.Linear)
2020-05-09 13:31:21 +08:00
this.rightLiveObj.transform:SetParent(self.curObj.transform)
this.rightLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(rightHeroData.Position[1],rightHeroData.Position[2]), 0.5, false):OnComplete(function ()
this:UpdateLiveList()
this.leftLiveObj = this.curLiveObj
this.curLiveObj = this.rightLiveObj
this.rightLiveObj = this:LoadHerolive(rightHeroData,self.rightObj)
2020-06-28 17:52:29 +08:00
if _curStar and _curStar > 5 then
--[[ if heroConFigData.RankupConsumeMaterial and #heroConFigData.RankupConsumeMaterial > 0 then
2020-05-09 13:31:21 +08:00
self:OnShowHeroData(type,2,heroConFigData.RankupConsumeMaterial[#heroConFigData.RankupConsumeMaterial][1])
2020-06-28 17:52:29 +08:00
else]]
self:OnShowHeroData(type,2,_curStar)
--end
2020-05-09 13:31:21 +08:00
else
2020-06-28 17:52:29 +08:00
self:OnShowHeroData(1,1,heroConFigData.Star)
2020-05-09 13:31:21 +08:00
end
local SkeletonGraphic = this.curLiveObj:GetComponent("SkeletonGraphic")
SkeletonGraphic.AnimationState:SetAnimation(0, "touch", false)
this.rightBtn:GetComponent("Button").enabled = true
isClickLeftOrRightBtn = true
end):SetEase(Ease.Linear)
end
--左切换按钮点击
function HandBookHeroInfoPanel:LeftBtnOnClick()
if isClickLeftOrRightBtn == false then
return
end
isClickLeftOrRightBtn = false
self.leftBtn:GetComponent("Button").enabled = false
2020-07-03 18:24:44 +08:00
local oldIndexConfigData = heroDatas[index]
2020-06-28 17:52:29 +08:00
index =leftIndex
if _curStar~= _leftStar then
_curStar = _leftStar
heroDatas = PlayerManager.heroHandBookListData[_curStar]
end
2020-05-09 13:31:21 +08:00
heroConFigData = heroDatas[index]
2020-06-28 17:52:29 +08:00
2020-05-09 13:31:21 +08:00
if this.rightLiveObj then
poolManager:UnLoadLive(GetResourcePath(rightHeroData.Live), this.rightLiveObj)
this.rightLiveObj = nil
end
this.curLiveObj.transform:SetParent(self.rightObj.transform)
2020-07-03 18:24:44 +08:00
this.curLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(oldIndexConfigData.Position[1],oldIndexConfigData.Position[2]), 0.5, false):SetEase(Ease.Linear)
2020-05-09 13:31:21 +08:00
this.leftLiveObj.transform:SetParent(self.curObj.transform)
this.leftLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(leftHeroData.Position[1],leftHeroData.Position[2]), 0.5, false):OnComplete(function ()
this:UpdateLiveList()
this.rightLiveObj = this.curLiveObj
this.curLiveObj = this.leftLiveObj
this.leftLiveObj = this:LoadHerolive(leftHeroData,self.leftObj)
2020-06-28 17:52:29 +08:00
if _curStar and _curStar > 5 then
--[[if heroConFigData.RankupConsumeMaterial and #heroConFigData.RankupConsumeMaterial > 0 then
2020-05-09 13:31:21 +08:00
self:OnShowHeroData(type,2,heroConFigData.RankupConsumeMaterial[#heroConFigData.RankupConsumeMaterial][1])
2020-06-28 17:52:29 +08:00
else]]
self:OnShowHeroData(type,2,_curStar)
--end
2020-05-09 13:31:21 +08:00
else
2020-06-28 17:52:29 +08:00
self:OnShowHeroData(type,1,heroConFigData.Star)
2020-05-09 13:31:21 +08:00
end
local SkeletonGraphic = this.curLiveObj:GetComponent("SkeletonGraphic")
SkeletonGraphic.AnimationState:SetAnimation(0, "touch", false)
this.leftBtn:GetComponent("Button").enabled = true
isClickLeftOrRightBtn = true
end):SetEase(Ease.Linear)
end
--手指滑动
local beginV3
local endV3
local distance
function HandBookHeroInfoPanel:OnBeginDrag(Pointgo, data)
beginV3=this.curLiveObj.transform.anchoredPosition
end
function HandBookHeroInfoPanel:OnDrag(Pointgo, data)
distance=Vector2.Distance(beginV3,this.curLiveObj.transform.anchoredPosition)
end
function HandBookHeroInfoPanel:OnEndDrag(Pointgo, data)
endV3=this.curLiveObj.transform.anchoredPosition
if distance>250 and endV3.x<0 then
this:RightBtnOnClick()
elseif distance>250 and endV3.x>0 then
this:LeftBtnOnClick()
else
this.curLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(heroConFigData.Position[1],heroConFigData.Position[2]), 0.5, false):SetEase(Ease.Linear)
end
distance=0
end
--界面关闭时调用(用于子类重写)
function HandBookHeroInfoPanel:OnClose()
if this.leftLiveObj then
poolManager:UnLoadLive(GetResourcePath(leftHeroData.Live), this.leftLiveObj)
this.leftLiveObj = nil
end
if this.rightLiveObj then
poolManager:UnLoadLive(GetResourcePath(rightHeroData.Live), this.rightLiveObj)
this.rightLiveObj = nil
end
if this.curLiveObj then
poolManager:UnLoadLive(GetResourcePath(heroConFigData.Live), this.curLiveObj)
this.curLiveObj = nil
end
this.leftBtn:GetComponent("Button").enabled = true
this.rightBtn:GetComponent("Button").enabled = true
end
function HandBookHeroInfoPanel:SortHeroNatural(heroList)
table.sort(heroList, function(a, b)
2020-05-25 19:16:23 +08:00
if a.Star == b.Star then
if a.Natural == b.Natural then
return a.Id < b.Id
else
return a.Natural > b.Natural
end
2020-05-09 13:31:21 +08:00
else
2020-05-25 19:16:23 +08:00
return a.Star > b.Star
2020-05-09 13:31:21 +08:00
end
end)
end
--界面销毁时调用(用于子类重写)
function HandBookHeroInfoPanel:OnDestroy()
SubUIManager.Close(SubUIConfig.DragView, self.dragView)
end
2020-06-23 18:36:24 +08:00
return HandBookHeroInfoPanel