Пример #1
0
        public Game(
            // Game objects:
            IGameState gameState,
            IMap map,
            IToolset toolset,
            // Processors:
            IDrawMapProcessor drawMapProcessor,
            IDrawToolsetProcessor drawToolsetProcessor,
            ITaskProcessor taskProcessor,
            // Settings:
            IDrawSettings drawSettings,
            IEntityFactory entityFactory,

            ILevelBuilder levelBuilder)
        {
            #region Arguments Validation

            Condition.Requires(gameState, nameof(gameState)).IsNotNull();
            Condition.Requires(map, nameof(map)).IsNotNull();
            Condition.Requires(toolset, nameof(toolset)).IsNotNull();

            Condition.Requires(drawMapProcessor, nameof(drawMapProcessor)).IsNotNull();
            Condition.Requires(drawToolsetProcessor, nameof(drawToolsetProcessor)).IsNotNull();
            Condition.Requires(taskProcessor, nameof(taskProcessor)).IsNotNull();

            Condition.Requires(drawSettings, nameof(drawSettings)).IsNotNull();
            Condition.Requires(entityFactory, nameof(entityFactory)).IsNotNull();

            Condition.Requires(levelBuilder, nameof(levelBuilder)).IsNotNull();

            #endregion Arguments Validation

            this._levelBuilder = levelBuilder;
            this._state        = gameState;
            this._map          = map;
            this._toolset      = toolset;

            this._drawMapProcessor     = drawMapProcessor;
            this._drawToolsetProcessor = drawToolsetProcessor;
            this._taskProcessor        = taskProcessor;

            this._gameProcessorsBasket = new GameProcessorsBasket(
                this._state,
                this._map,
                this._toolset);

            this.MapLeftButtonMouseController = new MapLeftButtonMouseController(
                drawSettings,
                entityFactory,
                this._map,
                this._taskProcessor,
                this._toolset);

            this.MapRightButtonMouseController = new MapRightButtonMouseController(
                this._toolset);

            this.ToolsLeftButtonMouseController = new ToolsLeftButtonMouseController(
                drawSettings,
                this._toolset);
        }
Пример #2
0
 private void SetTierFinishLevel(Setup.LevelInfoHolder info, ILevelBuilder builder)
 {
     builder
     .SetPlayer(player)
     .SetDescription("Tier finish level")
     .SetFinishedAction(TierFinishedAction)
     .SetContent(info);
     level = builder.Build();
 }
Пример #3
0
        private void LoadNextLevel(Setup.LevelInfoHolder info)
        {
            ILevelBuilder builder = null;

            if (info.type == LevelType.Classic)
            {
                string pathing = System.IO.Directory.GetCurrentDirectory();
                var    lvlInfo = Setup.LevelReader.ReadLevel(pathing + @"\LevelFile.txt", info.type);
                lvlInfo.id         = info.id;
                lvlInfo.tier       = info.tier;
                lvlInfo.type       = info.type;
                lvlInfo.difficulty = info.difficulty;
                builder            = new ClassicLevelBuilder();
                SetLevel(lvlInfo, builder);
            }
            else if (info.type == LevelType.Event)
            {
                string pathing = System.IO.Directory.GetCurrentDirectory();
                builder = new Event.EventLevelBuilder();
                var lvlInfo = Setup.LevelReader.ReadLevel(pathing + @"\LevelFile.txt", info.type);
                lvlInfo.id = info.id;
                SetLevel(lvlInfo, builder);
            }
            else
            {
                if (info.type == LevelType.Meteor)
                {
                    builder = new Meteor.MeteorLevelBuilder();
                }
                else if (info.type == LevelType.Shop)
                {
                    builder = new GroceryLevelBuilder();
                }
                else if (info.type == LevelType.Boss)
                {
                    builder = new BossLevelBuilder();
                }
                SetLevel(info, builder);
            }
            level.Begin();
        }
Пример #4
0
        private void LoadNextLevel()
        {
            switch(currentLevel)
            {
                case 1:
                builder = new Level1Builder();
                break;
                case 2:
                builder = new Level2Builder();
                break;
                case 3:
                builder = new Level3Builder();
                break;
                case 4:
                builder = new Level4Builder();
                break;
            }

            builder.BuildLevel(this);
        }