Os meus botões tem os limitadores de não poderem ir abaixo de zero ou além do 99. Porém o clique no botão continua contabilizando valor para as estatísticas. Alguem poderia me ajudar com alguma solução ?
const controle = document.querySelectorAll('[data-controle]');
const estatistica = document.querySelectorAll('[data-estatistica]');
const pecas = {
bracos: {
forca: 29,
poder: 35,
energia: -21,
velocidade: -5,
},
blindagem: {
forca: 41,
poder: 20,
energia: 0,
velocidade: -20,
},
nucleos: {
forca: 0,
poder: 7,
energia: 48,
velocidade: -24,
},
pernas: {
forca: 27,
poder: 21,
energia: -32,
velocidade: 42,
},
foguetes: {
forca: 0,
poder: 28,
energia: 0,
velocidade: -2,
},
};
controle.forEach(elemento => {
elemento.addEventListener('click', evento => {
manipulaDados(evento.target.dataset.controle, evento.target.parentNode);
atualizaEstatistica(
evento.target.dataset.peca,
evento.target.dataset.controle
);
});
});
function manipulaDados(operacao, controle) {
const peca = controle.querySelector('[data-contador]');
if (operacao === '-' && peca.value > 0) {
peca.value = parseInt(peca.value) - 1;
}
if (operacao === '+' && peca.value < 99) {
peca.value = parseInt(peca.value) + 1;
}
}
function atualizaEstatistica(peca, operacao) {
estatistica.forEach(elemento => {
if (operacao === '-') {
elemento.textContent =
parseInt(elemento.textContent) -
pecas[peca][elemento.dataset.estatistica];
} else {
elemento.textContent =
parseInt(elemento.textContent) +
pecas[peca][elemento.dataset.estatistica];
}
});
}