PracticeManager = {} local this = PracticeManager local XiuXianConfig = ConfigManager.GetConfig(ConfigName.XiuXianConfig) local PropertyConfig = ConfigManager.GetConfig(ConfigName.PropertyConfig) local XiuXianSkillConfig = ConfigManager.GetConfig(ConfigName.XiuXianSkillConfig) function this.Initialize() this.PracticeLevel = 1--小境界id this.PracticeBigLevel = 1--大境界数 this.StarNum = 0--星星的数量 -- this.PracticeConfigData = {} this.ImprintServerData = {}--服务器发来的神印信息 this.BigLevelImprintList = {}--大境界对应的神印 end --从服务器更新当前修行等级 function this.UpdataFromServer(_level) this.PracticeLevel = _level this.PracticeLevel = this.PracticeLevel > 0 and this.PracticeLevel or 1 this.PracticeBigLevel = XiuXianConfig[this.PracticeLevel].RealmId this.StarNum = PlayerManager.level end --获取当前等级表数据 function this.GetCurConfigData() return XiuXianConfig[this.PracticeLevel] end function this.BuildAddTemplate() local TemplateList = {} for _, configInfo in ConfigPairs(PropertyConfig) do if configInfo.IfShow == 1 or configInfo.IfShow == 2 then TemplateList[configInfo.PropertyId] = 0 end end return TemplateList end --获取每一小点属性加成 function this.GetSinglePointAdd() local singlePointAddList = {} local TotalPros = XiuXianConfig[this.PracticeLevel].TotalPros for i = 1, #TotalPros do if not singlePointAddList[TotalPros[i][1]] then singlePointAddList[TotalPros[i][1]] = 0 end singlePointAddList[TotalPros[i][1]] = TotalPros[i][2] end return singlePointAddList end --获取当前获得的所有属性相加 function this.GetCurAllGetAdd() local PropertyList = this.BuildAddTemplate() for i = 1, this.PracticeLevel do -- LogPink("i:"..tostring(i)) if XiuXianConfig[i].TotalPros then local Pros = XiuXianConfig[i].TotalPros -- LogGreen("#Pros:"..tostring(#Pros)) for i = 1, #Pros do -- LogBlue("ProsId:"..tostring(Pros[i][1]).." ProsNum:"..tostring(Pros[i][2])) PropertyList[Pros[i][1]] = PropertyList[Pros[i][1]] + Pros[i][2] end end end return PropertyList end --获取各个大境界中所有小属性加成的总和 +模板的 function this.GetAddsListWithTemplate() local PropertyList = this.BuildAddTemplate() local addsList = {} for i, v in ConfigPairs(XiuXianConfig) do if v.TotalPros then local Pros = v.TotalPros for i = 1, #Pros do PropertyList[Pros[i][1]] = PropertyList[Pros[i][1]] + Pros[i][2] end end end return PropertyList end --获取各个大境界中所有小属性加成的总和 不加模板的 function this.GetAddsListWithOutTemplate() local addsList = {} for i, v in ConfigPairs(XiuXianConfig) do if not addsList[v.RealmId] then addsList[v.RealmId] = {} end if v.TotalPros then local Pros = v.TotalPros for i = 1, #Pros do if not addsList[v.RealmId][Pros[i][1]] then addsList[v.RealmId][Pros[i][1]] = 0 end addsList[v.RealmId][Pros[i][1]] = addsList[v.RealmId][Pros[i][1]] + Pros[i][2] end end end return addsList end --获取预览界面数据 function this.GetPreViewData() local AddListData = this.GetAddsListWithOutTemplate() local previewList = {} for i = 2, #AddListData do local data = {} local configData = ConfigManager.GetConfigDataByKey(ConfigName.XiuXianConfig,"RealmId",i) data.RealmName = configData.RealmName data.RealmDesc = configData.RealmDesc data.IsActive = this.PracticeBigLevel >= i data.AddList = AddListData[i] table.insert(previewList,data) end return previewList end --返回预览界面文字 function this.GetPreviewSingleText(id,value) return string.format("全体神将%s+%s",PropertyConfig[id].Info,value) end --获取所有神印信息 function this.GetAllImprintData() local AllImprintList = {} for i, v in ConfigPairs(XiuXianConfig) do if v.TeamSkill then table.insert(AllImprintList,v) end end return AllImprintList end --服务器发来的神印信息 function this.UpdataImprintDataFromServer(_imprintList) this.BigLevelWithImprint()--初始化大境界对应的神印 for key, value in pairs(_imprintList) do if value and value.id then if not this.ImprintServerData[value.id] then this.ImprintServerData[value.id] = {} end this.ImprintServerData[value.id].type = value.type this.ImprintServerData[value.id].subId = value.subId this.ImprintServerData[value.id].state = value.state LogPurple("id:"..tostring(value.id).." state:"..tostring(value.state)) if value.state == 1 then this.BigLevelImprintList[XiuXianSkillConfig[value.id].UnlockId] = value.id end end end end --初始化大境界对应的神印 function this.BigLevelWithImprint() for i, v in ConfigPairs(XiuXianSkillConfig) do if v.UnlockId > 0 then this.BigLevelImprintList[v.UnlockId] = 0 end end end --获取单个神印的信息(服务器+表) function this.GetSingleImprintData(id) if this.ImprintServerData[id] then return this.ImprintServerData[id],XiuXianSkillConfig[id] else return nil,XiuXianSkillConfig[id] end end return PracticeManager