using RecRoomArchive.Models.API.Config; namespace RecRoomArchive.Services { /// /// I don't even want to explain this one. I'm sorry /// public class ConfigService(MessageOfTheDayService motdService, IHttpContextAccessor httpContextAccessor) { private readonly MessageOfTheDayService _motdService = motdService; private readonly IHttpContextAccessor _httpContextAccessor = httpContextAccessor; /// /// I'm only doing this because I think that having the full Rec Room config in a controller would be very very ugly. /// /// RecRoomConfig public async Task GetRecRoomConfig() { var request = _httpContextAccessor.HttpContext?.Request; var host = $"{request!.Scheme}://{request.Host}"; return new RecRoomConfig() { MessageOfTheDay = await _motdService.GetMessageOfTheDay(), CdnBaseUri = host, MatchmakingParams = new MatchmakingParams(), LevelProgressionMaps = [ new LevelProgressionMap(0, 0), new LevelProgressionMap(1, 10), new LevelProgressionMap(2, 10), new LevelProgressionMap(3, 10), new LevelProgressionMap(4, 20), new LevelProgressionMap(5, 20), new LevelProgressionMap(6, 20), new LevelProgressionMap(7, 20), new LevelProgressionMap(8, 20), new LevelProgressionMap(9, 20), new LevelProgressionMap(10, 20), new LevelProgressionMap(11, 45), new LevelProgressionMap(12, 45), new LevelProgressionMap(13, 45), new LevelProgressionMap(14, 45), new LevelProgressionMap(15, 45), new LevelProgressionMap(16, 45), new LevelProgressionMap(17, 45), new LevelProgressionMap(18, 45), new LevelProgressionMap(19, 45), new LevelProgressionMap(20, 45), new LevelProgressionMap(21, 115), new LevelProgressionMap(22, 115), new LevelProgressionMap(23, 115), new LevelProgressionMap(24, 115), new LevelProgressionMap(25, 115), new LevelProgressionMap(26, 115), new LevelProgressionMap(27, 115), new LevelProgressionMap(28, 115), new LevelProgressionMap(29, 115), new LevelProgressionMap(30, 115) ], DailyObjectives = [ [ new DailyObjective() { Type = ObjectiveType.QuestGames_Scifi1, Score = 1 }, new DailyObjective() { Type = ObjectiveType.QuestEnemyKills_Scifi1, Score = 10 }, new DailyObjective() { Type = ObjectiveType.ArenaGames, Score = 1 } ], [ new DailyObjective() { Type = ObjectiveType.PaintballCTFGames, Score = 2 }, new DailyObjective() { Type = ObjectiveType.FinishActivity, Score = 1 }, new DailyObjective() { Type = ObjectiveType.CheerAPlayer, Score = 1 } ], [ new DailyObjective() { Type = ObjectiveType.DodgeballGames, Score = 2 }, new DailyObjective() { Type = ObjectiveType.DodgeballWins, Score = 2 }, new DailyObjective() { Type = ObjectiveType.CheerAPlayer, Score = 1 } ], [ new DailyObjective() { Type = ObjectiveType.PaintballTeamBattleWins, Score = 2 }, new DailyObjective() { Type = ObjectiveType.PaintballTeamBattleGames, Score = 20 }, new DailyObjective() { Type = ObjectiveType.FinishActivity, Score = 1 } ], [ new DailyObjective() { Type = ObjectiveType.QuestGames_Goblin1, Score = 1 }, new DailyObjective() { Type = ObjectiveType.QuestEnemyKills_Goblin1, Score = 10 }, new DailyObjective() { Type = ObjectiveType.CheerAPlayer, Score = 1 } ], [ new DailyObjective() { Type = ObjectiveType.PaintballAnyModeGames, Score = 2 }, new DailyObjective() { Type = ObjectiveType.PaintballAnyModeHits, Score = 20 }, new DailyObjective() { Type = ObjectiveType.ArenaGames, Score = 1 } ], [ new DailyObjective() { Type = ObjectiveType.QuestGames_Goblin2, Score = 1 }, new DailyObjective() { Type = ObjectiveType.QuestEnemyKills_Goblin2, Score = 10 }, new DailyObjective() { Type = ObjectiveType.FinishActivity, Score = 1 } ] ], ConfigTable = [], PhotonConfig = new PhotonConfig() }; } } }