public CityPanel(Main parent, City city, int _width, int _height) : base(_width, _height, "", 27, 11) // TODO: correct padding for max/min zoom { _main = parent; _thisCity = city; // Add DrawPanel from base control Controls.Add(DrawPanel); DrawPanel.BackgroundImage = Images.CityWallpaper; DrawPanel.Paint += DrawPanel_Paint; this.Paint += CityPanel_Paint; // Faces panel var _faces = new DoubleBufferedPanel { Location = new Point(3, 2), Size = new Size(433, 44), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_faces); _faces.Paint += Faces_Paint; // Resource map panel _resourceMap = new DoubleBufferedPanel { Location = new Point(3, 61), Size = new Size(196, 145), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_resourceMap); _resourceMap.Paint += ResourceMap_Paint; // City resources panel _cityResources = new DoubleBufferedPanel { Location = new Point(205, 61), Size = new Size(226, 151), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_cityResources); _cityResources.Paint += CityResources_Paint; // Units from city panel _unitsFromCity = new DoubleBufferedPanel { Location = new Point(7, 216), Size = new Size(181, 69), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_unitsFromCity); _unitsFromCity.Paint += UnitsFromCity_Paint; // Units in city panel _unitsInCity = new DoubleBufferedPanel { Location = new Point(193, 212), Size = new Size(242, 206), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_unitsInCity); _unitsInCity.Paint += UnitsInCity_Paint; // Food storage panel _foodStorage = new DoubleBufferedPanel { Location = new Point(437, 15), Size = new Size(195, 146), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_foodStorage); _foodStorage.Paint += FoodStorage_Paint; // Production panel _productionPanel = new DoubleBufferedPanel { Location = new Point(437, 165), Size = new Size(195, 191), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_productionPanel); _productionPanel.Paint += ProductionPanel_Paint; // Buy button var _buyButton = new Civ2button { Location = new Point(5, 16), Size = new Size(68, 24), Font = new Font("Arial", 9), Text = "Buy" }; _productionPanel.Controls.Add(_buyButton); _buyButton.Click += BuyButton_Click; // Change button var _changeButton = new Civ2button { Location = new Point(120, 16), Size = new Size(68, 24), Font = new Font("Arial", 9), Text = "Change" }; _productionPanel.Controls.Add(_changeButton); _changeButton.Click += ChangeButton_Click; // Improvements list panel _improvListPanel = new DoubleBufferedPanel() { Location = new Point(6, 306), Size = new Size(166, 108), BackColor = Color.Transparent }; DrawPanel.Controls.Add(_improvListPanel); _improvListPanel.Paint += ImprovementsList_Paint; // Improvements vertical scrollbar _improvementsBar = new VScrollBar() { Location = new Point(174, 291), Size = new Size(17, 128), Maximum = 66 - 9 + 9 // Max improvements=66, 9 can be shown, because of slider size it's 9 elements smaller }; DrawPanel.Controls.Add(_improvementsBar); _improvementsBar.ValueChanged += ImprovementsBarValueChanged; // Info button var _infoButton = new Civ2button { Location = new Point(461, 364), // norm=(461,364), big=(692,549) Size = new Size(57, 24), // norm=(57,24), big=(86,36) Font = new Font("Arial", 9), Text = "Info" }; DrawPanel.Controls.Add(_infoButton); _infoButton.Click += InfoButton_Click; // Map button var _mapButton = new Civ2button { Location = new Point(_infoButton.Location.X + 58, _infoButton.Location.Y), Size = new Size(57, 24), // norm=(57,24), big=(86,36) Font = new Font("Arial", 9), Text = "Map" }; DrawPanel.Controls.Add(_mapButton); _mapButton.Click += MapButton_Click; // Rename button var _renameButton = new Civ2button { Location = new Point(_infoButton.Location.X + 116, _infoButton.Location.Y), Size = new Size(57, 24), // norm=(57,24), big=(86,36) Font = new Font("Arial", 9), Text = "Rename" }; DrawPanel.Controls.Add(_renameButton); _renameButton.Click += RenameButton_Click; // Happy button var _happyButton = new Civ2button { Location = new Point(_infoButton.Location.X, _infoButton.Location.Y + 25), Size = new Size(57, 24), // norm=(57,24), big=(86,36) Font = new Font("Arial", 9), Text = "Happy" }; DrawPanel.Controls.Add(_happyButton); _happyButton.Click += HappyButton_Click; // View button var _viewButton = new Civ2button { Location = new Point(_infoButton.Location.X + 58, _infoButton.Location.Y + 25), Size = new Size(57, 24), // norm=(57,24), big=(86,36) Font = new Font("Arial", 9), Text = "View" }; DrawPanel.Controls.Add(_viewButton); _viewButton.Click += ViewButton_Click; // Exit button var _exitButton = new Civ2button { Location = new Point(_infoButton.Location.X + 116, _infoButton.Location.Y + 25), Size = new Size(57, 24), // norm=(57,24), big=(86,36) Font = new Font("Arial", 9), Text = "Exit" }; DrawPanel.Controls.Add(_exitButton); _exitButton.Click += ExitButton_Click; // Next city (UP) button var _nextCityButton = new NoSelectButton { Location = new Point(440, 364), // norm=(440,364), big=(660,550) Size = new Size(21, 24), // norm=(21,24), big=(32,36) BackColor = Color.FromArgb(107, 107, 107) }; _nextCityButton.FlatStyle = FlatStyle.Flat; DrawPanel.Controls.Add(_nextCityButton); _nextCityButton.Click += NextCityButton_Click; _nextCityButton.Paint += NextCityButton_Paint; // Previous city (DOWN) button var _prevCityButton = new NoSelectButton { Location = new Point(440, 389), // norm=(440,389), big=(660,550) Size = new Size(21, 24), // norm=(21,24), big=(32,36) BackColor = Color.FromArgb(107, 107, 107) }; _prevCityButton.FlatStyle = FlatStyle.Flat; DrawPanel.Controls.Add(_prevCityButton); _prevCityButton.Click += PrevCityButton_Click; _prevCityButton.Paint += PrevCityButton_Paint; }
public MapPanel(Main parent, int _width, int _height) : base(_width, _height, "", 38, 10) { _main = parent; Paint += MapPanel_Paint; Game.OnWaitAtTurnEnd += InitiateWaitAtTurnEnd; Game.OnUnitEvent += UnitEventHappened; Game.OnPlayerEvent += PlayerEventHappened; _MinimapPanel.OnMapEvent += MapEventHappened; StatusPanel.OnMapEvent += MapEventHappened; Main.OnMapEvent += MapEventHappened; Main.OnCheckIfCityCanBeViewed += CheckIfCityCanBeViewed; var ZoomINButton = new NoSelectButton { Location = new Point(11, 9), Size = new Size(23, 23), FlatStyle = FlatStyle.Flat, BackgroundImage = Images.ZoomIN.Resize(4) }; ZoomINButton.FlatAppearance.BorderSize = 0; Controls.Add(ZoomINButton); ZoomINButton.Click += ZoomINclicked; var ZoomOUTButton = new NoSelectButton { Location = new Point(36, 9), Size = new Size(23, 23), FlatStyle = FlatStyle.Flat, BackgroundImage = Images.ZoomOUT.Resize(4), }; ZoomOUTButton.FlatAppearance.BorderSize = 0; Controls.Add(ZoomOUTButton); ZoomOUTButton.Click += ZoomOUTclicked; // Add DrawPanel from base control Controls.Add(DrawPanel); DrawPanel.BackgroundImage = null; DrawPanel.BackColor = Color.Black; DrawPanel.Paint += DrawPanel_Paint; DrawPanel.MouseClick += DrawPanel_MouseClick; // Center the map view and draw map AnimType = AnimationType.UpdateMap; activeOffsetXY = new int[] { 0, 0 }; // Just initialize MapViewChange(Game.StartingClickedXY); if (_main.ViewPieceMode) { AnimType = AnimationType.ViewPiece; } else { AnimType = AnimationType.UnitWaiting; } // Timer for waiting unit/ viewing piece animationTimer = new System.Windows.Forms.Timer(); animationTimer.Tick += Animation_Tick; StartAnimation(AnimType); }