private void GameSceneClick(object s, GameSceneZoneEventArgs e) { if (e.Button == MouseButtons.Left) // Левый клик { if (ButtonsSelector.IsSelected()) // Выбрано здание { if (_game.IsCellFree(e.HoverCellX, e.HoverCellY)) // есть здание { _game.Build(e.HoverCellX, e.HoverCellY, ButtonsSelector.ButtonName); ButtonsSelector.Deselect(); } else { MessageBox.Show("Здесь нельзя строить"); } } else // Наводим пустой курсор { if (_game.IsCellFree(e.HoverCellX, e.HoverCellY) == false) // есть здание { CellSelector.Select(e.HoverCellX, e.HoverCellY); } else { CellSelector.Deselect(); } } } if (e.Button == MouseButtons.Right) // Правый клик { CellSelector.Deselect(); } }
private Button ButtonsInitialization(Timer timer, String capture, int x, int y) { const int buttonSize = 100; Building buttonBuilding = new Building(capture); const int buildingIndent = (buttonSize - CellPainter.CellSize) / 2 + 2; Button.Draw drawNormal = (buttonX, buttonY, width, height) => { var color = CellPainter.NormalCellColor; MainForm.G.FillRectangle(new SolidBrush(color), buttonX - 1, buttonY - 1, width + 2, height + 2); BuildingPainter.Draw(buttonBuilding, buttonX + buildingIndent, buttonY + buildingIndent); }; Button.Draw drawHover = (buttonX, buttonY, width, height) => { var color = CellPainter.HoverCellColor; MainForm.G.FillRectangle(new SolidBrush(color), buttonX, buttonY, width, height); BuildingPainter.Draw(buttonBuilding, buttonX + buildingIndent, buttonY + buildingIndent); }; Button.Draw drawActive = (buttonX, buttonY, width, height) => { var color = CellPainter.GreenColor; MainForm.G.FillRectangle(new SolidBrush(color), buttonX, buttonY, width, height); BuildingPainter.Draw(buttonBuilding, buttonX + buildingIndent, buttonY + buildingIndent); }; var button = new Button(_mainForm, timer, X + x, Y + y, buttonSize, buttonSize, drawNormal, drawHover, drawActive); button.Click += (s, e) => { CellSelector.Deselect(); ButtonsSelector.Select(capture); }; _mainForm.MouseClick += (s, e) => { if (e.Button == MouseButtons.Right) { ButtonsSelector.Deselect(); } }; ButtonsSelector.Deselected += () => { button.Deactivate(); }; ButtonsSelector.Selected += (buttonName) => { if (capture != buttonName) { button.Deactivate(); } }; return(button); }