Como o projeto final apenas somar os atributos adicionados de braços, pernas e etc, mas não subtrai, fiz a subtração utilizando a mesma lógica da função "manipulaDados"
const controle = document.querySelectorAll("[data-controle]"); const stats = 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" não é uma palavra reservada, mas sim uma variável elemento.onclick = (evento) => { manDados(evento.target.dataset.controle, evento.target.parentNode); atualizaStatus(evento.target.dataset.peca, evento.target.dataset.controle); } })
function manDados (operação, controle) { const peca = controle.querySelector("[data-contador]"); if(operação === "+"){ peca.value = parseInt(peca.value) + 1; }else { peca.value = parseInt(peca.value) - 1; } }
function atualizaStatus (x, y) { stats.forEach((estatistica) => { if(y === "+"){ estatistica.textContent = parseInt(estatistica.textContent) + pecas[x][estatistica.dataset.estatistica] }else { estatistica.textContent = parseInt(estatistica.textContent) - pecas[x][estatistica.dataset.estatistica] } }) }