1189 lines
49 KiB
Lua
1189 lines
49 KiB
Lua
require("Base/BasePanel")
|
||
local spcialConfig = ConfigManager.GetConfig(ConfigName.SpecialConfig)
|
||
local equipConfig = ConfigManager.GetConfig(ConfigName.EquipConfig)
|
||
RoleEquipPanel = Inherit(BasePanel)
|
||
local isGonming = 0
|
||
--local SortTypeConst = {
|
||
-- Natural = 1,--品阶 ur+ --> r 6 --> 1
|
||
-- Lv = 2
|
||
--}
|
||
local PosIdConst = {
|
||
All = 0,
|
||
--全部
|
||
WuQi = 1,
|
||
--武器
|
||
ZhanFu = 2,
|
||
--战服
|
||
TouShi = 3,
|
||
--头饰
|
||
ZhanXue = 4,
|
||
--战靴
|
||
Hun = 5,
|
||
--魂宝
|
||
Ling = 6
|
||
--灵宝
|
||
}
|
||
local this = RoleEquipPanel
|
||
--当前英雄穿的装备
|
||
local curHeroEquipDatas = {}
|
||
--当前英雄
|
||
local curHeroData
|
||
|
||
local heroListData
|
||
local curSelectEquipData
|
||
local index
|
||
local indexBtnNum = 1
|
||
local typeTab = {
|
||
[0] = Language[10175],
|
||
[1] = Language[10391],
|
||
[2] = Language[10392],
|
||
[3] = Language[10393],
|
||
[4] = Language[10394],
|
||
[5] = Language[10552],
|
||
[6] = Language[10553]}
|
||
local tabs = {}
|
||
local redTabs = {}
|
||
local openThisPanel
|
||
local effectList = {}
|
||
local orginLayer1
|
||
local orginLayer
|
||
local isUpZhen = false
|
||
local teamHero = {}
|
||
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
||
local jewerConfigs = ConfigManager.GetConfig(ConfigName.JewelConfig)
|
||
local currPageIndex = 0
|
||
local curEquipTreasureDatas = {}
|
||
local isCanUpEquipTreasure = false
|
||
local isPlayAnim = true
|
||
local isFristOpenTime
|
||
--初始化组件(用于子类重写)RoleEquipChangePopup
|
||
function RoleEquipPanel:InitComponent()
|
||
this.spLoader = SpriteLoader.New()
|
||
orginLayer = 10
|
||
orginLayer1 = {0, 0, 0, 0, 0, 0}
|
||
this.bg2 = Util.GetGameObject(self.transform, "bg2")
|
||
screenAdapte(this.bg2)
|
||
this.UpView = SubUIManager.Open(SubUIConfig.UpView, self.gameObject.transform, {showType = UpViewOpenType.ShowLeft})
|
||
this.btnBack = Util.GetGameObject(self.transform, "btnBack/btnBack")
|
||
--英雄
|
||
this.heroBg = Util.GetGameObject(self.transform, "bg/heroInfo/bg"):GetComponent("Image")
|
||
this.heroLv = Util.GetGameObject(self.transform, "bg/heroInfo/lv/Text"):GetComponent("Text")
|
||
this.heroIcon = Util.GetGameObject(self.transform, "bg/heroInfo/icon"):GetComponent("Image")
|
||
Util.GetGameObject(self.transform, "bg/heroInfo/pos"):SetActive(false)
|
||
--this.heroPosIcon = Util.GetGameObject(self.transform, "bg/heroInfo/pos/icon"):GetComponent("Image")
|
||
this.heroProIcon = Util.GetGameObject(self.transform, "bg/heroInfo/pro/Image"):GetComponent("Image")
|
||
--this.heroStage = Util.GetGameObject(self.transform, "bg/heroInfo/heroStage"):GetComponent("Image")
|
||
Util.GetGameObject(self.transform, "bg/heroInfo/heroStage"):SetActive(false)
|
||
this.heroStarGrid = Util.GetGameObject(self.transform, "bg/heroInfo/star")
|
||
this.heroStarPre = Util.GetGameObject(self.transform, "bg/heroInfo/starPre")
|
||
--英雄身上的装备
|
||
this.equipGrid = Util.GetGameObject(self.transform, "bg/equipInfo")
|
||
|
||
local scale = (Screen.width / Screen.height / 1080 * 1920 + 1) / 2
|
||
if scale < 1 then
|
||
for i = 1, this.equipGrid.transform.childCount do
|
||
Util.SetParticleScale(Util.GetGameObject(this.equipGrid.transform:GetChild(i - 1), "effect"), scale)
|
||
end
|
||
end
|
||
--装备list
|
||
this.effect = Util.GetGameObject(self.transform, "bg/effect")
|
||
for i = 1, 6 do
|
||
tabs[i] = Util.GetGameObject(self.transform, "Tabs/Btn" .. i)
|
||
Util.GetGameObject(tabs[i], "Text"):GetComponent("Text").fontSize = GetCurLanguage() == 0 and 48 or 40
|
||
redTabs[i] = Util.GetGameObject(tabs[i], "red")
|
||
effectList[i] = Util.GetGameObject(self.transform, "bg/equipInfo/equip" .. i .. "/effect")
|
||
end
|
||
this.selectBtn = Util.GetGameObject(self.gameObject, "selectBtn")
|
||
this.btnPrant = Util.GetGameObject(self.gameObject, "Tabs")
|
||
this.equipPreList2 = {}
|
||
this.equipPreList = {}
|
||
this.equipPre = Util.GetGameObject(self.gameObject, "equipPre")
|
||
this.grid = Util.GetGameObject(self.gameObject, "scroll/grid")
|
||
this.selsectSkillImage = Util.GetGameObject(self.gameObject, "selsectSkillImage")
|
||
|
||
this.ShaiXuanBtn = Util.GetGameObject(self.gameObject, "ShaiXuanBtn")
|
||
this.ShaiXuanBtn:SetActive(false)
|
||
this.ShaiXuanBtnLv = Util.GetGameObject(self.gameObject, "ShaiXuanBtn/Lv")
|
||
this.ShaiXuanBtnLv:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_tongyong_dengjiqiehuan_zh")
|
||
this.ShaiXuanBtnQu = Util.GetGameObject(self.gameObject, "ShaiXuanBtn/Qu")
|
||
this.ShaiXuanBtnQu:GetComponent("Image").sprite = this.spLoader:LoadSprite("r_tongyong_pingjieqiehuan_zh")
|
||
this.leftBtn = Util.GetGameObject(self.transform, "leftBtn/GameObject")
|
||
this.rightBtn = Util.GetGameObject(self.transform, "rightBtn/GameObject")
|
||
this.allEquipUp = Util.GetGameObject(self.transform, "allEquipUp")
|
||
this.allEquipDown = Util.GetGameObject(self.transform, "allEquipDown")
|
||
this.allEquipUpRedPoint = Util.GetGameObject(self.transform, "allEquipUp/redPoint")
|
||
|
||
this.ScrollBar = Util.GetGameObject(self.gameObject, "Scrollbar"):GetComponent("Scrollbar")
|
||
local v2 = Util.GetGameObject(self.gameObject, "scroll"):GetComponent("RectTransform").rect
|
||
this.ScrollView =
|
||
SubUIManager.Open(
|
||
SubUIConfig.ScrollCycleView,
|
||
Util.GetGameObject(self.transform, "scroll").transform,
|
||
this.equipPre,
|
||
this.ScrollBar,
|
||
Vector2.New(v2.width, v2.height),
|
||
1,
|
||
5,
|
||
Vector2.New(40, 15)
|
||
)
|
||
this.ScrollView.moveTween.MomentumAmount = 1
|
||
this.ScrollView.moveTween.Strength = 1
|
||
Util.GetGameObject(self.transform, "powerBtn"):GetComponent("Image").sprite = this.spLoader:LoadSprite("t_tongyong-zhanli_zh")
|
||
this.force = Util.GetGameObject(self.transform, "powerBtn/value"):GetComponent("Text")
|
||
this.itemNumText = Util.GetGameObject(self.transform, "itemNumText"):GetComponent("Text")
|
||
this.upLvEffect = Util.GetGameObject(self.transform, "powerBtn/effect")
|
||
this.equipTreasureBtn = Util.GetGameObject(self.transform, "equipTreasureBtn")
|
||
this.equipTreasureBtn:GetComponent("Image").sprite = this.spLoader:LoadSprite("b_baowuxitong_gongmin_zh")
|
||
this.treasure1 = Util.GetGameObject(self.transform, "bg/equipInfo/equip5")
|
||
this.treasure2 = Util.GetGameObject(self.transform, "bg/equipInfo/equip6")
|
||
this.treasurePage1 = Util.GetGameObject(self.transform, "Tabs/Btn5")
|
||
this.treasurePage2 = Util.GetGameObject(self.transform, "Tabs/Btn6")
|
||
this.emptyObj = Util.GetGameObject(self.transform, "emptyObj")
|
||
this.emptyObj.gameObject:SetActive(false)
|
||
this.mask = Util.GetGameObject(self.gameObject, "mask")
|
||
this.equipBtn5 = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip5/Image")
|
||
this.equipBtn6 = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip6/Image")
|
||
this.equipBTn5Add = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip5/red")
|
||
this.equipBtn6Add = Util.GetGameObject(self.gameObject,"bg/equipInfo/equip6/red")
|
||
for i = 1, 6 do
|
||
Util.GetGameObject(self.gameObject,"bg/equipInfo/equip"..i.."/mask"):GetComponent("Image").sprite = this.spLoader:LoadSprite(EquipPositionIcon[i])
|
||
end
|
||
|
||
this.treeBtn = Util.GetGameObject(self.gameObject, "treeBtn")
|
||
Util.GetGameObject(this.treeBtn,"treebtn"):GetComponent("Image").sprite = this.spLoader:LoadSprite("j_jianmushenshu_anniu_01_zh")
|
||
Util.AddClick(this.treeBtn, function()
|
||
if ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.SACREDTREE) then
|
||
UIManager.OpenPanel(UIName.SacredTreePanel)
|
||
end
|
||
end)
|
||
end
|
||
|
||
--绑定事件(用于子类重写)
|
||
function RoleEquipPanel:BindEvent()
|
||
Util.AddClick(
|
||
this.btnBack,
|
||
function()
|
||
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
||
if openThisPanel.RefreshHeroDatas then
|
||
openThisPanel:RefreshHeroDatas(curHeroData, HeroManager.heroSortedDatas)
|
||
end
|
||
self:ClosePanel()
|
||
end
|
||
)
|
||
Util.AddClick(
|
||
this.leftBtn,
|
||
function()
|
||
isPlayAnim = true
|
||
this:LeftBtnOnClick()
|
||
end
|
||
)
|
||
|
||
Util.AddClick(
|
||
this.rightBtn,
|
||
function()
|
||
isPlayAnim = true
|
||
this:RightBtnOnClick()
|
||
end
|
||
)
|
||
Util.AddOnceClick(
|
||
this.allEquipUp,
|
||
function()
|
||
this:AllEquipUpBtnOnClick()
|
||
end
|
||
)
|
||
|
||
Util.AddOnceClick(
|
||
this.allEquipDown,
|
||
function()
|
||
if HarmonyManager:IsShowGongMingEqiup(curHeroData.dynamicId) and curHeroData.harmonyGongMing then
|
||
-- body
|
||
PopupTipPanel.ShowTip(Language[12222])
|
||
else
|
||
this:AllEquipDownBtnOnClick()
|
||
end
|
||
|
||
end
|
||
)
|
||
for i = 1, 6 do
|
||
Util.AddClick(
|
||
tabs[i],
|
||
function()
|
||
isPlayAnim = true
|
||
if i == indexBtnNum then
|
||
return
|
||
end
|
||
indexBtnNum = i
|
||
this:OnClickTabBtn(indexBtnNum)
|
||
-- if indexBtnNum == PosIdConst.All then
|
||
-- this:OnClickAllBtn()
|
||
-- else
|
||
-- this:OnClickTabBtn(indexBtnNum)
|
||
-- end
|
||
end
|
||
)
|
||
end
|
||
Util.AddClick(
|
||
this.equipTreasureBtn,
|
||
function()
|
||
if LengthOfTable(curEquipTreasureDatas) < 2 then
|
||
PopupTipPanel.ShowTip(Language[11797])
|
||
return
|
||
end
|
||
UIManager.OpenPanel(UIName.EquipTreasureResonancePanel, curHeroData)
|
||
end
|
||
)
|
||
|
||
-- Util.AddClick(
|
||
-- this.equipBtn5,
|
||
-- function()
|
||
-- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,9999,nil)
|
||
-- end
|
||
-- )
|
||
|
||
-- Util.AddClick(
|
||
-- this.equipBtn6,
|
||
-- function()
|
||
-- UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,9998,nil)
|
||
-- end
|
||
-- )
|
||
end
|
||
|
||
--添加事件监听(用于子类重写)
|
||
function RoleEquipPanel:AddListener()
|
||
Game.GlobalEvent:AddEvent(GameEvent.Treasure.TreasureLvUp, this.CurrEquipDataChange)
|
||
end
|
||
|
||
--移除事件监听(用于子类重写)
|
||
function RoleEquipPanel:RemoveListener()
|
||
Game.GlobalEvent:RemoveEvent(GameEvent.Treasure.TreasureLvUp, this.CurrEquipDataChange)
|
||
end
|
||
|
||
function this.CurrEquipDataChange()
|
||
this.ShowHeroEquip()
|
||
this:OnClickTabBtn(indexBtnNum)
|
||
-- if indexBtnNum == PosIdConst.All then
|
||
-- this:OnClickAllBtn()
|
||
-- else
|
||
-- this:OnClickTabBtn(indexBtnNum)
|
||
-- end
|
||
this.CheckRedTab()
|
||
end
|
||
|
||
--界面打开时调用(用于子类重写)
|
||
function RoleEquipPanel:OnOpen(...)
|
||
local data = {...}
|
||
if data[1] then
|
||
curHeroData = data[1]
|
||
HeroManager.roleEquipPanelCurHeroData = data[1]
|
||
else
|
||
curHeroData = HeroManager.roleEquipPanelCurHeroData
|
||
end
|
||
if data[2] then
|
||
heroListData = data[2]
|
||
HeroManager.roleEquipPanelHeroListData = data[2]
|
||
else
|
||
heroListData = HeroManager.GetAllHeroDatas()
|
||
end
|
||
openThisPanel = data[3]
|
||
isUpZhen = data[4]
|
||
end
|
||
function RoleEquipPanel:OnShow()
|
||
this.treeBtn:SetActive(ActTimeCtrlManager.SingleFuncState(FUNCTION_OPEN_TYPE.SACREDTREE))
|
||
isPlayAnim = true
|
||
for i = 1, #heroListData do
|
||
if curHeroData == heroListData[i] then
|
||
index = i
|
||
end
|
||
end
|
||
for i = 1, 6 do
|
||
if (effectList[i] ~= nil) then
|
||
effectList[i]:SetActive(false)
|
||
end
|
||
end
|
||
indexBtnNum = PosIdConst.WuQi
|
||
teamHero = FormationManager.GetAllMainFormationHeroId()
|
||
this.ShowHeroEquip(true)
|
||
this:OnClickTabBtn(indexBtnNum)
|
||
this.CheckRedTab()
|
||
this.UpView:OnOpen({showType = UpViewOpenType.ShowLeft, panelType = PanelType.Main})
|
||
end
|
||
|
||
function this:OnSortingOrderChange()
|
||
Util.AddParticleSortLayer(this.effect, this.sortingOrder - orginLayer)
|
||
Util.SetParticleSortLayer(this.heroStarGrid,this.sortingOrder + 1)
|
||
orginLayer = this.sortingOrder
|
||
end
|
||
|
||
--右切换按钮点击
|
||
function this:RightBtnOnClick()
|
||
index = (index + 1 <= #heroListData and index + 1 or 1)
|
||
curHeroData = heroListData[index]
|
||
this.ShowHeroEquip()
|
||
this:OnClickTabBtn(indexBtnNum)
|
||
this.CheckRedTab()
|
||
-- if indexBtnNum == PosIdConst.All then
|
||
-- this:OnClickAllBtn()
|
||
-- else
|
||
-- this:OnClickTabBtn(indexBtnNum)
|
||
-- end
|
||
end
|
||
--左切换按钮点击
|
||
function this:LeftBtnOnClick()
|
||
index = (index - 1 > 0 and index - 1 or #heroListData)
|
||
curHeroData = heroListData[index]
|
||
this.ShowHeroEquip()
|
||
this:OnClickTabBtn(indexBtnNum)
|
||
this.CheckRedTab()
|
||
-- if indexBtnNum == PosIdConst.All then
|
||
-- this:OnClickAllBtn()
|
||
-- else
|
||
-- this:OnClickTabBtn(indexBtnNum)
|
||
-- end
|
||
end
|
||
|
||
--一键装备
|
||
function this:AllEquipUpBtnOnClick()
|
||
local allEquipIds = {}
|
||
local allTreasureIds = {}
|
||
|
||
--计算英雄身上的所有装备位的装备
|
||
local curHeroEquipDatas = {}
|
||
local curHeroDataequipIdList = curHeroData.equipIdList
|
||
for k, v in ipairs(curHeroDataequipIdList) do
|
||
local equipData = EquipManager.GetSingleHeroSingleEquipData(v, curHeroData.dynamicId)
|
||
if equipData ~= nil then
|
||
curHeroEquipDatas[equipData.equipConfig.Position] = equipData
|
||
else
|
||
LogBlue("没有得到equipData")
|
||
end
|
||
end
|
||
|
||
--宝物数据
|
||
for k, v in ipairs(curHeroData.jewels) do
|
||
local equipData = EquipTreasureManager.GetSingleTreasureByIdDyn(v)
|
||
if equipData ~= nil then
|
||
curHeroEquipDatas[equipData.equipType + 4] = equipData
|
||
end
|
||
end
|
||
|
||
local equipEffectPos = {}
|
||
local treasureEffectPos = {}
|
||
for i = 1, 6 do
|
||
local curPosEquip = {}
|
||
local index = i
|
||
if (index == 5 or index == 6) and isCanUpEquipTreasure then
|
||
curPosEquip = EquipTreasureManager.GetAllTreasuresByLocation(index - 4, curHeroData.heroConfig.PropertyName)
|
||
else
|
||
--获取到所有未装备的装备
|
||
curPosEquip = BagManager.GetEquipDataByEquipPosition(curHeroData.heroConfig.Profession, index)
|
||
end
|
||
-- LogBlue("i:"..index.." #curPosEquip:".. #curPosEquip)
|
||
-- LogBlue("计算每个位置可装备的装备战力")-- 取战力最大的装备
|
||
if curPosEquip and #curPosEquip > 0 then
|
||
local equiData = {}
|
||
local indexMaxPower = 0
|
||
if curHeroEquipDatas[index] then
|
||
equiData = curHeroEquipDatas[index]
|
||
--获取到宝物战力
|
||
if index == 5 or index == 6 then
|
||
indexMaxPower = EquipTreasureManager.CalculateWarForce(curHeroEquipDatas[index].idDyn)
|
||
--LogBlue("宝物id:"..curHeroEquipDatas[index].idDyn.." id:"..curHeroEquipDatas[index].id.." indexMaxPower:"..indexMaxPower)
|
||
else
|
||
--获取到装备战力
|
||
indexMaxPower = EquipManager.CalculateWarForce(curHeroEquipDatas[index].id)
|
||
--LogBlue("装备id:"..curHeroEquipDatas[index].id.." indexMaxPower:"..indexMaxPower)
|
||
end
|
||
end
|
||
--LogGreen("循环计算每个装备的战力")
|
||
for i = 1, #curPosEquip do
|
||
local addPower = 0
|
||
local curEquip = curPosEquip[i]
|
||
if curEquip then
|
||
if index == 5 or index == 6 then
|
||
addPower = EquipTreasureManager.CalculateWarForce(curEquip.idDyn)
|
||
--LogGreen("宝物id:"..curEquip.idDyn.." id:"..curEquip.id.." addPower:"..addPower)
|
||
else
|
||
addPower = EquipManager.CalculateWarForce(curEquip.id)
|
||
--LogGreen("装备id:"..curEquip.id.." addPower:"..addPower)
|
||
end
|
||
end
|
||
if addPower > indexMaxPower then
|
||
indexMaxPower = addPower
|
||
equiData = curEquip
|
||
end
|
||
end
|
||
|
||
if (index == 5 or index == 6) then
|
||
if ((curHeroEquipDatas[index] and equiData.idDyn ~= curHeroEquipDatas[index].idDyn)
|
||
or (not curHeroEquipDatas[index])) then
|
||
table.insert(allTreasureIds, equiData.idDyn)
|
||
end
|
||
else
|
||
if (not curHeroEquipDatas[index] or tonumber(equiData.id) ~= tonumber(curHeroEquipDatas[index].id)) then
|
||
table.insert(allEquipIds, tostring(equiData.id))
|
||
end
|
||
end
|
||
|
||
--特效
|
||
if curHeroEquipDatas[equiData.position] then
|
||
if equiData.idDyn then
|
||
if equiData.idDyn ~= curHeroEquipDatas[equiData.position].idDyn then
|
||
table.insert(treasureEffectPos, i)
|
||
end
|
||
else
|
||
if equiData.id ~= curHeroEquipDatas[equiData.position].id then
|
||
table.insert(equipEffectPos, i)
|
||
end
|
||
end
|
||
else
|
||
--table.insert(showEffectPos,i)
|
||
end
|
||
end
|
||
end
|
||
LogYellow("装备:"..#allEquipIds)
|
||
LogYellow("宝物:"..#allTreasureIds)
|
||
LogYellow("isCanUpEquipTreasure:"..tostring(isCanUpEquipTreasure))
|
||
if (allEquipIds and #allEquipIds > 0) or (isCanUpEquipTreasure and allTreasureIds and #allTreasureIds > 0) then
|
||
--isCanUpEquipTreasure
|
||
if allEquipIds and #allEquipIds > 0 and not curHeroData.harmonyGongMing then
|
||
-- for i = 1, #allEquipIds do
|
||
-- --LogGreen("一键装备"..allEquipIds[i])
|
||
-- end
|
||
--穿装备协议
|
||
NetManager.EquipWearRequest(
|
||
curHeroData.dynamicId,
|
||
allEquipIds,
|
||
1,
|
||
function()
|
||
this.UpdateEquipPosHeroData(1, 4, allEquipIds)
|
||
--特效播放
|
||
if equipEffectPos then
|
||
for i = 1, #equipEffectPos do
|
||
effectList[equipEffectPos[i]]:SetActive(false)
|
||
effectList[equipEffectPos[i]]:SetActive(true)
|
||
end
|
||
end
|
||
end
|
||
)
|
||
end
|
||
if curHeroData.harmonyGongMing then
|
||
PopupTipPanel.ShowTip(Language[12223])
|
||
end
|
||
--穿戴宝物
|
||
if isCanUpEquipTreasure and allTreasureIds and #allTreasureIds > 0 then
|
||
--穿装备协议
|
||
NetManager.EquipWearRequest(
|
||
curHeroData.dynamicId,
|
||
allTreasureIds,
|
||
2,
|
||
function()
|
||
this.UpdateEquipPosHeroData(2, 4, allTreasureIds)
|
||
--特效播放
|
||
for i, v in pairs(treasureEffectPos) do
|
||
effectList[v]:SetActive(false)
|
||
effectList[v]:SetActive(true)
|
||
end
|
||
end
|
||
)
|
||
end
|
||
else
|
||
if not allEquipIds or #allEquipIds < 1 then
|
||
if #curHeroData.equipIdList <= 0 then
|
||
PopupTipPanel.ShowTip(Language[11798])
|
||
else
|
||
PopupTipPanel.ShowTip(Language[12137])
|
||
end
|
||
else
|
||
PopupTipPanel.ShowTip(Language[11799])
|
||
end
|
||
end
|
||
PlaySoundWithoutClick(SoundConfig.Sound_Wear)
|
||
this.ShowHeroEquip()
|
||
end
|
||
|
||
--一键卸下
|
||
function this:AllEquipDownBtnOnClick()
|
||
if
|
||
(curHeroData.equipIdList and #curHeroData.equipIdList > 0) or
|
||
(curHeroData.jewels and #curHeroData.jewels > 0 and isCanUpEquipTreasure)
|
||
then
|
||
if curHeroData.equipIdList and #curHeroData.equipIdList > 0 then
|
||
NetManager.EquipUnLoadOptRequest(
|
||
curHeroData.dynamicId,
|
||
curHeroData.equipIdList,
|
||
1,
|
||
function()
|
||
this.UpdateEquipPosHeroData(1, 5, curHeroData.equipIdList)
|
||
end
|
||
)
|
||
end
|
||
--寶物
|
||
if curHeroData.jewels and #curHeroData.jewels > 0 then
|
||
-- 一键卸下音效
|
||
NetManager.EquipUnLoadOptRequest(
|
||
curHeroData.dynamicId,
|
||
curHeroData.jewels,
|
||
2,
|
||
function()
|
||
this.UpdateEquipPosHeroData(2, 5, curHeroData.jewels)
|
||
end
|
||
)
|
||
end
|
||
else
|
||
PopupTipPanel.ShowTip(Language[11800])
|
||
end
|
||
PlaySoundWithoutClick(SoundConfig.Sound_TakeOff)
|
||
this.ShowHeroEquip()
|
||
this.CheckRedTab()
|
||
end
|
||
|
||
function this.ShowHeroEquip()
|
||
--装备
|
||
if curHeroData and spcialConfig then
|
||
local config = spcialConfig[40]
|
||
if config then
|
||
local limits = string.split(config.Value, "|")
|
||
if limits then
|
||
local heroConfig = ConfigManager.GetConfigData(ConfigName.HeroConfig, curHeroData.id)
|
||
local lvs = string.split(limits[1], "#")
|
||
local stars = string.split(limits[2], "#")
|
||
--LogBlue("tonumber(lvs[2]):" ..lvs[2].."PlayerManager.level:"..PlayerManager.level)
|
||
if
|
||
PlayerManager.level >= tonumber(lvs[2]) and heroConfig ~= nil and
|
||
heroConfig.MaxRank >= tonumber(stars[2])
|
||
then
|
||
isCanUpEquipTreasure = true
|
||
this.equipTreasureBtn.gameObject:SetActive(true)
|
||
this.treasure1.gameObject:SetActive(true)
|
||
this.treasure2.gameObject:SetActive(true)
|
||
this.treasurePage1.gameObject:SetActive(true)
|
||
this.treasurePage2.gameObject:SetActive(true)
|
||
else
|
||
isCanUpEquipTreasure = false
|
||
this.equipTreasureBtn.gameObject:SetActive(false)
|
||
this.treasure1.gameObject:SetActive(false)
|
||
this.treasure2.gameObject:SetActive(false)
|
||
this.treasurePage1.gameObject:SetActive(false)
|
||
this.treasurePage2.gameObject:SetActive(false)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
SetHeroBg(this.spLoader, Util.GetGameObject(this.transform, "bg/heroInfo"),Util.GetGameObject(this.transform, "bg/heroInfo/bg"), curHeroData.star)
|
||
this.heroLv.text = curHeroData.lv
|
||
this.heroIcon.sprite = this.spLoader:LoadSprite(curHeroData.painting)
|
||
--SetHEeroLiveToward(this.heroIcon,curHeroData.heroConfig.Toward)
|
||
this.heroProIcon.sprite = this.spLoader:LoadSprite(GetProStrImageByProNum(curHeroData.heroConfig.PropertyName))
|
||
local star,starType = curHeroData.GetStar(1)
|
||
local starScale = -10
|
||
if starType == 3 then
|
||
starScale = -13.2
|
||
end
|
||
SetHeroStars(this.spLoader, this.heroStarGrid, star,starType,nil,starScale)
|
||
Util.SetParticleSortLayer(this.heroStarGrid,this.sortingOrder + 1)
|
||
--装备的数据
|
||
curHeroEquipDatas = {}
|
||
for i = 1, #curHeroData.equipIdList do
|
||
local equipData = EquipManager.GetSingleHeroSingleEquipData(curHeroData.equipIdList[i], curHeroData.dynamicId)
|
||
if equipData ~= nil then
|
||
curHeroEquipDatas[equipData.equipConfig.Position] = equipData
|
||
end
|
||
end
|
||
--宝器的数据
|
||
curEquipTreasureDatas = {}
|
||
for i = 1, #curHeroData.jewels do
|
||
local treasureData = EquipTreasureManager.GetSingleEquipTreasreData(curHeroData.jewels[i])
|
||
if treasureData ~= nil then
|
||
local id = treasureData.id
|
||
local pos = jewerConfigs[id].Location + 4
|
||
curEquipTreasureDatas[pos] = treasureData
|
||
end
|
||
end
|
||
for k,v in pairs(this.equipPreList2) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
for i = 1, this.equipGrid.transform.childCount do
|
||
local go = this.equipGrid.transform:GetChild(i - 1).gameObject
|
||
this:SingleDataShow(go,i)
|
||
end
|
||
local allAddProVal
|
||
--计算面板属性
|
||
local WarPower = 0
|
||
if isUpZhen then
|
||
WarPower = HeroPowerManager.GetHeroPower(curHeroData.dynamicId, FormationTypeDef.FORMATION_NORMAL)
|
||
else
|
||
WarPower = HeroPowerManager.GetHeroPower(curHeroData.dynamicId)
|
||
end
|
||
this.force.text = WarPower
|
||
end
|
||
|
||
function this:SingleDataShow(go,index)
|
||
local effect = Util.GetGameObject(go.transform, "effect")
|
||
screenAdapte(effect)
|
||
Util.AddParticleSortLayer(effect, this.sortingOrder - orginLayer1[index])
|
||
orginLayer1[index] = this.sortingOrder
|
||
effectList[index] = effect
|
||
|
||
local pos = Util.GetGameObject(go.transform, "pos")
|
||
if not this.equipPreList2[go] then
|
||
this.equipPreList2[go] = SubUIManager.Open(SubUIConfig.ItemView,pos.transform)
|
||
this.equipPreList2[go].gameObject:SetActive(false)
|
||
end
|
||
|
||
local mask = Util.GetGameObject(go.transform, "mask")
|
||
if curHeroEquipDatas[index] then
|
||
this.equipPreList2[go].gameObject:SetActive(true)
|
||
mask.gameObject:SetActive(false)
|
||
this.equipPreList2[go]:OnOpen(false,{curHeroEquipDatas[index].id,0}, 1, false, false, false, 0)
|
||
if HarmonyManager:IsShowGongMingEqiup(curHeroData.dynamicId) and curHeroData.harmonyGongMing then
|
||
-- body
|
||
Util.GetGameObject(go.transform, "HongMenging"):SetActive(true)
|
||
else
|
||
Util.GetGameObject(go.transform, "HongMenging"):SetActive(false)
|
||
end
|
||
elseif curEquipTreasureDatas[index] then
|
||
this.equipPreList2[go].gameObject:SetActive(true)
|
||
mask.gameObject:SetActive(false)
|
||
this.equipPreList2[go]:OnOpen(false,{curEquipTreasureDatas[index].id,0}, 1, false, false, false, 0,curEquipTreasureDatas[index].idDyn)
|
||
--鸿蒙阵 共享数据判断
|
||
if HarmonyManager.IsInfo(curEquipTreasureDatas[index].upHeroDid) and curEquipTreasureDatas[index].equipType == 1 then
|
||
--if HarmonyManager.IsInfo(curEquipTreasureDatas[index].upHeroDid) and HarmonyManager.GetSingleAdditions(HarmonyAddType.HunSoulPrint) ~= -1 and curEquipTreasureDatas[index].equipType == 1 then
|
||
Util.GetGameObject(go.transform, "HongMenging"):SetActive(true)
|
||
elseif HarmonyManager.IsInfo(curEquipTreasureDatas[index].upHeroDid) and curEquipTreasureDatas[index].equipType == 2 then
|
||
--elseif HarmonyManager.IsInfo(curEquipTreasureDatas[index].upHeroDid) and HarmonyManager.GetSingleAdditions(HarmonyAddType.LingSoulPrint) ~= -1 and curEquipTreasureDatas[index].equipType == 2 then
|
||
Util.GetGameObject(go.transform, "HongMenging"):SetActive(true)
|
||
else
|
||
Util.GetGameObject(go.transform, "HongMenging"):SetActive(false)
|
||
end
|
||
else
|
||
this.equipPreList2[go].gameObject:SetActive(false)
|
||
mask.gameObject:SetActive(true)
|
||
end
|
||
local iconBtn = Util.GetGameObject(go.transform, "btn")
|
||
Util.AddOnceClick(
|
||
iconBtn,
|
||
function()
|
||
if curHeroEquipDatas[index] then
|
||
curSelectEquipData = curHeroEquipDatas[index]
|
||
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2, this,curHeroEquipDatas[index],2,false,nil,curHeroData)
|
||
elseif curEquipTreasureDatas[index] then
|
||
if itemConfig[curEquipTreasureDatas[index].id].ItemType == ItemType.EquipTreasure then
|
||
local pos = 0
|
||
local jewerConfig =
|
||
ConfigManager.TryGetConfigData(ConfigName.JewelConfig, curEquipTreasureDatas[index].id)
|
||
if jewerConfig then
|
||
if jewerConfig.Location == 1 then
|
||
pos = 5
|
||
elseif jewerConfig.Location == 2 then
|
||
pos = 6
|
||
end
|
||
-- UIManager.OpenPanel(UIName.RoleEquipTreasureChangePopup,this,2,curHeroData,curEquipTreasureDatas[index],nil,pos)
|
||
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,curEquipTreasureDatas[index],2,false,nil,curHeroData,pos)
|
||
end
|
||
end
|
||
end
|
||
end
|
||
)
|
||
end
|
||
|
||
function this:SetSelectBtn()
|
||
this.selectBtn:SetActive(true)
|
||
this.selectBtn.transform:SetParent(tabs[indexBtnNum].transform)
|
||
this.selectBtn:GetComponent("RectTransform").anchoredPosition3D = Vector3(-12.28, 1.08, 0)
|
||
this.selectBtn.transform:SetSiblingIndex(1)
|
||
--this.selectBtn.transform.localScale = Vector3.one
|
||
--this.selectBtn:GetComponent("Image"):SetNativeSize()
|
||
Util.GetGameObject(this.selectBtn.transform, "Text"):GetComponent("Text").text = GetCurLanguage() == 0 and typeTab[indexBtnNum] or "<size=40>"..typeTab[indexBtnNum].."</size>"--typeTab[indexBtnNum]
|
||
end
|
||
|
||
function this:OpenTips(nextEquipData,pos)
|
||
local content = Language[12224]
|
||
MsgPanel.ShowTwo(content,function ()
|
||
end,function ()
|
||
local equipIdList={}
|
||
local equipDataList={}
|
||
table.insert(equipIdList,tostring(nextEquipData.id))
|
||
table.insert(equipDataList,nextEquipData)
|
||
NetManager.EquipWearRequest(curHeroData.dynamicId,equipIdList,1,function ()
|
||
this.UpdateEquipPosHeroData(1,3,equipDataList,nextEquipData,pos)
|
||
end)
|
||
end,Language[10731],Language[11934])
|
||
end
|
||
-- --点击全部按钮
|
||
-- function this:OnClickAllBtn()
|
||
-- this:SetSelectBtn()
|
||
-- local itemData = BagManager.GetEquipDataByEquipPosition(curHeroData.heroConfig.Profession)
|
||
-- this:SortEquipDatas(itemData)
|
||
-- local count = 0
|
||
-- for i=1,#itemData do
|
||
-- count = count + 1--itemData[i].num
|
||
-- end
|
||
-- --加上宝器数据
|
||
-- local curAllEquipTreasure = EquipTreasureManager.GetAllTreasures(curHeroData.heroConfig.PropertyName)
|
||
-- --宝器排序
|
||
-- for i = 1, #curAllEquipTreasure do
|
||
-- table.insert(itemData, curAllEquipTreasure[i])
|
||
-- end
|
||
-- --"装备数量:"
|
||
-- this.itemNumText.text = Language[12181] .. count + LengthOfTable(curAllEquipTreasure)
|
||
-- this:SetItemData(itemData)
|
||
-- end
|
||
|
||
--点击装备按钮
|
||
function this:OnClickTabBtn(_index)
|
||
this:SetSelectBtn()
|
||
if _index < 5 then
|
||
local allEquip = BagManager.GetEquipDataByEquipPosition(curHeroData.heroConfig.Profession, _index)
|
||
this:SortEquipDatas(allEquip)
|
||
local count = 0
|
||
for i=1,#allEquip do
|
||
count = count + 1--allEquip[i].num
|
||
end
|
||
--"装备数量:"
|
||
this.itemNumText.text = Language[12181] .. count
|
||
this:SetItemData(allEquip)
|
||
else
|
||
local allEquipTreasure
|
||
allEquipTreasure = EquipTreasureManager.GetAllTreasuresByLocation(_index - 4, curHeroData.heroConfig.PropertyName)
|
||
this:SortEquipDatas1(allEquipTreasure)
|
||
--"装备数量:"
|
||
this.itemNumText.text = Language[12181] .. LengthOfTable(allEquipTreasure)
|
||
this:SetItemData(allEquipTreasure)
|
||
end
|
||
|
||
this.CheckRedTab()
|
||
end
|
||
|
||
--设置背包列表数据
|
||
local curHeroCanUpEquipTabs = {}
|
||
local curHeroCanUpEquipTreasuresTabs = {}
|
||
function this:SetItemData(_itemDatas)
|
||
if LengthOfTable(_itemDatas) == 0 then
|
||
this.emptyObj.gameObject:SetActive(true)
|
||
else
|
||
this.emptyObj.gameObject:SetActive(false)
|
||
end
|
||
for k,v in pairs(this.equipPreList) do
|
||
v.gameObject:SetActive(false)
|
||
end
|
||
this.ScrollView:SetData(
|
||
_itemDatas,
|
||
function(index, go)
|
||
this.SingleItemDataShow(go, _itemDatas[index])
|
||
end
|
||
)
|
||
if isPlayAnim then
|
||
if isFristOpenTime then
|
||
isFristOpenTime:Stop()
|
||
isFristOpenTime = nil
|
||
end
|
||
isFristOpenTime = Timer.New(function()
|
||
this.mask:SetActive(false)
|
||
end, 0.3):Start()
|
||
this.mask:SetActive(true)
|
||
SecTorPlayAnimByScroll(this.ScrollView)
|
||
isPlayAnim = false
|
||
end
|
||
end
|
||
function this.SingleItemDataShow(_go, _itemData)
|
||
if not itemConfig[_itemData.id] then
|
||
return
|
||
end
|
||
if not this.equipPreList[_go] then
|
||
this.equipPreList[_go] = SubUIManager.Open(SubUIConfig.ItemView,_go.transform)
|
||
end
|
||
local redPoint = Util.GetGameObject(_go.transform, "redPoint")
|
||
this.equipPreList[_go].gameObject:SetActive(true)
|
||
this.equipPreList[_go].transform:SetAsFirstSibling()
|
||
if itemConfig[_itemData.id].ItemType == ItemType.EquipTreasure then
|
||
this.equipPreList[_go]:OnOpen(false,{_itemData.id,0}, 1.1, true, false, false, 0,_itemData.idDyn)
|
||
if curHeroCanUpEquipTreasuresTabs and #curHeroCanUpEquipTreasuresTabs > 0 then
|
||
local isShow = false
|
||
for i = 1, #curHeroCanUpEquipTreasuresTabs do
|
||
if curHeroCanUpEquipTreasuresTabs[i] == _itemData.idDyn then
|
||
isShow = true
|
||
end
|
||
end
|
||
if isShow then
|
||
redPoint:SetActive(true)
|
||
else
|
||
redPoint:SetActive(false)
|
||
end
|
||
else
|
||
redPoint:SetActive(false)
|
||
end
|
||
-- 0.查看属性 1.穿戴 2.卸下 3.交换
|
||
--宝物界面
|
||
Util.AddOnceClick(Util.GetGameObject(_go.transform, "mask"),function()
|
||
if curEquipTreasureDatas[jewerConfigs[_itemData.id].Location + 4] then
|
||
-- UIManager.OpenPanel(UIName.RoleEquipTreasureChangePopup,this,3,curHeroData,curEquipTreasureDatas[jewerConfigs[_itemData.id].Location + 4],_itemData,jewerConfigs[_itemData.id].Location + 4)
|
||
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,_itemData,4,false,nil,curHeroData,jewerConfigs[_itemData.id].Location + 4,curEquipTreasureDatas[jewerConfigs[_itemData.id].Location + 4])
|
||
else
|
||
-- UIManager.OpenPanel(UIName.RoleEquipTreasureChangePopup, this, 1, curHeroData, _itemData, nil, jewerConfigs[_itemData.id].Location + 4)
|
||
UIManager.OpenPanel(UIName.RewardTalismanSingleShowPopup2,this,_itemData,3,false,nil,curHeroData,jewerConfigs[_itemData.id].Location + 4)
|
||
end
|
||
end
|
||
)
|
||
else
|
||
this.equipPreList[_go]:OnOpen(false,{_itemData.id,_itemData.num}, 1, true, false, false, 0)
|
||
if curHeroCanUpEquipTabs and #curHeroCanUpEquipTabs > 0 then
|
||
local isShow = false
|
||
for i = 1, #curHeroCanUpEquipTabs do
|
||
if curHeroCanUpEquipTabs[i] == _itemData.id then
|
||
isShow = true
|
||
end
|
||
end
|
||
if isShow then
|
||
redPoint:SetActive(true)
|
||
else
|
||
redPoint:SetActive(false)
|
||
end
|
||
else
|
||
redPoint:SetActive(false)
|
||
end
|
||
Util.AddOnceClick(Util.GetGameObject(_go.transform, "mask"),function()
|
||
if curHeroEquipDatas[equipConfig[_itemData.id].Position] then
|
||
local nextEquipData = curHeroEquipDatas[equipConfig[_itemData.id].Position]
|
||
if curHeroData.harmonyGongMing then
|
||
this:OpenTips(nextEquipData,equipConfig[_itemData.id].Position)
|
||
else
|
||
-- Log("当前装备:"..tostring(nextEquipData.id).." 准备替换装备:"..tostring(_itemData.id))
|
||
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2, this,_itemData,4,false,nil, curHeroData,equipConfig[_itemData.id].Position,nextEquipData)
|
||
end
|
||
else
|
||
UIManager.OpenPanel(UIName.RewardEquipSingleShowPopup2, this,_itemData,3,false,nil, curHeroData,equipConfig[_itemData.id].Position)
|
||
end
|
||
end
|
||
)
|
||
end
|
||
end
|
||
--刷新当前英雄装备坑位的信息
|
||
function this.UpdateEquipPosHeroData(_equipOrTreasure, _type, _selectEquipDataList, _oldSelectEquip, position) --type
|
||
-- if _selectEquipDataList then
|
||
-- LogYellow("_type:"..tostring(_type).." 新装备:"..tostring(_selectEquipDataList[1].id))
|
||
-- end
|
||
-- if _oldSelectEquip then
|
||
-- LogYellow("旧装备:"..tostring(_oldSelectEquip.id))
|
||
-- end
|
||
--1 穿单件装备 2 卸单件装备 3 替换单件装备 4 一键穿装备 5一键脱装备
|
||
if _type == 1 then
|
||
effectList[position]:SetActive(false)
|
||
effectList[position]:SetActive(true)
|
||
if _equipOrTreasure == 1 then
|
||
curSelectEquipData = _selectEquipDataList[1]
|
||
--装备绑英雄
|
||
EquipManager.SetEquipUpHeroDid(curSelectEquipData.id, curHeroData.dynamicId)
|
||
--英雄加装备
|
||
table.insert(curHeroData.equipIdList, curSelectEquipData.id)
|
||
HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList)
|
||
else
|
||
curEquipTreasureDatas = _selectEquipDataList[1]
|
||
--装备绑英雄
|
||
EquipTreasureManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, curHeroData.dynamicId)
|
||
--英雄加装备
|
||
table.insert(curHeroData.jewels, curEquipTreasureDatas.idDyn)
|
||
end
|
||
elseif _type == 2 then
|
||
if _equipOrTreasure == 1 then
|
||
if not curHeroData.harmonyGongMing then
|
||
--装备解绑英雄
|
||
curSelectEquipData = _selectEquipDataList[1]
|
||
EquipManager.DeleteSingleEquip(curSelectEquipData.id, curHeroData.dynamicId)
|
||
for i = 1, #curHeroData.equipIdList do
|
||
if tonumber(curHeroData.equipIdList[i]) == tonumber(curSelectEquipData.id) then
|
||
--英雄删除装备
|
||
table.remove(curHeroData.equipIdList, i)
|
||
break
|
||
end
|
||
end
|
||
local a = curHeroData.equipIdList
|
||
if not curHeroData.harmonyGongMing then
|
||
HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList)
|
||
else
|
||
HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, {})
|
||
end
|
||
end
|
||
else
|
||
curEquipTreasureDatas = _selectEquipDataList[1]
|
||
EquipTreasureManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, "")
|
||
for i = 1, #curHeroData.jewels do
|
||
if curHeroData.jewels[i] == curEquipTreasureDatas.idDyn then
|
||
--英雄删除装备
|
||
table.remove(curHeroData.jewels, i)
|
||
break
|
||
end
|
||
end
|
||
end
|
||
elseif _type == 3 then
|
||
effectList[position]:SetActive(false)
|
||
effectList[position]:SetActive(true)
|
||
if _equipOrTreasure == 1 then
|
||
local a = curHeroData.equipIdList
|
||
if not curHeroData.harmonyGongMing then
|
||
curSelectEquipData = _selectEquipDataList[1]
|
||
EquipManager.SetEquipUpHeroDid(curSelectEquipData.id, curHeroData.dynamicId)
|
||
--穿
|
||
if _oldSelectEquip and tonumber(_oldSelectEquip.id) ~= tonumber(curSelectEquipData.id) then
|
||
EquipManager.DeleteSingleEquip(_oldSelectEquip.id, curHeroData.dynamicId)
|
||
end
|
||
|
||
--英雄替换新选择装备
|
||
if curHeroEquipDatas[equipConfig[curSelectEquipData.id].Position] then
|
||
for i = 1, #curHeroData.equipIdList do
|
||
if
|
||
tonumber(curHeroData.equipIdList[i]) ==
|
||
tonumber(curHeroEquipDatas[equipConfig[curSelectEquipData.id].Position].id)
|
||
then
|
||
curHeroData.equipIdList[i] = curSelectEquipData.id
|
||
break
|
||
end
|
||
end
|
||
end
|
||
HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList)
|
||
else
|
||
curSelectEquipData = _selectEquipDataList[1]
|
||
HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, {curSelectEquipData.id})
|
||
EquipManager.SetEquipUpHeroDid(curSelectEquipData.id, curHeroData.dynamicId)
|
||
end
|
||
else
|
||
curEquipTreasureDatas = _selectEquipDataList[1]
|
||
--新装备绑英雄
|
||
EquipTreasureManager.SetEquipTreasureUpHeroDid(curEquipTreasureDatas.idDyn, curHeroData.dynamicId)
|
||
if _oldSelectEquip then
|
||
--被替换装备解绑英雄
|
||
EquipTreasureManager.SetEquipTreasureUpHeroDid(_oldSelectEquip.idDyn, "")
|
||
end
|
||
--英雄替换新选择装备
|
||
for i = 1, #curHeroData.jewels do
|
||
if curHeroData.jewels[i] == _oldSelectEquip.idDyn then
|
||
curHeroData.jewels[i] = curEquipTreasureDatas.idDyn
|
||
end
|
||
end
|
||
end
|
||
elseif _type == 4 then
|
||
--一键穿 把身上装备解绑英雄id
|
||
if _equipOrTreasure == 1 then
|
||
if not curHeroData.harmonyGongMing then
|
||
local isadd
|
||
for n, m in ipairs(_selectEquipDataList) do
|
||
isadd = true
|
||
for i = 1, #curHeroData.equipIdList do
|
||
if equipConfig[tonumber(curHeroData.equipIdList[i])].Position == equipConfig[tonumber(m)].Position then
|
||
EquipManager.DeleteSingleEquip(curHeroData.equipIdList[i], curHeroData.dynamicId)
|
||
curHeroData.equipIdList[i] = m
|
||
HeroManager.GetHeroEquipIdList1(curHeroData.dynamicId, m)
|
||
isadd = false
|
||
break
|
||
end
|
||
end
|
||
if isadd then
|
||
table.insert(curHeroData.equipIdList, m)
|
||
end
|
||
end
|
||
EquipManager.UpdateEquipData(_selectEquipDataList, curHeroData.dynamicId)
|
||
else
|
||
local curEquilist = {}
|
||
for n, m in ipairs(_selectEquipDataList) do
|
||
table.insert(curEquilist, m)
|
||
end
|
||
curHeroData.equipIdList = curEquilist
|
||
HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, curHeroData.equipIdList)
|
||
EquipManager.UpdateEquipData(_selectEquipDataList, curHeroData.dynamicId)
|
||
end
|
||
else
|
||
local isadd
|
||
for i = 1, #_selectEquipDataList do
|
||
isadd = true
|
||
for j = 1, #curHeroData.jewels do
|
||
--如果英雄身上有和选中的宝物的位置相同的,就替换
|
||
if EquipTreasureManager.GetSingleTreasureByIdDyn(curHeroData.jewels[j]).equipType ==
|
||
EquipTreasureManager.GetSingleTreasureByIdDyn(_selectEquipDataList[i]).equipType then
|
||
EquipTreasureManager.SetTreasureUpOrDown(curHeroData.jewels[j], "0")
|
||
EquipTreasureManager.SetTreasureUpOrDown(_selectEquipDataList[i], curHeroData.dynamicId)
|
||
curHeroData.jewels[j] = _selectEquipDataList[i]
|
||
isadd = false
|
||
break
|
||
end
|
||
end
|
||
if isadd then
|
||
EquipTreasureManager.SetTreasureUpOrDown(_selectEquipDataList[i], curHeroData.dynamicId)
|
||
table.insert(curHeroData.jewels, _selectEquipDataList[i])
|
||
end
|
||
end
|
||
end
|
||
elseif _type == 5 then
|
||
--一键脱 把身上装备英雄id置为“0” 再把英雄装备list清空
|
||
if _equipOrTreasure == 1 then
|
||
if _selectEquipDataList then
|
||
for i = 1, #_selectEquipDataList do
|
||
EquipManager.DeleteSingleEquip(_selectEquipDataList[i], curHeroData.dynamicId)
|
||
end
|
||
end
|
||
curHeroData.equipIdList = {}
|
||
HeroManager.SetHeroEquipIdList(curHeroData.dynamicId, {})
|
||
curHeroData.equipIdList = {}
|
||
else
|
||
if _selectEquipDataList then
|
||
for i = 1, #_selectEquipDataList do
|
||
EquipTreasureManager.SetTreasureUpOrDown(_selectEquipDataList[i], "")
|
||
end
|
||
curHeroData.jewels = {}
|
||
end
|
||
end
|
||
end
|
||
--刷新界面
|
||
this.ShowHeroEquip()
|
||
--上阵刷新红点
|
||
this.allEquipUpRedPoint:SetActive(isUpZhen and
|
||
--((#HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) > 0 and not (HarmonyManager.IsInfo(curHeroData.dynamicId) and HarmonyManager.GetSingleAdditions(HarmonyAddType.AddEquip) ~= -1)) or
|
||
((#HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) > 0 and not (HarmonyManager.IsInfo(curHeroData.dynamicId))) or
|
||
(isCanUpEquipTreasure and #HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,0) > 0)
|
||
))
|
||
this:OnClickTabBtn(indexBtnNum)
|
||
-- --刷新当前英雄可穿装备
|
||
-- if indexBtnNum == PosIdConst.All then
|
||
-- this:OnClickAllBtn()
|
||
-- else
|
||
-- this:OnClickTabBtn(indexBtnNum)
|
||
-- end
|
||
--对比战力并更新战力值 播放战力变更动画
|
||
HeroManager.CompareWarPower(curHeroData.dynamicId)
|
||
this.CheckRedTab()
|
||
end
|
||
|
||
function this.CheckRedTab()
|
||
for i = 1,#redTabs do
|
||
if i < 5 then
|
||
local allEquip = BagManager.GetEquipDataByEquipPosition(curHeroData.heroConfig.Profession, i)
|
||
this:SortEquipDatas(allEquip)
|
||
local showRed = false
|
||
if curHeroCanUpEquipTabs and #curHeroCanUpEquipTabs > 0 then
|
||
for j = 1,#curHeroCanUpEquipTabs do
|
||
if equipConfig[curHeroCanUpEquipTabs[j]].Position == i then
|
||
showRed = true
|
||
break
|
||
end
|
||
end
|
||
else
|
||
showRed = false
|
||
end
|
||
redTabs[i].gameObject:SetActive(showRed)
|
||
else
|
||
local canEquips = HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,(i-4))
|
||
redTabs[i].gameObject:SetActive(isCanUpEquipTreasure and isUpZhen and #canEquips > 0)
|
||
end
|
||
end
|
||
this.equipBTn5Add.gameObject:SetActive(curEquipTreasureDatas[5] and curEquipTreasureDatas[5].idDyn and HeroManager.CheckIsUpTreasure(curEquipTreasureDatas[5].idDyn,0) )
|
||
this.equipBtn6Add.gameObject:SetActive(curEquipTreasureDatas[6] and curEquipTreasureDatas[6].idDyn and HeroManager.CheckIsUpTreasure(curEquipTreasureDatas[6].idDyn,0) )
|
||
end
|
||
|
||
--选择图片设置父级
|
||
function this.SelectImageSetParent(_objPoint)
|
||
this.selsectSkillImage:SetActive(false)
|
||
this.selsectSkillImage.transform:SetParent(_objPoint.transform)
|
||
this.selsectSkillImage.transform.localScale = Vector3.one
|
||
this.selsectSkillImage.transform.localPosition = Vector3.zero
|
||
end
|
||
--界面关闭时调用(用于子类重写)
|
||
function RoleEquipPanel:OnClose()
|
||
if isFristOpenTime then
|
||
isFristOpenTime:Stop()
|
||
isFristOpenTime = nil
|
||
end
|
||
end
|
||
function this:AddRedPointVale(_equipDatas)
|
||
for j = 1, #_equipDatas do
|
||
_equipDatas[j].isRedPointShow = 1
|
||
for i = 1, #curHeroCanUpEquipTabs do
|
||
if curHeroCanUpEquipTabs[i] == _equipDatas[j].id then
|
||
_equipDatas[j].isRedPointShow = 2
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
function this:SortEquipDatas1(_equipDatas)
|
||
if teamHero[curHeroData.dynamicId] then
|
||
curHeroCanUpEquipTreasuresTabs = HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,0)
|
||
else
|
||
curHeroCanUpEquipTreasuresTabs = {}
|
||
end
|
||
for j = 1, #_equipDatas do
|
||
_equipDatas[j].isRedPointShow = 1
|
||
for i = 1, #curHeroCanUpEquipTreasuresTabs do
|
||
if curHeroCanUpEquipTreasuresTabs[i] == _equipDatas[j].idDyn then
|
||
_equipDatas[j].isRedPointShow = 2
|
||
end
|
||
end
|
||
end
|
||
table.sort(_equipDatas,function(a, b)
|
||
if a.isRedPointShow == b.isRedPointShow then
|
||
if a.refineLv == b.refineLv then
|
||
if a.lv == b.lv then
|
||
return a.id > b.id
|
||
else
|
||
return a.lv > b.lv
|
||
end
|
||
else
|
||
return a.refineLv > b.refineLv
|
||
end
|
||
else
|
||
return a.isRedPointShow > b.isRedPointShow
|
||
end
|
||
end
|
||
)
|
||
end
|
||
|
||
function this:SortEquipDatas(_equipDatas)
|
||
if teamHero[curHeroData.dynamicId] then
|
||
isUpZhen = true
|
||
--上阵刷新红点
|
||
this.allEquipUpRedPoint:SetActive(isUpZhen and
|
||
((#HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId) > 0 and not (HarmonyManager.IsInfo(curHeroData.dynamicId) and HarmonyManager.GetSingleAdditions(HarmonyAddType.AddEquip) ~= -1)) or
|
||
(isCanUpEquipTreasure and #HeroManager.GetHeroIsUpTreasure(curHeroData.dynamicId,0) > 0)
|
||
))
|
||
curHeroCanUpEquipTabs = HeroManager.GetHeroIsUpEquip(curHeroData.dynamicId)
|
||
else
|
||
isUpZhen = false
|
||
this.allEquipUpRedPoint:SetActive(false)
|
||
curHeroCanUpEquipTabs = {}
|
||
end
|
||
this:AddRedPointVale(_equipDatas)
|
||
table.sort(
|
||
_equipDatas,
|
||
function(a, b)
|
||
if a.isRedPointShow == b.isRedPointShow then
|
||
if a.itemConfig.Quantity == b.itemConfig.Quantity then
|
||
if equipConfig[a.id].Position == equipConfig[b.id].Position then
|
||
return itemConfig[a.id].Sort > itemConfig[b.id].Sort
|
||
else
|
||
return equipConfig[a.id].Position < equipConfig[b.id].Position
|
||
end
|
||
else
|
||
return a.itemConfig.Quantity > b.itemConfig.Quantity
|
||
end
|
||
else
|
||
return a.isRedPointShow > b.isRedPointShow
|
||
end
|
||
end
|
||
)
|
||
end
|
||
|
||
|
||
--界面销毁时调用(用于子类重写)
|
||
function RoleEquipPanel:OnDestroy()
|
||
this.spLoader:Destroy()
|
||
SubUIManager.Close(this.UpView)
|
||
this.ScrollView = nil
|
||
for k,v in pairs(this.equipPreList) do
|
||
SubUIManager.Close(v)
|
||
end
|
||
this.equipPreList = {}
|
||
for k,v in pairs(this.equipPreList2) do
|
||
SubUIManager.Close(v)
|
||
end
|
||
this.equipPreList2 = {}
|
||
end
|
||
return RoleEquipPanel
|
||
|