@Override protected int calcAttackValue(){
  double av=0;
  int range=RangeType.rangeBracket(nRange,wtype.getATRanges(),true,false);
  for (  int wId : weapon.getBayWeapons()) {
    Mounted m=ae.getEquipment(wId);
    if (!m.isBreached() && !m.isDestroyed() && !m.isJammed()) {
      WeaponType bayWType=((WeaponType)m.getType());
      if (range == WeaponType.RANGE_SHORT) {
        av=av + bayWType.getShortAV();
      }
 else       if (range == WeaponType.RANGE_MED) {
        av=av + bayWType.getMedAV();
      }
 else       if (range == WeaponType.RANGE_LONG) {
        av=av + bayWType.getLongAV();
      }
 else       if (range == WeaponType.RANGE_EXT) {
        av=av + bayWType.getExtAV();
      }
    }
  }
  if (bDirect) {
    av=Math.min(av + (toHit.getMoS() / 3),av * 2);
  }
  if (bGlancing) {
    av=(int)Math.floor(av / 2.0);
  }
  av=(int)Math.floor(getBracketingMultiplier() * av);
  return (int)Math.ceil(av);
}

@ Override protected int calcAttackValue ( ) { double av = 0 ; int range = RangeType . rangeBracket ( nRange , wtype . getATRanges ( ) , true , false ) ; for ( int wId : weapon . getBayWeapons ( ) ) { Mounted m = ae . getEquipment ( wId ) ; if ( ! m . isBreached ( ) && ! m . isDestroyed ( ) && ! m . isJammed ( ) ) { WeaponType bayWType = ( ( WeaponType ) m . getType ( ) ) ; if ( range == WeaponType . RANGE_SHORT ) { av = av + bayWType . getShortAV ( ) ; } else if ( range == WeaponType . RANGE_MED ) { av = av + bayWType . getMedAV ( ) ; } else if ( range == WeaponType . RANGE_LONG ) { av = av + bayWType . getLongAV ( ) ; } else if ( range == WeaponType . RANGE_EXT ) { av = av + bayWType . getExtAV ( ) ; } } } if ( bDirect ) { av = Math . min ( av + ( toHit . getMoS ( ) / 3 ) , av * 2 ) ; } if ( bGlancing ) { av = ( int ) Math . floor ( av / 2.0 ) ; } av = ( int ) Math . floor ( getBracketingMultiplier ( ) * av ) ; return ( int ) Math . ceil ( av ) ; }
calculate the attack value based on range
