public void WillDestroyTheShip() { var scenario = new BattleScenario { Plain = new Plain { Xsize = 10, Ysize = 10 }, Battleships = new List <Battleships.StateManager.Models.Battleship> { new Battleships.StateManager.Models.Battleship { Start = new Position(5, 0), End = new Position(5, 9) } }, ShotPoints = new List <Position> { new Position(5, 0), new Position(5, 1), new Position(5, 2), new Position(5, 3), new Position(5, 4), new Position(5, 5), new Position(5, 6), new Position(5, 7), new Position(5, 8), new Position(5, 9), } }; var gameOrchestrator = new BattleOrchestrator(new BattleService()); var result = gameOrchestrator.Execute(scenario); Assert.False(result.IsError); Assert.True(result.HasLost); Assert.Equal(AttackResult.Hit, result.AttackResults.First()); }
static void Main(string[] args) { var scenario = new BattleScenario { Plain = new Plain { Xsize = 10, Ysize = 10 }, Battleships = new List <Battleships.StateManager.Models.Battleship> { new Battleships.StateManager.Models.Battleship { Start = new Position(5, 0), End = new Position(5, 9) } }, ShotPoints = new List <Position> { new Position(5, 0), new Position(5, 1), new Position(5, 2), new Position(5, 3), new Position(5, 4), new Position(5, 5), new Position(5, 6), new Position(5, 7), new Position(5, 8), new Position(5, 9), } }; var gameOrchestrator = new BattleOrchestrator(new BattleService()); var result = gameOrchestrator.Execute(scenario); System.Console.WriteLine($"Enemy has {(result.HasLost ? "Lost" : "Not Lost")}"); System.Console.ReadKey(); }
public IActionResult Waiting() { if (BattleOrchestrator.GetBattle(HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault()) != null) { return(RedirectToAction("Battle")); } return(View()); }
// GET: /BattleController/ public IActionResult Index() { if (!_loginManager.IsLoggedIn(HttpContext?.Session)) { return(RedirectToAction("Login", "Player")); } if (BattleOrchestrator.GetBattle(HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault()) != null) { return(RedirectToAction("Battle")); } if (BattleOrchestrator.IsNotFighting(HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault())) { return(View()); } return(RedirectToAction("Waiting")); }
public IActionResult FindBattle() { if (!_loginManager.IsLoggedIn(HttpContext?.Session)) { return(RedirectToAction("Login", "Player")); } var players = _repo.Read(); foreach (var player in players) //add characters to the players { player.Character = _charRepo.Read() .Where( c => c.OwningPlayerid.GetValueOrDefault() != null && c.OwningPlayerid.GetValueOrDefault() == player.Id).ToList(); } BattleOrchestrator.FindBattle(players, HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault()); return(RedirectToAction("Waiting")); }
public IActionResult Fight(int CharacterId) { BattleOrchestrator.Fight(CharacterId, HttpContext.Session.GetInt32(ContextData.PlayerId.ToString()).GetValueOrDefault()); return(RedirectToAction("Battle")); }