miduo_client/Assets/ManagedResources/~Lua/Modules/QiJieShiLian/QiJieShiLianManager.lua

206 lines
7.1 KiB
Lua
Raw Normal View History

2021-09-06 17:21:53 +08:00
QiJieShiLianManager = {}
local this = QiJieShiLianManager
local QijieHolyConfig = ConfigManager.GetConfig(ConfigName.QijieHolyConfig)
local QijieRanking = ConfigManager.GetConfig(ConfigName.QijieRanking)
local QijieStage = ConfigManager.GetConfig(ConfigName.QijieStage)
local QijieStageBuff = ConfigManager.GetConfig(ConfigName.QijieStageBuff)
local QijieTreasure = ConfigManager.GetConfig(ConfigName.QijieTreasure)
local QijieUpgrade = ConfigManager.GetConfig(ConfigName.QijieUpgrade)
local HeroConfig = ConfigManager.GetConfig(ConfigName.HeroConfig)
2021-09-06 17:21:53 +08:00
function this.Initialize()
this.curLevelId = 3004
this.curRank = 999
this.curScore = 1
2021-09-10 10:30:50 +08:00
this.QijieType = 1
2021-09-08 16:26:40 +08:00
this.curProgress = 0
this.treasureList = {}
this.InitTreasureData()
2021-09-10 18:36:39 +08:00
this.battleResult = {}
2021-09-08 16:26:40 +08:00
end
function this.InitTreasureData()
for _, configInfo in ConfigPairs(QijieHolyConfig) do
if configInfo.Id ~= 0 then
local data = {}
data.Id = configInfo.Id
data.Name = configInfo.Name
data.Quality = configInfo.Quality
data.Icon = configInfo.Icon
data.Position = configInfo.Position
data.Attri = configInfo.Attri
data.Cost = configInfo.Cost
data.Addition = configInfo.Addition
2021-09-10 10:30:50 +08:00
data.state = 2 --0未激活1已激活2未购买
2021-09-08 16:26:40 +08:00
this.treasureList[data.Id] = data
end
end
2021-09-06 17:21:53 +08:00
end
--界面获取信息
2021-09-10 10:30:50 +08:00
function this.GetQiJieData(targetLevel)
--上阵列表赋值
2021-09-10 15:23:15 +08:00
-- local curFormation = FormationManager.GetFormationByID(FormationTypeDef.FORMATION_NORMAL)
-- if FormationManager.GetFormationByID(FormationTypeDef.FORMATION_QIJIESHILIAN) then
2021-09-10 10:30:50 +08:00
curFormation = FormationManager.GetFormationByID(FormationTypeDef.FORMATION_QIJIESHILIAN)
2021-09-10 15:23:15 +08:00
-- end
this.formationList ={}
for j = 1, #curFormation.teamHeroInfos do
if curFormation.teamHeroInfos[j] then
table.insert(this.formationList,HeroManager.GetSingleHeroData(curFormation.teamHeroInfos[j].heroId).heroConfig)
end
end
--界面信息
local data = {}
data.curLevelId = this.curLevelId
data.curRank = this.curRank
data.curScore = this.curScore
2021-09-08 16:26:40 +08:00
data.curProgress = this.curProgress
data.curStageData = QijieStage[this.curLevelId]
return data
2021-09-06 17:21:53 +08:00
end
2021-09-10 10:30:50 +08:00
--获取服务器信息
function this.GetServerData(msg)
this.curLevelId = msg.id
this.curRank = msg.ranking
this.curScore = msg.integral
this.curProgress = msg.totalTier
end
2021-09-10 10:30:50 +08:00
function this.CheckCurStageNum()
local data = ConfigManager.GetAllConfigsDataByKey(ConfigName.QijieStage,"QijieType",this.QijieType)
LogGreen(tostring(#data)..LengthOfTable(data))
-- return ConfigManager.GetAllConfigsDataByKey(ConfigName.QijieStage,"QijieType",this.QijieType)
end
--获取下方滑动条数据
function this.GetTabList()
local tabList = {}
for _, configInfo in ConfigPairs(QijieStage) do
if not tabList[configInfo.QijieType] then
tabList[configInfo.QijieType] = configInfo
end
end
return tabList
end
--检测该条目是否达成
2021-09-10 15:23:15 +08:00
function this.CheckGoalIsFinish(_dataId,_obj,_formationList)
local goalData = QijieUpgrade[_dataId]
local tempList = {}
local final = true
2021-09-10 15:23:15 +08:00
local heroList = {}
-- LogRed("Id:"..tostring(goalData.Id).." Describe:"..tostring(goalData.Describe).." PropertyName:"..tostring(goalData.PropertyName).." Profession:"..tostring(goalData.Profession).." Min:"..tostring(goalData.Min).." Max:"..tostring(goalData.Max))
heroList = _formationList and _formationList or this.formationList
if #heroList == 0 then
-- LogYellow("final = false0")
final = false
end
for i = 1, #heroList do
table.insert(tempList,HeroConfig[HeroManager.GetSingleHeroData(heroList[i].heroId).id])
end
2021-09-10 15:23:15 +08:00
if #tempList > 0 and final and goalData.PropertyName and goalData.PropertyName > 0 then
for i = #tempList, 1,-1 do
if goalData.PropertyName ~= tempList[i].PropertyName then
table.remove(tempList,i)
2021-09-10 15:23:15 +08:00
if #tempList == 0 then
final = true
end
end
end
end
2021-09-10 10:30:50 +08:00
-- LogGreen("#tempList1:"..tostring(#tempList))
2021-09-10 15:23:15 +08:00
if #tempList > 0 and final and goalData.Profession and goalData.Profession > 0 then
for i = #tempList, 1,-1 do
if goalData.Profession ~= tempList[i].Profession then
table.remove(tempList,i)
2021-09-10 15:23:15 +08:00
if #tempList == 0 then
final = true
end
end
end
end
2021-09-10 10:30:50 +08:00
-- LogGreen("#tempList1:"..tostring(#tempList))
2021-09-10 15:23:15 +08:00
if final and goalData.Min and goalData.Min >= 0 then
if #tempList < goalData.Min then
2021-09-10 10:30:50 +08:00
-- LogYellow("final = false1")
final = false
end
end
2021-09-10 15:23:15 +08:00
if final and goalData.Max and goalData.Max >= 0 then
if #tempList > goalData.Max then
2021-09-10 10:30:50 +08:00
-- LogYellow("final = false2")
final = false
end
end
_obj.text = string.format( "<color=#BAAF98>%s</color>",goalData.Describe)
if final then
_obj.text = string.format( "<color=#27DD65>%s</color>",goalData.Describe)
end
return final
end
2021-09-10 10:30:50 +08:00
--把服务器发来的遗物数据加到本地数据中
function this.MixTreasureServerAndLocalData(msg)
2021-09-10 15:23:15 +08:00
for i = 1, #msg.info do
if this.treasureList[msg.info[i].id] then
this.treasureList[msg.info[i].id].state = msg.info[i].status
2021-09-10 10:30:50 +08:00
else
2021-09-10 15:23:15 +08:00
LogError("服务器发来了前端不存在的遗物Id"..tostring(msg.info[i].id))
2021-09-10 10:30:50 +08:00
end
2021-09-08 16:26:40 +08:00
end
end
2021-09-08 17:32:48 +08:00
--把1维的List换成2维的。并且增加稀有度条件
function this.FormatTreasureData(_tabNum)
local list = {}
for k,v in pairs(this.treasureList) do
list[k] = v
end
if _tabNum and _tabNum ~= 0 then
for k,v in pairs(list) do
if v.Quality ~= _tabNum then
table.remove(list,k)
end
end
end
local num = math.ceil( LengthOfTable(list)/4 )
2021-09-08 16:26:40 +08:00
local dataList = {}
for i = 1, num do
dataList[i] = {}
for j = 1, 4 do
2021-09-08 17:32:48 +08:00
if list[(i-1)*4+j] then
dataList[i][j] = list[(i-1)*4+j]
2021-09-08 16:26:40 +08:00
else
return dataList
end
end
end
return dataList
end
--获取战斗结束后信息(拼接)
2021-09-10 18:36:39 +08:00
function this.GetBattleResult()
local config = QijieStage[this.curLevelId]
local data = {}
data[1] = string.format( "阵容加成: %s%\n(%s条)",(#this.battleResult.teamBuffIds)*(config.Addition[2]/100),#this.battleResult.teamBuffIds)
data[2] = string.format( "遗物加成: %s%\n(%s条)",(#this.battleResult.relicIds)*10,#this.battleResult.relicIds)
local bonue = config.RoundReward[1][2]
for i = 1, #config.RoundReward do
if this.battleResult.round > config.RoundReward[i][1] then
bonue = config.RoundReward[i][2]
end
end
data[3] = string.format( "回合加成: %s%\n(%s条)",bonue/100,this.battleResult.round)
return data
end
--获取遗物效果
function this.GetTreasureEffect(treasureList)
local moneyString = ""
local attriString = ""
end
2021-09-06 17:21:53 +08:00
return QiJieShiLianManager