Last active
August 29, 2015 14:17
-
-
Save kjmehta01/919f0de0b0130d69b683 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==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