TagPro Highlight Own Ball

Highlights your own ball (optionally only after spawning)

// ==UserScript==
// @name         TagPro Highlight Own Ball
// @version      1.1
// @description  Highlights your own ball (optionally only after spawning)
// @author       Ko
// @include      http://tagpro-*.koalabeast.com:*
// @include      http://tagpro-*.koalabeast.com:*
// @include      http://tangent.jukejuice.com:*
// @include      http://tagpro-*.koalabeast.com/game
// @include      http://tagpro-*.koalabeast.com/game
// @include      http://tangent.jukejuice.com/game
// @include      http://*.newcompte.fr:*
// @license      MIT
// @namespace https://greasyfork.org/users/152992
// ==/UserScript==




////////////////////////////////////////////////////////////////////////////////////////////
//     ### --- OPTIONS --- ###                                                            //
////////////////////////////////////////////////////////////////////////////////////////  //
                                                                                      //  //
// This is the time (seconds) that the highlight should                               //  //
// be shown on the ball *after* respawning. Setting this                              //  //
// at 0 will make your ball highlighted forever.                                      //  //
const time = 0 ;                                                                      //  //
                                                                                      //  //
// Color of the highlight (seperate for red and blue balls)                           //  //
// All colors on this website are supported:                                          //  //
//     https://www.w3schools.com/colors/colors_hex.asp                                //  //
// Don't forget the "quotes"                                                          //  //
// If you do this wrong, the highlight will be black. Ugh.                            //  //
const red_color = "lightpink" ;                                                       //  //
const blue_color = "lightblue" ;                                                      //  //
                                                                                      //  //
// You can also use hexadecimal values for colors. Example:                           //  //
//     const red_color = 0xff0000;                                                    //  //
                                                                                      //  //
// The opacity of the highlight, between 0 and 1.                                     //  //
// If you choose 1, the real ball will be invisble,                                   //  //
// and only the color of the highlight will be visible.                               //  //
const alpha = 0.6 ;                                                                   //  //
                                                                                      //  //
// Want to highlight the ball you are spectating too?                                 //  //
// Change the next option to false ;                                                  //  //
const hide_while_spectating = true ;                                                  //  //
                                                                                      //  //
////////////////////////////////////////////////////////////////////////////////////////  //
//                                                     ### --- END OF OPTIONS --- ###     //
////////////////////////////////////////////////////////////////////////////////////////////






//////////////////////////////////////
// SCROLL FURTHER AT YOUR OWN RISK! //
//////////////////////////////////////






tagpro.ready(function(){

    var highlight = new PIXI.Graphics();

    function updateHighlight(attempt=0){
        // This function resets the color and ball to place the highlight on.
        // Usefull when switching teams, or looking at another ball while spectating.

        // 'you' could be your ball, OR the ball you are currently spectating.
        var you = tagpro.players[ tagpro.playerId ];

        if (!you || !you.sprites) return setTimeout(()=>updateHighlight(attempt+1),50);
        if (attempt > 60) return console.warn('TagPro Highlight Own Ball: Something went wrong. I can\'t show a highlight at the moment!');

        let color;
        if (you.team == 1) color = colors[red_color.toLowerCase()] || red_color;
        if (you.team == 2) color = colors[blue_color.toLowerCase()] || blue_color;


        highlight.beginFill( color , alpha ).drawCircle(20,20,19);

        // Adding the highlight to a ball,
        // will remove it from the previous one (if any)
        you.sprites.ball.addChild(highlight);

    }

    if (tagpro.playerId) updateHighlight();
    tagpro.socket.on('id',updateHighlight);

    var timeout;

    if (time) {

        tagpro.socket.on('p',function(p){
            p = p.u || p;

            for ( var player of p ) if (player.id == tagpro.playerId) {

                if (player.dead == false) {
                    highlight.visible = true;
                    clearTimeout(timeout);
                    timeout = setTimeout(()=> highlight.visible = false, time*1000 );
                }

                if (player.team) updateHighlight();

            }
        });
    }

    if (hide_while_spectating) {

        highlight.alpha = !tagpro.spectator && alpha;

        tagpro.socket.on('spectator', function(spectator) {
            highlight.alpha = !spectator && alpha;
            updateHighlight();
        });

    }



});









// List of color names

var colors = {"aliceblue":0xf0f8ff,
              "antiquewhite":0xfaebd7,
              "aqua":0x00ffff,
              "aquamarine":0x7fffd4,
              "azure":0xf0ffff,
              "beige":0xf5f5dc,
              "bisque":0xffe4c4,
              "black":0x000000,
              "blanchedalmond":0xffebcd,
              "blue":0x0000ff,
              "blueviolet":0x8a2be2,
              "brown":0xa52a2a,
              "burlywood":0xdeb887,
              "cadetblue":0x5f9ea0,
              "chartreuse":0x7fff00,
              "chocolate":0xd2691e,
              "coral":0xff7f50,
              "cornflowerblue":0x6495ed,
              "cornsilk":0xfff8dc,
              "crimson":0xdc143c,
              "cyan":0x00ffff,
              "darkblue":0x00008b,
              "darkcyan":0x008b8b,
              "darkgoldenrod":0xb8860b,
              "darkgray":0xa9a9a9,
              "darkgrey":0xa9a9a9,
              "darkgreen":0x006400,
              "darkkhaki":0xbdb76b,
              "darkmagenta":0x8b008b,
              "darkolivegreen":0x556b2f,
              "darkorange":0xff8c00,
              "darkorchid":0x9932cc,
              "darkred":0x8b0000,
              "darksalmon":0xe9967a,
              "darkseagreen":0x8fbc8f,
              "darkslateblue":0x483d8b,
              "darkslategray":0x2f4f4f,
              "darkslategrey":0x2f4f4f,
              "darkturquoise":0x00ced1,
              "darkviolet":0x9400d3,
              "deeppink":0xff1493,
              "deepskyblue":0x00bfff,
              "dimgray":0x696969,
              "dimgrey":0x696969,
              "dodgerblue":0x1e90ff,
              "firebrick":0xb22222,
              "floralwhite":0xfffaf0,
              "forestgreen":0x228b22,
              "fuchsia":0xff00ff,
              "gainsboro":0xdcdcdc,
              "ghostwhite":0xf8f8ff,
              "gold":0xffd700,
              "goldenrod":0xdaa520,
              "gray":0x808080,
              "grey":0x808080,
              "green":0x008000,
              "greenyellow":0xadff2f,
              "honeydew":0xf0fff0,
              "hotpink":0xff69b4,
              "indianred":0xcd5c5c,
              "indigo":0x4b0082,
              "ivory":0xfffff0,
              "khaki":0xf0e68c,
              "lavender":0xe6e6fa,
              "lavenderblush":0xfff0f5,
              "lawngreen":0x7cfc00,
              "lemonchiffon":0xfffacd,
              "lightblue":0xadd8e6,
              "lightcoral":0xf08080,
              "lightcyan":0xe0ffff,
              "lightgoldenrodyellow":0xfafad2,
              "lightgray":0xd3d3d3,
              "lightgrey":0xd3d3d3,
              "lightgreen":0x90ee90,
              "lightpink":0xffb6c1,
              "lightsalmon":0xffa07a,
              "lightseagreen":0x20b2aa,
              "lightskyblue":0x87cefa,
              "lightslategray":0x778899,
              "lightslategrey":0x778899,
              "lightsteelblue":0xb0c4de,
              "lightyellow":0xffffe0,
              "lime":0x00ff00,
              "limegreen":0x32cd32,
              "linen":0xfaf0e6,
              "magenta":0xff00ff,
              "maroon":0x800000,
              "mediumaquamarine":0x66cdaa,
              "mediumblue":0x0000cd,
              "mediumorchid":0xba55d3,
              "mediumpurple":0x9370db,
              "mediumseagreen":0x3cb371,
              "mediumslateblue":0x7b68ee,
              "mediumspringgreen":0x00fa9a,
              "mediumturquoise":0x48d1cc,
              "mediumvioletred":0xc71585,
              "midnightblue":0x191970,
              "mintcream":0xf5fffa,
              "mistyrose":0xffe4e1,
              "moccasin":0xffe4b5,
              "navajowhite":0xffdead,
              "navy":0x000080,
              "oldlace":0xfdf5e6,
              "olive":0x808000,
              "olivedrab":0x6b8e23,
              "orange":0xffa500,
              "orangered":0xff4500,
              "orchid":0xda70d6,
              "palegoldenrod":0xeee8aa,
              "palegreen":0x98fb98,
              "paleturquoise":0xafeeee,
              "palevioletred":0xdb7093,
              "papayawhip":0xffefd5,
              "peachpuff":0xffdab9,
              "peru":0xcd853f,
              "pink":0xffc0cb,
              "plum":0xdda0dd,
              "powderblue":0xb0e0e6,
              "purple":0x800080,
              "rebeccapurple":0x663399,
              "red":0xff0000,
              "rosybrown":0xbc8f8f,
              "royalblue":0x4169e1,
              "saddlebrown":0x8b4513,
              "salmon":0xfa8072,
              "sandybrown":0xf4a460,
              "seagreen":0x2e8b57,
              "seashell":0xfff5ee,
              "sienna":0xa0522d,
              "silver":0xc0c0c0,
              "skyblue":0x87ceeb,
              "slateblue":0x6a5acd,
              "slategray":0x708090,
              "slategrey":0x708090,
              "snow":0xfffafa,
              "springgreen":0x00ff7f,
              "steelblue":0x4682b4,
              "tan":0xd2b48c,
              "teal":0x008080,
              "thistle":0xd8bfd8,
              "tomato":0xff6347,
              "turquoise":0x40e0d0,
              "violet":0xee82ee,
              "wheat":0xf5deb3,
              "white":0xffffff,
              "whitesmoke":0xf5f5f5,
              "yellow":0xffff00,
              "yellowgreen":0x9acd32};