Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name       Distribution capital "améliorée"
  3. // @version 0.1b
  4. // @author WhiteSlash
  5. // @match http://leekwars.com/*
  6. // @grant $
  7. // ==/UserScript==
  8.  
  9. var aInputsToSubmit = [];
  10. var aSelectors = ['#add-force', '#add-life', '#add-agility', '#add-wisdom'];
  11. var processQueue = false;
  12. var labelGo = "Repartir les points !";
  13. var labelStop = "STOP !!!";
  14.  
  15. function addInput(sSourceSelector){
  16.     sHtmlInput = $('<input class="custom-stat-input" data-linked-add="'+sSourceSelector+'" value="0" type="text" style="width:50px"/>');
  17.     $(sSourceSelector)./*hide().*/after(sHtmlInput).after($('<br>'));
  18.     aInputsToSubmit.push(sHtmlInput);
  19. }
  20.  
  21. function isAddable(sSelector){
  22.     return !$(sSelector).hasClass('locked') && $(sSelector).is(':visible');
  23. }
  24.  
  25. $(function(){
  26.     //Ajout des input et du champs "go"
  27.     for(var i=0; i < aSelectors.length ;i++){
  28.         if(isAddable(aSelectors[i])){
  29.             addInput(aSelectors[i]);
  30.         }
  31.     }
  32.     if(aInputsToSubmit.length){
  33.         //addInputEvents
  34.         for(var i = 0 ; i < aInputsToSubmit.length; i++){
  35.              addInputEvents(aInputsToSubmit[i]);
  36.         }
  37.         $('#capital').after('<div id="custom-stat-submit" class="button">'+labelGo+'</div>');
  38.         //addSubmitEvents
  39.         addSubmitEvents($('#custom-stat-submit'));
  40.     }
  41.    
  42.     setInterval(function(){
  43.         if(!processQueue)
  44.             return;
  45.         for(var i = 0 ; i < aInputsToSubmit.length; i++){
  46.             var valueBefore = 0;
  47.             if( (valueBefore = parseInt(aInputsToSubmit[i].val(),10)) != 0){
  48.                 $( aInputsToSubmit[i].attr('data-linked-add') ).click();
  49.                 aInputsToSubmit[i].val(valueBefore-1);
  50.                 return;
  51.             }
  52.         }
  53.         $('#custom-stat-submit').text(labelGo);
  54.         processQueue=false;
  55.     }, 100);
  56.    
  57. });//end dom ready
  58.  
  59. function getTotalCapitalAvailable(){
  60.     var total = parseInt( $('#capital-count').text(), 10);
  61.     //console.log('getTotalCapitalAvailable(): returns ' + total);
  62.     return total;
  63. }
  64.  
  65. function getCapitaAlreadyUsedButNotBy(target){
  66.     var totalUsed = 0;
  67.     for(var i = 0 ; i < aInputsToSubmit.length; i++){
  68.         if(target.attr('data-linked-add') != aInputsToSubmit[i].attr('data-linked-add')){
  69.             totalUsed += parseInt(aInputsToSubmit[i].val(), 10);
  70.         }
  71.     }
  72.     //console.log('getCapitaAlreadyUsedButNotBy(): returns ' + totalUsed);
  73.     return totalUsed;
  74. }
  75.  
  76. function addInputEvents(target){
  77.     target.bind('keyup', function(){
  78.         if($(this).val()=='')
  79.             return true;//on vient de tout effacer
  80.         var value = parseInt($(this).val(),10);
  81.         if(isNaN(value) || value < 0)
  82.             value=0;
  83.         if(value + getCapitaAlreadyUsedButNotBy($(this)) > getTotalCapitalAvailable() )
  84.             value =  getTotalCapitalAvailable() - getCapitaAlreadyUsedButNotBy($(this));
  85.         $(this).val(value);
  86.         return true;
  87.     });
  88. }
  89.  
  90. function addSubmitEvents(target){
  91.     target.click(function(){
  92.         if($(this).text() == labelGo){
  93.             processQueue = true;
  94.             $(this).text(labelStop);
  95.         }
  96.         else if($(this).text() == labelStop){
  97.             processQueue = false;
  98.             $(this).text(labelGo);
  99.         }
  100.     });
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement