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

487 lines
23 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden 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.

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
local index
local starType = 1
local type = 1
--初始化组件(用于子类重写)
function HandBookHeroInfoPanel:InitComponent()
self.btnBack = Util.GetGameObject(self.transform, "btnBack")
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")
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")
this.posBtn=Util.GetGameObject(self.gameObject,"posBtn")--定位按钮
end
--绑定事件(用于子类重写)
function HandBookHeroInfoPanel:BindEvent()
Util.AddClick(self.btnBack, function()
self:ClosePanel()
end)
Util.AddClick(self.allProButton, function()
UIManager.OpenPanel(UIName.RoleProInfoPopup,allAddProVal,heroConFigData)
end)
Util.AddClick(self.btnStart, function()
self:SetSelectBtn(self.btnStart, "初始")
self:OnShowHeroData(1,1,heroConFigData.Star)
end)
Util.AddClick(self.btnMaxStar, function()
self:SetSelectBtn(self.btnMaxStar, "满星")
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, "传记")
self:OnShowHeroData(2,1,heroConFigData.Star)
end)
Util.AddClick(self.btnSkin, function()
PopupTipPanel.ShowTip("内容未开放")
end)
Util.AddClick(this.leftBtn, function()
self:LeftBtnOnClick()
end)
Util.AddClick(this.rightBtn, function()
self:RightBtnOnClick()
end)
Util.AddClick(this.posBtn, function()
UIManager.OpenPanel(UIName.RolePosInfoPopup,heroConFigData)
end)
end
--添加事件监听(用于子类重写)
function HandBookHeroInfoPanel:AddListener()
end
--移除事件监听(用于子类重写)
function HandBookHeroInfoPanel:RemoveListener()
end
local heroDatas = {}
--界面打开时调用(用于子类重写)
function HandBookHeroInfoPanel:OnOpen(_heroConFigData,proId)
heroDatas = {}
for id, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.HeroConfig)) do
if (proId == 0 or v.PropertyName == proId) then
table.insert(heroDatas,v)
end
end
self:SortHeroNatural(heroDatas)
heroConFigData = _heroConFigData
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function HandBookHeroInfoPanel:OnShow()
isClickLeftOrRightBtn = true
for i = 1, #heroDatas do
if heroConFigData.Id == heroDatas[i].Id then
index = i
end
end
self:UpdateLiveList()
this.leftLiveObj = this:LoadHerolive(leftHeroData,self.leftObj)
this.rightLiveObj = this:LoadHerolive(rightHeroData,self.rightObj)
this.curLiveObj = this:LoadHerolive(heroConFigData,self.curObj)
self:OnShowHeroData(1,1,heroConFigData.Star)
self:SetSelectBtn(self.btnStart, "初始")
--self.curLiveObj = self:LoadHerolive(heroConFigData,self.curObj)
self.dragView:SetDragGO(this.curLiveObj)
end
--展示英雄信息
function HandBookHeroInfoPanel:OnShowHeroData(_type,_starType,_star)
self.dragView:SetDragGO(this.curLiveObj)
type = _type
self.roleInfoLayout:SetActive( _type == 1)
self.roleStoryLayout:SetActive( _type == 2)
starType = _starType
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
--天赋
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.speed.text= allAddProVal[HeroProType.Speed]
--技能点击特殊处理
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))
Util.GetGameObject(go.transform,"s/Text"):GetComponent("Text").text=skillList[i].skillConfig.Name--"等级".. 1(skillList[i].skillConfig.Id % 10)
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
--定位
this.posBtn.gameObject:SetActive(heroConFigData.ShowHeroLocation==1)
-- 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
--根据界面数据加载动态立绘
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
--计算英雄属性 1 初始 2 满星
function HandBookHeroInfoPanel:CalculateHeroAllProValList(_starType,_starNum)
local allAddProVal = {}
for i, v in ConfigPairs(propertyConfig) do
allAddProVal[i] = 0
end
local heroRankupConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.HeroRankupConfig, "Star", heroConFigData.Star, "OpenStar", _starNum)
local curLvNum = 1
local breakId = 0
local upStarId = 0
if _starType == 2 then
curLvNum = heroLevelConfig[heroRankupConfig.OpenLevel].CharacterLevelPara
for i, v in ConfigPairs(ConfigManager.GetConfig(ConfigName.HeroRankupConfig)) do
if v.Star == heroConFigData.Star then
if v.Type == 1 then
breakId = v.Id
end
if v.Type == 2 then
upStarId = v.Id
end
end
end
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))
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
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
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()
local leftIndex = (index - 1 > 0 and index - 1 or #heroDatas)
leftHeroData = heroDatas[leftIndex]
heroConFigData = heroDatas[index]
local rightIndex = (index + 1 <= #heroDatas and index + 1 or 1)
rightHeroData = heroDatas[rightIndex]
end
--右切换按钮点击
function HandBookHeroInfoPanel:RightBtnOnClick()
if isClickLeftOrRightBtn == false then
return
end
isClickLeftOrRightBtn = false
self.rightBtn:GetComponent("Button").enabled = false
index = (index + 1 <= #heroDatas and index + 1 or 1)
heroConFigData = heroDatas[index]
if this.leftLiveObj then
poolManager:UnLoadLive(GetResourcePath(leftHeroData.Live), this.leftLiveObj)
this.leftLiveObj = nil
end
this.curLiveObj.transform:SetParent(self.leftObj.transform)
this.curLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(heroConFigData.Position[1],heroConFigData.Position[2]), 0.5, false):SetEase(Ease.Linear)
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)
if starType == 2 then
if heroConFigData.RankupConsumeMaterial and #heroConFigData.RankupConsumeMaterial > 0 then
self:OnShowHeroData(type,2,heroConFigData.RankupConsumeMaterial[#heroConFigData.RankupConsumeMaterial][1])
else
self:OnShowHeroData(type,2,heroConFigData.Star)
end
else
self:OnShowHeroData(type,starType,heroConFigData.Star)
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
index = (index - 1 > 0 and index - 1 or #heroDatas)
heroConFigData = heroDatas[index]
if this.rightLiveObj then
poolManager:UnLoadLive(GetResourcePath(rightHeroData.Live), this.rightLiveObj)
this.rightLiveObj = nil
end
this.curLiveObj.transform:SetParent(self.rightObj.transform)
this.curLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(heroConFigData.Position[1],heroConFigData.Position[2]), 0.5, false):SetEase(Ease.Linear)
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)
if starType == 2 then
if heroConFigData.RankupConsumeMaterial and #heroConFigData.RankupConsumeMaterial > 0 then
self:OnShowHeroData(type,2,heroConFigData.RankupConsumeMaterial[#heroConFigData.RankupConsumeMaterial][1])
else
self:OnShowHeroData(type,2,heroConFigData.Star)
end
else
self:OnShowHeroData(type,starType,heroConFigData.Star)
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)
if a.Star == b.Star then
if a.Natural == b.Natural then
return a.Id < b.Id
else
return a.Natural > b.Natural
end
else
return a.Star > b.Star
end
end)
end
--界面销毁时调用(用于子类重写)
function HandBookHeroInfoPanel:OnDestroy()
SubUIManager.Close(SubUIConfig.DragView, self.dragView)
end
return HandBookHeroInfoPanel