Opa Joyce, tudo bem?
Primeiramente gostaria de parabenizar seu código, gostei de como decidiu resumir seu código em constantes.
Para que o código funcione como desejado, analisaremos principalmente a função atualizaEstatisticas()
.
Nessa função, nota-se que está usando como parâmetros das suas condições um resumo de equações futuras (constantes), porém dessa forma não analisaremos na integra o valor atual utilizado e sim uma métrica de uma soma ou subtração.
if(operacao === "-"){
if(subtraiEstatistica >= 0){
Sendo assim, podemos utilizar do valor atual das nossas estatísticas por uma informação já usada anteriormente, o data attribute. Para isso podemos reutilizar o data-contador, criando e armazenando esse valor em uma constante:
const contador = document.querySelector('[data-contador]');
Além do uso dessa nova constante, precisamos refatorar as nossas condições, simplificando o sistema de modo que se adeque ao nosso contador. Para isso, primeiro substituiremos os valores que usamos como parâmetros de subtração e soma para o valor do contador. Além disso, modificaremos a nossa condição para verificar se o valor da variável "contador" é igual à string '0':
if (operacao === '-'){
if(contador.value === '0'){
}
}
Assim podemos definir que enquanto o valor permanecer em 0 não haverá mudanças, caso isso não seja verdade queremos subtrair os valores:
if(contador.value === '0'){
}else{
elemento.textContent = subtraiEstatistica;
}
Por fim, usamos caso um botão diferente do subtração seja apertado, podemos usar um else para indicar a soma :
if (operacao === '-'){
}else{
elemento.textContent = somaEstatistica
}
Prontinho! Assim conseguiremos evitar que os valores diminuam com a subtração mesmo com o valor 0. O nosso código completo vai ficar da seguinte maneira:
function atualizaEstatisticas(peca, operacao) {
const contador = document.querySelector('[data-contador]');
estatisticas.forEach( (elemento) => {
const estatisticaAtual = parseInt(elemento.textContent);
const somaEstatistica = estatisticaAtual + pecas[peca][elemento.dataset.estatistica];
const subtraiEstatistica = estatisticaAtual - pecas[peca][elemento.dataset.estatistica];
if (operacao === '-'){
if(contador.value === '0'){
}else{
elemento.textContent = subtraiEstatistica;
}
}else{
elemento.textContent = somaEstatistica
}
})
}
Se precisar de ajuda ou tiver alguma dúvida, estou à disposição, conte comigo!
Um bom dia e bons estudos
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓