@Override protected int calcAttackValue(){
  int av=0;
  int range=RangeType.rangeBracket(nRange,wtype.getATRanges(),true,false);
  AmmoType atype=(AmmoType)ammo.getType();
  if (atype.getMunitionType() == AmmoType.M_HIGH_EXPLOSIVE) {
    if (range == WeaponType.RANGE_SHORT) {
      av=wtype.getRoundShortAV();
      av=av + (av / 2);
    }
  }
 else   if (atype.getMunitionType() == AmmoType.M_EXTENDED_RANGE) {
    if (range == WeaponType.RANGE_SHORT) {
      av=wtype.getRoundShortAV();
    }
 else     if (range == WeaponType.RANGE_MED) {
      av=wtype.getRoundMedAV();
    }
 else     if (range == WeaponType.RANGE_LONG) {
      av=wtype.getRoundLongAV();
    }
 else     if (range == WeaponType.RANGE_EXT) {
      av=wtype.getRoundLongAV();
    }
    av=av / 2;
  }
 else {
    if (range == WeaponType.RANGE_SHORT) {
      av=wtype.getRoundShortAV();
    }
 else     if (range == WeaponType.RANGE_MED) {
      av=wtype.getRoundMedAV();
    }
 else     if (range == WeaponType.RANGE_LONG) {
      av=wtype.getRoundLongAV();
    }
 else     if (range == WeaponType.RANGE_EXT) {
      av=wtype.getRoundExtAV();
    }
  }
  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 av;
}

@ Override protected int calcAttackValue ( ) { int av = 0 ; int range = RangeType . rangeBracket ( nRange , wtype . getATRanges ( ) , true , false ) ; AmmoType atype = ( AmmoType ) ammo . getType ( ) ; if ( atype . getMunitionType ( ) == AmmoType . M_HIGH_EXPLOSIVE ) { if ( range == WeaponType . RANGE_SHORT ) { av = wtype . getRoundShortAV ( ) ; av = av + ( av / 2 ) ; } } else if ( atype . getMunitionType ( ) == AmmoType . M_EXTENDED_RANGE ) { if ( range == WeaponType . RANGE_SHORT ) { av = wtype . getRoundShortAV ( ) ; } else if ( range == WeaponType . RANGE_MED ) { av = wtype . getRoundMedAV ( ) ; } else if ( range == WeaponType . RANGE_LONG ) { av = wtype . getRoundLongAV ( ) ; } else if ( range == WeaponType . RANGE_EXT ) { av = wtype . getRoundLongAV ( ) ; } av = av / 2 ; } else { if ( range == WeaponType . RANGE_SHORT ) { av = wtype . getRoundShortAV ( ) ; } else if ( range == WeaponType . RANGE_MED ) { av = wtype . getRoundMedAV ( ) ; } else if ( range == WeaponType . RANGE_LONG ) { av = wtype . getRoundLongAV ( ) ; } else if ( range == WeaponType . RANGE_EXT ) { av = wtype . getRoundExtAV ( ) ; } } 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 av ; }
calculate the attack value based on range
