Bank Tycoon Helper

permet simplement d'ajouter des informations sur des pages du site BankTycoon (Statistiques et aide à la prise de décisions)

// ==UserScript==
// @name         Bank Tycoon Helper
// @version      1.01
// @description  permet simplement d'ajouter des informations sur des pages du site BankTycoon (Statistiques et aide à la prise de décisions)
// @author       Nashway
// @match        http://banktycoon.com/s3/regions/pays-*
// @match        http://banktycoon.com/s3/employes/recruter
// @grant        none
// @namespace https://greasyfork.org/users/19212
// ==/UserScript==



(function () {
    
    if(window.location.href === 'http://banktycoon.com/s3/employes/recruter'){
       
        var tab_sal = document.getElementsByClassName('tab-content');
        tab_sal = tab_sal[0];
        var salaires = '';
        
        for(var i = 0; i< tab_sal.childNodes.length ; i++){
            
            if(tab_sal.childNodes[i].className==='row'){
                
                var row = tab_sal.childNodes[i];
                row = row.firstElementChild;
                
                while(row){
                    
                      var soustab = row;
                      var box = soustab.firstElementChild; box = box.firstElementChild;
                      var child = box.firstElementChild;

                      while(child){

                          if(child.tagName === 'UL'){

                              var ul = child;                      
                              var li = ul.firstElementChild;

                              for(var o = 0; o < li.childNodes.length; o++){

                                  if(li.childNodes[o].nodeType === 1 && li.childNodes[o].tagName === "A"){
                                      
                                      salaires += parseInt(li.childNodes[o].innerHTML,10);
                                      if(o<li.childNodes.length-1){
                                          salaires += ',';
                                      }
                                  }
                              }

                          }
                          
                          child = child.nextElementSibling;
                      }
                    
                    row = row.nextElementSibling;
                    
                    }
                }
            }
        
        localStorage.setItem("salaires", salaires);

    } else {
    
    
        var donnees = new Array();
        var onglets = document.getElementById('myTabs');
        var tab_employe = document.getElementById('employes');

        // On vérfie que l'on possède les données.
        var donnees_salaires = localStorage.getItem("salaires");
        donnees_salaires = donnees_salaires.split(/,/);

        if(donnees_salaires === null){

            var div = document.createElement('div');
            div.innerHTML = '== Script BankTycoon Info ==<br><strong> Veuillez visiter la page des salaires dans un premier temps pour que nous puissions récupérer les valeurs de ces derniers.<br>'
            +               'Lien : <a href = "http://banktycoon.com/s3/employes/recruter">http://banktycoon.com/s3/employes/recruter</a><br></strong>'
            +               'Puis revenez sur cette page pour accéder à vos statistiques :)';
            onglets.insertBefore(div, onglets.firstChild);

        } else {



            // Pour chaque changement d'onglet, on vérifie lequel est affecté.
            onglets.addEventListener('click', function(e) {

                // Si on clique sur employé.
                if(e.target.href === 'http://banktycoon.com/s3/regions/pays-US#employes'){

                    setTimeout(function(){

                        // Navigation manuelle jusqu'aux données.
                        for(i = 0; i < tab_employe.childNodes.length; i++){

                            if(tab_employe.childNodes[i].className=='box box-solid'){
                                tab_employe = tab_employe.childNodes[i];
                                break;
                            }
                        }

                        for(i = 0; i < tab_employe.childNodes.length; i++){

                            if(tab_employe.childNodes[i].className=='box-body table-responsive no-padding'){
                                tab_employe = tab_employe.childNodes[i];
                                break;
                            }
                        }

                        tab_employe = tab_employe.firstElementChild;
                        tab_employe = tab_employe.firstElementChild;
                        tab_employe = tab_employe.firstElementChild;
                        tab_employe = tab_employe.nextElementSibling;
                        
                        
                        var nom, effectif, pourcentage;
                        while(tab_employe){
                            
                           nom = tab_employe.childNodes[1].innerText;
                           effectif = parseInt(tab_employe.childNodes[3].innerText,10);
                           pourcentage = tab_employe.childNodes[9].childNodes[0].innerText;
                           pourcentage = parseInt(pourcentage.replace(/%/, ''),10);
                            
                            donnees[nom] = {effectif, pourcentage};
                            
                            
                            tab_employe = tab_employe.nextElementSibling;
                        }


                        var content = document.createElement('div');
                        
                        content.innerHTML = '=== Script BankTycoon Info ===<br>'
                        +               '<strong> Voici la liste des employés à embaucher pour atteindre un rendement de 100 % : </strong><br>';
                        
                        var position = 0;
                        var salaires_effectifs = [donnees_salaires[0],donnees_salaires[1],donnees_salaires[2],donnees_salaires[3],donnees_salaires[4],donnees_salaires[6],donnees_salaires[9]];
                        var a_employer;
                        for(var profession in donnees){
                            
                            a_employer = (Math.ceil(donnees[profession]['effectif']*100/donnees[profession]['pourcentage'])-donnees[profession]['effectif']);
                                
                            content.innerHTML += ' - ' + profession + ' : Il vous faut en embaucher <strong>' + a_employer +
                                '</strong> pour un total de : <strong>' + (a_employer*salaires_effectifs[position]).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,') + ' € </strong><br>';
                                
                            position++;
                            
                        }
                        
                        
                        onglets.insertBefore(content, onglets.firstChild);
                        }, 500);




                }






            }, false);







        } 
    
    }
    
})();