Preciso de Ajuda

Sou iniciante e tem 2 dias que estou quebrando a cabeça para encontrar o problema, podem me ajudar fazendo favor?

O código é o seguinte: é digitado um nome e um valor em uma lista, no final quero calcular o valor de 20% de comissão sobre os todos os valores digitados da lista, eu não estou conseguindo retornar o valor total de comissão, o programa só esta calculando o valor do último numero digitado, vou colocar o código aqui:

package entidades;

import java.util.ArrayList;
import java.util.List;

public class Cliente extends Comissionamento {

List<Cliente> list = new ArrayList<>();

public String nomecliente;
public Double valor;

public Comissionamento comissionamento;

public Cliente() {
	super();
}

public Cliente(String nomecliente, Double valor) {

	this.nomecliente = nomecliente;
	this.valor = valor;
}

public String getNomecliente() {
	return nomecliente;
}

public void setNomecliente(String nomecliente) {
	this.nomecliente = nomecliente;
}

public Double getValor() {
	return valor;
}

public void setValor(Double valor) {
	this.valor = valor;
}

public Double valorComissaoTotal() {

	return valor * super.getValorcomissao() / 100;

}

}

package entidades;

public class Comissionamento {

private Integer valorcomissao = 20;

public Comissionamento() {
}

public Comissionamento(Integer valorcomissao) {
	this.valorcomissao = valorcomissao;
}

public Integer getValorcomissao() {
	return valorcomissao;
}

public void setValorcomissao(Integer valorcomissao) {
	this.valorcomissao = valorcomissao;
}

}

package program;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;

import entidades.Cliente;
import entidades.Comissionamento;

public class Programa {

public static void main(String[] args) {

	Comissionamento comissionamento = new Comissionamento();

	Locale.setDefault(Locale.US);
	List<Cliente> list = new ArrayList<>();
	Cliente cliente = new Cliente();

	Scanner sc = new Scanner(System.in);

	System.out.println("Digite a Quantidade de Clientes: ");
	int n = sc.nextInt();

	double soma = 0;
	for (int x = 0; x < n; x++) {
		System.out.println("Dados do Cliente");
		System.out.print("Cliente: ");
		sc.nextLine();
		String nomecliente = sc.nextLine();
		System.out.print("Valor do Contrato: ");
		Double valor = sc.nextDouble();
		cliente = new Cliente(nomecliente, valor);
		list.add(cliente);
		soma += cliente.getValor();

	}

	for (Cliente obj : list) {

		System.out.println("Cliente: " + cliente.getNomecliente() + " - " + " Valor: " + cliente.valor);
	}

	System.out.println("Total de Comissão: " + String.format("%.2f", cliente.valorComissaoTotal()));

}

}

Primeira coisa: coloque um título que explique, resumidamente, o problema. Todo mundo que posta aqui precisa de ajuda, fera. Logo, isso não diz nada.
Se está calculando apenas o último valor, certamente estão faltando variáveis. Uma para armazenar a soma de cada elemento lido na lista, com certeza não existe.