miduo_client/Assets/ManagedResources/~Lua/Modules/Harmony/Manager/HarmonyManager.lua

527 lines
14 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode 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.

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