From d4e5705411baa59be6144871aa0f89d3c42be0b4 Mon Sep 17 00:00:00 2001 From: thaaoblues Date: Tue, 17 Dec 2024 21:16:55 +0100 Subject: [PATCH] bug fix et opti !!!! --- js/main.js | 141 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 98 insertions(+), 43 deletions(-) diff --git a/js/main.js b/js/main.js index a80ede7..4cf3e86 100644 --- a/js/main.js +++ b/js/main.js @@ -79,8 +79,7 @@ async function remplirMagasinTechnologies(){ // finalement, on lui débit son compte de points tel un vendeur de voitures score -= t.cout - const score_aff = document.getElementById("score_affichage") - score_aff.innerText="SCORE : " + score + majAffichageScore() // augmentation du boost d'incrément ouvrirAlerte("Incrémentation de la rentabilité de tes clicks de "+t.boost+" points !!") @@ -139,15 +138,11 @@ async function remplirMagasinCollegues(){ let collegues = data["collegues"] for(const key in collegues){ - // ne va pas s'embeter à proecess si on a deja acheté l'amelioration - if(!sacado[key] && !magasin_coll[key]){ - el = collegues[key] + // ne va pas s'embeter à proecess si déjà présent dans le magasin + // ou si le score d'évolution n'est pas assez élevé + const el = collegues[key] + if(!magasin_coll[key] && evolution_coll === parseInt(el.evolution)){ - // calcul du cout en fonction du nombre de collegue de ce type déjà acheté - - if(key in sacado){ - el.cout = Number(el.cout * (1.1)**sacado[key]).toFixed(1) - } const tr = document.createElement("tr") @@ -176,10 +171,16 @@ async function remplirMagasinCollegues(){ /* fonction qui va s'activer lorsqu'on achète l'objet*/ btn_acheter.addEventListener("click", (event) =>{ - - + + // calcul du cout en fonction du nombre de collegue de ce type déjà acheté + let exp = 0 + if(key in sacado){ + exp = sacado[key] + } + const cout_reel = Number(el.cout * (1.1)**exp).toFixed(1) + // ne laisse acheter que si on a l'argent - if(score >= c.cout){ + if(score >= cout_reel){ if(!(key in sacado)){ @@ -203,7 +204,7 @@ async function remplirMagasinCollegues(){ ouvrirAlerte("Vous avez débloqué "+ c.nom+" !!"+collegues[key]["narration"]) ouvrirAlerte("Incrémentation de la rentabilité passive de "+c.revenu_passif+" points !!") - }, (6000)); + }, (4000)); // on ajoute l'amélioration dans l'abre des compétences débloquées sacado[key] = 1 @@ -220,9 +221,11 @@ async function remplirMagasinCollegues(){ revenu_passif += c.revenu_passif // finalement, on lui débit son compte de points tel un vendeur de voitures - score -= c.cout - const score_aff = document.getElementById("score_affichage") - score_aff.innerText="SCORE : " + score + console.log(cout_reel) + console.log(score) + console.log(score-cout_reel) + score = score - cout_reel + majAffichageScore() // on change le futur cout dans le tableau document.getElementById("case_cout_"+key).innerText = Number(c.cout * (1.1)**sacado[key]).toFixed(1) @@ -238,23 +241,21 @@ async function remplirMagasinCollegues(){ btn_acheter.innerText = "Acheter" - // n'afficher l'amélioration que si le score est assez élevé - if(evolution_coll === parseInt(c.props.evolution)){ - // met à jour le contenu du magasin - // pour ne pas re-afficher cette ligne et éviter un clignotement - magasin_coll[key] = true + // met à jour le contenu du magasin + // pour ne pas re-afficher cette ligne et éviter un clignotement + magasin_coll[key] = true - action.appendChild(btn_acheter) - - - tr.appendChild(case_nom) - tr.appendChild(case_boost) - tr.appendChild(case_cout) - tr.appendChild(case_wiki) - tr.appendChild(action) - - table.appendChild(tr) - } + action.appendChild(btn_acheter) + + + tr.appendChild(case_nom) + tr.appendChild(case_boost) + tr.appendChild(case_cout) + tr.appendChild(case_wiki) + tr.appendChild(action) + + table.appendChild(tr) + } @@ -262,13 +263,17 @@ async function remplirMagasinCollegues(){ } +function majAffichageScore(){ + const score_aff = document.getElementById("score_affichage") + score = Number((score).toFixed(1)) + score_aff.textContent ="SCORE : " + rendreNombreLisible(score) + +} // fonction appelée à chaque clic de souris function scoreCount(){ - const score_aff = document.getElementById("score_affichage") score += boost - score_aff.innerText="SCORE : " + Number(score).toFixed(1) - + majAffichageScore() // check refresh la table magasin pour afficher une amélioration si un palier est atteint remplirMagasinTechnologies() remplirMagasinCollegues() @@ -277,21 +282,16 @@ function scoreCount(){ // revenu passif à chaque seconde function augmenterScorePassivement(){ - const score_aff = document.getElementById("score_affichage") score += revenu_passif - console.log("nv score : ",score) - score_aff.innerText="SCORE : " + Number((score).toFixed(1)); - + majAffichageScore() setTimeout(() => { augmenterScorePassivement() }, 1000) } function leBoostDuProf(){ - const score_aff = document.getElementById("score_affichage") score += 10000000000000000 - console.log("nv score : ",score) - score_aff.innerText="SCORE : " + Number((score).toFixed(1)); + majAffichageScore() } @@ -334,4 +334,59 @@ function genererConfetti() { container.innerHTML = "" }, 10000); +} + + +function rendreNombreLisible(n){ + let ret = n + + if(n>=1000){ + const quantifiers = [ + "Millier", // 10^3 + "Million", // 10^6 + "Milliard", // 10^9 + "Billion", // 10^12 + "Billiard", // 10^15 + "Trillion", // 10^18 + "Trilliard", // 10^21 + "Quadrillion", // 10^24 + "Quadrilliard", // 10^27 + "Quintillion", // 10^30 + "Quintilliard", // 10^33 + "Sextillion", // 10^36 + "Sextilliard", // 10^39 + "Septillion", // 10^42 + "Septilliard", // 10^45 + "Octillion", // 10^48 + "Octilliard", // 10^51 + "Nonillion", // 10^54 + "Nonilliard", // 10^57 + "Décillion", // 10^60 + "Décilliard", // 10^63 + "Undécillion", // 10^66 + ]; + // on enlève la virgule et la partie decimal pour ne pas + // fausser la longueur du string + const rpz_string = Number(n).toFixed(0)+"" + // les qualificatifs étant par puissance de mille, + // compte la puissance de 10 mais divisée par 3 + const puiss_mil = Math.floor((rpz_string.length-1)/3) + + // ici, on ne garde que jusqu'à la centaine de l'unité choisie + // et on le met dans la variable de retour + ret = Math.floor( n/(10**(3*puiss_mil)) ) + + // enfin, on rajoute le quantificateur, avec un 's' si on est pas à l'unité + let q = " "+ quantifiers[puiss_mil -1] + if(ret != 1){ + q +='s' + } + + ret += q + + } + + return ret + + } \ No newline at end of file