コード例 #1
0
        public IGameWorld Build(IEnemiesFactory enemiesFactory)
        {
            #region "Build level"
            int count = RngProvider.Random.Next(10, 100);

            Console.WriteLine("Build Trees");
            for (int i = 0; i < count; i++)
            {
                this.AddGameObject(new Tree());
            }

            Console.WriteLine("Build Benchs");
            count = RngProvider.Random.Next(10, 100);
            for (int i = 0; i < count; i++)
            {
                this.AddGameObject(new Bench());
            }


            Console.WriteLine("Create enemies");
            count = 100;
            for (int i = 0; i < count; i++)
            {
                this.AddEnemy(enemiesFactory.Create());
            }

            #endregion

            return(new GameWorld()
            {
                Enemies = _enemies,
                Objects = _gameObjects
            });
        }
コード例 #2
0
        protected EnemySpawner(EnemyType handledType, IInstantiator instantiator, IEnemiesFactory enemiesFactory,
                               SignalBus signalBus)
        {
            this.enemiesFactory = enemiesFactory;
            this.instantiator   = instantiator;
            this.signalBus      = signalBus;
            this.handledType    = handledType;

            SubscribeToDestroySignal();
        }
コード例 #3
0
        static void Main(string[] args)
        {
            var levels = new List <IEnemiesFactory>()
            {
                new EasyLevelEnemiesFactory(),
                new MiddleLevelEnemiesFactory(),
                new HardLevelEnemiesFactory()
            };


            Console.WriteLine("Выберете уровень сложности и введите его номер:");

            for (int i = 0; i < levels.Count; i++)          // выведем все уровни сложности пользователю
            {
                Console.WriteLine($"{i + 1}. {levels[i]}"); // i+1 потому что нормальные люди считают с 1, а не с 0
            }

            int selectedLevel;
            var userEnteredValue = Console.ReadLine();

            var isSuccess = Int32.TryParse(userEnteredValue, out selectedLevel);

            if (!isSuccess)
            {
                Console.WriteLine("Critical error, all system crashed, pleaze reboooot ue pc");
                Console.ReadKey();
                return;
            }

            selectedLevel--;                                        // -1 потому что нормальные люди всё ещё считают с 1)))

            if (selectedLevel > -1 && selectedLevel < levels.Count) // проверяем находится ли число в пределах массива
            {
                IGame           game    = new Game();
                IEnemiesFactory factory = levels[selectedLevel];

                game.AddPlayer(new Player())
                .AddEnemyFactory(factory);

                game.Play();
            }
            else
            {
                Console.WriteLine("Недопустимое число");
            }

            Console.ReadKey();
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: RuslanPr0g/FactoryGame
        static void Main(string[] args)
        {
            var levels = new List <IEnemiesFactory>()
            {
                new EasyLevelEnemiesFactory(),
                new MiddleLevelEnemiesFactory(),
                new HardLevelEnemiesFactory()
            };

            Console.WriteLine("Select level: ");

            for (int i = 0; i < levels.Count; i++)
            {
                Console.WriteLine($"{i + 1}. {levels[i]}");
            }

            var userEnteredValue = Console.ReadLine();

            var isSuccess = Int32.TryParse(userEnteredValue, out int selectedLevel);

            if (!isSuccess)
            {
                Console.WriteLine("Critical error, all system crashed, pleaze reboooot ue pc");
                Console.ReadKey();
                return;
            }

            selectedLevel--;

            if (selectedLevel > -1 && selectedLevel < levels.Count)
            {
                IGame           game    = new Game();
                IEnemiesFactory factory = levels[selectedLevel];

                game.AddPlayer(new Player())
                .AddEnemyFactory(factory);

                game.Play();
            }
            else
            {
                Console.WriteLine("Wtf are you providing me?");
            }

            Console.ReadKey();
        }
コード例 #5
0
 public RegularEnemySpawner(IInstantiator instantiator, IEnemiesFactory enemiesFactory, SignalBus signalBus) :
     base(EnemyType.Regular, instantiator, enemiesFactory, signalBus)
 {
 }
コード例 #6
0
 public EliteEnemySpawner(IInstantiator instantiator, IEnemiesFactory enemiesFactory, SignalBus signalBus) :
     base(EnemyType.Elite, instantiator, enemiesFactory, signalBus)
 {
 }
コード例 #7
0
 public MotherShipSpawner(IInstantiator instantiator, IEnemiesFactory enemiesFactory, SignalBus signalBus) :
     base(EnemyType.MotherShip, instantiator, enemiesFactory, signalBus)
 {
 }
コード例 #8
0
ファイル: Game.cs プロジェクト: RuslanPr0g/FactoryGame
 public IGame AddEnemyFactory(IEnemiesFactory factory)
 {
     _factory = factory;
     return(this);
 }