public Level(Game game) { LoadAssets(); ConfigureEntities(); UnitBalance = 1200; // default Health = 100; WaveNumber = 0; CurrentState = WaveState.None; //_enemyPool = new EntityPool(1000); _scanlines = new ScanlineShader(new Vector2u((uint)Game.Size.X, (uint)Game.Size.Y)); _renderTex = new RenderTexture((uint)Game.Size.X, (uint)Game.Size.Y, true); var tileSize = _texTileBasic.Size.X * SpriteScalar; _game = game; _overlayInfo = new InfoOverlay(_game, this); _overlayLevel = new LevelOverlay(this, SpriteScalar, tileSize); _overlayLevel.SetSelectionState(_texTileRoad, 128); Camera = new View(new Vector2f(Game.Size.X / 2, Game.Size.Y / 2), Game.Size); _tileMap = new TileMap(this, _texTileBasic, tilesX, tilesY, tileSize); _towerMap = new GridLayer <TowerEntity>(tilesX, tilesY, tileSize); _pathfinding = new AStar <Tile>(HeuristicMethod.Manhatten); //Path = _pathfinding.CalculatePath(_tileMap.StartTile, _tileMap.EndTile, _tileMap).ToList<Tile>(); //game.MouseButtonPressed += (sender, e) => { Camera.Move(new Vector2f(-10f, -10f)); }; _enemyPool = new EntityPool <EnemyEntity>(1000); UpdateInfo(); }
public MapRenderable2D(LogicalMap2D logicalMap, ITexture tileset, IGameFactory factory) { if (tileset == null) { throw new ArgumentNullException(nameof(tileset)); } if (factory == null) { throw new ArgumentNullException(nameof(factory)); } _logicalMap = logicalMap ?? throw new ArgumentNullException(nameof(logicalMap)); var subImage = tileset.Regions[0]; TileSize = subImage.Size; _underlay = AttachChild(factory.CreateMapLayer( logicalMap, tileset, logicalMap.GetUnderlay, DrawLayer.Underlay, IconChangeType.Underlay)); _overlay = AttachChild(factory.CreateMapLayer(logicalMap, tileset, logicalMap.GetOverlay, DrawLayer.Overlay, IconChangeType.Overlay)); _info = AttachChild(new InfoOverlay(logicalMap)); var tileSize = tileset.Regions[0].Size; _annotations = AttachChild(new MapAnnotationLayer(logicalMap, tileSize)); On <ToggleUnderlayEvent>(e => _underlay.IsActive = !_underlay.IsActive); On <ToggleOverlayEvent>(e => _overlay.IsActive = !_overlay.IsActive); }