Esempio n. 1
0
        private void CreateAndSpawnPlayers(GameModePvEConfig gameMode, LevelStageConfig levelStageConfig,
                                           GameLevelGridModel levelGridModel)
        {
            var playerConfigs = gameMode.PlayerConfigs;
            var spawnCorners  = levelStageConfig.PlayersSpawnCorners;

            Assert.IsTrue(playerConfigs.Length <= spawnCorners.Length, "players count greater than the level spawn corners");

            var zip = spawnCorners.Zip(playerConfigs, (spawnCorner, playerConfig) => (spawnCorner, playerConfig));

            foreach (var(spawnCorner, playerConfig) in zip)
            {
                var playerInput = _inputService.RegisterPlayerInput(playerConfig);

                var player = _gameFactory.CreatePlayer(playerConfig, playerInput);
                Assert.IsNotNull(player);

                var position = levelGridModel.GetCornerWorldPosition(spawnCorner);

                var go = _gameFactory.SpawnEntity(playerConfig.HeroConfig, position);
                Assert.IsNotNull(go);

                var hero = (IHero)go.GetComponent <HeroController>();
                player.AttachHero(hero, playerInput);

                Game.LevelManager.AddPlayer(playerConfig.PlayerTagConfig, player);
            }
        }
Esempio n. 2
0
        static void Play(IGameFactory factory)
        {
            var attackItem  = factory.CreateAttackItem();
            var defenseItem = factory.CreateDefenseItem();
            var player      = factory.CreatePlayer(attackItem, defenseItem);

            player.Display();
            Console.WriteLine();
        }