briochemc

zircon pls

Sep 21st, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name          Borgen_tiles_script
  3. // @namespace     http://www.reddit.com/user/NewCompte
  4. // @description   ask Borgen and brioche
  5. // @include       http://*.koalabeast.com:*
  6. // @license       GPL
  7. // @author        NewCompte, modified by brioche
  8. // @version       1
  9. // ==/UserScript==
  10.  
  11. function myRotatingBallsScript() {
  12.     tagpro.ready(function(){
  13.         //This is important.
  14.         if(tagpro.events.drawPlayer)
  15.             return;
  16.        
  17.         // Test for oltp
  18.         var BorgenBallsInside = new Image();
  19.         BorgenBallsInside.src = "http://i.imgur.com/foW9vMF.png";
  20.         var BorgenBallsLighting = new Image();
  21.         BorgenBallsLighting.src = "http://i.imgur.com/TChUSRB.png";
  22.         var BorgenBallsBorders = new Image();
  23.         BorgenBallsBorders.src = "http://i.imgur.com/FQbe57J.png";
  24.         var madScientist = new Image();
  25.         madScientist.src = "http://i.imgur.com/tAIN8xx.png";
  26.        
  27.         // Borgen texture pack:
  28.         document.getElementById("tiles").src = "http://i.imgur.com/j9dgpUQ.png";
  29.         document.getElementById("splats").src = "http://i.imgur.com/3m8yX7z.png";
  30.         document.getElementById("speedpad").src = "http://i.imgur.com/q1Jylmv.png";
  31.         document.getElementById("speedpadred").src = "http://i.imgur.com/IoAJ7Tj.png";
  32.         document.getElementById("speedpadblue").src = "http://i.imgur.com/Ycxcudc.png";
  33.         document.getElementById("portal").src = "http://i.imgur.com/qDUaiqD.png";
  34.  
  35.         //Wait 1 second then redraw textures
  36.         setTimeout(tagpro.api.redrawBackground,1000);
  37.        
  38.         function componentToHex(c) {
  39.             var hex = c.toString(16);
  40.             return hex.length == 1 ? "0" + hex : hex;
  41.         }
  42.  
  43.         function rgbToHex(r, g, b) {
  44.             return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
  45.         }
  46.        
  47. /**
  48.  * HSV to RGB color conversion
  49.  *
  50.  * H runs from 0 to 360 degrees
  51.  * S and V run from 0 to 100
  52.  *
  53.  * Ported from the excellent java algorithm by Eugene Vishnevsky at:
  54.  * http://www.cs.rit.edu/~ncs/color/t_convert.html
  55.  */
  56. function hsvToRgb(h, s, v) {
  57.     var r, g, b;
  58.     var i;
  59.     var f, p, q, t;
  60.    
  61.     // Make sure our arguments stay in-range
  62.     h = Math.max(0, Math.min(360, h));
  63.     s = Math.max(0, Math.min(100, s));
  64.     v = Math.max(0, Math.min(100, v));
  65.    
  66.     // We accept saturation and value arguments from 0 to 100 because that's
  67.     // how Photoshop represents those values. Internally, however, the
  68.     // saturation and value are calculated from a range of 0 to 1. We make
  69.     // That conversion here.
  70.     s /= 100;
  71.     v /= 100;
  72.    
  73.     if(s == 0) {
  74.         // Achromatic (grey)
  75.         r = g = b = v;
  76.         return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
  77.     }
  78.    
  79.     h /= 60; // sector 0 to 5
  80.     i = Math.floor(h);
  81.     f = h - i; // factorial part of h
  82.     p = v * (1 - s);
  83.     q = v * (1 - s * f);
  84.     t = v * (1 - s * (1 - f));
  85.  
  86.     switch(i) {
  87.         case 0:
  88.             r = v;
  89.             g = t;
  90.             b = p;
  91.             break;
  92.            
  93.         case 1:
  94.             r = q;
  95.             g = v;
  96.             b = p;
  97.             break;
  98.            
  99.         case 2:
  100.             r = p;
  101.             g = v;
  102.             b = t;
  103.             break;
  104.            
  105.         case 3:
  106.             r = p;
  107.             g = q;
  108.             b = v;
  109.             break;
  110.            
  111.         case 4:
  112.             r = t;
  113.             g = p;
  114.             b = v;
  115.             break;
  116.            
  117.         default: // case 5:
  118.             r = v;
  119.             g = p;
  120.             b = q;
  121.     }
  122.    
  123.     return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
  124. }
  125.            
  126.         if (tagpro.events.drawPlayer) {return;}
  127.            
  128.         tagpro.events.register({
  129.             drawPlayer: function(player, context, drawPos, TILESIZE) {
  130.                
  131.                 // Draw rotating inside
  132.                 context.save();
  133.                 context.globalAlpha = 0.7; // Here is transparency
  134.                 context.translate(drawPos.x + (TILESIZE / 2) * (1 / tagpro.zoom), drawPos.y + (TILESIZE / 2) * (1 / tagpro.zoom));
  135.                 context.rotate(player.angle);
  136.                 context.translate(-drawPos.x - (TILESIZE / 2) * (1 / tagpro.zoom), -drawPos.y - (TILESIZE / 2) * (1 / tagpro.zoom));
  137.                 if (player.team == 1)
  138.                 context.drawImage(BorgenBallsInside, 40, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  139.                 if (player.team == 2)
  140.                 context.drawImage(BorgenBallsInside, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  141.                 context.restore();
  142.                
  143.                 // Draw muscle cup lighting
  144.                 context.save();
  145.                 context.globalAlpha = 0.7; // Here is transparency
  146.                 context.drawImage(BorgenBallsLighting, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  147.                 context.restore();
  148.                
  149.                 // Draw rotating border
  150.                 context.save();
  151.                 context.globalAlpha = 1; // Here is transparency
  152.                 context.translate(drawPos.x + (TILESIZE / 2) * (1 / tagpro.zoom), drawPos.y + (TILESIZE / 2) * (1 / tagpro.zoom));
  153.                 context.rotate(player.angle);
  154.                 context.translate(-drawPos.x - (TILESIZE / 2) * (1 / tagpro.zoom), -drawPos.y - (TILESIZE / 2) * (1 / tagpro.zoom));
  155.                 context.drawImage(BorgenBallsBorders, 40, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  156.                 context.restore();
  157.                
  158.                 // Draw madScientist
  159.                 context.save();
  160.                 context.translate(drawPos.x + (TILESIZE / 2) * (1 / tagpro.zoom), drawPos.y + (TILESIZE / 2) * (1 / tagpro.zoom));
  161.                 context.rotate(player.angle);
  162.                 context.translate(-drawPos.x - (TILESIZE / 2) * (1 / tagpro.zoom), -drawPos.y - (TILESIZE / 2) * (1 / tagpro.zoom));
  163.                 context.drawImage(madScientist, 0, 0, 120, 120, drawPos.x-40, drawPos.y-40, 120 / tagpro.zoom, 120 / tagpro.zoom);
  164.                 console.log(drawPos.x);
  165.                 context.restore();
  166.                
  167.                 // Draw pixel perfect rolling bomb
  168.                 if (player.bomb && Math.round(Math.random() * 4) == 1) {
  169.                     context.fillStyle = "rgba(255, 255, 0, .60)";
  170.                     context.beginPath();
  171.                     context.arc(drawPos.x + (TILESIZE / 2) * (1 / tagpro.zoom), drawPos.y + (TILESIZE / 2) * (1 / tagpro.zoom), 17  * (1 / tagpro.zoom), 0, Math.PI*2, true);
  172.                     context.closePath();
  173.                     context.fill();
  174.                 };
  175.  
  176.                 // Draw pixel perfect tagpro
  177.                 if (player.tagpro) {
  178.                     var curr = new Date();
  179.                     var tagpro360 = Math.round((new Date).getTime()/1000*360*3) % 360 ;
  180.                     var tagproRGB = hsvToRgb(tagpro360, 100, 100) ;
  181.                     var tagproHex = rgbToHex(tagproRGB[0],tagproRGB[1],tagproRGB[2]) ;
  182.                     context.strokeStyle = tagproHex ;
  183.                     var tagproString = tagproRGB.toString() ;
  184.                     context.fillStyle = "rgba(" + tagproString + ", .00)";
  185.                     context.lineWidth = 2 * (1 / tagpro.zoom);
  186.                     context.beginPath();
  187.                     context.arc(drawPos.x + (TILESIZE / 2) * (1 / tagpro.zoom), drawPos.y + (TILESIZE / 2) * (1 / tagpro.zoom), 16  * (1 / tagpro.zoom), 0, Math.PI*2, true);
  188.                     context.closePath();
  189.                     if (!player.bomb)
  190.                         context.fill();
  191.                     context.stroke();
  192.                 }
  193.  
  194.             }
  195.         });
  196.     });
  197. }
  198.  
  199. var source = "("+ myRotatingBallsScript + ")()";
  200. var script = document.createElement('script');
  201. script.setAttribute("type", "application/javascript");
  202. script.textContent = source;
  203.  
  204. document.body.appendChild(script);
Add Comment
Please, Sign In to add comment