public void HandleMissionResultsViewControllerRetryButtonPressed(MissionResultsViewController viewController) { Challenge challenge = ((CustomMissionDataSO)_missionLevelDetailViewController.missionNode.missionData).challenge; String failedMods = LoadExternalModifiers(challenge); if (failedMods.Length == 0) { Gamemode.NextLevelIsIsolated("Custom Campaigns"); _campaignFlowCoordinator.HandleMissionResultsViewControllerRetryButtonPressed(_missionResultsViewController); } }
public void HandleMissionLevelDetailViewControllerDidPressPlayButtonPlay(MissionLevelDetailViewController viewController) { Challenge challenge = ((CustomMissionDataSO)viewController.missionNode.missionData).challenge; MissionDataSO missionData = viewController.missionNode.missionData; String failedMods = LoadExternalModifiers(challenge); List <GameplayModifierParamsSO> errorList = new List <GameplayModifierParamsSO>(); if (failedMods.Length > 0) { foreach (string s in failedMods.Split(' ')) { errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - External Mod", "Please install or update the following mod: " + s)); } } if (viewController.missionNode.missionData.beatmapCharacteristic.descriptionLocalizationKey == "ERROR NOT FOUND") { errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Characteristic Not Found", "Could not find the characteristic \"" + challenge.characteristic + "\" for this map")); } else if (BeatmapLevelDataExtensions.GetDifficultyBeatmap(Loader.BeatmapLevelsModelSO.GetBeatmapLevelIfLoaded((missionData as CustomMissionDataSO).customLevel.levelID).beatmapLevelData, missionData.beatmapCharacteristic, missionData.beatmapDifficulty) == null) { errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Difficulty Not Found", "Could not find the difficulty \"" + challenge.difficulty.ToString() + "\" for this map")); } else { DifficultyData difficultyData = Collections.RetrieveDifficultyData(BeatmapLevelDataExtensions.GetDifficultyBeatmap(Loader.BeatmapLevelsModelSO.GetBeatmapLevelIfLoaded((missionData as CustomMissionDataSO).customLevel.levelID).beatmapLevelData, missionData.beatmapCharacteristic, missionData.beatmapDifficulty)); foreach (string requirement in difficultyData.additionalDifficultyData._requirements) { if (Collections.capabilities.Contains(requirement) || requirement.StartsWith("Complete Campaign Challenge - ")) { continue; } errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Missing Level Requirement", "Could not find the capability to play levels with \"" + requirement + "\"")); } } foreach (ChallengeRequirement requirement in challenge.requirements) { if (ChallengeRequirement.GetObjectiveName(requirement.type) == "ERROR") { errorList.Add(APITools.CreateModifierParam(Assets.ErrorIcon, "Error - Mission Objective Not Found", "You likely have a typo in the requirement name")); } } if (errorList.Count == 0) { Gamemode.NextLevelIsIsolated("Custom Campaigns"); _missionSelectionNavigationController.HandleMissionLevelDetailViewControllerDidPressPlayButton(viewController); } else { LoadModifiersPanel(errorList); } }