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); }
private void SetTierFinishLevel(Setup.LevelInfoHolder info, ILevelBuilder builder) { builder .SetPlayer(player) .SetDescription("Tier finish level") .SetFinishedAction(TierFinishedAction) .SetContent(info); level = builder.Build(); }
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(); }
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); }