public void onStatus(StatusEvent e) {
      final RobotStatus s = e.getStatus();

      others = peer.getOthers();
      energy = Math.max(1, (int) (s.getEnergy() + 0.5));
      robotX = (int) (s.getX() + 0.5);
      robotY = (int) (s.getY() + 0.5);
      heading = (int) (toDegrees(s.getHeading()) + 0.5);
      gunHeading = (int) (toDegrees(s.getGunHeading()) + 0.5);
      gunBearing =
          (int) (toDegrees(Utils.normalRelativeAngle(s.getGunHeading() - s.getHeading())) + 0.5);
      gunReady = (s.getGunHeat() <= 0);

      currentTurn = e.getTime();

      // Auto fire
      if (juniorFirePower > 0 && gunReady && (peer.getGunTurnRemaining() == 0)) {
        if (peer.setFire(juniorFirePower) != null) {
          gunReady = false;
          juniorFirePower = 0;
        }
      }

      // Reset event data
      scannedDistance = -1;
      scannedAngle = -1;
      scannedBearing = -1;
      scannedVelocity = -99;
      scannedHeading = -1;
      scannedEnergy = -1;
      hitByBulletAngle = -1;
      hitByBulletBearing = -1;
      hitRobotAngle = -1;
      hitRobotBearing = -1;
      hitWallAngle = -1;
      hitWallBearing = -1;
    }