public int GetClearsUntilAvailable(IWorldMissionProgress i_missionProgress, int i_optionIndex) { int requiredClearCount = GetRequiredMapClearCount(i_optionIndex); int clearedAreas = i_missionProgress.GetCompletedMissionCount(); return(Math.Max(0, requiredClearCount - clearedAreas)); }
private bool IsAreaUnlocked() { IWorldMissionProgress missionProgressForWorld = PlayerManager.Data.GetMissionProgressForWorld(BackendConstants.WORLD_BASE); if (Data.Index == 12 || Progress.IsComplete()) { return(true); } else if ((Data.Index + 1) % 5 == 0) { return(missionProgressForWorld.IsMissionWithIndexComplete(Data.Index - 1) || missionProgressForWorld.IsMissionWithIndexComplete(Data.Index + 5) || missionProgressForWorld.IsMissionWithIndexComplete(Data.Index - 5)); } else if ((Data.Index + 2) % 5 == 0 || (Data.Index + 3) % 5 == 0 || (Data.Index + 4) % 5 == 0) { return(missionProgressForWorld.IsMissionWithIndexComplete(Data.Index - 1) || missionProgressForWorld.IsMissionWithIndexComplete(Data.Index + 1) || missionProgressForWorld.IsMissionWithIndexComplete(Data.Index + 5) || missionProgressForWorld.IsMissionWithIndexComplete(Data.Index - 5)); } else if (Data.Index % 5 == 0) { return(missionProgressForWorld.IsMissionWithIndexComplete(Data.Index + 1) || missionProgressForWorld.IsMissionWithIndexComplete(Data.Index + 5) || missionProgressForWorld.IsMissionWithIndexComplete(Data.Index - 5)); } else { return(false); } }
private IWorldMissionProgress GetBadMissionProgress() { IWorldMissionProgress missionProgress = Substitute.For <IWorldMissionProgress>(); missionProgress.GetCompletedMissionCount().Returns(0); return(missionProgress); }
public string GetUnavailableText(IWorldMissionProgress i_missionProgress, int i_optionIndex) { int numMoreClears = GetClearsUntilAvailable(i_missionProgress, i_optionIndex); string text = StringTableManager.Get(StringKeys.TRAVEL_OPTION_UNAVAILABLE); text = DrsStringUtils.Replace(text, DrsStringUtils.NUM, numMoreClears); return(text); }
public TravelOption(IMapName i_mapName, int i_optionIndex, IWorldMissionProgress i_missionProgress) : base() { mOptionIndex = i_optionIndex; string name = GetOptionName(i_mapName, i_missionProgress, mOptionIndex); SetOptionName(name); SetOptionAvailability(i_missionProgress, mOptionIndex); }
private void CreateTravelOptions(List <MapName> i_areas) { IWorldMissionProgress missionProgress = PlayerManager.Data.GetMissionProgressForWorld(BackendConstants.WORLD_BASE); foreach (MapName mapName in i_areas) { CreateTravelOption(mapName, missionProgress); } }
public void TestClearsUntilAvailableCountIsExpected_GivenIndexAndProgress(int i_index, int i_progress, int i_expected) { TravelOption optionUnderTest = GetBasicTravelOptionForTest(); IWorldMissionProgress missionProgress = Substitute.For <IWorldMissionProgress>(); missionProgress.GetCompletedMissionCount().Returns(i_progress); int clearsUntilAvailable = optionUnderTest.GetClearsUntilAvailable(missionProgress, i_index); Assert.AreEqual(i_expected, clearsUntilAvailable); }
private void SetOptionAvailability(IWorldMissionProgress i_missionProgress, int i_optionIndex) { ViewModel.SetProperty(AVAILABLE_PROPERTY, IsOptionAvailable(i_missionProgress, i_optionIndex)); }
public bool IsOptionAvailable(IWorldMissionProgress i_missionProgress, int i_optionIndex) { int numMoreClears = GetClearsUntilAvailable(i_missionProgress, i_optionIndex); return(numMoreClears <= 0); }
public string GetOptionName(IMapName i_mapName, IWorldMissionProgress i_missionProgress, int i_optionIndex) { bool isAvailable = IsOptionAvailable(i_missionProgress, i_optionIndex); return(isAvailable ? i_mapName.GetStringName() : GetUnavailableText(i_missionProgress, i_optionIndex)); }
private void CreateTravelOption(MapName i_mapName, IWorldMissionProgress i_missionProgress) { int index = mTravelOptions.Count; mTravelOptions.Add(new TravelOption(i_mapName, index, i_missionProgress)); }