public bool CreateRoadblock(RoadblockCreate model) { var entity = new Roadblock() { OwnerId = _ownerId, RoadblockName = model.RoadblockName, IsComplete = model.IsComplete, Plan = model.Plan, }; using (var ctx = new ApplicationDbContext()) { ctx.Roadblocks.Add(entity); return(ctx.SaveChanges() == 1); } }
// done internal void DecideWhereToPutRoadblock(GameState g, Roadblock roadblockCounter) { Logger.WriteToDebugLog("Deciding where to put Roadblock"); List<LocationDetail> map = g.GetMap(); LocationDetail firstLocationToBlock; do { firstLocationToBlock = map[new Random().Next(0, map.Count())]; } while (firstLocationToBlock.Type != LocationType.City && firstLocationToBlock.Type != LocationType.Town); List<LocationDetail> secondLocationToBlockCandidates = new List<LocationDetail>(); foreach (LocationDetail loc in firstLocationToBlock.ByRoad) { secondLocationToBlockCandidates.Add(loc); } foreach (LocationDetail loc in firstLocationToBlock.ByTrain) { secondLocationToBlockCandidates.Add(loc); } LocationDetail secondLocationToBlock = secondLocationToBlockCandidates[new Random().Next(0, secondLocationToBlockCandidates.Count())]; if (firstLocationToBlock.ByRoad.Contains(secondLocationToBlock)) { if (firstLocationToBlock.ByTrain.Contains(secondLocationToBlock)) { if (new Random().Next(0, 2) > 0) { roadblockCounter.connectionType = "road"; } else { roadblockCounter.connectionType = "rail"; } } else { roadblockCounter.connectionType = "road"; } } else { roadblockCounter.connectionType = "rail"; } roadblockCounter.firstLocation = firstLocationToBlock; roadblockCounter.secondLocation = secondLocationToBlock; Logger.WriteToDebugLog("Nothing is returned, but the Roadblock counter has been put on the " + roadblockCounter.connectionType + " between " + roadblockCounter.firstLocation + " and " + roadblockCounter.secondLocation); }
internal void PlayGoodLuck(int hunterIndex, UserInterface ui) { int response = ui.AskHunterDiscardAllyOrRoadblock(); switch (response) { case 1: EventDiscard.Add(DraculaAlly); DraculaAlly = null; DiscardEventFromHunterAtIndex("Good Luck", hunterIndex, ui); break; case 2: RoadblockCounter = new Roadblock(); DiscardEventFromHunterAtIndex("Good Luck", hunterIndex, ui); break; } }
internal void PlaceRoadBlockCounter(GameState g, Roadblock roadblockCounter) { logic.DecideWhereToPutRoadblock(g, roadblockCounter); }