527 lines
14 KiB
Lua
527 lines
14 KiB
Lua
HarmonyManager = {}
|
||
local this = HarmonyManager
|
||
--
|
||
-- 第一阶段 鸿蒙阵数据
|
||
this.hongmengGuards = {}
|
||
this.hongmengHeroInfos = {}
|
||
this.hongmengTablet = 0
|
||
this.hongmengAdditions = {}
|
||
|
||
this.GuardList = {}
|
||
local SelectId = nil
|
||
|
||
HarmonyManager.GongMingBox = 0;
|
||
HarmonyManager.UnLoadGongMing = 0
|
||
--判断是否鸿蒙共享数据
|
||
local equipConfig = ConfigManager.GetConfig(ConfigName.EquipConfig)
|
||
local heroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
|
||
|
||
HarmonyManager.equipCount = 0
|
||
this.hongmengGongMingList = {}
|
||
this.ChooseDataList = {}
|
||
|
||
-- 第二阶段 鸿蒙塔 数据
|
||
--330 鸿蒙使者 数据
|
||
|
||
|
||
-- 鸿蒙塔升级数据表
|
||
local HongmengUp = ConfigManager.GetConfig(ConfigName.HongmengUp)
|
||
|
||
|
||
function this:InitHongMengData(hongmengGuards, hongmengHeroInfos, hongmengTablet, hongmengAdditions)
|
||
-- body
|
||
this.hongmengGuards = hongmengGuards
|
||
--LogGreen(#this.hongmengGuards)
|
||
this.hongmengHeroInfos = hongmengHeroInfos
|
||
LogGreen(#this.hongmengHeroInfos)
|
||
for i = 1, #this.hongmengGuards do
|
||
this.hongmengGuards[i].time = this.hongmengGuards[i].time + GetTimeStamp()
|
||
end
|
||
|
||
--LogBlue("hongmengTablet "..hongmengTablet)
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
this.hongmengHeroInfos[i].time = this.hongmengHeroInfos[i].time + GetTimeStamp()
|
||
end
|
||
this.hongmengTablet = hongmengTablet
|
||
this.hongmengAdditions = hongmengAdditions
|
||
for i = 1, #this.hongmengAdditions do
|
||
if this.hongmengAdditions[i].additionType == HarmonyAddType.AddEquip then
|
||
if this.hongmengAdditions[i].value ~= -1 then
|
||
local curEquipIdList = {}
|
||
local curEquipConfigs = ConfigManager.GetAllConfigsDataByKey(ConfigName.EquipConfig,"Star",this.hongmengAdditions[i].value)
|
||
for i = 1, #curEquipConfigs do
|
||
|
||
table.insert(curEquipIdList,curEquipConfigs[i].Id)
|
||
end
|
||
this.HarmonyUpdateEquipData(curEquipIdList, "")
|
||
end
|
||
end
|
||
end
|
||
|
||
|
||
|
||
end
|
||
|
||
--初始化共鸣列表数据
|
||
function this:InitGongMingDataList()
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
local data = HeroManager.GetSingleHeroData(this.hongmengHeroInfos[i].heroId)
|
||
|
||
if data then
|
||
|
||
this.hongmengGongMingList[i] = data
|
||
|
||
else
|
||
this.hongmengGongMingList[i] = nil
|
||
end
|
||
end
|
||
|
||
|
||
end
|
||
--鸿蒙塔上限
|
||
function this:HongMengTowerUpLimit()
|
||
local list = HeroManager.GetAllHerosByStar(HeroManager.awakeNextStarIndex)
|
||
|
||
local temp_list = {}
|
||
for i = 1, #list do
|
||
-- body
|
||
-- table.insert(temp_list,list[i])
|
||
temp_list[list[i].name] = {}
|
||
end
|
||
local len = LengthOfTable(temp_list)
|
||
return len
|
||
end
|
||
|
||
function this.IsInfo(did)
|
||
if did ~= "" then
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
if did == this.hongmengHeroInfos[i].heroId and this.hongmengHeroInfos[i].heroId ~= "" then
|
||
return true
|
||
end
|
||
end
|
||
end
|
||
return false
|
||
end
|
||
function this.IsChangeColor(did)
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
if did == this.hongmengHeroInfos[i].heroId then
|
||
return true
|
||
end
|
||
end
|
||
return false
|
||
end
|
||
|
||
function this.IsGongMing(did)
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
-- body
|
||
if did == this.hongmengHeroInfos[i].heroId then
|
||
PopupTipPanel.ShowTip("共鸣ing")
|
||
return
|
||
end
|
||
end
|
||
-- body
|
||
end
|
||
function this:SetInitList()
|
||
local heroDataList = HeroManager.GetAllHeroDatas(1)
|
||
local list = {}
|
||
local count = 0;
|
||
--LogBlue("this.GuardList长度:"..LengthOfTable(this.GuardList))
|
||
for key, value in pairs(this.GuardList) do
|
||
if value.heroId ~= "" then
|
||
table.insert(list,value)
|
||
end
|
||
end
|
||
|
||
|
||
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
if this.hongmengHeroInfos[i].heroId ~= "" then
|
||
-- LogYellow("是否有数据:"..i)
|
||
local data = HeroManager.GetSingleHeroData(this.hongmengHeroInfos[i].heroId)
|
||
table.insert(list,data)
|
||
end
|
||
|
||
end
|
||
|
||
table.sort(list,function(a,b)
|
||
return a.dynamicId < b.dynamicId
|
||
end)
|
||
--LogBlue("#list长度:"..#list)
|
||
local newList = {}
|
||
local index = 0
|
||
local flag = true
|
||
|
||
local tempTable = {}
|
||
for i = 1, #heroDataList do
|
||
table.insert(tempTable,heroDataList[i])
|
||
end
|
||
|
||
for i = #heroDataList, 1,-1 do
|
||
for k2, v2 in pairs(list) do
|
||
if v2.dynamicId == heroDataList[i].dynamicId then
|
||
--LogPink("第几个:"..i.." k2"..k2)
|
||
table.remove(tempTable,i)
|
||
end
|
||
end
|
||
end
|
||
this.ChooseDataList = tempTable
|
||
|
||
-- LogBlue("#this.ChooseDataList长度:"..#this.ChooseDataList)
|
||
end
|
||
--初始化 鸿蒙塔的数据
|
||
function this:SetTowerInit()
|
||
|
||
local heroDataList = HeroManager.GetAllHeroDatas(1)
|
||
local list = {}
|
||
local count = 0;
|
||
--this.GuardList = HeroManager.GetAllHeroDatas(330)
|
||
-- LogBlue("this.GuardList长度:"..LengthOfTable(this.GuardList))
|
||
for key, value in pairs(this.hongmengGuards) do
|
||
if value.heroId ~= "" then
|
||
local data = HeroManager.GetSingleHeroData(value.heroId)
|
||
table.insert(list,data)
|
||
end
|
||
|
||
end
|
||
|
||
|
||
|
||
--LogBlue("#this.hongmengHeroInfos"..#this.hongmengHeroInfos)
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
if this.hongmengHeroInfos[i].heroId ~= "" then
|
||
--LogYellow("是否有数据:"..i)
|
||
local data = HeroManager.GetSingleHeroData(this.hongmengHeroInfos[i].heroId)
|
||
table.insert(list,data)
|
||
end
|
||
|
||
end
|
||
|
||
table.sort(list,function(a,b)
|
||
return a.dynamicId < b.dynamicId
|
||
end)
|
||
--LogBlue("#list长度:"..#list)
|
||
local newList = {}
|
||
local index = 0
|
||
local flag = true
|
||
|
||
local tempTable = {}
|
||
for i = 1, #heroDataList do
|
||
table.insert(tempTable,heroDataList[i])
|
||
end
|
||
|
||
for i = #heroDataList, 1,-1 do
|
||
for k2, v2 in pairs(list) do
|
||
if v2.dynamicId == heroDataList[i].dynamicId then
|
||
-- LogPink("第几个:"..i.." k2"..k2)
|
||
table.remove(tempTable,i)
|
||
end
|
||
end
|
||
end
|
||
this.ChooseDataList = tempTable
|
||
LogBlue("#this.ChooseDataList长度:"..#this.ChooseDataList)
|
||
end
|
||
--判断鸿蒙 使者/守卫 是否够6位
|
||
function this:IsEnvoyCount()
|
||
-- body
|
||
local count = 1
|
||
for i = 1, #this.hongmengGuards do
|
||
-- body
|
||
if this.hongmengGuards[i].heroId ~= "" then
|
||
count =count + 1
|
||
end
|
||
|
||
end
|
||
return count
|
||
end
|
||
|
||
|
||
--初始化鸿蒙使者的数据
|
||
--是否是鸿蒙使者
|
||
function this:IsEnvoy(did)
|
||
|
||
-- body
|
||
for i = 1, #this.hongmengGuards do
|
||
-- body
|
||
if this.hongmengGuards[i].heroId == did then
|
||
-- body
|
||
return true
|
||
|
||
end
|
||
|
||
end
|
||
|
||
|
||
return false
|
||
end
|
||
-- 设置、获取鸿蒙守卫的列表
|
||
function this:SetGuardList(list,count)
|
||
for key, value in pairs(list) do
|
||
if key<=count then
|
||
-- body
|
||
this.GuardList[value.dynamicId] = value
|
||
end
|
||
end
|
||
|
||
end
|
||
function this:GetGuardList()
|
||
return this.GuardList
|
||
-- body
|
||
end
|
||
|
||
function this:SetGongMingList(Id)
|
||
local data = HeroManager.GetSingleHeroData(Id)
|
||
table.insert(this.hongmengGongMingList,data)
|
||
|
||
end
|
||
|
||
function this:RemoveGongMingList(Id)
|
||
local data = HeroManager.GetSingleHeroData(Id)
|
||
for key, value in pairs(this.hongmengGongMingList) do
|
||
if value then
|
||
-- body
|
||
if value==data then
|
||
-- body
|
||
value = nil
|
||
break
|
||
end
|
||
end
|
||
end
|
||
end
|
||
|
||
function this:GetGongMingListSingle(Id)
|
||
local data = HeroManager.GetSingleHeroData(Id)
|
||
--return data
|
||
--print(data.dynamicId,"~~~",Id)
|
||
for key, value in pairs(this.hongmengGongMingList) do
|
||
|
||
if value.dynamicId==data.dynamicId then
|
||
|
||
return value
|
||
|
||
end
|
||
end
|
||
|
||
end
|
||
function this:SetChooseId(id)
|
||
SelectId = id
|
||
end
|
||
-- 设置、获取卸载的数据
|
||
function this:SetMingListIndexData(index)
|
||
SelectId = HeroManager.GetSingleHeroData(this.hongmengHeroInfos[index].heroId).dynamicId
|
||
end
|
||
|
||
|
||
function this:GetUnLoadData()
|
||
-- body
|
||
return SelectId
|
||
end
|
||
|
||
--获取加成
|
||
function this:GetAdditions()
|
||
|
||
return this.hongmengAdditions
|
||
end
|
||
|
||
function this.GetSingleAdditions(type)
|
||
for i = 1, #this.hongmengAdditions do
|
||
if this.hongmengAdditions[i].additionType == type then
|
||
return this.hongmengAdditions[i].value
|
||
end
|
||
end
|
||
return 0
|
||
end
|
||
|
||
function this.GetHongMengUpData()
|
||
|
||
for key, value in ConfigPairs(HongmengUp) do
|
||
-- body
|
||
if value.HongmengLevel == this.hongmengTablet+1 then
|
||
-- body
|
||
|
||
return ConfigManager.TryGetConfigData(ConfigName.HongmengUp,key)
|
||
end
|
||
|
||
end
|
||
return nil
|
||
end
|
||
|
||
--鸿蒙共享装备临时数据
|
||
local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig)
|
||
local equipStarsConfig = ConfigManager.GetConfig(ConfigName.EquipStarsConfig)
|
||
local propertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig)
|
||
function this.InitUpdateEquipData(id, upHeroDid)
|
||
if not this.equipDatas then
|
||
this.equipDatas = {}
|
||
end
|
||
id = tonumber(id)
|
||
if this.equipDatas[id] then
|
||
if not this.equipDatas[id].upHeroDidList then
|
||
this.equipDatas[id].upHeroDidList = {}
|
||
end
|
||
if upHeroDid and upHeroDid ~= "0" then
|
||
this.equipDatas[id].upHeroDidList[upHeroDid] = upHeroDid
|
||
end
|
||
else
|
||
local equipdata = {}
|
||
equipdata.equipConfig = equipConfig[id]
|
||
equipdata.itemConfig = itemConfig[id]
|
||
equipdata.id = id
|
||
if itemConfig[equipdata.id] then
|
||
equipdata.icon = GetResourcePath(itemConfig[equipdata.id].ResourceID)
|
||
else
|
||
Log(Language[10483] .. equipdata.id)
|
||
return
|
||
end
|
||
equipdata.frame = GetQuantityImageByquality(equipdata.equipConfig.Quality)
|
||
equipdata.quality = equipdata.equipConfig.Quality
|
||
equipdata.position = equipdata.equipConfig.Position
|
||
|
||
equipdata.mainAttribute = this.GetMainProList(equipdata.equipConfig)
|
||
|
||
equipdata.backData = equipdata
|
||
equipdata.star = equipStarsConfig[equipdata.equipConfig.Star].Stars
|
||
this.equipDatas[id] = equipdata
|
||
if not this.equipDatas[id].upHeroDidList then
|
||
this.equipDatas[id].upHeroDidList = {}
|
||
end
|
||
|
||
if upHeroDid and upHeroDid ~= "0" and not this.equipDatas[id].upHeroDidList[upHeroDid] then
|
||
this.equipDatas[id].upHeroDidList[upHeroDid] = upHeroDid
|
||
end
|
||
end
|
||
end
|
||
|
||
function this.HarmonyUpdateEquipData(idlist, heroDid)
|
||
for i = 1, #idlist do
|
||
this.InitUpdateEquipData(idlist[i], heroDid, false)
|
||
end
|
||
|
||
end
|
||
|
||
function this:EquipMin(EquipList)
|
||
-- body
|
||
local smallStar = 999
|
||
for i = 1, #EquipList do
|
||
if smallStar > equipConfig[EquipList[i].id].Star then
|
||
smallStar = equipConfig[EquipList[i].id].Star
|
||
end
|
||
end
|
||
local list = ConfigManager.GetAllConfigsDataByKey(ConfigName.EquipConfig,"Star",smallStar)
|
||
|
||
--local Equip = ConfigManager.GetConfigData(ConfigName.EquipStarsConfig,smallStar)
|
||
|
||
this.hongmengAdditions[1].value = this.hongmengTablet
|
||
|
||
this.hongmengAdditions[2].value = smallStar
|
||
|
||
|
||
--this.hongmengAdditions[]
|
||
return list
|
||
|
||
end
|
||
function this:HunMin(hunList)
|
||
-- body
|
||
local smallHun =999
|
||
for i = 1, #hunList do
|
||
-- body
|
||
if smallHun > EquipTreasureManager.GetSingleTreasureByIdDyn(hunList[i]).lv then
|
||
-- body
|
||
smallHun = EquipTreasureManager.GetSingleTreasureByIdDyn(hunList[i]).lv
|
||
end
|
||
end
|
||
this.hongmengAdditions[3].value = smallHun
|
||
end
|
||
|
||
function this:SoulMin(LingList)
|
||
-- body
|
||
local smallLing = 999
|
||
for i = 1, #LingList do
|
||
-- body
|
||
if smallLing > EquipTreasureManager.GetSingleTreasureByIdDyn(LingList[i]).lv then
|
||
-- body
|
||
smallLing = EquipTreasureManager.GetSingleTreasureByIdDyn(LingList[i]).lv
|
||
end
|
||
end
|
||
this.hongmengAdditions[4].value = smallLing
|
||
end
|
||
|
||
function this:WeaponMin(weapon_Lv)
|
||
this.hongmengAdditions[4].value = weapon_Lv
|
||
-- body
|
||
end
|
||
|
||
--判断神将的装备是否共鸣
|
||
function this:IsShowGongMingEqiup(id)
|
||
for i = 1, #this.hongmengHeroInfos do
|
||
-- body
|
||
if id == this.hongmengHeroInfos[i].heroId then
|
||
|
||
return true
|
||
else
|
||
|
||
end
|
||
end
|
||
|
||
return false
|
||
end
|
||
|
||
function this.GetMainProList(equipConfig)
|
||
local propList = {}
|
||
for index, prop in ipairs(equipConfig.Property) do
|
||
propList[index] = {}
|
||
propList[index].propertyId = prop[1]
|
||
propList[index].propertyValue = prop[2]
|
||
propList[index].PropertyConfig = propertyConfig[prop[1]]
|
||
end
|
||
return propList
|
||
end
|
||
|
||
|
||
function this.RefreshOpenBoxPoint()
|
||
local tab = ConfigManager.GetConfig(ConfigName.Hongmeng)
|
||
local money = BagManager.GetTotalItemNum(UpViewRechargeType.Gold)
|
||
if #this.hongmengHeroInfos<=0 then
|
||
-- body
|
||
return false
|
||
end
|
||
if money > tab[#this.hongmengHeroInfos].PropPrice[2] or money > tab[#this.hongmengHeroInfos].MoneyPrice[2] then
|
||
return true
|
||
else
|
||
return false
|
||
end
|
||
end
|
||
|
||
function this.RefreshEnvoyPoint()
|
||
-- body
|
||
for i = 1, #this.hongmengGuards do
|
||
-- body
|
||
if this.hongmengGuards[i].heroId ~= "" then
|
||
-- body
|
||
return true
|
||
end
|
||
end
|
||
return false
|
||
end
|
||
|
||
function this.RefreshUpTowerPoint()
|
||
-- body
|
||
local sum = this:HongMengTowerUpLimit()
|
||
if this.hongmengTablet > 330 + sum * 5 then
|
||
-- body
|
||
return false
|
||
else
|
||
local data = this.GetHongMengUpData()
|
||
-- LogGreen(data.LevelUp[1][2].." "..data.LevelUp[2][2])
|
||
-- LogYellow(BagManager.GetTotalItemNum(UpViewRechargeType.Gold))
|
||
if data and BagManager.GetTotalItemNum(UpViewRechargeType.Gold) >= data.LevelUp[1][2] then
|
||
-- body
|
||
if BagManager.GetTotalItemNum(UpViewRechargeType.GrowthAmulet) >= data.LevelUp[2][2] then
|
||
return true
|
||
end
|
||
|
||
end
|
||
return false
|
||
end
|
||
end
|
||
|
||
return HarmonyManager |