[皮肤]提交
parent
509357e333
commit
4cb31d8f38
File diff suppressed because it is too large
Load Diff
|
@ -1,623 +0,0 @@
|
|||
require("Base/BasePanel")
|
||||
RoleInfoPanel = Inherit(BasePanel)
|
||||
local this = RoleInfoPanel
|
||||
local RoleSkinPanel = require("Modules/RoleInfo/RoleSkinPanel")
|
||||
local RoleInfoLayout = require("Modules/RoleInfo/RoleInfoLayout")
|
||||
local RoleUpStarLayout = require("Modules/RoleInfo/RoleUpStarLayout")
|
||||
local RoleStoryLayout = require("Modules/RoleInfo/RoleStoryLayout")
|
||||
|
||||
-- Tab管理器
|
||||
local TabBox = require("Modules/Common/TabBox")
|
||||
|
||||
local _CurPageIndex = 1
|
||||
local orginLayer
|
||||
local tabs = {
|
||||
[1] = {default = "r_hero_xuanze_002", lock = "r_hero_xuanze_002", select = "r_hero_xuanze_001",title = "情报",rpType = RedPointType.DynamicActTask,
|
||||
},
|
||||
[2] = {default = "r_hero_xuanze_002", lock = "r_hero_xuanze_002", select = "r_hero_xuanze_001",title = "进阶",rpType = RedPointType.DynamicActTask,
|
||||
},
|
||||
[3] = {default = "r_hero_xuanze_002", lock = "r_hero_xuanze_002", select = "r_hero_xuanze_001",title = "传说",rpType = -1,
|
||||
},
|
||||
[4] = {default = "r_hero_xuanze_002", lock = "r_hero_xuanze_002", select = "r_hero_xuanze_001",title = "皮肤",rpType = -1,
|
||||
},
|
||||
}
|
||||
|
||||
local curHeroData--当前英雄信息
|
||||
local leftHeroData--左边预加载英雄信息
|
||||
local rightHeroData--右边预加载英雄信息
|
||||
|
||||
local heroDatas--所有英雄list信息
|
||||
|
||||
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
||||
local heroRankupConfig = ConfigManager.GetConfig(ConfigName.HeroRankupConfig)
|
||||
local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
|
||||
local heroSkinConfig = ConfigManager.GetConfig(ConfigName.HeroSkin)
|
||||
|
||||
local index--当前英雄在 英雄列表中的索引
|
||||
local soulPrintData={}--魂印数据
|
||||
|
||||
local isUpZhen = false--当前英雄是否上阵
|
||||
local isClickLeftOrRightBtn = true--点击左右按钮切换英雄播放动画状态
|
||||
local teamHero = {}--主线编队成员信息
|
||||
local talismanIsOpen = false--法宝是否开启
|
||||
local soulPrintIsOpen = false--魂印是否开启
|
||||
--初始化组件(用于子类重写)
|
||||
function RoleInfoPanel:InitComponent()
|
||||
orginLayer = 0
|
||||
this.BtnBack = Util.GetGameObject(self.transform, "btnBack")
|
||||
this.bgImageList = {}
|
||||
for i = 1, 4 do
|
||||
this.bgImageList[i] = Util.GetGameObject(self.transform, "bg/di ("..i..")")
|
||||
end
|
||||
|
||||
this.optionUp=Util.GetGameObject(self.gameObject,"optionUp")--上部按钮组
|
||||
this.helpBtn = Util.GetGameObject(this.optionUp, "helpBtn")
|
||||
this.helpPosition=this.helpBtn:GetComponent("RectTransform").localPosition
|
||||
this.posBtn=Util.GetGameObject(this.optionUp,"posBtn")--角色定位按钮
|
||||
this.shareBtn=Util.GetGameObject(this.optionUp,"shareBtn")--分享按钮
|
||||
|
||||
this.bg = Util.GetGameObject(self.gameObject, "bg")
|
||||
screenAdapte(this.bg)
|
||||
|
||||
this.starGrid = Util.GetGameObject(self.transform, "rolePanel/info/sartAndLvLayout")
|
||||
this.posImage = Util.GetGameObject(self.transform, "rolePanel/info/nameAndPossLayout/posImage/posImage/posImage"):GetComponent("Image")
|
||||
this.posText = Util.GetGameObject(self.transform, "rolePanel/info/nameAndPossLayout/posText/posText"):GetComponent("Text")
|
||||
this.profession = Util.GetGameObject(self.transform, "rolePanel/info/nameAndPossLayout/proImage/proImage"):GetComponent("Image")
|
||||
this.heroName = Util.GetGameObject(self.transform, "rolePanel/info/nameAndPossLayout/heroName"):GetComponent("Text")
|
||||
this.level = Util.GetGameObject(self.transform, "rolePanel/info/sartAndLvLayout/lvText"):GetComponent("Text")
|
||||
|
||||
this.rolePanelOp = Util.GetGameObject(self.transform, "rolePanel/layout")
|
||||
|
||||
this.force = Util.GetGameObject(self.transform, "powerBtn/value"):GetComponent("Text")
|
||||
this.upLvEffect = Util.GetGameObject(self.transform,"powerBtn/effect")
|
||||
this.posBgImage=Util.GetGameObject(self.transform,"powerBtn/Pos"):GetComponent("Image")
|
||||
this.posImage=Util.GetGameObject(self.transform,"powerBtn/Pos/PosImage"):GetComponent("Image")
|
||||
this.posText=Util.GetGameObject(self.transform,"powerBtn/Pos/PosText"):GetComponent("Text")
|
||||
|
||||
this.PageList = {
|
||||
[1] = RoleInfoLayout.InitComponent(Util.GetGameObject(self.transform, "rolePanel/layout/roleInfoLayout")),
|
||||
[2] = RoleUpStarLayout.InitComponent(Util.GetGameObject(self.transform, "rolePanel/layout/roleUpStarLayout")),
|
||||
[3] = RoleStoryLayout.InitComponent(Util.GetGameObject(self.transform, "rolePanel/layout/roleStoryLayout")),
|
||||
[4] = RoleSkinPanel.InitComponent(Util.GetGameObject(self.transform, "rolePanel/layout/roleSkinLayout")),
|
||||
}
|
||||
this.selectBtn = Util.GetGameObject(self.transform, "rolePanel/btnList/selectBtn")
|
||||
-- 上部货币显示
|
||||
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, { showType = UpViewOpenType.ShowLeft})
|
||||
end
|
||||
|
||||
--绑定事件(用于子类重写)
|
||||
function RoleInfoPanel:BindEvent()
|
||||
-- 初始化Tab管理器
|
||||
this.PageTabCtrl = TabBox.New()
|
||||
this.PageTabCtrl:SetTabAdapter(this.PageTabAdapter)
|
||||
this.PageTabCtrl:SetTabIsLockCheck(this.PageTabIsLockCheck)
|
||||
this.PageTabCtrl:SetChangeTabCallBack(this.OnPageTabChange)
|
||||
|
||||
Util.AddClick(this.BtnBack, function()
|
||||
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
||||
self:ClosePanel()
|
||||
end)
|
||||
|
||||
--角色定位按钮
|
||||
Util.AddClick(this.posBtn,function()
|
||||
UIManager.OpenPanel(UIName.RolePosInfoPopup,curHeroData.heroConfig)
|
||||
end)
|
||||
|
||||
--左切换按钮
|
||||
Util.AddClick(this.leftBtn, function()
|
||||
this:LeftBtnOnClick()
|
||||
end)
|
||||
|
||||
--右切换按钮
|
||||
Util.AddClick(this.rightBtn, function()
|
||||
this:RightBtnOnClick()
|
||||
end)
|
||||
|
||||
Util.AddClick(this.dragView.gameObject, function()
|
||||
local SkeletonGraphic = this.curLiveObj:GetComponent("SkeletonGraphic")
|
||||
SkeletonGraphic.AnimationState:SetAnimation(0, "touch", false)
|
||||
end)
|
||||
|
||||
--装备
|
||||
Util.AddClick(this.equipBtn, function()
|
||||
UIManager.OpenPanel(UIName.RoleEquipPanel,curHeroData,heroDatas,this,isUpZhen)
|
||||
end)
|
||||
--魂印
|
||||
Util.AddClick(this.soulPrintBtn, function()
|
||||
if soulPrintIsOpen then
|
||||
UIManager.OpenPanel(UIName.SoulPrintPanel,curHeroData,heroDatas)
|
||||
else
|
||||
local EquipSignUnlock = ConfigManager.GetConfigData(ConfigName.GameSetting,1).EquipSignUnlock
|
||||
PopupTipPanel.ShowTip(Language[11753]..NumToSimplenessFont[EquipSignUnlock[2][2]] .. Language[11832])
|
||||
end
|
||||
end)
|
||||
--法宝
|
||||
Util.AddClick(this.talismanClick,function()
|
||||
if talismanIsOpen then
|
||||
UIManager.OpenPanel(UIName.RoleTalismanPanelV2,curHeroData,heroDatas)
|
||||
else
|
||||
PopupTipPanel.ShowTip(TalismanManager.GetCurHeroIsOpenTalismanTip())
|
||||
end
|
||||
end)
|
||||
--查看法宝特性按钮
|
||||
Util.AddClick(this.talismanInfo,function()
|
||||
UIManager.OpenPanel(UIName.TalismanInfoPopup,curHeroData.heroConfig,1,1)
|
||||
end)
|
||||
--上锁
|
||||
Util.AddClick(this.lockBtn,function()
|
||||
this:HeroLockEvent()
|
||||
end)
|
||||
Util.AddClick(this.talentBtn,function()
|
||||
UIManager.OpenPanel(UIName.RoleTalentPopup,curHeroData.heroConfig,curHeroData.breakId,curHeroData.upStarId)
|
||||
end)
|
||||
|
||||
for i = 1, #this.PageList do
|
||||
if this.PageList[i] then
|
||||
this.PageList[i]:BindEvent()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- tab按钮自定义显示设置
|
||||
function this.PageTabAdapter(tab, index, status)
|
||||
local title = Util.GetGameObject(tab, "Text"):GetComponent("Text")
|
||||
local ima = tab:GetComponent("Image")
|
||||
local redpot = Util.GetGameObject(tab, "redPoint")
|
||||
|
||||
title.text = tabs[index].title
|
||||
ima.sprite = Util.LoadSprite(tabs[index][status])
|
||||
ima:SetNativeSize()
|
||||
|
||||
-- 判断是否需要检测红点
|
||||
redpot:SetActive(false)
|
||||
if tabs[index].rpType > 0 then
|
||||
this.ClearPageRedpot(index)
|
||||
this.BindPageRedpot(index, redpot)
|
||||
end
|
||||
|
||||
if tabs[index].title == "皮肤" then
|
||||
local configs = ConfigManager.GetAllConfigsDataByKey(ConfigName.HeroSkin,"HeroId",curHeroData.id)
|
||||
local HeoSkin = {}
|
||||
for i = 1 ,#configs do
|
||||
if not HeoSkin[configs[i].Type] then
|
||||
HeoSkin[configs[i].Type] = configs[i]
|
||||
end
|
||||
end
|
||||
if LengthOfTable(HeoSkin) > 1 then
|
||||
tabs[index].gameObject:SetActive(true)
|
||||
else
|
||||
tabs[index].gameObject:SetActive(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- tab可用性检测
|
||||
function this.PageTabIsLockCheck(index)
|
||||
return false
|
||||
end
|
||||
|
||||
-- tab改变事件
|
||||
function this.OnPageTabChange(index)
|
||||
_CurPageIndex = index
|
||||
for i = 1, #this.PageList do
|
||||
if this.PageList[i] then
|
||||
this.PageList[i]:OnHide()
|
||||
end
|
||||
end
|
||||
this.PageList[index]:OnShow(this.sortingOrder,this,curHeroData)
|
||||
end
|
||||
|
||||
-- 绑定数据
|
||||
local _PageBindData = {}
|
||||
function this.BindPageRedpot(page, redpot)
|
||||
local rpType = tabs[page].rpType
|
||||
if not rpType then return end
|
||||
BindRedPointObject(rpType, redpot)
|
||||
_PageBindData[rpType] = redpot
|
||||
end
|
||||
|
||||
function this.ClearPageRedpot(page)
|
||||
for rpt, redpot in pairs(_PageBindData) do
|
||||
ClearRedPointObject(rpt, redpot)
|
||||
end
|
||||
_PageBindData = {}
|
||||
end
|
||||
|
||||
--添加事件监听(用于子类重写)
|
||||
function RoleInfoPanel:AddListener()
|
||||
for i = 1, #this.PageList do
|
||||
if this.PageList[i] then
|
||||
this.PageList[i]:AddListener()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--移除事件监听(用于子类重写)
|
||||
function RoleInfoPanel:RemoveListener()
|
||||
for i = 1, #this.PageList do
|
||||
if this.PageList[i] then
|
||||
this.PageList[i]:RemoveListener()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--界面打开时调用(用于子类重写)
|
||||
function RoleInfoPanel:OnOpen(_curHeroData, _heroDatas,_isUpZhen)
|
||||
curHeroData, heroDatas,isUpZhen = _curHeroData, _heroDatas,_isUpZhen
|
||||
this.PageTabCtrl:Init(this.tabbox, tabs,_CurPageIndex)
|
||||
end
|
||||
|
||||
-- 打开,重新打开时回调
|
||||
function RoleInfoPanel:OnShow()
|
||||
this.UpView:OnOpen({ showType = UpViewOpenType.ShowLeft, panelType = PanelType.RoleInfo })
|
||||
|
||||
isClickLeftOrRightBtn = true
|
||||
this.upLvEffect:SetActive(false)
|
||||
for i = 1, #heroDatas do
|
||||
if curHeroData == heroDatas[i] then
|
||||
index = i
|
||||
end
|
||||
end
|
||||
|
||||
teamHero = FormationManager.GetWuJinFormationHeroIds(FormationTypeDef.FORMATION_NORMAL)
|
||||
|
||||
this:UpdateLiveList()--加载当前 和 左右数据
|
||||
if this.leftLiveObj and leftHeroData then
|
||||
LogError(Language[11833])
|
||||
poolManager:UnLoadLive(leftHeroData.live, this.leftLiveObj)
|
||||
this.leftLiveObj = nil
|
||||
end
|
||||
if this.rightLiveObj and rightHeroData then
|
||||
LogError(Language[11834])
|
||||
poolManager:UnLoadLive(rightHeroData.live, this.rightLiveObj)
|
||||
this.rightLiveObj = nil
|
||||
end
|
||||
if this.curLiveObj and curHeroData then
|
||||
LogError(Language[11835])
|
||||
poolManager:UnLoadLive(curHeroData.live, this.curLiveObj)
|
||||
this.curLiveObj = nil
|
||||
end
|
||||
Util.ClearChild(this.curObj.transform)
|
||||
Util.ClearChild(this.leftObj.transform)
|
||||
Util.ClearChild(this.rightObj.transform)
|
||||
this.leftLiveObj = HeroManager.LoadHerolive(leftHeroData,this.leftObj)
|
||||
this.rightLiveObj = HeroManager.LoadHerolive(rightHeroData,this.rightObj)
|
||||
this.curLiveObj = HeroManager.LoadHerolive(curHeroData,this.curObj)
|
||||
if this.curLiveObj then
|
||||
this.dragView.gameObject:SetActive(true)
|
||||
this.dragView:SetDragGO(this.curLiveObj)
|
||||
else
|
||||
this.dragView.gameObject:SetActive(false)
|
||||
end
|
||||
this:SetPanelBg(curHeroData.heroConfig)
|
||||
this:UpdateHeroInfoData()--刷新界面方法
|
||||
end
|
||||
|
||||
--更新界面已存数据
|
||||
function this:UpdateLiveList()
|
||||
local leftIndex = (index - 1 > 0 and index - 1 or #heroDatas)
|
||||
leftHeroData = heroDatas[leftIndex]
|
||||
curHeroData = heroDatas[index]
|
||||
local rightIndex = (index + 1 <= #heroDatas and index + 1 or 1)
|
||||
rightHeroData = heroDatas[rightIndex]
|
||||
end
|
||||
|
||||
function this:SetPanelBg(heroData)
|
||||
for i = 1, 4 do
|
||||
if heroData.PropertyName == i then
|
||||
this.bgImageList[i]:SetActive(true)
|
||||
else
|
||||
this.bgImageList[i]:SetActive(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--右切换按钮点击
|
||||
function this:RightBtnOnClick()
|
||||
if isClickLeftOrRightBtn == false then
|
||||
return
|
||||
end
|
||||
isClickLeftOrRightBtn = false
|
||||
this.rightBtn:GetComponent("Button").enabled = false
|
||||
local oldIndexConfigData = heroDatas[index]
|
||||
index = (index + 1 <= #heroDatas and index + 1 or 1)
|
||||
curHeroData = heroDatas[index]
|
||||
this.SetPanelBg(curHeroData.heroConfig)
|
||||
if this.leftLiveObj then
|
||||
poolManager:UnLoadLive(leftHeroData.live, this.leftLiveObj)
|
||||
this.leftLiveObj = nil
|
||||
end
|
||||
this.curLiveObj.transform:SetParent(self.leftObj.transform)
|
||||
this.curLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(oldIndexConfigData.position[1],oldIndexConfigData.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 = HeroManager.LoadHerolive(rightHeroData,self.rightObj)
|
||||
this:UpdateHeroInfoData()
|
||||
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 this:LeftBtnOnClick()
|
||||
if isClickLeftOrRightBtn == false then
|
||||
return
|
||||
end
|
||||
isClickLeftOrRightBtn = false
|
||||
this.leftBtn:GetComponent("Button").enabled = false
|
||||
local oldIndexConfigData = heroDatas[index]
|
||||
index = (index - 1 > 0 and index - 1 or #heroDatas)
|
||||
curHeroData = heroDatas[index]
|
||||
this.SetPanelBg(curHeroData.heroConfig)
|
||||
if this.rightLiveObj then
|
||||
poolManager:UnLoadLive(rightHeroData.live, this.rightLiveObj)
|
||||
this.rightLiveObj = nil
|
||||
end
|
||||
this.curLiveObj.transform:SetParent(self.rightObj.transform)
|
||||
this.curLiveObj:GetComponent("RectTransform"):DOAnchorPos(Vector2.New(oldIndexConfigData.position[1],oldIndexConfigData.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 = HeroManager.LoadHerolive(leftHeroData,self.leftObj)
|
||||
this:UpdateHeroInfoData()
|
||||
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
|
||||
|
||||
function this:UpdateHeroInfoData()
|
||||
local EquipSignUnlock = ConfigManager.GetConfigData(ConfigName.GameSetting,1).EquipSignUnlock
|
||||
if teamHero[curHeroData.dynamicId] then
|
||||
isUpZhen = true
|
||||
this.equipBtnRedPoint:SetActive(#HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) > 0)
|
||||
this.talismanBtnRedPoint:SetActive(HeroManager.GetIsShowTalismanRedPoint(curHeroData))
|
||||
this.soulPrintBtnRedPoint:SetActive(HeroManager.GetIsShowSoulPrintRedPoint(curHeroData))
|
||||
else
|
||||
isUpZhen = false
|
||||
this.equipBtnRedPoint:SetActive(false)
|
||||
this.talismanBtnRedPoint:SetActive(false)
|
||||
this.soulPrintBtnRedPoint:SetActive(false)
|
||||
end
|
||||
--角色定位按钮
|
||||
this.posBtn.gameObject:SetActive(curHeroData.heroConfig.ShowHeroLocation==1)
|
||||
--法宝按钮逻辑
|
||||
this.talismanBtn.gameObject:SetActive(TalismanManager.CheckTalismanIsInConfig(curHeroData))
|
||||
if TalismanManager.CheckTalismanIsInConfig(curHeroData) then
|
||||
talismanIsOpen = TalismanManager.GetCurHeroIsOpenTalisman(curHeroData)
|
||||
this.talismanInfo.gameObject:SetActive(not talismanIsOpen)
|
||||
Util.SetGray(this.talismanClick, not talismanIsOpen)
|
||||
Util.GetGameObject(this.talismanClick.transform, "lock"):SetActive(not talismanIsOpen)
|
||||
if not talismanIsOpen then
|
||||
Util.GetGameObject(this.talismanClick, "lock/Text"):GetComponent("Text").text = TalismanManager.GetCurHeroIsOpenTalismanStr()
|
||||
end
|
||||
end
|
||||
--魂印按钮逻辑
|
||||
if curHeroData.heroConfig.RankupConsumeMaterial then
|
||||
this.soulPrintBtn:SetActive(PlayerManager.level>=EquipSignUnlock[1][2] and (#curHeroData.heroConfig.RankupConsumeMaterial + curHeroData.heroConfig.Star) >= EquipSignUnlock[2][2])
|
||||
else
|
||||
this.soulPrintBtn:SetActive(PlayerManager.level>=EquipSignUnlock[1][2] and curHeroData.heroConfig.Star >= EquipSignUnlock[2][2])
|
||||
end
|
||||
|
||||
if this.curLiveObj then
|
||||
self.dragView.gameObject:SetActive(true)
|
||||
self.dragView:SetDragGO(this.curLiveObj)
|
||||
else
|
||||
self.dragView.gameObject:SetActive(false)
|
||||
end
|
||||
|
||||
local starSize = Vector2.New(60,60)
|
||||
SetHeroStars(self.starGrid, curHeroData.star,2,starSize,-10,Vector2.New(0.5,0.5))
|
||||
self.posImage.sprite =Util.LoadSprite(curHeroData.professionIcon)
|
||||
self.posText.text = GetJobStrByJobNum(curHeroData.profession)
|
||||
self.heroName.text = curHeroData.name
|
||||
self.profession.sprite =Util.LoadSprite(GetProStrImageByProNum(curHeroData.heroConfig.PropertyName))
|
||||
--定位描述相关
|
||||
this.posBgImage.sprite=Util.LoadSprite(GetHeroPosBgStr(curHeroData.heroConfig.Profession))
|
||||
this.posImage.sprite=Util.LoadSprite(GetHeroPosStr(curHeroData.heroConfig.Profession))
|
||||
this.posText.text=curHeroData.heroConfig.HeroLocation
|
||||
this.unlockImage:SetActive(curHeroData.lockState == 0)
|
||||
this.lockImage:SetActive(curHeroData.lockState == 1)
|
||||
--魂印
|
||||
soulPrintIsOpen=SoulPrintManager.GetSoulPrintIsOpen(curHeroData)
|
||||
Util.GetGameObject(this.soulPrintBtn, "lock"):SetActive(not soulPrintIsOpen)
|
||||
Util.SetGray(this.soulPrintBtn, not soulPrintIsOpen)
|
||||
if not soulPrintIsOpen then
|
||||
Util.GetGameObject(this.soulPrintBtn, "lock/Text"):GetComponent("Text").text= NumToSimplenessFont[EquipSignUnlock[2][2]]..Language[10488]
|
||||
end
|
||||
--天赋
|
||||
this.talentBtn:SetActive(curHeroData.heroConfig.OpenPassiveSkillRules ~= nil)
|
||||
if curHeroData.heroConfig.OpenPassiveSkillRules then
|
||||
local openlists,compoundOpenNum,compoundNum,allUpStarOpenData = HeroManager.GetAllPassiveSkillIds(curHeroData.heroConfig,curHeroData.breakId,curHeroData.upStarId)
|
||||
this.talentProgress.text = #openlists - compoundOpenNum .."/"..#curHeroData.heroConfig.OpenPassiveSkillRules - compoundNum
|
||||
if allUpStarOpenData[curHeroData.star + 1] then
|
||||
this.talentTipStr.text = Language[11837].. NumToSimplenessFont[curHeroData.star + 1] ..Language[11838]
|
||||
else
|
||||
this.talentTipStr.text = ""
|
||||
end
|
||||
end
|
||||
this.PageTabCtrl:ChangeTab(_CurPageIndex)
|
||||
end
|
||||
|
||||
local beginV3
|
||||
local endV3
|
||||
local distance
|
||||
function RoleInfoPanel:OnBeginDrag(Pointgo, data)
|
||||
beginV3=this.curLiveObj.transform.anchoredPosition
|
||||
end
|
||||
function RoleInfoPanel:OnDrag(Pointgo, data)
|
||||
distance=Vector2.Distance(beginV3,this.curLiveObj.transform.anchoredPosition)
|
||||
end
|
||||
function RoleInfoPanel: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(curHeroData.position[1],curHeroData.position[2]), 0.5, false):SetEase(Ease.Linear)
|
||||
end
|
||||
distance=0
|
||||
end
|
||||
|
||||
--界面关闭时调用(用于子类重写)
|
||||
function RoleInfoPanel:OnClose()
|
||||
if _CurPageIndex then
|
||||
this.PageList[_CurPageIndex]:OnHide()
|
||||
this.PageList[_CurPageIndex].gameObject:SetActive(false)
|
||||
end
|
||||
end
|
||||
--界面销毁时调用(用于子类重写)
|
||||
function RoleInfoPanel:OnDestroy()
|
||||
SubUIManager.Close(this.UpView)
|
||||
-- 清除红点
|
||||
this.ClearPageRedpot()
|
||||
-- 这里管理全部子界面的销毁,保证子界面生命周期完整
|
||||
for _, page in pairs(this.PageList) do
|
||||
if page.OnDestroy then
|
||||
page:OnDestroy()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--情报按钮点击
|
||||
function RoleInfoPanel:OnClickBtnInfo()
|
||||
this.roleInfoLayout:SetActive(true)
|
||||
this.talentTipStrGo:SetActive(false)
|
||||
RoleInfoPanel:SetSelectBtn(this.btnInfo, Language[11836])
|
||||
end
|
||||
--进阶按钮点击
|
||||
function RoleInfoPanel:OnClickBtnUpStar()
|
||||
if curHeroData.heroConfig.GrowthSwitch then
|
||||
PopupTipPanel.ShowTip(Language[11844])
|
||||
return
|
||||
end
|
||||
RoleInfoPanel.HideAllLayout()
|
||||
this.roleUpStarLayout:SetActive(true)
|
||||
this.talentTipStrGo:SetActive(true)
|
||||
RoleInfoPanel:SetSelectBtn(this.btnUpStar, Language[11845])
|
||||
end
|
||||
--传记按钮点击
|
||||
function RoleInfoPanel:OnClickBtnStory()
|
||||
RoleInfoPanel.HideAllLayout()
|
||||
this.roleStoryLayout:SetActive(true)
|
||||
RoleInfoPanel:SetSelectBtn(this.btnStory, Language[12158])
|
||||
--PopupTipPanel.ShowTip("内容未开放")
|
||||
end
|
||||
|
||||
--皮肤按钮点击
|
||||
function RoleInfoPanel:OnClickBtnSkin()
|
||||
RoleInfoPanel.HideAllLayout()
|
||||
this.roleSkinLayout:SetActive(true)
|
||||
RoleInfoPanel:SetSelectBtn(this.btnSkin, "皮肤")
|
||||
end
|
||||
function this:SortHeroDatas(_heroDatas)
|
||||
--上阵最优先,星级优先,同星级等级优先,同星级同等级按sortId排序。排序时降序排序。
|
||||
table.sort(_heroDatas, function(a, b)
|
||||
if (teamHero[a.dynamicId] and teamHero[b.dynamicId]) or
|
||||
(not teamHero[a.dynamicId] and not teamHero[b.dynamicId])
|
||||
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 teamHero[a.dynamicId] and not teamHero[b.dynamicId]
|
||||
end
|
||||
end)
|
||||
end
|
||||
--跳转显示新手提示圈
|
||||
function this.ShowGuideGo(type)--1 升级突破 2 进阶
|
||||
if type == 1 then
|
||||
JumpManager.ShowGuide(UIName.RoleInfoPanel,this.upLvBtn)
|
||||
elseif type == 2 then
|
||||
--local btn = Util.GetGameObject(this.upStarGrid.transform, "upStarPre3")
|
||||
--JumpManager.ShowGuide(UIName.RoleInfoPanel,btn)
|
||||
|
||||
-- 我要变强跳转过来显示小手
|
||||
elseif type == -1 then
|
||||
JumpManager.ShowGuide(UIName.RoleInfoPanel,this.upLvBtn)
|
||||
elseif type == -2 then
|
||||
JumpManager.ShowGuide(UIName.RoleInfoPanel,this.equipBtn)
|
||||
elseif type == -3 then
|
||||
JumpManager.ShowGuide(UIName.RoleInfoPanel,this.soulPrintBtn)
|
||||
elseif type == -4 then
|
||||
JumpManager.ShowGuide(UIName.RoleInfoPanel,this.talismanClick)
|
||||
end
|
||||
end
|
||||
function this:HeroLockEvent()
|
||||
if curHeroData.lockState == 1 then
|
||||
curHeroData.lockState = 0
|
||||
elseif curHeroData.lockState == 0 then
|
||||
curHeroData.lockState = 1
|
||||
end
|
||||
NetManager.HeroLockEvent(curHeroData.dynamicId,curHeroData.lockState,function ()
|
||||
if curHeroData.lockState == 1 then
|
||||
PopupTipPanel.ShowTip(Language[11853])
|
||||
elseif curHeroData.lockState == 0 then
|
||||
PopupTipPanel.ShowTip(Language[11791])
|
||||
end
|
||||
HeroManager.UpdateSingleHeroLockState(curHeroData.dynamicId,curHeroData.lockState)
|
||||
this.unlockImage:SetActive(curHeroData.lockState == 0)
|
||||
this.lockImage:SetActive(curHeroData.lockState == 1)
|
||||
for i, v in pairs(heroDatas) do
|
||||
if curHeroData == v then
|
||||
v.lockState = curHeroData.lockState
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
function RoleInfoPanel:HeroReturnEvent()
|
||||
if isUpZhen then
|
||||
PopupTipPanel.ShowTip(Language[11854])
|
||||
return
|
||||
end
|
||||
if curHeroData.lockState == 1 then
|
||||
PopupTipPanel.ShowTip(Language[11855])
|
||||
return
|
||||
end
|
||||
UIManager.OpenPanel(UIName.RoleReturnPanel,curHeroData,isUpZhen)
|
||||
end
|
||||
function this:SortHeroDatas(_heroDatas)
|
||||
--上阵最优先,星级优先,同星级等级优先,同星级同等级按sortId排序。排序时降序排序。
|
||||
table.sort(_heroDatas, function(a, b)
|
||||
if (teamHero[a.dynamicId] and teamHero[b.dynamicId]) or
|
||||
(not teamHero[a.dynamicId] and not teamHero[b.dynamicId])
|
||||
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 teamHero[a.dynamicId] and not teamHero[b.dynamicId]
|
||||
end
|
||||
end)
|
||||
end
|
||||
return this
|
|
@ -1,7 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c2e3cbf6886c5e74a8b1c3ee29ff52ef
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
|
@ -1,9 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: dddbd933727a93e47a8b47ad5771fa5b
|
||||
timeCreated: 1545907222
|
||||
licenseType: Pro
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue