Na verdade, existem 3 problemas que encontrei, e apenas 1 eu consegui resolver.
Quando terminei o curso, fiquei quebrando a cabeça para entender porque meu código estava dando errado. Comparei lado a lado o meu código com o gabarito, e estava tudo igualzinho, cheguei até a copiar e colar, e mesmo assim não estava dando certo. Precisei conversar por mais de uma hora com o chatGPT sobre alguns aspectos mais gerias ou mais específicos para chegar no erro, que era um erro na sintaxe do controle.forrEach
A função atualizaEstatistica(evento.target.dataset.controle) era o que estava dando erro, ele não conseguia definir um valor para o item "forca" graças a isso, o que caracterizava um erro na linha 55, que era o conteúdo da função atualizaEstatistica:
elemento.textContent = parseInt(elemento.textContent) + pecas[peca][elemento.dataset.estatistica]
Eu estava achando que o erro estava aqui, mas na verdade o problema era com o forEach, que puxa essa função mas que, devido ao erro de sintaxe, não conseguia realizar o processo da maneira correta. Fiz então uma alteração no argumento da função atualizaEstatistica, e ficou assim:
controle.forEach((elemento) => { elemento.addEventListener('click', (evento) => { manipulaDados(evento.target.textContent, evento.target.parentNode); atualizaEstatistica(evento.target.dataset.peca); }); });
ao invés de atualizaEstatistica(evento.target.dataset.controle); substituí a última palavra por "peca" e aí o meu código funcionou.
Entretanto, cheguei ao segundo erro, e esse não consegui resolver. quando clico no + para aumentar a quantidade de braços, blindagem, etc, ele aumenta normalmente; porém, quando tento diminuir apertando -, ele simplesmente continua somando. até tentei fazer uma alteração sugeriada pelo GPT colocando um (operacao === "+") depois do else, mas não fez diferença alguma. Segue o trecho de código com esa função:
function manipulaDados(operacao, controle) { const peca = controle.querySelector("[data-contador]");
if (operacao === "-") {
peca.value = parseInt(peca.value) - 1;
} else {
peca.value = parseInt(peca.value) + 1;
}
}
E, por último, percebi que no HTML temos um typo na palavra "buttom", até tentei ajustar esse erro no meu código fazer a alteração para button, mas isso só piorou a situação, então acabei deixando quieto.
Se puderem me dar uma luz com relação a como resolver esses problemas, eu agradeço! :D Segue meu código no GitHub: https://github.com/ArthurRodrigoM/Alura-Robotron-2000