コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: MapArea.cs プロジェクト: tiffaneeDEV/IdleFantasy
        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);
            }
        }
コード例 #3
0
        private IWorldMissionProgress GetBadMissionProgress()
        {
            IWorldMissionProgress missionProgress = Substitute.For <IWorldMissionProgress>();

            missionProgress.GetCompletedMissionCount().Returns(0);

            return(missionProgress);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        private void CreateTravelOptions(List <MapName> i_areas)
        {
            IWorldMissionProgress missionProgress = PlayerManager.Data.GetMissionProgressForWorld(BackendConstants.WORLD_BASE);

            foreach (MapName mapName in i_areas)
            {
                CreateTravelOption(mapName, missionProgress);
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
 private void SetOptionAvailability(IWorldMissionProgress i_missionProgress, int i_optionIndex)
 {
     ViewModel.SetProperty(AVAILABLE_PROPERTY, IsOptionAvailable(i_missionProgress, i_optionIndex));
 }
コード例 #9
0
        public bool IsOptionAvailable(IWorldMissionProgress i_missionProgress, int i_optionIndex)
        {
            int numMoreClears = GetClearsUntilAvailable(i_missionProgress, i_optionIndex);

            return(numMoreClears <= 0);
        }
コード例 #10
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));
        }
コード例 #11
0
        private void CreateTravelOption(MapName i_mapName, IWorldMissionProgress i_missionProgress)
        {
            int index = mTravelOptions.Count;

            mTravelOptions.Add(new TravelOption(i_mapName, index, i_missionProgress));
        }