briochemc

brioche texture v2

Sep 23rd, 2014
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name          brioche_textureLightV2
  3. // @namespace     http://www.reddit.com/user/briochemc
  4. // @description   brioche light v2
  5. // @include       http://*.koalabeast.com:*
  6. // @license       GPL
  7. // @author        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.     // Ball images  
  18.     var Border2 = new Image();
  19.     Border2.src = "http://i.imgur.com/8cFYAFx.png";
  20.     var Lighting2 = new Image();
  21.     Lighting2.src = "http://i.imgur.com/b9cMef6.png";
  22.     var redInside2 = new Image();
  23.     redInside2.src = "http://i.imgur.com/5PS7CBp.png";
  24.     var blueInside2 = new Image();
  25.     blueInside2.src = "http://i.imgur.com/keDBrp7.png";
  26.     var EyesAndMouthBlue = new Image();
  27.     EyesAndMouthBlue.src = "http://i.imgur.com/mgYgnyw.png";
  28.     var EyesAndMouthRed = new Image();
  29.     EyesAndMouthRed.src = "http://i.imgur.com/z5DlwGJ.png";
  30.      
  31.    
  32.     // texture pack images
  33.     document.getElementById("tiles").src = "http://i.imgur.com/jirnxIT.png";
  34.     document.getElementById("splats").src = "http://i.imgur.com/3m8yX7z.png";
  35.     document.getElementById("speedpad").src = "http://i.imgur.com/q1Jylmv.png";
  36.     document.getElementById("speedpadred").src = "http://i.imgur.com/IoAJ7Tj.png";
  37.     document.getElementById("speedpadblue").src = "http://i.imgur.com/Ycxcudc.png";
  38.     document.getElementById("portal").src = "http://i.imgur.com/qDUaiqD.png";
  39.  
  40.     //Wait 1 second then redraw textures
  41.     setTimeout(tagpro.api.redrawBackground,1000);
  42.    
  43.     // for follwoing function
  44.     function componentToHex(c) {
  45.       var hex = c.toString(16);
  46.       return hex.length == 1 ? "0" + hex : hex;
  47.     }
  48.    
  49.     // RGB to HEX function
  50.     function rgbToHex(r, g, b) {
  51.       return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
  52.     }
  53.    
  54.     // HSV to RGB function
  55.     function hsvToRgb(h, s, v) {
  56.       var r, g, b;
  57.       var i;
  58.       var f, p, q, t;
  59.      
  60.       h = Math.max(0, Math.min(360, h));
  61.       s = Math.max(0, Math.min(100, s));
  62.       v = Math.max(0, Math.min(100, v));
  63.      
  64.       s /= 100;
  65.       v /= 100;
  66.      
  67.       if(s == 0) {
  68.         // Achromatic (grey)
  69.         r = g = b = v;
  70.         return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
  71.       }
  72.      
  73.       h /= 60; // sector 0 to 5
  74.       i = Math.floor(h);
  75.       f = h - i; // factorial part of h
  76.       p = v * (1 - s);
  77.       q = v * (1 - s * f);
  78.       t = v * (1 - s * (1 - f));
  79.    
  80.       switch(i) {
  81.         case 0:
  82.           r = v;
  83.           g = t;
  84.           b = p;
  85.           break;
  86.          
  87.         case 1:
  88.           r = q;
  89.           g = v;
  90.           b = p;
  91.           break;
  92.          
  93.         case 2:
  94.           r = p;
  95.           g = v;
  96.           b = t;
  97.           break;
  98.          
  99.         case 3:
  100.           r = p;
  101.           g = q;
  102.           b = v;
  103.           break;
  104.          
  105.         case 4:
  106.           r = t;
  107.           g = p;
  108.           b = v;
  109.           break;
  110.          
  111.         default: // case 5:
  112.           r = v;
  113.           g = p;
  114.           b = q;
  115.       }
  116.      
  117.       return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
  118.     }
  119.    
  120.     // Now we draw...
  121.     if (tagpro.events.drawPlayer) {return;}
  122.        
  123.     tagpro.events.register({
  124.       drawPlayer: function(player, context, drawPos, TILESIZE) {
  125.        
  126.         // Draw transparent inside
  127.         context.save();
  128.         context.globalAlpha = 0.7; // Here is transparency
  129.         if (player.team == 1)
  130.           context.drawImage(redInside2, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  131.         if (player.team == 2)
  132.           context.drawImage(blueInside2, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  133.         context.restore();
  134.        
  135.         // Draw pixel perfect rolling bomb
  136.         if (player.bomb && Math.round(Math.random() * 4) == 1) {
  137.           context.fillStyle = "rgba(255, 255, 0, .60)";
  138.           context.beginPath();
  139.           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);
  140.           context.closePath();
  141.           context.fill();
  142.         };
  143.  
  144.         // Draw pixel perfect tagpro
  145.         if (player.tagpro) {
  146.           var tagpro360 = Math.round((new Date).getTime()/1000*360) % 120 ;
  147.           if (tagpro360 >= 60)
  148.               tagpro360 = 120 - tagpro360 ;
  149.           if (player.team == 1)
  150.             tagpro360 = tagpro360 + 60 ;
  151.           if (player.team == 2)
  152.             tagpro360 = tagpro360 + 120 ;
  153.           var tagproRGB = hsvToRgb(tagpro360, 100, 100) ;
  154.           var tagproHex = rgbToHex(tagproRGB[0],tagproRGB[1],tagproRGB[2]) ;
  155.           context.strokeStyle = tagproHex ;
  156.           var tagproString = tagproRGB.toString() ;
  157.           context.fillStyle = "rgba(" + tagproString + ", .00)";
  158.           context.lineWidth = 2 * (1 / tagpro.zoom);
  159.           context.beginPath();
  160.           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);
  161.           context.closePath();
  162.           if (!player.bomb)
  163.             context.fill();
  164.           context.stroke();
  165.         };
  166.          
  167.         // Draw muscle cup lighting
  168.         context.save();
  169.         context.globalAlpha = 0.7; // Here is transparency
  170.         context.drawImage(Lighting2, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  171.         context.restore();
  172.          
  173.         // Draw rotating eyes and mouth
  174.         context.save();
  175.         context.globalAlpha = 1; // Here is transparency
  176.         context.translate(drawPos.x + (TILESIZE / 2) * (1 / tagpro.zoom), drawPos.y + (TILESIZE / 2) * (1 / tagpro.zoom));
  177.         context.rotate(player.angle);
  178.         context.translate(-drawPos.x - (TILESIZE / 2) * (1 / tagpro.zoom), -drawPos.y - (TILESIZE / 2) * (1 / tagpro.zoom));
  179.         if (player.team == 1)
  180.           context.drawImage(EyesAndMouthRed, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  181.         if (player.team == 2)
  182.           context.drawImage(EyesAndMouthBlue, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  183.         context.restore();
  184.        
  185.         // Draw  border
  186.         context.save();
  187.         context.globalAlpha = 1; // Here is transparency
  188.         context.drawImage(Border2, 0, 0, 40, 40, drawPos.x, drawPos.y, 40 / tagpro.zoom, 40 / tagpro.zoom);
  189.         context.restore();
  190.       }
  191.     });
  192.   });
  193. }
  194.  
  195. var source = "("+ myRotatingBallsScript + ")()";
  196. var script = document.createElement('script');
  197. script.setAttribute("type", "application/javascript");
  198. script.textContent = source;
  199.  
  200. document.body.appendChild(script);
Add Comment
Please, Sign In to add comment