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); }
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); } }
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); }
public void ResetDecisionsAfterRegionCleared(object sender, RegionCompletedEventArgs e) { ResetGroupingChoice(e.CompletedRegion.AreaId); }
private void _logRegionCompleted(object sender, RegionCompletedEventArgs e) { Logs.Add(new EventLog(EventType.RegionCompleted, sender, e)); }
public void ResetDecisionsAfterRegionCleared(object sender, RegionCompletedEventArgs e) { ResetDecisionsAfterRegionClearedCallback?.Invoke(sender, e); }
public void OnRegionCompleted(RegionCompletedEventArgs e) { RegionCompleted?.Invoke(this, e); }