コード例 #1
0
        public void RegionalMap_CorrectlyFiresOnRegionCompletedEvent()
        {
            SubRegion fakeSubRegion = new SubRegion(WorldSubRegion.Fields, 0, new ChanceEvent <int> [0],
                                                    new FighterType[0], new BattlefieldConfiguration(new TeamConfiguration(new EnemyConfiguration(FighterType.Egg, 1, MagicType.Fire))));

            Region fakeRegion = new Region(WorldRegion.Fields, new BattleMove[0], new List <SubRegion> {
                fakeSubRegion
            });

            _logger.Subscribe(fakeRegion, EventType.RegionCompleted);

            AreaMap <Region, WorldRegion> fakeRegionalMap =
                new AreaMap <Region, WorldRegion>(fakeRegion, new MapPath <Region, WorldRegion>(fakeRegion));

            fakeRegionalMap.Advance(new MockDecisionManager(new GodRelationshipManager()), new TestTeam());

            List <EventLog> logs = _logger.Logs;

            Assert.AreEqual(1, logs.Count);

            EventLog log = logs[0];

            Assert.AreEqual(EventType.RegionCompleted, log.Type);

            RegionCompletedEventArgs e = log.E as RegionCompletedEventArgs;

            Assert.AreEqual(fakeRegion, e?.CompletedRegion);
        }
コード例 #2
0
        private void LogRegionCompleted(object sender, RegionCompletedEventArgs e)
        {
            switch (e.CompletedRegion.AreaId)
            {
            case WorldRegion.Casino:
                _desertRegionCompleted = true;
                break;

            case WorldRegion.CrystalCaves:
                _crystalRegionCompleted = true;
                break;

            case WorldRegion.Desert:
                _casionRegionCompleted = true;
                break;
            }

            if (_desertRegionCompleted && _crystalRegionCompleted && _casionRegionCompleted)
            {
                UnlockRegion(_groupingKeys.MainRegionalMapGroupingId, WorldRegion.DarkCastle);
            }
        }
コード例 #3
0
        public TArea Advance(IDecisionManager decisionManager, Team advancingTeam)
        {
            TArea newArea;

            if (typeof(TArea) == typeof(Region))
            {
                Region currentRegion = CurrentArea as Region;

                RegionCompletedEventArgs e = new RegionCompletedEventArgs(currentRegion);
                currentRegion?.OnRegionCompleted(e);
            }
            if (typeof(TArea) == typeof(SubRegion))
            {
                SubRegion currentSubRegion = CurrentArea as SubRegion;

                SubRegionCompletedEventArgs e = new SubRegionCompletedEventArgs(currentSubRegion);
                currentSubRegion?.OnSubRegionCompleted(e);
            }

            MapPath <TArea, TAreaId> currentPath = MapPaths.First(p => p.From.Equals(CurrentArea));

            List <TArea> availableAreas = currentPath.To.GetAvaialableAreas().ToList();

            if (availableAreas.Count == 0)
            {
                newArea = null;
            }
            else if (availableAreas.Count == 1)
            {
                newArea = availableAreas[0];
            }
            else
            {
                newArea = decisionManager.PickNextArea(currentPath.To, advancingTeam);
            }

            CurrentArea = newArea;
            return(newArea);
        }
コード例 #4
0
 public void ResetDecisionsAfterRegionCleared(object sender, RegionCompletedEventArgs e)
 {
     ResetGroupingChoice(e.CompletedRegion.AreaId);
 }
コード例 #5
0
ファイル: EventLogger.cs プロジェクト: Jsweeney1000/SimpleRPG
 private void _logRegionCompleted(object sender, RegionCompletedEventArgs e)
 {
     Logs.Add(new EventLog(EventType.RegionCompleted, sender, e));
 }
コード例 #6
0
 public void ResetDecisionsAfterRegionCleared(object sender, RegionCompletedEventArgs e)
 {
     ResetDecisionsAfterRegionClearedCallback?.Invoke(sender, e);
 }
コード例 #7
0
 public void OnRegionCompleted(RegionCompletedEventArgs e)
 {
     RegionCompleted?.Invoke(this, e);
 }