MonsterCampManager = {}; local this = MonsterCampManager local monsterCampConfig = ConfigManager.GetConfig(ConfigName.FloodConfig) local monsterGroupConfig = ConfigManager.GetConfig(ConfigName.MonsterGroup) local monsterConfig = ConfigManager.GetConfig(ConfigName.MonsterConfig) local monterViewConfig = ConfigManager.GetConfig(ConfigName.MonsterViewConfig) local heroViewConfig = ConfigManager.GetConfig(ConfigName.HeroConfig) local resConfig = ConfigManager.GetConfig(ConfigName.ArtResourcesConfig) local CampTowerConfig = ConfigManager.GetConfig(ConfigName.CampTowerConfig) --四灵试炼数据 this.fourMonsterData = {} function this.Initialize() this.monsterWave = 0 -- 当前妖兽波次 this.m_Jump = false -- 跳过战斗设置 ----------------------------------------------------------------------四灵试炼------------------------------------------------------------------ local config = {} for i = 1 ,4 do this.fourMonsterData[i] = {} local config = ConfigManager.GetConfigDataByKey(ConfigName.CampTowerConfig,"CampId",i) this.fourMonsterData[i].canFightId = config.Privilege[1] this.fourMonsterData[i].freeTimeId = config.Privilege[2] this.fourMonsterData[i].buyTimeId = config.Privilege[3] this.fourMonsterData[i].monsterWave = 0 --0 未开 1已开 this.fourMonsterData[i].openState = 0 this.fourMonsterData[i].freeTime = 0 this.fourMonsterData[i].buyTime = 0 this.fourMonsterData[i].canFightTime = 0 this.fourMonsterData[i].fourElementType = i end end function this.InitFourMonsterData(msg) for i = 1 , #msg.info do LogGreen("type:"..msg.info[i].type.." currentFloor:"..msg.info[i].currentFloor.." msg.info[i].remainTimes:"..msg.info[i].remainTimes.." overTime:"..msg.info[i].overTime) local index = msg.info[i].type this.fourMonsterData[index].monsterWave = msg.info[i].currentFloor this.fourMonsterData[index].canFightTime = msg.info[i].remainTimes this.fourMonsterData[index].openState = msg.info[i].overTime end end --设置扫荡剩余次数 function this.GetTimeTip(campId) LogBlue("购买总次数:"..PrivilegeManager.GetPrivilegeNumber(this.fourMonsterData[campId].buyTimeId)) LogBlue("购买使用的次数:"..PrivilegeManager.GetPrivilegeUsedTimes(this.fourMonsterData[campId].buyTimeId)) LogBlue("免费总次数:"..PrivilegeManager.GetPrivilegeNumber(this.fourMonsterData[campId].freeTimeId)) LogBlue("免费使用次数:"..PrivilegeManager.GetPrivilegeUsedTimes(this.fourMonsterData[campId].freeTimeId)) this.fourMonsterData[campId].buyTime = PrivilegeManager.GetPrivilegeRemainValue(this.fourMonsterData[campId].buyTimeId) LogBlue("购买剩余次数:"..this.fourMonsterData[campId].buyTime) this.fourMonsterData[campId].freeTime= PrivilegeManager.GetPrivilegeRemainValue(this.fourMonsterData[campId].freeTimeId) --免费次数 LogBlue("免费剩余次数:"..this.fourMonsterData[campId].buyTime) return this.fourMonsterData[campId].freeTime,this.fourMonsterData[campId].buyTime end --获取当前通过的总层数 function this.GetFourElementTotalWave() local waves = 0 for k,v in pairs(this.fourMonsterData) do waves = waves + v.monsterWave end return waves end function this.GetCurFourElementMonsterInfo(index) return this.fourMonsterData[index] end function this.GetFourElementMonstersInfo(curType,curWave) local monsterInfo = {} local data = ConfigManager.GetConfigDataByDoubleKey(ConfigName.CampTowerConfig,"CampId",curType,"FloorId",curWave) for i = 1, curWave + data.UpLimitWave do local tempData = this.GetFourElementMonsterInfoByWave(curType,i) if tempData then table.insert(monsterInfo,tempData) end end return monsterInfo end function this.GetFourElementMonsterInfoByWave(curType,wave) local tempConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.CampTowerConfig,"CampId",curType,"FloorId",wave) if not tempConfig then return nil end local data = {} data.wave = tempConfig.FloorId --战力 data.power = tempConfig.Force data.firstReward = {} --首通奖励 if tempConfig.FirstReward and #tempConfig.FirstReward > 0 then for i = 1, #tempConfig.FirstReward do table.insert(data.firstReward,{id = tempConfig.FirstReward[i][1],num = tempConfig.FirstReward[i][2]}) end end data.commonReward = {} --首通奖励 if tempConfig.CommonReward and #tempConfig.CommonReward > 0 then for i = 1, #tempConfig.CommonReward do table.insert(data.commonReward,{id = tempConfig.CommonReward[i][1],num = tempConfig.CommonReward[i][2]}) end end local monsterGroupId = tempConfig.Monster -- 默认显示第一只怪 local id = monsterGroupConfig[monsterGroupId].Contents[1][1] data.monsterConfig = monsterConfig[id] data.herodata = this.SetSingleMonster(data.monsterConfig.MonsterId) return data end function this.SetSingleMonster(id) local herodata = {} local _configData = ConfigManager.GetConfigData(ConfigName.HeroConfig,id) herodata.live = GetResourcePath(_configData.Live) herodata.painting = GetResourcePath(_configData.Painting) herodata.icon = GetResourcePath(_configData.Icon) herodata.scale = _configData.Scale herodata.position = _configData.Position herodata.profession = _configData.Profession herodata.profession = _configData.Profession herodata.ProfessionResourceId = _configData.ProfessionResourceId if GetJobSpriteStrByJobNum(_configData.Profession) then herodata.professionIcon = GetJobSpriteStrByJobNum(_configData.Profession) else herodata.professionIcon = GetJobSpriteStrByJobNum(1) end herodata.name = _configData.ReadingName herodata.property = _configData.PropertyName return herodata end function this.GetMonsterTeamInfo() local tempConfig = ConfigManager.GetConfigDataByDoubleKey(ConfigName.CampTowerConfig,"CampId",curType,"FloorId",wave) if not tempConfig then return nil end local teamMonsterInfo = {} local monsterGroupId = tempConfig.Monster for i = 1, #monsterGroupConfig[monsterGroupId].Contents[1] do local id = monsterConfig[monsterGroupConfig[monsterGroupId].Contents[1][i]].MonsterId local monsterConfig = this.SetSingleMonster(data.monsterConfig.MonsterId) end end ----------------------------------------------------------------------四灵试炼------------------------------------------------------------------ -- 返回5个大虾的信息, 显示怪物的第一个, function this.GetNextWaveMonsterInfo() local curWave = this.monsterWave local monsterInfo = {} --遇到表格的结尾处,则停止 for i = curWave + 1, curWave + 5 do if not monsterCampConfig[i] then break end local data = {} data.rewardShow = monsterCampConfig[i].RewardShow local monsterGroupId = monsterCampConfig[i].Monster -- 默认显示第一只怪 local id = monsterGroupConfig[monsterGroupId].Contents[1][1] local monsterId = monsterConfig[id].MonsterId local resId = 0 if monsterId > 10000 then -- 这是人类 resId = heroViewConfig[monsterId].Icon else -- 这是妖精 resId = monterViewConfig[monsterId].MonsterIcon end local resPath = GetResourcePath(resId) local icon = Util.LoadSprite(resPath) data.icon = icon data.name = resConfig[resId].Desc monsterInfo[i] = data end return monsterInfo end -- 返回当前怪物阵容信息 function this.GetCurMonsterInfo() local curWave = this.monsterWave local monsterInfo = {} local mainMonsterInfo = {} local data = {} data.icon = {} data.level={} data.rewardShow = monsterCampConfig[curWave].RewardShow local monsterGroupId = monsterCampConfig[curWave].Monster local ids = monsterGroupConfig[monsterGroupId].Contents for i = 1, #ids do for j = 1, #ids[i] do -- 所有怪信息 local monsterId = monsterConfig[ids[i][j]].MonsterId local resId = 0 if monsterId > 10000 then -- 这是人类 resId = heroViewConfig[monsterId].Icon else -- 这是妖精 resId = monterViewConfig[monsterId].MonsterIcon end local resPath = GetResourcePath(resId) local icon = Util.LoadSprite(resPath) data.icon[#data.icon + 1] = icon data.level[j]= monsterConfig[ids[i][j]].Level -- 主怪信息 if i == 1 and j == 1 then mainMonsterInfo.name = resConfig[resId].Desc mainMonsterInfo.live2dPath = resConfig[resId].Name mainMonsterInfo.monsterId = monsterId end end end monsterInfo = data return monsterInfo, mainMonsterInfo end -- 消耗道具上限值 function this.GetMaxCostItem() return PrivilegeManager.GetPrivilegeNumber(23) end -- 是否需要回复 function this.IsNeedSupply() return BagManager.GetItemCountById(53) < this.GetMaxCostItem() end --返回当前的怪物组Id function this.GetCurWaveMonsterGroupId() return monsterCampConfig[this.monsterWave].Monster end -- 通过怪物ID返回头像 function this.GetIconByMonsterId(monsterId) local resId = 0 local level = 0 local icon local liveId = monsterConfig[monsterId].MonsterId if liveId > 10000 then -- 这是人类 resId = heroViewConfig[liveId].Icon else -- 这是妖精 resId = monterViewConfig[liveId].MonsterIcon end level = monsterConfig[monsterId].Level icon =Util.LoadSprite(GetResourcePath(resId)) return icon, level end -- 获取表的上限值 function this.GetMaxNum() local max = 0 for k, v in ConfigPairs(monsterCampConfig) do max = max > k and max or k end return max end -- 跳过战斗设置 function this.GetBattleJump() return false -- if not this.CheckBattleJump() then -- return false -- end -- return this.m_Jump end function this.SetBattleJump(state) this.m_Jump = state end function this.CheckBattleJump() local isOpen = PrivilegeManager.GetPrivilegeOpenStatus(PRIVILEGE_TYPE.MonsterCampJump) return isOpen end return this