@Override
  public int getBVMod(Entity unit) {
    if (CampaignMain.cm.getBooleanConfig("USEFLATGUNNERYLASERMODIFIER")) {
      CampaignData.mwlog.debugLog("Using Flat GL Mod");
      return getBVModFlat(unit);
    }
    double laserBV = 0;
    double gunneryLaserBVBaseMod =
        megamek.common.Crew.getBVSkillMultiplier(
            unit.getCrew().getGunnery() - 1, unit.getCrew().getPiloting());
    double originalLaserBV = 0;
    for (Mounted weapon : unit.getWeaponList()) {
      if (weapon.getType().hasFlag(WeaponType.F_ENERGY)) {
        laserBV += weapon.getType().getBV(unit);
        originalLaserBV += weapon.getType().getBV(unit);
      }
    }
    // This is adding the base BV of the weapon twice - once originally, and once here.
    // Need to back out the original cost so that it only gets added once.
    CampaignData.mwlog.debugLog("Laser BV: " + laserBV);
    CampaignData.mwlog.debugLog("Original Laser BV: " + originalLaserBV);
    CampaignData.mwlog.debugLog(
        "Mod: " + (int) ((laserBV * gunneryLaserBVBaseMod) - originalLaserBV));

    return (int) ((laserBV * gunneryLaserBVBaseMod) - originalLaserBV);
  }
  /**
   * Get the portrait for the given pilot.
   *
   * @return The <code>Image</code> of the pilot's portrait. This value will be <code>null</code> if
   *     no portrait was selected or if there was an error loading it.
   */
  public Image getPortrait(Crew pilot) {

    String category = pilot.getPortraitCategory();
    String file = pilot.getPortraitFileName();

    // Return a null if the player has selected no portrait file.
    if ((null == category) || (null == file) || (null == portraits)) {
      return null;
    }

    if (Crew.PORTRAIT_NONE.equals(file)) {
      file = "default.gif"; // $NON-NLS-1$
    }

    if (Crew.ROOT_PORTRAIT.equals(category)) {
      category = "";
    }

    // Try to get the player's portrait file.
    Image portrait = null;
    try {
      portrait = (Image) portraits.getItem(category, file);
      if (null == portrait) {
        // the image could not be found so switch to default one
        category = "";
        file = "default.gif";
        portrait = (Image) portraits.getItem(category, file);
      }
      // make sure no images are longer than 72 pixels
      if (null != portrait) {
        portrait = portrait.getScaledInstance(-1, 72, Image.SCALE_DEFAULT);
      }
    } catch (Exception err) {
      err.printStackTrace();
    }
    return portrait;
  }