Skip to content

Instantly share code, notes, and snippets.

@kjmehta01
Last active August 29, 2015 14:17
Show Gist options
  • Save kjmehta01/919f0de0b0130d69b683 to your computer and use it in GitHub Desktop.
Save kjmehta01/919f0de0b0130d69b683 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name Japanese Bubble Gum Pop Explosion
// @description Implements /u/kunmeh13's Texture Pack for Tagpro. Changes color of elements to fit texture pack.
// @version 1
// @include http://tagpro-*.koalabeast.com:*
// @include http://tangent.jukejuice.com:*
// @include http://*.newcompte.fr:*
// @author NewCompte, CFlakes, SB-1, and Browncoat. Compiled by /u/kunmeh13. Walls by Bowtie
// @namespace http://www.reddit.com/user/kunmeh13
// ==/UserScript==
tagpro.loadAssets({
"tiles": 'http://i.imgur.com/btwMuof.png',
"splats": 'http://i.imgur.com/kbkOC6x.png',
"speedpad": 'http://i.imgur.com/VCN9ztX.png',
"speedpadRed": 'http://i.imgur.com/hKlM7Ss.png',
"speedpadBlue": 'http://i.imgur.com/CZdCDml.png',
"portal": 'http://i.imgur.com/gWep0Er.png'
});
tagpro.ready(function () {
var wisteriaColor = "#e9b6ff";
var greenSeaColor = "#6adcb2";
var redTeamColor = "16a085";
var blueTeamColor = "8e44ad";
var redTeamName = "Green Sea";
var blueTeamName = "Wisteria";
var tr = tagpro.renderer;
// Written by NewCompte \/
// Changes color of scoreboard
tagpro.events.register({
sortPlayers: function(players) {
playerArray = players;
},
modifyScoreUI: function($table) {
playerArray.forEach( function(player, i) {
$table.find("tr:nth-child(" + (i + 2) + " ) .scoreName").css("color", player.team == 1 ? greenSeaColor : wisteriaColor);
});
},
});
// Changes color of chat
tagpro.socket.on("chat", function () {
var newChat = $(".name").last();
var color = newChat.css("color");
switch (color) {
case "#FFB5BD": case "rgb(255, 181, 189)":
color = greenSeaColor;
break;
case "#CFCFFF": case "rgb(207, 207, 255)":
color = wisteriaColor;
break;
}
newChat.css("color", color);
});
// Written by NewCompte ^
// Written by CFlakes and SB-1 \/
var texture = PIXI.Texture.fromImage('http://i.imgur.com/o3XXY73.png'),
redTexture = new PIXI.Texture(texture, new PIXI.Rectangle(0, 0, 40, 40)),
blueTexture = new PIXI.Texture(texture, new PIXI.Rectangle(40, 0, 40, 40)),
tagproTexture = new PIXI.Texture(texture, new PIXI.Rectangle(80, 0, 40, 40));
tagpro.renderer.createSpin = function(player) {
var teamTexture = player.team === 1 ? redTexture : blueTexture;
if (!player.sprites.spin) {
player.sprites.spin = new PIXI.Sprite(teamTexture);
player.sprites.spin.anchor.x = 0.5;
player.sprites.spin.anchor.y = 0.5;
player.sprites.spin.x = 20;
player.sprites.spin.y = 20;
player.sprites.spin.tileId = player.sprites.actualBall.tileId;
player.sprites.ball.addChild(player.sprites.spin);
} else {
player.sprites.spin.setTexture(teamTexture);
player.sprites.spin.tileId = player.sprites.actualBall.tileId;
}
};
var upsp = tagpro.renderer.updatePlayerSpritePosition;
tagpro.renderer.updatePlayerSpritePosition = function(player) {
if (!player.sprites.spin || player.sprites.actualBall.tileId !== player.sprites.spin.tileId) tagpro.renderer.createSpin(player);
player.sprites.spin.rotation = player.angle;
upsp(player);
};
tagpro.renderer.createBallSprite = function(player) {
var texture = player.team === 1 ? "redball" : "blueball";
player.sprites.actualBall = tagpro.tiles.draw(player.sprites.ball, texture, {x: 0, y: 0});
player.sprites.actualBall.tileId = texture;
};
tagpro.renderer.updateTagpro = function(player) {
if (player.tagpro) {
if (!tagpro.renderer.options.disableParticles && !player.sprites.tagproSparks) {
player.sprites.tagproSparks = new cloudkid.Emitter(
player.sprites.ball,
[tagpro.renderer.particleFireTexture],
tagpro.particleDefinitions.tagproSparks);
tagpro.renderer.emitters.push(player.sprites.tagproSparks);
}
if (player.bomb) {
if (player.sprites.tagproTint) {
player.sprites.ball.removeChild(player.sprites.tagproTint);
player.sprites.tagproTint = null;
}
} else {
if (!player.sprites.tagproTint) {
player.sprites.tagproTint = new PIXI.Graphics();
player.sprites.tagproTint.beginFill(0xFFFFFF, 0.0).drawCircle(20, 20, 19);
player.sprites.ball.addChild(player.sprites.tagproTint);
}
}
if (!player.sprites.tagproTexture) {
player.sprites.tagproTexture = new PIXI.Sprite(tagproTexture);
player.sprites.ball.addChild(player.sprites.tagproTexture);
player.sprites.tagproTexture.anchor.x = 0.5;
player.sprites.tagproTexture.anchor.y = 0.5;
player.sprites.tagproTexture.x = 20;
player.sprites.tagproTexture.y = 20;
}
player.sprites.tagproTexture.rotation = player.angle;
} else {
if (player.sprites.tagproTint || player.sprites.tagproTexture) {
player.sprites.ball.removeChild(player.sprites.tagproTint);
player.sprites.ball.removeChild(player.sprites.tagproTexture);
player.sprites.tagproTint = null;
player.sprites.tagproTexture = null;
}
if (player.sprites.tagproSparks) {
player.sprites.tagproSparks.emit = false;
var sparksIndex = tagpro.renderer.emitters.indexOf(player.sprites.tagproSparks);
tagpro.renderer.emitters.splice(sparksIndex, 1);
player.sprites.tagproSparks.destroy();
player.sprites.tagproSparks = null;
}
}
};
tagpro.renderer.updateRollingBomb = function(player) {
if (player.bomb) {
if (!player.sprites.bomb) {
if (!tagpro.renderer.options.disableParticles) {
player.sprites.rollingBomb = new cloudkid.Emitter(
player.sprites.ball,
[tagpro.renderer.particleTexture],
tagpro.particleDefinitions.rollingBomb);
tagpro.renderer.emitters.push(player.sprites.rollingBomb);
}
var bomb = player.sprites.bomb = new PIXI.Graphics();
bomb.beginFill(0xFFFF00, 0.6).drawCircle(20, 20, 19);
player.sprites.ball.addChild(bomb);
} else {
player.sprites.bomb.alpha = Math.abs(0.6 * Math.sin(performance.now() / 150));
}
} else {
if (player.sprites.bomb) {
player.sprites.ball.removeChild(player.sprites.bomb);
player.sprites.bomb = null;
}
if (player.sprites.rollingBomb) {
if (player.sprites.rollingBomb instanceof cloudkid.Emitter) {
player.sprites.rollingBomb.emit = false;
tagpro.renderer.emitters.splice(tagpro.renderer.emitters.indexOf(player.sprites.rollingBomb), 1);
player.sprites.rollingBomb.destroy();
} else {
player.sprites.rollingBomb.visible = false;
}
player.sprites.rollingBomb = null;
}
}
};
// Written by CFlakes and SB-1 ^
// Written by Browncoat \/
var redColorHex = "#" + redTeamColor;
var blueColorHex = "#" + blueTeamColor;
// Team score colors
tagpro.ui.scores = function () {
var n = tagpro.score.r ? tagpro.score.r.toString() : "0";
var r = tagpro.score.b ? tagpro.score.b.toString() : "0";
if (tagpro.ui.sprites.redScore) {
tagpro.ui.sprites.redScore.text != n && tagpro.ui.sprites.redScore.setText(n);
tagpro.ui.sprites.blueScore.text != r && tagpro.ui.sprites.blueScore.setText(r);
} else {
var redStroke = "#000000";
if (redColorHex == "#000000") {
redStroke = "#FFFFFF"
}
var blueStroke = "#000000";
if (blueColorHex == "#000000") {
blueStroke = "#FFFFFF"
}
tagpro.ui.sprites.redScore = new PIXI.Text(n, {fill: redColorHex, stroke: redStroke, strokeThickness: 0, font: "bold 40pt Arial"});
tagpro.ui.sprites.blueScore = new PIXI.Text(r, {fill: blueColorHex, stroke: blueStroke, strokeThickness: 0, font: "bold 40pt Arial"});
tagpro.ui.sprites.redScore.alpha = .5;
tagpro.ui.sprites.blueScore.alpha = .5;
tagpro.ui.sprites.redScore.anchor.x = 1;
tagpro.ui.sprites.blueScore.anchor.x = 0;
tagpro.renderer.layers.ui.addChild(tagpro.ui.sprites.redScore);
tagpro.renderer.layers.ui.addChild(tagpro.ui.sprites.blueScore);
}
};
// Large alerts (match)
tr.largeText = function (text, color) {
if (color == "#ff0000" || color == "#FF0000") {
color = redColorHex;
} else if (color == "#0000ff" || color == "#0000FF") {
color = blueColorHex;
}
var stroke = "#000000";
if (color == "#000000") {
stroke = "#FFFFFF";
}
if (text == "Red Wins!") {
text = redTeamName + " Wins!";
} else if(text == "Blue Wins!") {
text = blueTeamName + " Wins!";
}
return new PIXI.Text(text,
{
font: "bold 48pt arial",
fill: color || "#ffffff",
stroke: stroke,
strokeThickness: 2
});
};
// Written by Browncoat ^
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment