/// <summary> /// Handles the typing in the control. /// </summary> /// <param name="e"></param> protected override void OnKeyDown(KeyEventArgs e) { ClientApplication client = ClientApplication.Instance; GameRoot root = client.ServerInstance; if (e.KeyCode == Keys.Space) { if (root.ActiveCountry.NotifyEndOfTurn) { root.ActivateNextCountry(); } else { root.ActivateNextUnit(); } return; } Unit unit = root.ActiveUnit; if (unit == null) { return; } Point newCoordinates = Point.Empty; switch (e.KeyCode) { case Keys.NumPad3: newCoordinates = new Point(unit.Coordinates.X + 1, unit.Coordinates.Y + 1); break; case Keys.NumPad7: newCoordinates = new Point(unit.Coordinates.X - 1, unit.Coordinates.Y - 1); break; case Keys.NumPad1: newCoordinates = new Point(unit.Coordinates.X - 1, unit.Coordinates.Y + 1); break; case Keys.NumPad9: newCoordinates = new Point(unit.Coordinates.X + 1, unit.Coordinates.Y - 1); break; case Keys.NumPad4: newCoordinates = new Point(unit.Coordinates.X - 1, unit.Coordinates.Y); break; case Keys.NumPad6: newCoordinates = new Point(unit.Coordinates.X + 1, unit.Coordinates.Y); break; case Keys.NumPad2: newCoordinates = new Point(unit.Coordinates.X, unit.Coordinates.Y + 1); break; case Keys.NumPad8: newCoordinates = new Point(unit.Coordinates.X, unit.Coordinates.Y - 1); break; } if (newCoordinates == Point.Empty) { return; } unit.MoveTo(newCoordinates); Invalidate(); }