public static long duelAbility(final PokemonId pokemonId,final PokemonMove move1,final PokemonMove move2,final int attackIV,final int defenseIV,final int staminaIV){
  final double duelAbility=PokemonCalculationUtils.gymOffense(pokemonId,move1,move2,attackIV) * PokemonCalculationUtils.tankiness(pokemonId,defenseIV,staminaIV);
  return Math.round(duelAbility);
}

public static long duelAbility ( final PokemonId pokemonId , final PokemonMove move1 , final PokemonMove move2 , final int attackIV , final int defenseIV , final int staminaIV ) { final double duelAbility = PokemonCalculationUtils . gymOffense ( pokemonId , move1 , move2 , attackIV ) * PokemonCalculationUtils . tankiness ( pokemonId , defenseIV , staminaIV ) ; return Math . round ( duelAbility ) ; }
duel ability is tankiness * gym offense . a reasonable measure if you don ' t often / ever dodge , as then you can only attack for as long as you can stay positive on hp .
