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.TowerStartLimit = 0 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("hongmengGuards",#this.hongmengGuards) this.TowerStartLimit = tonumber(string.split(ConfigManager.GetConfigData(ConfigName.SpecialConfig,101).Value,"#")[2]) -- LogGreen("TowerStartLimit"..HarmonyManager.TowerStartLimit) this.hongmengHeroInfos = hongmengHeroInfos LogGreen("hongmengHeroInfos",#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:UpdateHongMengData(hongmengGuards,hongmengAdditions) this.hongmengGuards = hongmengGuards this.hongmengAdditions = hongmengAdditions print("刷新hongmengGuards") 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; 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 --print("228 ",#this.hongmengGuards) 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 Gold = BagManager.GetTotalItemNum(UpViewRechargeType.XuanHuangZhiQi) local DemonCrystal = BagManager.GetTotalItemNum(UpViewRechargeType.DemonCrystal) if #this.hongmengHeroInfos<=0 then -- body return false end if Gold > tab[#this.hongmengHeroInfos].PropPrice[2] or DemonCrystal > 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 > this.TowerStartLimit + 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 --票战力 local oldPowerNum = 0 function this.SetOldPowerNum(did) local isCalculate = true if did then local heros = FormationManager.GetAllMainFormationHeroId() if not heros[did] then isCalculate = false end end if isCalculate then oldPowerNum = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) end end function this.WarPowerChangeNotify(did) local isCalculate = true if did then local heros = FormationManager.GetAllMainFormationHeroId() if not heros[did] then isCalculate = false end end if oldPowerNum ~= 0 and isCalculate then local newPowerNum = FormationManager.GetFormationPower(FormationTypeDef.FORMATION_NORMAL) if oldPowerNum ~= newPowerNum then UIManager.OpenPanel(UIName.WarPowerChangeNotifyPanelV2,{oldValue = oldPowerNum,newValue = newPowerNum}) if did then FormationManager.CheckHeroIdExist(did)--如果是主线阵容发生变化 会通知后端 更新任务刷新 end end end end return HarmonyManager