示例#1
0
        public ActionResult CreateShips([FromBody] CreateShips shipsInfo)
        {
            var shipSpecs = shipsInfo.Coordinates.Split(',', StringSplitOptions.TrimEntries);

            var ships = shipSpecs.Select(spec => _shipFactory.Create(spec));

            _gameService.BeginGame(ships);

            return(Ok());
        }
示例#2
0
    private void Awake()
    {
        var shipFactory = new ShipFactory(Instantiate(shipConfiguration));

        var shipBuilder = shipFactory.Create(shipPlayerConfiguration.ShipId.Id);

        shipBuilder.WithShipConfiguration(shipPlayerConfiguration)
        .WithTypeOfInput(TypeOfInput.TouchInput)
        .WithPrefabProjectile(shipPlayerConfiguration.ProjectileId);

        ship = shipBuilder.Build();
    }
示例#3
0
        public void Horizontal4ShipShouldGameOverAfter4Hits()
        {
            game.Setup();
            game.PlaceShip(factory.Create(4), 1, 0, Orientation.Horizontal);
            var status = CoordinateStatus.Unknown;

            Assert.False(game.IsOver());

            status = game.Hit(1, 0);
            Assert.Equal(CoordinateStatus.Hit, status);
            status = game.Hit(1, 1);
            Assert.Equal(CoordinateStatus.Hit, status);
            status = game.Hit(2, 3);
            Assert.Equal(CoordinateStatus.Missed, status);
            status = game.Hit(1, 2);
            Assert.Equal(CoordinateStatus.Hit, status);
            status = game.Hit(1, 3);
            Assert.Equal(CoordinateStatus.Hit, status);

            Assert.True(game.IsOver());
        }
示例#4
0
        protected override void Run(ETModel.Session session, M2C_CreateShips message)
        {
            ShipComponent unitComponent = ETModel.Game.Scene.GetComponent <ShipComponent>();

            foreach (ShipInfo unitInfo in message.Ships)
            {
                if (unitComponent.Get(unitInfo.ShipId) != null)
                {
                    continue;
                }
                Ship ship = ShipFactory.Create(unitInfo.ShipId);
                ship.Position = new Vector3(unitInfo.X, unitInfo.Y, unitInfo.Z);
            }
        }
示例#5
0
 private void SpawnShip(SpawnConfiguration configuration)
 {
     foreach (var shipConfigurationLocal in configuration.ShipToSpawnConfigurations)
     {
         var shipBuilder = factory.Create(shipConfigurationLocal.ShipId.Id)
                           .WithPosition(spawnLocation.position)
                           .WithRotation(spawnLocation.rotation)
                           .WithTypeOfInput(TypeOfInput.MachineInput)
                           .WithShipConfiguration(shipConfigurationLocal)
                           .WithPrefabProjectile(shipConfigurationLocal.ProjectileId)
                           .WithCurve(shipConfigurationLocal.Curve);
         var enemiShip = shipBuilder.Build();
     }
 }
示例#6
0
        public void PlaceShip(Player player, ShipType shipType, string startCoordinates, string endCoordinates)
        {
            Ship ship = _shipFactory.Create(shipType, startCoordinates, endCoordinates);

            player.Board.Ships.Add(ship);
        }