/Textures_TEST.user.js Secret
Last active
March 1, 2018 23:57
This file contains 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 Textures TEST | |
// @description Adds options for: previews, saving custom packs, ball transparency, game backgrounds, ball glow, floor tiles, grids & more. | |
// @version 0.1.2 | |
// | |
// NOTE: This script might conflict with other texture relateds scripts, including the following (or parts of)... | |
// - "TagPro Tile Pattern" (by snaps) | |
// - "Scoreboard Position Labels" (by Rattpack) | |
// 'You will need to disable any other version of these scripts if you\'re already using them (other texture scripts may also need to be disabled).' + | |
// | |
// 'PRESETS: There are a lot of options available and some combinations will make the game look bad - use the presets to get started!' + | |
// | |
// This script is best used alongside these other ones... | |
// - TagPro Performance Enhancer: https://gist.github.com/nabbynz/5cc0b6e10e4024a888bc7da4a902deaf (Set Run Position to #1 in TamperMonkey, with this script #2) | |
// - TagPro Texture Packs Better Tiles Previewer: https://gist.github.com/nabbynz/05e47c03f1412f13727010d808b0b261 | |
// | |
// @include http://tagpro-*.koalabeast.com/textures/ | |
// @include http://tagpro-*.koalabeast.com:* | |
// @supportURL https://www.reddit.com/message/compose/?to=nabbybz&subject=Bug%20Report%20-%20Textures%20TEST | |
// @updateURL https://gist.github.com/nabbynz/8534f14682f71aef0d198765ab6ee651/raw/Textures_TEST.user.js | |
// @downloadURL https://gist.github.com/nabbynz/8534f14682f71aef0d198765ab6ee651/raw/Textures_TEST.user.js | |
// @grant GM_getValue | |
// @grant GM_setValue | |
// @grant GM_deleteValue | |
// @grant GM_addStyle | |
// @author nabby (also uses code by snaps, Rattpack & ballparts) | |
// ==/UserScript== | |
// @exclude http://tagpro-maptest.koalabeast.com:* | |
// @include http://*.newcompte.fr:* //NC servers won't work until PIXI is updated there | |
console.log('START: ' + GM_info.script.name + ' (v' + GM_info.script.version + ' by ' + GM_info.script.author + ')'); | |
//for testing... | |
//GM_deleteValue('options'); | |
//GM_deleteValue('myOptions'); | |
//GM_deleteValue('myPacks'); | |
//GM_deleteValue('firsttime'); | |
//GM_deleteValue('droppedTextures'); | |
//GM_deleteValue('urls'); | |
var defaultOptions = { | |
gameoptions: { | |
ball_transparency: '0', | |
fading_splats: false, | |
transparent_background: false, | |
filters_brightness: false, | |
filters_brightness_value: 75, | |
}, | |
ballglow: { | |
modify: false, | |
red_color: '#FF0000', | |
red_opacity: '60', | |
blue_color: '#2591FF', | |
blue_opacity: '70', | |
radius: '60', | |
below: false, | |
}, | |
sbpl: { | |
modify: false, | |
x: '18', | |
y: '18', | |
color: '#ffd700', | |
opacity: '60', | |
}, | |
gamewallpaper: { | |
type: 'none', | |
imagedata: '', | |
stretch: true, | |
gradient_type: 'circle', | |
gradient_preset: 'blue', | |
color: '#000040', | |
color1: '#222222', | |
color2: '#090909', | |
}, | |
altSpawnShadow: { | |
modify: false, | |
}, | |
modify_TP: { | |
modify: false, | |
line_color: '#00FF00', | |
line_opacity: '100', | |
line_width: '2', | |
line_radius: '19', | |
fill_color: '#00FF00', | |
fill_opacity: '15', | |
}, | |
modify_RB: { | |
modify: false, | |
line_color: '#FFFF00', | |
line_opacity: '0', | |
line_width: '0', | |
line_radius: '19', | |
fill_color: '#FFFF00', | |
fill_opacity: '75', | |
speed: '150' | |
}, | |
modify_JJ: { | |
modify: false, | |
line_color: '#235957', | |
fill_color: '#40A8A5', | |
x: '8', | |
y: '32', | |
radius: '5', | |
}, | |
textures: { | |
tiles: '', | |
speedpad: '', | |
speedpadRed: '', | |
speedpadBlue: '', | |
portal: '', | |
splats: '', | |
gravityWell: '', | |
}, | |
gravityWell: { | |
enable: false, | |
linewidth: '50', | |
color: '#00bb00', | |
opacity: '40', | |
dashsize: '0', | |
useGradient: true, | |
}, | |
floortiles: { | |
modify: false, | |
plain: false, | |
tint_color: '#000000', | |
tint_opacity: '50', | |
random: false, | |
random_saturation: '15', | |
random_brightness: '25', | |
nofloor: false, | |
transparency: '0', | |
margin: '0', | |
specks: false, | |
specks_color: '#FFFFFF', | |
specks_length: '1', | |
specks_width: '1', | |
specks_angle: '45', | |
specks_count: '50', | |
specks_opacity: '25', | |
image: false, | |
imagedata: '', | |
image_floor: false, | |
image_brightness: '100', | |
image_contrast: '100', | |
image_saturation: '100', | |
image_opacity: '100', | |
image_grayscale: '0', | |
image_sepia: '0', | |
image_huerotate: '0', | |
image_blur: '0', | |
image_walls: false, | |
image_walls_brightness: '100', | |
image_walls_contrast: '100', | |
image_walls_saturation: '100', | |
image_walls_opacity: '100', | |
image_walls_grayscale: '0', | |
image_walls_sepia: '0', | |
image_walls_huerotate: '0', | |
image_walls_blur: '0', | |
hexagons: false, | |
hexagons_size: '65', | |
hexagons_linewidth: '1', | |
hexagons_margin: '2', | |
hexagons_blur: '0', | |
hexagons_stroke: true, | |
hexagons_stroke_color: '#FFFFFF', | |
hexagons_stroke_opacity: '25', | |
hexagons_stroke_gradient: '0', | |
hexagons_fill: false, | |
hexagons_fill_color: '#FFFFFF', | |
hexagons_fill_opacity: '25', | |
hexagons_fill_gradient: '0', | |
checkered: false, | |
checkered_size: '40', | |
checkered_altTintColor: '#000000', | |
checkered_altTintOpacity: '5', | |
checkered_random: false, | |
checkered_blur: '0', | |
grids_square: false, | |
grids_square_size: '40', | |
grids_square_margin: '0', | |
grids_square_color: '#333333', | |
grids_square_linewidth: '1', | |
grids_square_opacity: '100', | |
grids_square_dashed: '0', | |
grids_square_blur: '0', | |
grids_square_altSides: false, | |
grids_diagonal: false, | |
grids_diagonal_size: '40', | |
grids_diagonal_color: '#777777', | |
grids_diagonal_opacity: '50', | |
grids_diagonal_dashed: '0', | |
grids_diagonal_blur: '0', | |
gradient: false, | |
gradient_color1: '#cccccc', | |
gradient_color2: '#777777', | |
gradient_opacity1: '50', | |
gradient_opacity2: '50', | |
gradient_type: 'centerline', | |
gradient_repeats: '2', | |
}, | |
shapes: { | |
centerline: false, | |
centerline_color: '#00FF00', | |
centerline_width: '2', | |
centerline_dashsize: '5', | |
centerline_opacity: '100', | |
circle: false, | |
circle_red_color: '#FF4040', | |
circle_blue_color: '#5555FF', | |
circle_yellow_color: '#FFFF80', | |
circle_width: '10', | |
circle_radius: '95', | |
circle_opacity: '80', | |
circle_gradient: true, | |
octagon: false, | |
octagon_red_color: '#FF4040', | |
octagon_blue_color: '#5555FF', | |
octagon_yellow_color: '#FFFF80', | |
octagon_width: '6', | |
octagon_radius: '80', | |
octagon_opacity: '80', | |
octagon_sides: '8', | |
octagon_fillopacity: '0', | |
cross: false, | |
cross_red_color: '#FF4040', | |
cross_blue_color: '#5555FF', | |
cross_yellow_color: '#FFFF80', | |
cross_width: '1', | |
cross_radius_inner: '16', | |
cross_radius_outer: '800', | |
cross_opacity: '80', | |
baseradius: false, | |
baseradius_red_color: '#FF4040', | |
baseradius_blue_color: '#5555FF', | |
baseradius_opacity: '80', | |
baseradius_width: '4', | |
baseradius_dashsize: '40', | |
basefill: false, | |
basefill_red_color: '#FF4040', | |
basefill_blue_color: '#5555FF', | |
basefill_opacity: '5', | |
}, | |
walls: { | |
modify: false, | |
color: '#00FFFF', | |
opacity: '0', | |
brightness: '100', | |
contrast: '100', | |
sepia: '0', | |
shadow: true, | |
shadow_color: '#000000', | |
shadow_size: '6', | |
shadow_blur: '4', | |
shadow_opacity: '75', | |
shadow_include_gates: true, | |
}, | |
glow: { | |
boosts_red: false, | |
boosts_red_color: '#FF4040', | |
boosts_red_radius: '100', | |
boosts_red_opacity: '15', | |
boosts_blue: false, | |
boosts_blue_color: '#5555FF', | |
boosts_blue_radius: '100', | |
boosts_blue_opacity: '15', | |
boosts_yellow: false, | |
boosts_yellow_color: '#FFFF80', | |
boosts_yellow_radius: '100', | |
boosts_yellow_opacity: '10', | |
flags_red: false, | |
flags_red_color: '#FF4040', | |
flags_red_radius: '200', | |
flags_red_opacity: '15', | |
flags_blue: false, | |
flags_blue_color: '#5555FF', | |
flags_blue_radius: '200', | |
flags_blue_opacity: '15', | |
flags_yellow: false, | |
flags_yellow_color: '#FFFF80', | |
flags_yellow_radius: '200', | |
flags_yellow_opacity: '10', | |
spikes: false, | |
spikes_color: '#BBBBBB', | |
spikes_radius: '30', | |
spikes_opacity: '15', | |
bombs: false, | |
bombs_color: '#BB00BB', | |
bombs_radius: '30', | |
bombs_opacity: '20', | |
pups: false, | |
pups_color: '#FF7700', | |
pups_radius: '40', | |
pups_opacity: '30', | |
}, | |
spikes: { | |
modify: false, | |
color: '#FF8877', | |
opacity: '20', | |
brightness: '100', | |
contrast: '100', | |
sepia: '0', | |
shadow: false, | |
shadow_size: '3', | |
shadow_blur: '1', | |
shadow_color: '#000000', | |
shadow_opacity: '60', | |
floortint: false, | |
floortint_color: '#cccccc', | |
floortint_stroke: true, | |
floortint_opacity: '40', | |
floortint_rounded: '3', | |
floortint_margin: '2', | |
floortint_dash: '0', | |
floortint_fill: false, | |
floortint_fillopacity: '12', | |
}, | |
bombs: { | |
modify: false, | |
color: '#BB00BB', | |
opacity: '20', | |
brightness: '100', | |
contrast: '100', | |
sepia: '0', | |
shadow: false, | |
shadow_size: '3', | |
shadow_blur: '1', | |
shadow_color: '#000000', | |
shadow_opacity: '60', | |
floortint: false, | |
floortint_color: '#BB00BB', | |
floortint_stroke: true, | |
floortint_opacity: '25', | |
floortint_margin: '1', | |
floortint_dash: '0', | |
floortint_fill: false, | |
floortint_fillopacity: '12', | |
}, | |
gates: { | |
neutral: false, | |
neutral_fill: false, | |
neutral_fill_color: '#999999', | |
neutral_fill_opacity: '100', | |
neutral_fill_margin: '0', | |
neutral_border: false, | |
neutral_border_color: '#444444', | |
neutral_border_linewidth: '1', | |
neutral_border_margin: '0', | |
neutral_cross: false, | |
neutral_cross_color: '#000000', | |
neutral_cross_opacity: '50', | |
neutral_cross_linewidth: '1', | |
neutral_cross_margin: '0', | |
green: false, | |
green_fill: false, | |
green_fill_color: '#00cc00', | |
green_fill_opacity: '100', | |
green_fill_margin: '0', | |
green_border: false, | |
green_border_color: '#444444', | |
green_border_linewidth: '1', | |
green_border_margin: '0', | |
green_cross: false, | |
green_cross_color: '#000000', | |
green_cross_opacity: '50', | |
green_cross_linewidth: '1', | |
green_cross_margin: '0', | |
red: false, | |
red_fill: false, | |
red_fill_color: '#cc0000', | |
red_fill_opacity: '100', | |
red_fill_margin: '0', | |
red_border: false, | |
red_border_color: '#444444', | |
red_border_linewidth: '1', | |
red_border_margin: '0', | |
red_cross: false, | |
red_cross_color: '#000000', | |
red_cross_opacity: '50', | |
red_cross_linewidth: '1', | |
red_cross_margin: '0', | |
blue: false, | |
blue_fill: false, | |
blue_fill_color: '#0000cc', | |
blue_fill_opacity: '100', | |
blue_fill_margin: '0', | |
blue_border: false, | |
blue_border_color: '#444444', | |
blue_border_linewidth: '1', | |
blue_border_margin: '0', | |
blue_cross: false, | |
blue_cross_color: '#000000', | |
blue_cross_opacity: '50', | |
blue_cross_linewidth: '1', | |
blue_cross_margin: '0', | |
drawFloorUnderneath: true, | |
}, | |
team: { | |
modify: false, | |
red_color: '#FF4040', | |
blue_color: '#5555FF', | |
yellow_color: '#FFFF00', | |
gradient: true, | |
pattern: false, | |
pattern_size: '5', | |
pattern_margin: '1', | |
pattern_blur: '0', | |
pattern_red_color: '#000000', | |
pattern_blue_color: '#000000', | |
pattern_yellow_color: '#000000', | |
pattern_opacity: '50', | |
pattern_altsides: false, | |
border: false, | |
border_size: '40', | |
border_linewidth: '1', | |
border_red_color: '#000000', | |
border_blue_color: '#000000', | |
border_yellow_color: '#000000', | |
border_opacity: '100', | |
brightness: '100', | |
contrast: '100', | |
sepia: '0', | |
opacity: '100', | |
margin: '0', | |
drawFloorUnderneath: true, | |
}, | |
endzone: { | |
modify: false, | |
red_color: '#FF4040', | |
blue_color: '#5555FF', | |
opacity: '100', | |
margin: '0', | |
checkered: true, | |
checkered_size: '20', | |
checkered_alt_red_color: '#DDDDDD', | |
checkered_alt_blue_color: '#DDDDDD', | |
stripes: false, | |
stripes_size: '20', | |
stripes_red_color: '#888888', | |
stripes_blue_color: '#888888', | |
border: false, | |
border_size: '40', | |
border_linewidth: '1', | |
border_red_color: '#DDDDDD', | |
border_blue_color: '#DDDDDD', | |
border_opacity: '100', | |
border_count: '1', | |
drawFloorUnderneath: true, | |
}, | |
pups: { | |
shadow: false, | |
shadow_size: '3', | |
shadow_blur: '1', | |
shadow_color: '#000000', | |
shadow_opacity: '60', | |
}, | |
redball: { | |
modify: false, | |
color: '#FF0000', | |
size:'19', | |
opacity:'100', | |
gradient: false, | |
gradient_color: '#000000', | |
gradient_start: '5', | |
gradient_stop: '25', | |
gradient_position: '20', | |
border_width: '0', | |
border_segments: '0', | |
shapes_arc: false, | |
shapes_arc_width: '2', | |
shapes_arc_position: '14', | |
shapes_arc_size: '4', | |
shapes_star: false, | |
shapes_star_width: '2', | |
shapes_star_spikes: '4', | |
shapes_star_inner: '5', | |
shapes_star_outer: '12', | |
shapes_overlay: false, | |
shapes_overlay_transparency: '20', | |
}, | |
blueball: { | |
modify: false, | |
color: '#0080FF', | |
size:'19', | |
opacity:'100', | |
gradient: false, | |
gradient_color: '#000000', | |
gradient_start: '5', | |
gradient_stop: '25', | |
gradient_position: '20', | |
border_width: '0', | |
border_segments: '0', | |
shapes_arc: false, | |
shapes_arc_width: '2', | |
shapes_arc_position: '14', | |
shapes_arc_size: '4', | |
shapes_star: false, | |
shapes_star_width: '2', | |
shapes_star_spikes: '4', | |
shapes_star_inner: '5', | |
shapes_star_outer: '12', | |
shapes_overlay: false, | |
shapes_overlay_transparency: '20', | |
} | |
}; | |
var options = $.extend(true, {}, defaultOptions, GM_getValue('options', defaultOptions)); | |
/* | |
delete options.modifyRB; | |
GM_setValue('options', options); | |
options = $.extend(true, {}, defaultOptions, GM_getValue('options', defaultOptions)); | |
GM_setValue('options', options); | |
*/ | |
//console.log(options); | |
if (!GM_getValue('firsttime', false)) { | |
var message = 'This script includes the following scripts (or parts of)...\n\n' + | |
' - "TagPro Tile Pattern" (by snaps)\n' + | |
' - "Scoreboard Position Labels" (by Rattpack)\n\n' + | |
'You will need to disable any other version of these scripts if you\'re already using them (other texture scripts may also need to be disabled).\n\n' + | |
'NOTE: There are a lot of options available and some combinations will make the game look bad - use the presets to get started!\n\n' + | |
'[This message will not appear again]\n\n'; | |
alert(message); | |
GM_setValue('firsttime', true); | |
} | |
var tileCache = {}; | |
var flagLocs = { red:{x:null, y:null}, blue:{x:null, y:null}, yellow:{x:null, y:null}, ezred:{x:null, y:null}, ezblue:{x:null, y:null}, halfway:{x:null, y:null}, flagradius:null, bombs:[], spikes:[], pups:[], boosts:{ neutral:[], red:[], blue:[] }, gravityWells:[] }; | |
//"Please" just returns a random color... | |
/*!Please JS v0.4.2, Jordan Checkman 2014, https://github.com/Fooidge/PleaseJS, MIT License, Have fun.*/ | |
!function(e,r,a){"function"==typeof define&&define.amd?define([],a):"object"==typeof exports?module.exports=a():r[e]=a()}("Please",this,function(){"use strict";function e(){function e(e,r,a){var o=Math.random;return a instanceof l&&(o=a.random),Math.floor(o()*(r-e+1))+e}function r(e,r,a){var o=Math.random;return a instanceof l&&(o=a.random),o()*(r-e)+e}function a(e,r,a){return Math.max(r,Math.min(e,a))}function o(e,r){var a;switch(e){case"hex":for(a=0;a<r.length;a++)r[a]=F.HSV_to_HEX(r[a]);break;case"rgb":for(a=0;a<r.length;a++)r[a]=F.HSV_to_RGB(r[a]);break;case"rgb-string":for(a=0;a<r.length;a++){var o=F.HSV_to_RGB(r[a]);r[a]="rgb("+o.r+","+o.g+","+o.b+")"}break;case"hsv":break;default:console.error("Format not recognized.")}return r}function n(e){var r=F.HSV_to_RGB(e),a=(299*r.r+587*r.g+114*r.b)/1e3;return a>=128?"dark":"light"}function t(e){var r={};for(var a in e)e.hasOwnProperty(a)&&(r[a]=e[a]);return r}function l(e){function r(){o=(o+1)%256,n=(n+a[o])%256;var e=a[o];return a[o]=a[n],a[n]=e,a[(a[o]+a[n])%256]}for(var a=[],o=0,n=0,t=0;256>t;t++)a[t]=t;for(var l=0,F=0;256>l;l++){F=(F+a[l]+e.charCodeAt(l%e.length))%256;var s=a[l];a[l]=a[F],a[F]=s}this.random=function(){for(var e=0,a=0,o=1;8>e;e++)a+=r()*o,o*=256;return a/0x10000000000000000}}var F={},s={aliceblue:"F0F8FF",antiquewhite:"FAEBD7",aqua:"00FFFF",aquamarine:"7FFFD4",azure:"F0FFFF",beige:"F5F5DC",bisque:"FFE4C4",black:"000000",blanchedalmond:"FFEBCD",blue:"0000FF",blueviolet:"8A2BE2",brown:"A52A2A",burlywood:"DEB887",cadetblue:"5F9EA0",chartreuse:"7FFF00",chocolate:"D2691E",coral:"FF7F50",cornflowerblue:"6495ED",cornsilk:"FFF8DC",crimson:"DC143C",cyan:"00FFFF",darkblue:"00008B",darkcyan:"008B8B",darkgoldenrod:"B8860B",darkgray:"A9A9A9",darkgrey:"A9A9A9",darkgreen:"006400",darkkhaki:"BDB76B",darkmagenta:"8B008B",darkolivegreen:"556B2F",darkorange:"FF8C00",darkorchid:"9932CC",darkred:"8B0000",darksalmon:"E9967A",darkseagreen:"8FBC8F",darkslateblue:"483D8B",darkslategray:"2F4F4F",darkslategrey:"2F4F4F",darkturquoise:"00CED1",darkviolet:"9400D3",deeppink:"FF1493",deepskyblue:"00BFFF",dimgray:"696969",dimgrey:"696969",dodgerblue:"1E90FF",firebrick:"B22222",floralwhite:"FFFAF0",forestgreen:"228B22",fuchsia:"FF00FF",gainsboro:"DCDCDC",ghostwhite:"F8F8FF",gold:"FFD700",goldenrod:"DAA520",gray:"808080",grey:"808080",green:"008000",greenyellow:"ADFF2F",honeydew:"F0FFF0",hotpink:"FF69B4",indianred:"CD5C5C",indigo:"4B0082",ivory:"FFFFF0",khaki:"F0E68C",lavender:"E6E6FA",lavenderblush:"FFF0F5",lawngreen:"7CFC00",lemonchiffon:"FFFACD",lightblue:"ADD8E6",lightcoral:"F08080",lightcyan:"E0FFFF",lightgoldenrodyellow:"FAFAD2",lightgray:"D3D3D3",lightgrey:"D3D3D3",lightgreen:"90EE90",lightpink:"FFB6C1",lightsalmon:"FFA07A",lightseagreen:"20B2AA",lightskyblue:"87CEFA",lightslategray:"778899",lightslategrey:"778899",lightsteelblue:"B0C4DE",lightyellow:"FFFFE0",lime:"00FF00",limegreen:"32CD32",linen:"FAF0E6",magenta:"FF00FF",maroon:"800000",mediumaquamarine:"66CDAA",mediumblue:"0000CD",mediumorchid:"BA55D3",mediumpurple:"9370D8",mediumseagreen:"3CB371",mediumslateblue:"7B68EE",mediumspringgreen:"00FA9A",mediumturquoise:"48D1CC",mediumvioletred:"C71585",midnightblue:"191970",mintcream:"F5FFFA",mistyrose:"FFE4E1",moccasin:"FFE4B5",navajowhite:"FFDEAD",navy:"000080",oldlace:"FDF5E6",olive:"808000",olivedrab:"6B8E23",orange:"FFA500",orangered:"FF4500",orchid:"DA70D6",palegoldenrod:"EEE8AA",palegreen:"98FB98",paleturquoise:"AFEEEE",palevioletred:"D87093",papayawhip:"FFEFD5",peachpuff:"FFDAB9",peru:"CD853F",pink:"FFC0CB",plum:"DDA0DD",powderblue:"B0E0E6",purple:"800080",rebeccapurple:"663399",red:"FF0000",rosybrown:"BC8F8F",royalblue:"4169E1",saddlebrown:"8B4513",salmon:"FA8072",sandybrown:"F4A460",seagreen:"2E8B57",seashell:"FFF5EE",sienna:"A0522D",silver:"C0C0C0",skyblue:"87CEEB",slateblue:"6A5ACD",slategray:"708090",slategrey:"708090",snow:"FFFAFA",springgreen:"00FF7F",steelblue:"4682B4",tan:"D2B48C",teal:"008080",thistle:"D8BFD8",tomato:"FF6347",turquoise:"40E0D0",violet:"EE82EE",wheat:"F5DEB3",white:"FFFFFF",whitesmoke:"F5F5F5",yellow:"FFFF00",yellowgreen:"9ACD32"},i=.618033988749895,u={hue:null,saturation:null,value:null,base_color:"",greyscale:!1,grayscale:!1,golden:!0,full_random:!1,colors_returned:1,format:"hex",seed:null},c={scheme_type:"analogous",format:"hex"},h={golden:!1,format:"hex"};return F.NAME_to_HEX=function(e){return e=e.toLowerCase(),e in s?s[e]:(console.error("Color name not recognized."),void 0)},F.NAME_to_RGB=function(e){return F.HEX_to_RGB(F.NAME_to_HEX(e))},F.NAME_to_HSV=function(e){return F.HEX_to_HSV(F.NAME_to_HEX(e))},F.HEX_to_RGB=function(e){var r=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(r,function(e,r,a,o){return r+r+a+a+o+o});var a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return a?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null},F.RGB_to_HEX=function(e){return"#"+((1<<24)+(e.r<<16)+(e.g<<8)+e.b).toString(16).slice(1)},F.HSV_to_RGB=function(e){var r,a,o,n,t,l,F,s,i=e.h,u=e.s,c=e.v;if(0===u)return{r:c,g:c,b:c};switch(i/=60,n=Math.floor(i),t=i-n,l=c*(1-u),F=c*(1-u*t),s=c*(1-u*(1-t)),n){case 0:r=c,a=s,o=l;break;case 1:r=F,a=c,o=l;break;case 2:r=l,a=c,o=s;break;case 3:r=l,a=F,o=c;break;case 4:r=s,a=l,o=c;break;case 5:r=c,a=l,o=F}return{r:Math.floor(255*r),g:Math.floor(255*a),b:Math.floor(255*o)}},F.RGB_to_HSV=function(e){var r=e.r/255,a=e.g/255,o=e.b/255,n=0,t=0,l=0,F=Math.min(r,Math.min(a,o)),s=Math.max(r,Math.max(a,o));if(F===s)return l=F,{h:0,s:0,v:l};var i=r===F?a-o:o===F?r-a:o-r,u=r===F?3:o===F?1:5;return n=60*(u-i/(s-F)),t=(s-F)/s,l=s,{h:n,s:t,v:l}},F.HSV_to_HEX=function(e){return F.RGB_to_HEX(F.HSV_to_RGB(e))},F.HEX_to_HSV=function(e){return F.RGB_to_HSV(F.HEX_to_RGB(e))},F.make_scheme=function(e,r){function n(e){return{h:e.h,s:e.s,v:e.v}}var l,F,s,i,u,h=t(c);if(null!==r)for(var d in r)r.hasOwnProperty(d)&&(h[d]=r[d]);var g=[e];switch(h.scheme_type.toLowerCase()){case"monochromatic":case"mono":for(u=1;2>=u;u++)l=n(e),s=l.s+.1*u,s=a(s,0,1),i=l.v+.1*u,i=a(i,0,1),l.s=s,l.v=i,g.push(l);for(u=1;2>=u;u++)l=n(e),s=l.s-.1*u,s=a(s,0,1),i=l.v-.1*u,i=a(i,0,1),l.s=s,l.v=i,g.push(l);break;case"complementary":case"complement":case"comp":l=n(e),l.h=(l.h+180)%360,g.push(l);break;case"split-complementary":case"split-complement":case"split":l=n(e),l.h=(l.h+165)%360,g.push(l),l=n(e),l.h=Math.abs((l.h-165)%360),g.push(l);break;case"double-complementary":case"double-complement":case"double":l=n(e),l.h=(l.h+180)%360,g.push(l),l.h=(l.h+30)%360,F=n(l),g.push(l),l.h=(l.h+180)%360,g.push(F);break;case"analogous":case"ana":for(u=1;5>=u;u++)l=n(e),l.h=(l.h+20*u)%360,g.push(l);break;case"triadic":case"triad":case"tri":for(u=1;3>u;u++)l=n(e),l.h=(l.h+120*u)%360,g.push(l);break;default:console.error("Color scheme not recognized.")}return o(h.format.toLowerCase(),g),g},F.make_color=function(n){var s=[],c=t(u),h=null;if(null!==n)for(var d in n)n.hasOwnProperty(d)&&(c[d]=n[d]);var g=null;"string"==typeof c.seed&&(g=new l(c.seed)),c.base_color.length>0&&(h=c.base_color.match(/^#?([0-9a-f]{3})([0-9a-f]{3})?$/i)?F.HEX_to_HSV(c.base_color):F.NAME_to_HSV(c.base_color));for(var m=0;m<c.colors_returned;m++){var f,E,b,p=e(0,360,g);null!==h?(f=a(e(h.h-5,h.h+5,g),0,360),E=0===h.s?0:r(.4,.85,g),b=r(.4,.85,g),s.push({h:f,s:E,v:b})):(f=c.greyscale===!0||c.grayscale===!0?0:c.golden===!0?(p+p/i)%360:null===c.hue||c.full_random===!0?p:a(c.hue,0,360),E=c.greyscale===!0||c.grayscale===!0?0:c.full_random===!0?r(0,1,g):null===c.saturation?.4:a(c.saturation,0,1),b=c.full_random===!0?r(0,1,g):c.greyscale===!0||c.grayscale===!0?r(.15,.75,g):null===c.value?.75:a(c.value,0,1),s.push({h:f,s:E,v:b}))}return o(c.format.toLowerCase(),s),s},F.make_contrast=function(e,r){var l=t(h);if(null!==r)for(var s in r)r.hasOwnProperty(s)&&(l[s]=r[s]);var u,c,d=n(e);if(l.golden===!0)c=e.h*(1+i)%360;else{var g=F.make_scheme(e,{scheme_type:"complementary",format:"hsv"})[1];c=a(g.h-30,0,360)}var m;return"dark"===d?m=a(e.v-.25,0,1):"light"===d&&(m=a(e.v+.25,0,1)),u=[{h:c,s:e.s,v:m}],o(l.format.toLowerCase(),u),u[0]},F}return e()}); | |
tagpro.ready(function() { | |
if (window.location.port) { //we're in a game... | |
var tr = tagpro.renderer; | |
var floorBackgroundImage = new Image(); | |
if (options.floortiles.image && options.floortiles.imagedata) { | |
//an onload callback doesn't work here, so we just load the src and hope it's loaded early enough (todo: find a better way!) | |
floorBackgroundImage.src = options.floortiles.imagedata; | |
} | |
tr.drawBackgroundTiles = function (container) { | |
var drawPos = {x: 0, y: 0}; | |
for (var x = 0, xl = tagpro.map.length; x !== xl; x++) { | |
for (var y = 0, yl = tagpro.map[0].length; y !== yl; y++) { | |
//tagpro.tiles.drawLayers(container, x, y, drawPos, tr.layers.midground); //skip these tiles - we're redrawing them elsewhere | |
if (tagpro.map[x][y] === 22) { | |
drawPos.x = x * 40; | |
drawPos.y = y * 40; | |
tr.createGravityWellEmitter(drawPos.x + (20), drawPos.y + (20)); | |
tagpro.world.createGravityWell(x * 0.4, y * 0.4); | |
} | |
} | |
} | |
tr.afterDrawBackground(); | |
}; | |
var modifyBackgroundTexture = function(container, floorCtx) { | |
var mapWidth = floorCtx.canvas.width; | |
var mapHeight = floorCtx.canvas.height; | |
let mapRatio = mapWidth / mapHeight; | |
var i; | |
var backgroundTexture = PIXI.RenderTexture.create(mapWidth, mapHeight); | |
var canvasRenderer = new PIXI.CanvasRenderer(); | |
canvasRenderer.render(container, backgroundTexture); | |
var extrasCanvas = document.createElement('canvas'); | |
extrasCanvas.width = mapWidth; | |
extrasCanvas.height = mapHeight; | |
var extrasCtx = extrasCanvas.getContext('2d'); | |
var tempWallCanvas = document.createElement('canvas'); | |
tempWallCanvas.width = mapWidth; | |
tempWallCanvas.height = mapHeight; | |
var tempWallCtx = tempWallCanvas.getContext('2d'); | |
var wallCanvas = document.createElement('canvas'); | |
wallCanvas.width = mapWidth; | |
wallCanvas.height = mapHeight; | |
var wallCtx = wallCanvas.getContext('2d'); | |
var spikeCanvas = document.createElement('canvas'); | |
spikeCanvas.width = mapWidth; | |
spikeCanvas.height = mapHeight; | |
var spikeCtx = spikeCanvas.getContext('2d'); | |
var teamTileCanvas = document.createElement('canvas'); | |
teamTileCanvas.width = mapWidth; | |
teamTileCanvas.height = mapHeight; | |
var teamTileCtx = teamTileCanvas.getContext('2d'); | |
var tempFloorTileCanvas = document.createElement('canvas'); | |
tempFloorTileCanvas.width = 40; | |
tempFloorTileCanvas.height = 40; | |
var tempFloorTileCtx = tempFloorTileCanvas.getContext('2d'); | |
var tempFloorTile_FirstDraw = false; | |
let tilesImage = tagpro.tiles.image; | |
let tileBaseColor = options.floortiles.tint_color; | |
if (options.floortiles.random) tileBaseColor = Please.make_color({ | |
saturation: options.floortiles.random_saturation / 100, | |
value: options.floortiles.random_brightness / 100 | |
})[0]; | |
//Draw all the tiles... | |
for (let x=0; x<tagpro.map.length; x++) { | |
for (let y=0; y<tagpro.map[0].length; y++) { | |
let mapTileId = tagpro.map[x][y]; | |
let floorMapTileId = tagpro.floorMap[x][y]; | |
//Draw a floor tile... | |
if (mapTileId >= 2 || floorMapTileId >= 2) {//xxy | |
if (!options.team.drawFloorUnderneath && (mapTileId === 11 || mapTileId === 12 || mapTileId === 23 || floorMapTileId === 11 || floorMapTileId === 12 || floorMapTileId === 23)) { | |
// | |
} else if (!options.endzone.drawFloorUnderneath && (mapTileId === 17 || mapTileId === 18 || floorMapTileId === 17 || floorMapTileId === 18)) { | |
// | |
} else if (!options.gates.drawFloorUnderneath && (mapTileId === 9 || mapTileId === 9.1 || mapTileId === 9.2 || mapTileId === 9.3)) { | |
// | |
} else { | |
if (options.floortiles.modify && options.floortiles.plain) { | |
floorCtx.fillStyle = tileBaseColor; // options.floortiles.tint_color; | |
floorCtx.fillRect(x*40, y*40, 40, 40); | |
} else { | |
if (options.floortiles.modify && options.floortiles.tint_opacity > 0) { | |
if (!tempFloorTile_FirstDraw) { | |
tempFloorTileCtx.drawImage(tilesImage, tagpro.tiles[2].x*40,tagpro.tiles[2].y*40,40,40, 0,0,40,40); | |
setTint(tempFloorTileCanvas, tileBaseColor, options.floortiles.tint_opacity / 100); | |
floorCtx.drawImage(tempFloorTileCanvas, 0,0,40,40, x*40,y*40,40,40); | |
tempFloorTile_FirstDraw = true; | |
} else { | |
floorCtx.drawImage(tempFloorTileCanvas, 0,0,40,40, x*40,y*40,40,40); | |
} | |
} else { | |
floorCtx.drawImage(tilesImage, tagpro.tiles[2].x*40, tagpro.tiles[2].y*40, 40, 40, x*40, y*40, 40, 40); | |
} | |
} | |
} | |
} | |
//Draw any floorMap team or endzone tiles (under diagonal walls)... | |
if (floorMapTileId > 2) { | |
if (floorMapTileId === 11 || floorMapTileId === 12 || mapTileId === 23) { | |
if (options.team.modify) drawCustomTile(teamTileCtx, floorMapTileId, x, y); | |
else teamTileCtx.drawImage(tilesImage, tagpro.tiles[floorMapTileId].x*40, tagpro.tiles[floorMapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} else if (floorMapTileId === 17 || floorMapTileId === 18) { | |
if (options.endzone.modify) drawCustomTile(teamTileCtx, floorMapTileId, x, y); | |
else teamTileCtx.drawImage(tilesImage, tagpro.tiles[floorMapTileId].x*40, tagpro.tiles[floorMapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} | |
} | |
//Draw other map tiles... | |
if (mapTileId > 2) { | |
if (mapTileId === 7) { //spike | |
if (options.spikes.modify) drawCustomTile(teamTileCtx, mapTileId, x, y); | |
else spikeCtx.drawImage(tilesImage, tagpro.tiles[mapTileId].x*40, tagpro.tiles[mapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} else if (mapTileId === 9 || mapTileId === 9.1 || mapTileId === 9.2 || mapTileId === 9.3) { //gates (if using shadows) | |
if (options.walls.modify && options.walls.shadow && options.walls.shadow_include_gates) { | |
if ((mapTileId === 9 && options.gates.neutral) || (mapTileId === 9.1 && options.gates.green) || (mapTileId === 9.2 && options.gates.red) || (mapTileId === 9.3 && options.gates.blue)) { | |
drawCustomTile(tempWallCtx, mapTileId, x, y); | |
//tempWallCtx.drawImage(tilesImage, tagpro.tiles[mapTileId].x*40, tagpro.tiles[mapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} else { | |
tempWallCtx.drawImage(tilesImage, tagpro.tiles[mapTileId].x*40, tagpro.tiles[mapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} | |
} | |
} else if (mapTileId === 11 || mapTileId === 12 || mapTileId === 23) { //team | |
if (options.team.modify) drawCustomTile(teamTileCtx, mapTileId, x, y); | |
else teamTileCtx.drawImage(tilesImage, tagpro.tiles[mapTileId].x*40, tagpro.tiles[mapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} else if (mapTileId === 17 || mapTileId === 18) { //endzone | |
if (options.endzone.modify) drawCustomTile(teamTileCtx, mapTileId, x, y); | |
else teamTileCtx.drawImage(tilesImage, tagpro.tiles[mapTileId].x*40, tagpro.tiles[mapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} else if (mapTileId === 8) { //button | |
spikeCtx.drawImage(tilesImage, tagpro.tiles[mapTileId].x*40, tagpro.tiles[mapTileId].y*40, 40, 40, x*40, y*40, 40, 40); | |
} else if (mapTileId === 22) { //gravityWell | |
teamTileCtx.drawImage(tilesImage, 520, 0, 40, 40, x*40, y*40, 40, 40); | |
} | |
} | |
//Draw wallMap tiles... | |
if (tagpro.wallMap[x][y].some(el => el !== 0)) { | |
for (let q=0; q<4; q++) { | |
let wallTileId = tagpro.wallMap[x][y][q]; | |
if (tagpro.tiles[wallTileId]) { | |
let xo = 0; | |
let yo = 0; | |
if ((q === 1) || (q === 2)) xo = 20; | |
if ((q === 2) || (q === 3)) yo = 20; | |
tempWallCtx.drawImage(tilesImage, tagpro.tiles[wallTileId].x*40, tagpro.tiles[wallTileId].y*40, 20, 20, x*40+xo, y*40+yo, 20, 20); | |
} | |
} | |
} | |
} | |
} | |
floorCtx.save(); | |
floorCtx.globalCompositeOperation = 'source-atop'; //draw only where something is drawn already (i.e. the map shape) | |
//draw a background image on the floor if present and ready... | |
if (options.floortiles.image && options.floortiles.image_floor && floorBackgroundImage.height) { | |
floorCtx.save(); | |
let filters = ''; | |
if (options.floortiles.image_blur > 0) filters += 'blur('+options.floortiles.image_blur+'px) '; | |
if (options.floortiles.image_brightness !== '100') filters += 'brightness('+options.floortiles.image_brightness+'%) '; | |
if (options.floortiles.image_contrast > '100') filters += 'contrast('+options.floortiles.image_contrast+'%) '; | |
if (options.floortiles.image_saturation > '100') filters += 'saturate('+options.floortiles.image_saturation+'%) '; | |
if (options.floortiles.image_opacity < 100) filters += 'opacity('+options.floortiles.image_opacity+'%) '; | |
if (options.floortiles.image_grayscale > 0) filters += 'grayscale('+options.floortiles.image_grayscale+'%) '; | |
if (options.floortiles.image_sepia > 0) filters += 'sepia('+options.floortiles.image_sepia+'%) '; | |
if (options.floortiles.image_huerotate > 0) filters += 'hue-rotate('+options.floortiles.image_huerotate+'deg) '; | |
if (filters) floorCtx.filter = filters; | |
let imageRatio = (floorBackgroundImage.width / floorBackgroundImage.height); | |
let widthRatio = (imageRatio < mapRatio ? imageRatio : mapRatio); | |
let heightRatio = (imageRatio < mapRatio ? mapRatio : imageRatio); | |
floorCtx.drawImage(floorBackgroundImage, 0, 0, floorBackgroundImage.width, floorBackgroundImage.height, 0, 0, mapWidth*widthRatio, mapHeight*heightRatio); | |
floorCtx.filter = 'none'; | |
floorCtx.restore(); | |
} | |
//apply pretty things to it... | |
if (options.floortiles.gradient) addFloorGradient(extrasCtx, mapWidth, mapHeight); | |
if (options.floortiles.checkered) addCheckered(extrasCtx, mapWidth, mapHeight); | |
if (options.floortiles.hexagons) addHexagons(extrasCtx, mapWidth, mapHeight); | |
if (options.floortiles.grids_diagonal) addDiagonalGrid(extrasCtx, mapWidth, mapHeight); | |
if (options.floortiles.grids_square) addSquareGrid(extrasCtx, mapWidth, mapHeight); | |
if (options.floortiles.specks) addRandoms(extrasCtx, mapWidth, mapHeight); | |
//Add Gravity Well outer radius circle... | |
if (options.gravityWell.enable && flagLocs.gravityWells.length) { | |
let radius = 260; | |
for (let i=0; i<flagLocs.gravityWells.length; i++) { | |
if (options.gravityWell.linewidth > 1) { | |
if (options.gravityWell.useGradient) { | |
radius = 260 + (options.gravityWell.linewidth / 2); | |
} else { | |
radius = 260 - (options.gravityWell.linewidth / 2); | |
} | |
} | |
drawBaseCircle(extrasCtx, +options.gravityWell.linewidth, radius, options.gravityWell.color, options.gravityWell.opacity/100, options.gravityWell.useGradient, +options.gravityWell.dashsize, flagLocs.gravityWells[i].x+20, flagLocs.gravityWells[i].y+20); | |
//drawBaseCircle(floorCtx, 20, radius, '#00cc00', 0.65, true, 0, flagLocs.gravityWells[i].x+20, flagLocs.gravityWells[i].y+20); | |
} | |
} | |
//add the lighting glows... | |
if (options.glow.bombs) { | |
for (i=0; i<flagLocs.bombs.length; i++) { | |
addLightGlow(extrasCtx, flagLocs.bombs[i].x+20, flagLocs.bombs[i].y+20, options.glow.bombs_radius, options.glow.bombs_color, options.glow.bombs_opacity/100); | |
} | |
} | |
if (options.glow.pups) { | |
for (i=0; i<flagLocs.pups.length; i++) { | |
addLightGlow(extrasCtx, flagLocs.pups[i].x+20, flagLocs.pups[i].y+20, options.glow.pups_radius, options.glow.pups_color, options.glow.pups_opacity/100); | |
} | |
} | |
if (options.glow.spikes) { | |
for (i=0; i<flagLocs.spikes.length; i++) { | |
addLightGlow(extrasCtx, flagLocs.spikes[i].x+20, flagLocs.spikes[i].y+20, options.glow.spikes_radius, options.glow.spikes_color, options.glow.spikes_opacity/100); | |
} | |
} | |
if (options.glow.boosts_yellow) { | |
for (i=0; i<flagLocs.boosts.neutral.length; i++) { | |
addLightGlow(extrasCtx, flagLocs.boosts.neutral[i].x+20, flagLocs.boosts.neutral[i].y+20, options.glow.boosts_yellow_radius, options.glow.boosts_yellow_color, options.glow.boosts_yellow_opacity/100); | |
} | |
} | |
if (options.glow.boosts_red) { | |
for (i=0; i<flagLocs.boosts.red.length; i++) { | |
addLightGlow(extrasCtx, flagLocs.boosts.red[i].x+20, flagLocs.boosts.red[i].y+20, options.glow.boosts_red_radius, options.glow.boosts_red_color, options.glow.boosts_red_opacity/100); | |
} | |
} | |
if (options.glow.boosts_blue) { | |
for (i=0; i<flagLocs.boosts.blue.length; i++) { | |
addLightGlow(extrasCtx, flagLocs.boosts.blue[i].x+20, flagLocs.boosts.blue[i].y+20, options.glow.boosts_blue_radius, options.glow.boosts_blue_color, options.glow.boosts_blue_opacity/100); | |
} | |
} | |
//add base shapes... | |
if (flagLocs.red.x && flagLocs.blue.x) { | |
if (options.shapes.circle) drawBaseShape(extrasCtx, 'circle', options.shapes.circle_red_color, flagLocs.red.x+20, flagLocs.red.y+20); | |
if (options.shapes.cross) drawBaseShape(extrasCtx, 'radial', options.shapes.cross_red_color, flagLocs.red.x+20, flagLocs.red.y+20); | |
if (options.shapes.octagon) drawBaseShape(extrasCtx, 'octagon', options.shapes.octagon_red_color, flagLocs.red.x+20, flagLocs.red.y+20); | |
if (options.glow.flags_red) addLightGlow(extrasCtx, flagLocs.red.x+20, flagLocs.red.y+20, options.glow.flags_red_radius, options.glow.flags_red_color, options.glow.flags_red_opacity/100); | |
if (options.shapes.circle) drawBaseShape(extrasCtx, 'circle', options.shapes.circle_blue_color, flagLocs.blue.x+20, flagLocs.blue.y+20); | |
if (options.shapes.cross) drawBaseShape(extrasCtx, 'radial', options.shapes.cross_blue_color, flagLocs.blue.x+20, flagLocs.blue.y+20); | |
if (options.shapes.octagon) drawBaseShape(extrasCtx, 'octagon', options.shapes.octagon_blue_color, flagLocs.blue.x+20, flagLocs.blue.y+20); | |
if (options.glow.flags_blue) addLightGlow(extrasCtx, flagLocs.blue.x+20, flagLocs.blue.y+20, options.glow.flags_blue_radius, options.glow.flags_blue_color, options.glow.flags_blue_opacity/100); | |
} else if (flagLocs.yellow.x) { | |
if (options.shapes.circle) drawBaseShape(extrasCtx, 'circle', options.shapes.circle_yellow_color, flagLocs.yellow.x+20, flagLocs.yellow.y+20); | |
if (options.shapes.cross) drawBaseShape(extrasCtx, 'radial', options.shapes.cross_yellow_color, flagLocs.yellow.x+20, flagLocs.yellow.y+20); | |
if (options.shapes.octagon) drawBaseShape(extrasCtx, 'octagon', options.shapes.octagon_yellow_color, flagLocs.yellow.x+20, flagLocs.yellow.y+20); | |
if (options.glow.flags_yellow) addLightGlow(extrasCtx, flagLocs.yellow.x+20, flagLocs.yellow.y+20, options.glow.flags_yellow_radius, options.glow.flags_yellow_color, options.glow.flags_yellow_opacity/100); | |
} | |
//add centreline... | |
if (options.shapes.centerline) { | |
let x1=0, y1=0, x2=0, y2=0; | |
if (flagLocs.halfway.x) { | |
x1 = flagLocs.halfway.x+20; | |
x2 = flagLocs.halfway.x+20; | |
y2 = mapHeight; | |
} else if (flagLocs.halfway.y) { | |
x2 = mapWidth; | |
y1 = flagLocs.halfway.y+20; | |
y2 = flagLocs.halfway.y+20; | |
} | |
drawLine(extrasCtx, x1, y1, x2, y2, hexToRgbA(options.shapes.centerline_color, options.shapes.centerline_opacity / 100), +options.shapes.centerline_width, +options.shapes.centerline_dashsize); | |
} | |
floorCtx.restore(); | |
//Draw the "extras" layer... | |
if (options.floortiles.modify && options.floortiles.nofloor) floorCtx.globalCompositeOperation = 'source-in'; | |
else if (options.ballglow.modify) floorCtx.globalCompositeOperation = 'destination-out'; | |
else floorCtx.globalCompositeOperation = 'source-atop'; | |
floorCtx.drawImage(extrasCanvas, 0, 0); | |
floorCtx.globalCompositeOperation = 'source-over'; | |
//Draw the team tiles & endzones... | |
floorCtx.drawImage(teamTileCanvas, 0, 0); | |
//Draw the spikes... | |
floorCtx.drawImage(spikeCanvas, 0, 0); | |
//Draw the walls... | |
if (options.walls.modify) { | |
if (options.walls.opacity > 0) setTint(tempWallCanvas, options.walls.color, options.walls.opacity / 100, false); | |
let filters = ''; | |
if (options.walls.brightness !== '100') filters += 'brightness('+options.walls.brightness+'%) '; | |
if (options.walls.contrast !== '100') filters += 'contrast('+options.walls.contrast+'%) '; | |
if (options.walls.sepia > 0) filters += 'sepia('+options.walls.sepia+'%) '; | |
if (options.walls.shadow) filters += 'drop-shadow(' + options.walls.shadow_size+'px ' + options.walls.shadow_size+'px ' + options.walls.shadow_blur+'px ' + hexToRgbA(options.walls.shadow_color, options.walls.shadow_opacity/100) + ') '; | |
if (filters) wallCtx.filter = filters; | |
} | |
wallCtx.drawImage(tempWallCanvas, 0, 0); | |
floorCtx.drawImage(wallCanvas, 0, 0); | |
wallCtx.filter = 'none'; | |
//draw a background image on the walls if present and ready... | |
if (options.floortiles.image && options.floortiles.image_walls && floorBackgroundImage.height) { | |
let filters = ''; | |
if (options.floortiles.image_walls_blur > 0) filters += 'blur('+options.floortiles.image_walls_blur+'px) '; | |
if (options.floortiles.image_walls_brightness !== '100') filters += 'brightness('+options.floortiles.image_walls_brightness+'%) '; | |
if (options.floortiles.image_walls_contrast > '100') filters += 'contrast('+options.floortiles.image_walls_contrast+'%) '; | |
if (options.floortiles.image_walls_saturation > '100') filters += 'saturate('+options.floortiles.image_walls_saturation+'%) '; | |
if (options.floortiles.image_walls_opacity < 100) filters += 'opacity('+options.floortiles.image_walls_opacity+'%) '; | |
if (options.floortiles.image_walls_grayscale > 0) filters += 'grayscale('+options.floortiles.image_walls_grayscale+'%) '; | |
if (options.floortiles.image_walls_sepia > 0) filters += 'sepia('+options.floortiles.image_walls_sepia+'%) '; | |
if (options.floortiles.image_walls_huerotate > 0) filters += 'hue-rotate('+options.floortiles.image_walls_huerotate+'deg) '; | |
if (filters) tempWallCtx.filter = filters; | |
let imageRatio = (floorBackgroundImage.width / floorBackgroundImage.height); | |
let widthRatio = (imageRatio < mapRatio ? imageRatio : mapRatio); | |
let heightRatio = (imageRatio < mapRatio ? mapRatio : imageRatio); | |
tempWallCtx.globalCompositeOperation = 'source-in'; | |
tempWallCtx.drawImage(floorBackgroundImage, 0, 0, floorBackgroundImage.width, floorBackgroundImage.height, 0, 0, mapWidth*widthRatio, mapHeight*heightRatio); | |
floorCtx.drawImage(tempWallCanvas, 0, 0); | |
} | |
//Cleanup... | |
backgroundTexture.destroy(true); | |
backgroundTexture = null; | |
canvasRenderer.destroy(true); | |
canvasRenderer = null; | |
extrasCanvas = null; | |
tempWallCanvas = null; | |
wallCanvas = null; | |
spikeCanvas = null; | |
teamTileCanvas = null; | |
tempFloorTileCanvas = null; | |
}; | |
//Re-draw the background before it gets chunkified... | |
tr.createBackgroundTexture = function(container) { | |
var mapWidth = tagpro.map.length * 40; | |
var mapHeight = tagpro.map[0].length * 40; | |
var floorCanvas = document.createElement('canvas'); | |
floorCanvas.width = mapWidth; | |
floorCanvas.height = mapHeight; | |
var floorCtx = floorCanvas.getContext('2d'); | |
modifyBackgroundTexture(container, floorCtx); | |
//Chunkify the new background... | |
var newTexture = PIXI.Texture.fromCanvas(floorCanvas); | |
tr.chunkifyBackground(newTexture); | |
newTexture.destroy(true); | |
newTexture = null; | |
floorCanvas = null; | |
}; | |
////change the way Dynamic Sprites are updated (instead of being removed/redrawn each time, we just change their visibility - saves ~90% redraws) | |
tr.drawDynamicTile = function(x, y, tileId) { | |
tileId = tileId || tagpro.map[x][y]; | |
var tile = tagpro.tiles[tileId]; | |
if (!tile || tileId <= 2) { | |
return; | |
} | |
if (tileId == 7 || tileId == 8 || tileId == 17 || tileId == 18 || tileId == 22) return; //skip these tiles: spikes/buttons/endzone/gravitywell (we've already drawn them on the background) | |
var drawPos = {x: x * 40, y: y * 40}; | |
var sprite; | |
if (tile instanceof PIXI.extras.AnimatedSprite || tile.frameTiles) { //boosts/portals | |
sprite = tr.drawAnimation(tile, drawPos); | |
} else if (tile.dynamic) { //bombs/gates/flags/pups/endzones | |
if ((tileId == 9 && options.gates.neutral) || (tileId == 9.1 && options.gates.green) || (tileId == 9.2 && options.gates.red) || (tileId == 9.3 && options.gates.blue)) { | |
if (!PIXI.utils.TextureCache[tileId]) { | |
var tempCanvas = document.createElement("canvas"); | |
tempCanvas.width = 40; | |
tempCanvas.height = 40; | |
var tempCtx = tempCanvas.getContext('2d'); | |
drawCustomTile(tempCtx, tileId, 0, 0); | |
PIXI.utils.TextureCache[tileId] = PIXI.Texture.fromCanvas(tempCanvas); | |
} | |
} | |
sprite = tagpro.tiles.draw(tr.layers.midground, tileId, drawPos); //tagpro.map[x][y] | |
} else { | |
return; | |
} | |
let key = x + '_' + y + '_' + tileId; | |
if (!tr.dynamicSprites[key]) { | |
let index = tr.layers.midground.children.indexOf(sprite); | |
sprite.midIndex = index; //if we save the index now we can lookup this sprite much faster later | |
tr.dynamicSprites[key] = sprite; | |
} | |
}; | |
var getTileSiblings = function(tileId) { | |
switch (Math.floor(tileId)) { | |
case 3 : return ['3', '3.1']; | |
case 4 : return ['4', '4.1']; | |
case 5 : return ['5', '5.1', '5.11']; | |
case 6 : return ['6', '6.1', '6.11', '6.2', '6.21', '6.3', '6.31']; | |
case 9 : return ['9', '9.1', '9.2', '9.3']; | |
case 10: return ['10', '10.1', '10.11']; | |
case 13: return ['13', '13.1', '13.11']; | |
case 14: return ['14', '14.1', '14.11']; | |
case 15: return ['15', '15.1', '15.11']; | |
case 16: return ['16', '16.1']; | |
default: return; | |
} | |
}; | |
tr.drawDynamicTiles = function() { | |
//Draw *all* the dynamic sprites at the start of the game, then we can just change their visibility as required | |
for (var x = 0; x < tagpro.map.length; x++) { | |
for (var y = 0; y < tagpro.map[0].length; y++) { | |
let tileId = tagpro.map[x][y].toString(); | |
let tile = tagpro.tiles[tileId]; | |
if (!tile || tileId <= 2) { | |
continue; | |
} | |
let siblings = getTileSiblings(tileId); | |
if (siblings) { | |
for (var i = 0; i < siblings.length; i++) { | |
let thisKey = x + '_' + y + '_' + siblings[i]; | |
if (!tr.dynamicSprites[thisKey]) { | |
tr.drawDynamicTile(x, y, siblings[i]); | |
let index = tr.dynamicSprites[thisKey].midIndex; | |
if (siblings[i] != tileId) { | |
tr.layers.midground.children[index].visible = false; | |
} else { | |
tr.layers.midground.children[index].visible = true; | |
} | |
} | |
} | |
} else { | |
tr.drawDynamicTile(x, y); | |
} | |
} | |
} | |
}; | |
var dynChange = 0; | |
var dynDrawNew = 0; | |
tr.updateDynamicTile = function(update) { | |
let prevTileId = tagpro.map[update.x][update.y]; | |
let prevKey = update.x + '_' + update.y + '_' + prevTileId; | |
let thisKey = update.x + '_' + update.y + '_' + update.v; | |
tagpro.map[update.x][update.y] = update.v; | |
if (tr.dynamicSprites[prevKey]) { | |
let index = tr.dynamicSprites[prevKey].midIndex; | |
tr.layers.midground.children[index].visible = false; | |
dynChange++; | |
} | |
if (tr.dynamicSprites[thisKey]) { | |
let index = tr.dynamicSprites[thisKey].midIndex; | |
tr.layers.midground.children[index].visible = true; | |
dynChange++; | |
} else { | |
tr.drawDynamicTile(update.x, update.y); | |
dynDrawNew++; | |
} | |
}; | |
setInterval(function() { | |
console.log('DynTiles: Change Vis:'+dynChange + ' |Draw New:'+dynDrawNew); | |
}, 30000); | |
tagpro.socket.on('end', function(data) { | |
console.log('DynTiles: Change Vis:'+dynChange + ' |Draw New:'+dynDrawNew); | |
}); | |
//Set the wallpaper... | |
var setGameWallpaper = function() { | |
if (options.gamewallpaper.type === 'image') { | |
if (options.gamewallpaper.imagedata) { | |
$('html').css('background', '#000 url("'+options.gamewallpaper.imagedata+'") center / ' + (options.gamewallpaper.stretch ? 'cover' : 'contain') + ' no-repeat fixed'); | |
} | |
} else if (options.gamewallpaper.type === 'color') { | |
$('body.game-page').css('background', options.gamewallpaper.color || '#000000'); | |
} else if (options.gamewallpaper.type === 'gradient') { | |
if (options.gamewallpaper.gradient_type === 'circle') { | |
$('html').css('background', 'radial-gradient(circle, ' + options.gamewallpaper.color1 + ', ' + options.gamewallpaper.color2 + ')'); | |
} else if (options.gamewallpaper.gradient_type === 'ellipse') { | |
$('html').css('background', 'radial-gradient(' + options.gamewallpaper.color1 + ', ' + options.gamewallpaper.color2 + ')'); | |
} else if (options.gamewallpaper.gradient_type === 'horizontal') { | |
$('html').css('background', 'linear-gradient(to right, ' + options.gamewallpaper.color1 + ', ' + options.gamewallpaper.color2 + ', ' + options.gamewallpaper.color1 + ')'); | |
} else if (options.gamewallpaper.gradient_type === 'vertical') { | |
$('html').css('background', 'linear-gradient(' + options.gamewallpaper.color1 + ', ' + options.gamewallpaper.color2 + ', ' + options.gamewallpaper.color1 + ')'); | |
} else if (options.gamewallpaper.gradient_type === 'team') { | |
let angle = 90; | |
if (flagLocs.yellow.x && flagLocs.yellow.y) { | |
angle = Math.atan2(flagLocs.ezblue.y - flagLocs.ezred.y, flagLocs.ezblue.x - flagLocs.ezred.x) * 180 / Math.PI + 90; | |
} else { | |
angle = Math.atan2(flagLocs.blue.y - flagLocs.red.y, flagLocs.blue.x - flagLocs.red.x) * 180 / Math.PI + 90; | |
} | |
$('html').css('background', 'linear-gradient('+angle+'deg, '+options.gamewallpaper.color1+', '+options.gamewallpaper.color2+')'); | |
} | |
} | |
}; | |
tagpro.socket.on('map', function(data) { | |
for (var x=0; x<tagpro.map.length; x++) { | |
for (var y=0; y<tagpro.map[x].length; y++) { | |
var tileId = tagpro.map[x][y]; | |
if ((tileId == 3) || (tileId == 3.1)) { //red flag | |
flagLocs.red.x = x*40; | |
flagLocs.red.y = y*40; | |
} else if ((tileId == 4) || (tileId == 4.1)) { //blue flag | |
flagLocs.blue.x = x*40; | |
flagLocs.blue.y = y*40; | |
} else if ((tileId == 16) || (tileId == 16.1)) { //yellow flag | |
flagLocs.yellow.x = x*40; | |
flagLocs.yellow.y = y*40; | |
} else if (tileId == 17 && !flagLocs.ezred.x) { //red endzone | |
flagLocs.ezred.x = x*40+20; | |
flagLocs.ezred.y = y*40+20; | |
flagLocs.ezblue.x = Math.abs(tagpro.map.length*40 - flagLocs.ezred.x); | |
flagLocs.ezblue.y = Math.abs(tagpro.map[0].length*40 - flagLocs.ezred.y); | |
} else if (tileId == 10 || tileId == 10.1) { //bomb | |
flagLocs.bombs.push({ x:x*40, y:y*40 }); | |
} else if (tileId == 7) { //spike | |
flagLocs.spikes.push({ x:x*40, y:y*40 }); | |
} else if (tileId == 6 || tileId == 6.1 || tileId == 6.2 || tileId == 6.3 || tileId == 6.4) { //powerups | |
flagLocs.pups.push({ x:x*40, y:y*40 }); | |
} else if (tileId == 5 || tileId == 5.1) { //neutral boost | |
flagLocs.boosts.neutral.push({ x:x*40, y:y*40 }); | |
} else if (tileId == 14 || tileId == 14.1) { //red boost | |
flagLocs.boosts.red.push({ x:x*40, y:y*40 }); | |
} else if (tileId == 15 || tileId == 15.1) { //blue boost | |
flagLocs.boosts.blue.push({ x:x*40, y:y*40 }); | |
} else if (tileId == 22) { //gravityWell | |
flagLocs.gravityWells.push({ x:x*40, y:y*40 }); | |
} | |
} | |
} | |
if (flagLocs.yellow.x && flagLocs.yellow.y) { | |
if (tagpro.map.length > tagpro.map[0].length) { | |
flagLocs.halfway.x = Math.floor(tagpro.map.length/2)*40; | |
} else if (tagpro.map.length < tagpro.map[0].length) { | |
flagLocs.halfway.y = Math.floor(tagpro.map[0].length/2)*40; | |
} else { | |
//Do nothing??? | |
} | |
} else if ( Math.abs(flagLocs.red.x - flagLocs.blue.x) > Math.abs(flagLocs.red.y - flagLocs.blue.y) ) { //flags are further apart on the x axis | |
flagLocs.halfway.x = Math.floor(tagpro.map.length/2)*40; | |
} else if ( Math.abs(flagLocs.red.x - flagLocs.blue.x) < Math.abs(flagLocs.red.y - flagLocs.blue.y) ) { //flags are further apart on the y axis | |
flagLocs.halfway.y = Math.floor(tagpro.map[0].length/2)*40; | |
} else { //flags are the same distance apart - try using map dimensions... | |
if (tagpro.map.length > tagpro.map[0].length) { //map width > height | |
flagLocs.halfway.x = Math.floor(tagpro.map.length/2)*40; | |
} else if (tagpro.map.length < tagpro.map[0].length) { //map height > width | |
flagLocs.halfway.y = Math.floor(tagpro.map[0].length/2)*40; | |
} else { //map width & height are the same | |
flagLocs.halfway.x = Math.floor(tagpro.map.length/2)*40; //just do x axis (or do nothing???) | |
} | |
} | |
if (flagLocs.red.x && flagLocs.blue.x) { | |
var tempY = flagLocs.red.y; | |
if (flagLocs.red.y > tagpro.map[0].length * 40 - flagLocs.red.y) tempY = tagpro.map[0].length * 40 - flagLocs.red.y; | |
if (flagLocs.red.x <= tempY) { | |
flagLocs.flagradius = flagLocs.red.x; | |
} else { | |
flagLocs.flagradius = tempY; | |
} | |
if (flagLocs.flagradius < 240) flagLocs.flagradius = 240; //minimum | |
if (flagLocs.flagradius > 360) flagLocs.flagradius = 360; //maximum | |
if ((Math.abs(flagLocs.red.x - flagLocs.blue.x) / 2 < flagLocs.flagradius) && (Math.abs(flagLocs.red.y - flagLocs.blue.y) / 2 < flagLocs.flagradius)) { //maps where the 2 flags are close together (eg Glory Hole) | |
flagLocs.flagradius = Math.abs(flagLocs.red.x - flagLocs.blue.x) / 2; | |
} | |
} | |
if (options.gamewallpaper.type !== 'none') setGameWallpaper(); | |
}); | |
//Game Background Transparency... | |
if (options.gameoptions.transparent_background) { | |
tr.createRenderer = function() { | |
var options = { | |
view: tr.canvas, | |
antialias: true, //PIXI:false (TagPro:true) | |
forceFXAA: true, //PIXI:false (forceFXAA is faster) | |
forceCanvas: tr.options.forceCanvasRenderer, //PIXI:false | |
transparent: true, //PIXI:false | |
backgroundColor: 0, //PIXI:0x000000 | |
clearBeforeRender: true, //PIXI:true | |
preserveDrawingBuffer: false, //PIXI:false | |
roundPixels: false, //PIXI:false | |
width: 1580, //PIXI:800 | |
height: 800, //PIXI:600 | |
legacy: false //PIXI:false | |
}; | |
return tr.options.forceCanvasRenderer ? new PIXI.CanvasRenderer(tr.canvas_width, tr.canvas_height, options) : PIXI.autoDetectRenderer(tr.canvas_width, tr.canvas_height, options); | |
}; | |
var oldCanvas = $(tr.canvas); | |
var newCanvas = $('<canvas id="viewport" width="1280" height="800"></canvas>'); | |
oldCanvas.after(newCanvas); | |
oldCanvas.remove(); | |
tr.canvas = newCanvas.get(0); | |
//tr.options.transparent = true; | |
tr.renderer = tr.createRenderer(); | |
tr.resizeAndCenterView(); | |
newCanvas.fadeIn(1200); | |
} | |
var dP = tr.drawPlayer; | |
var cBS = tr.createBallSprite; | |
var uPC = tr.updatePlayerColor; | |
var uPSP = tr.updatePlayerSpritePosition; | |
var uPF = tr.updatePlayerFlag; | |
//Ball Glow... | |
if (options.ballglow.modify) { | |
var addGlow = function(player) { | |
var glowColor = player.team === 1 ? options.ballglow.red_color : options.ballglow.blue_color; | |
var glowOpacity = player.team === 1 ? options.ballglow.red_opacity / 100 : options.ballglow.blue_opacity / 100; | |
var glowRadius = options.ballglow.radius; | |
let glowRadius2 = glowRadius * 2; | |
var glowCanvas = document.createElement('canvas'); | |
glowCanvas.width = glowRadius2; | |
glowCanvas.height = glowRadius2; | |
var glowCtx = glowCanvas.getContext('2d'); | |
glowCtx.clearRect(0,0, glowRadius2, glowRadius2); | |
addLightGlow(glowCtx, glowRadius, glowRadius, glowRadius, glowColor, glowOpacity, 'source-over'); | |
player.sprites.bottomGlow = new PIXI.Sprite(PIXI.Texture.fromCanvas(glowCanvas)); | |
player.sprites.bottomGlow.anchor = new PIXI.Point(0.5, 0.5); | |
if (options.ballglow.below) { | |
tr.layers.background.addChildAt(player.sprites.bottomGlow, 0); | |
} else { | |
//tr.layers.foreground.addChildAt(player.sprites.bottomGlow, 0); | |
player.sprites.bottomGlow.x = 20; | |
player.sprites.bottomGlow.y = 20; | |
player.sprites.ball.addChildAt(player.sprites.bottomGlow, 0); | |
} | |
}; | |
tr.drawPlayer = function(player) { | |
if (player.draw && player.sprites && !player.sprites.bottomGlow) addGlow(player); | |
return dP.apply(this, arguments); | |
}; | |
} | |
//Modify Spawn Shadow... | |
if (options.altSpawnShadow.modify) { | |
tr.drawSpawn = function(x, y, team, timeout) { | |
if (!tr.layers.foreground) { | |
setTimeout(tr.drawSpawn, 0, x, y, team, timeout); | |
return; | |
} | |
var tile = team === 1 ? "redspawnball" : "bluespawnball"; | |
//create the new texture once and add it to the cache... | |
if (!tagpro.tiles[tile] || !PIXI.utils.TextureCache[tile]) { | |
let image = 'http://i.imgur.com/IBKyhvs.png'; //'http://i.imgur.com/2wzt7Xp.png'; | |
if (!tagpro.tiles[tile]) tagpro.tiles[tile] = tile; | |
if (!PIXI.utils.TextureCache[tile]) PIXI.utils.TextureCache[tile] = PIXI.Texture.fromImage(image); | |
} | |
var sprite = tagpro.tiles.draw(tr.layers.foreground, tile, {x: x, y: y}, null, null, 0.35, true); | |
setTimeout(function() { | |
if (sprite) sprite.parent.removeChild(sprite); | |
}, timeout); | |
}; | |
} | |
//Faded Splats... | |
if (options.gameoptions.fading_splats) { | |
tr.drawSplat = function (x, y, team, showDeath, fadeAway) { | |
var startColor, stopColor; | |
if (team === 1) { | |
startColor = "ff0000"; | |
} else { | |
startColor = "0000ff"; | |
} | |
stopColor = "ffffff"; | |
if (showDeath) { | |
if (tr.options.disableParticles) { | |
tr.drawBallPop(x + 19, y + 19, team); | |
} else { | |
tr.startDeathEmitter(startColor, stopColor, x + 19, y + 19); | |
} | |
} | |
fadeAway = true; | |
tr.addSplat(team, x, y, fadeAway); | |
}; | |
} | |
var modifyBall = function(player) { | |
var prefix = 'TPE_'; | |
var tileId = (player.team === 1 ? 'redball' : 'blueball'); | |
if (player.team === 1 && options.redball.modify) { | |
//?? | |
} else if (player.team === 2 && options.blueball.modify) { | |
//?? | |
} else { | |
if (!PIXI.utils.TextureCache[tileId]) { | |
player.sprites.actualBall = tagpro.tiles.draw(player.sprites.ball, tileId, {x: 0, y: 0}); | |
} else { | |
player.sprites.actualBall.texture = PIXI.utils.TextureCache[tileId]; | |
} | |
player.sprites.actualBall.tileId = tileId; | |
return; | |
} | |
var canvas = document.createElement("canvas"); | |
canvas.width = 40; | |
canvas.height = 40; | |
var ctx = canvas.getContext("2d"); | |
if (options.gameoptions.filters_brightness) { | |
if (tagpro.playerId === player.id) { | |
prefix += 'ME_'; | |
} else { | |
let filters = ''; | |
filters += 'brightness('+options.gameoptions.filters_brightness_value+'%) '; | |
ctx.filter = filters; | |
} | |
} | |
drawBall(ctx, tileId); | |
if (options[tileId].shapes_overlay) drawOverlay(ctx, tileId); | |
if (options[tileId].border_width > 0) drawBorder(ctx, tileId); | |
if (options[tileId].shapes_arc) drawArc(ctx, tileId); | |
if (options[tileId].shapes_star) drawStar(ctx, tileId); | |
ctx.drawImage(canvas, 0, 0); | |
var texture = PIXI.Texture.fromCanvas(canvas); | |
player.sprites.actualBall.texture = texture; | |
player.sprites.actualBall.tileId = tileId; | |
//tagpro.tiles[tileId] = texture; //need this??? | |
//tagpro.tiles[prefix+tileId] = texture; | |
PIXI.utils.TextureCache[tileId] = texture; //this is for other scripts that might use this tile (like "Ball Indicators") | |
if (!PIXI.utils.TextureCache[prefix+tileId]) PIXI.utils.TextureCache[prefix+tileId] = texture; | |
canvas = null; | |
}; | |
//Ball Transparency... | |
tr.createBallSprite = function(player) { | |
cBS.apply(this, arguments); | |
if ( (options.redball.modify && player.team === 1) || (options.blueball.modify && player.team === 2) ) { | |
var prefix = 'TPE_'; | |
var tileId = (player.team === 1 ? 'redball' : 'blueball'); | |
if (options.gameoptions.filters_brightness && tagpro.playerId === player.id) { | |
prefix += 'ME_'; | |
} | |
if (!PIXI.utils.TextureCache[prefix + tileId]) { | |
modifyBall(player); | |
} else { | |
player.sprites.actualBall.texture = PIXI.utils.TextureCache[prefix + tileId]; | |
} | |
} | |
player.sprites.actualBall.alpha = ((100 - options.gameoptions.ball_transparency) / 100); | |
player.sprites.actualBall.anchor.x = 0.5; | |
player.sprites.actualBall.anchor.y = 0.5; | |
player.sprites.actualBall.x = 20; | |
player.sprites.actualBall.y = 20; | |
//player.sprites.actualBall.interactive = true; | |
//player.sprites.actualBall.buttonMode = true; | |
//player.sprites.name.interactive = true; | |
//player.sprites.name.buttonMode = true; | |
}; | |
if (options.ballglow.modify || options.redball.modify || options.blueball.modify) { | |
tr.updatePlayerColor = function(player) { | |
var tileId = (player.team === 1 ? 'redball' : 'blueball'); | |
if (player.sprites.actualBall.tileId !== tileId) { | |
if (options.ballglow.modify) { | |
tr.layers.background.removeChild(player.sprites.bottomGlow); | |
addGlow(player); | |
} | |
if ( (options.redball.modify && player.team === 1) || (options.blueball.modify && player.team === 2) ) { | |
var prefix = 'TPE_'; | |
if (options.gameoptions.filters_brightness && tagpro.playerId === player.id) { | |
prefix += 'ME_'; | |
} | |
if (!PIXI.utils.TextureCache[prefix + tileId]) { | |
modifyBall(player); | |
} else { | |
player.sprites.actualBall.texture = PIXI.utils.TextureCache[prefix + tileId]; | |
} | |
} else { | |
var baseTexture = tagpro.tiles.getTexture(tileId); | |
var texture = new PIXI.Texture(baseTexture); | |
player.sprites.actualBall.texture = texture; | |
} | |
player.sprites.actualBall.tileId = tileId; | |
} | |
}; | |
} | |
//Ball Glow... | |
if (options.ballglow.modify) { | |
tr.updatePlayerSpritePosition = function(player) { | |
if (!player.sprites.bottomGlow) addGlow(player); | |
if (options.ballglow.below) player.sprites.bottomGlow.position = {x:player.x+20, y:player.y+20}; //Math.round(player.x)+20 | |
return uPSP.apply(this, arguments); | |
}; | |
} | |
//modify tagpro effect (color, width, radius)... | |
if (options.modify_TP.modify) { | |
let radius = options.modify_TP.line_radius; | |
let lineWidth = options.modify_TP.line_width; | |
let lineColor = '0x' + options.modify_TP.line_color.substr(1); | |
let lineOpacity = options.modify_TP.line_opacity / 100; | |
let fillColor = '0x' + options.modify_TP.fill_color.substr(1) ; | |
let fillOpacity = options.modify_TP.fill_opacity / 100; | |
let center = 20; | |
if (lineWidth % 2 !== 0) center = 19.5; | |
tr.updateTagpro = function(player) { | |
if (player.tagpro) { | |
if (!player.sprites.tagproTint) { | |
var tint = player.sprites.tagproTint = new PIXI.Graphics(); | |
tint.beginFill(fillColor, fillOpacity).lineStyle(lineWidth, lineColor, lineOpacity).drawCircle(center, center, radius); | |
player.sprites.ball.addChild(tint); | |
if (!tr.options.disableParticles) { | |
player.sprites.tagproSparks = new PIXI.particles.Emitter( | |
player.sprites.ball, | |
[tr.particleFireTexture], | |
tagpro.particleDefinitions.tagproSparks); | |
player.sprites.tagproSparks.player = player.id; | |
tr.emitters.push(player.sprites.tagproSparks); | |
} | |
} | |
} else { | |
if (player.sprites.tagproTint) { | |
player.sprites.ball.removeChild(player.sprites.tagproTint); | |
player.sprites.tagproTint = null; | |
} | |
if (player.sprites.tagproSparks) { | |
player.sprites.tagproSparks.emit = false; | |
var sparksIndex = tr.emitters.indexOf(player.sprites.tagproSparks); | |
tr.emitters.splice(sparksIndex, 1); | |
player.sprites.tagproSparks.destroy(); | |
player.sprites.tagproSparks = null; | |
} | |
} | |
}; | |
} | |
//modify juke juice effect (makes the jj icon a small blue circle => no lag for live player position script!)... | |
if (options.modify_JJ.modify) { | |
let lineColor = '0x' + options.modify_JJ.line_color.substr(1); | |
let lineWidth = 2; | |
let fillColor = '0x' + options.modify_JJ.fill_color.substr(1) ; | |
let radius = options.modify_JJ.radius; | |
let x = options.modify_JJ.x; | |
let y = options.modify_JJ.y; | |
tr.updateGrip = function (player, context, drawPos) { | |
if (player.grip) { | |
if (!player.sprites.grip) { | |
player.sprites.grip = new PIXI.Graphics(); | |
player.sprites.grip.beginFill(fillColor, 1).lineStyle(lineWidth, lineColor).drawCircle(+x, +y, +radius); //3, 37 | |
player.sprites.ball.addChild(player.sprites.grip); | |
} | |
} else { | |
if (player.sprites.grip) { | |
player.sprites.ball.removeChild(player.sprites.grip); | |
player.sprites.grip = null; | |
} | |
} | |
}; | |
} | |
//modify rolling bomb effect... | |
if (options.modify_RB.modify) { | |
let radius = options.modify_RB.line_radius; | |
let lineWidth = options.modify_RB.line_width; | |
let lineColor = '0x' + options.modify_RB.line_color.substr(1); | |
let lineOpacity = options.modify_RB.line_opacity / 100; | |
let fillColor = '0x' + options.modify_RB.fill_color.substr(1) ; | |
let fillOpacity = options.modify_RB.fill_opacity / 100; | |
let speed = options.modify_RB.speed; | |
let maxOpacity = (options.modify_RB.fill_opacity / 100) || (options.modify_RB.line_opacity / 100) || 0.75; | |
let center = 20; | |
//if (lineWidth % 2 !== 0) center = 19.5; | |
tr.updateRollingBomb = function(player) { | |
if (player.bomb) { | |
if (!player.sprites.bomb) { | |
if (!tr.options.disableParticles) { | |
player.sprites.rollingBomb = new PIXI.particles.Emitter( | |
player.sprites.ball, | |
[tr.particleTexture], | |
tagpro.particleDefinitions.rollingBomb); | |
tr.emitters.push(player.sprites.rollingBomb); | |
} | |
player.sprites.bomb = new PIXI.Graphics(); | |
player.sprites.bomb.beginFill(fillColor, fillOpacity).lineStyle(lineWidth, lineColor, lineOpacity).drawCircle(center, center, radius); | |
player.sprites.ball.addChild(player.sprites.bomb); | |
} else { | |
player.sprites.bomb.alpha = Math.abs(maxOpacity * Math.sin(performance.now() / speed)); | |
} | |
} 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 PIXI.particles.Emitter) { | |
player.sprites.rollingBomb.emit = false; | |
tr.emitters.splice(tr.emitters.indexOf(player.sprites.rollingBomb), 1); | |
player.sprites.rollingBomb.destroy(); | |
} else { | |
player.sprites.rollingBomb.visible = false; | |
} | |
player.sprites.rollingBomb = null; | |
} | |
} | |
}; | |
} | |
//shows the current scoreboard position for each player on their ball (by Rattpack - it's really cool, try it!)... | |
if (options.sbpl.modify) { | |
tr.drawScoreboardPosition = function(playerId, position) { | |
if (!playerId || !tagpro.players.hasOwnProperty(playerId)) return; | |
var player = tagpro.players[playerId]; | |
if (player.hasOwnProperty('sprites') && player.sprites.hasOwnProperty('SBL')) player.sprites.info.removeChild(player.sprites.SBL); | |
player.sprites.SBL = tr.veryPrettyText(position, options.sbpl.color); | |
player.sprites.info.addChild(player.sprites.SBL); | |
player.sprites.SBL.alpha = options.sbpl.opacity / 100; | |
player.sprites.SBL.x = +options.sbpl.x+1; | |
player.sprites.SBL.y = +options.sbpl.y+8; | |
}; | |
var getAllPlayers = function() { | |
var players = []; | |
for (var playerId in tagpro.players) { | |
if (tagpro.players.hasOwnProperty(playerId)) { | |
players.push( { id:playerId, score:tagpro.players[playerId].score } ); | |
} | |
} | |
players.sort(function(a, b) { | |
return (b.score - a.score ? b.score - a.score : a.id - b.id); | |
}); | |
$.each(players, function(key, value) { | |
try { | |
tr.drawScoreboardPosition(value.id, key+1); | |
} catch(e) { | |
//alert('err'); | |
console.log('ERROR: ',GM_info.script.name, e); | |
} | |
}); | |
}; | |
setInterval(function() { | |
getAllPlayers(); | |
}, 5000); | |
} | |
} else { //not in a game... | |
var previewCanvas = document.createElement('canvas'); | |
/*-------------------------------------------------------------------------------*/ | |
// Functions... | |
/*-------------------------------------------------------------------------------*/ | |
var updateBGPreview = function() { | |
var backgroundType = $('#TPE_WP').val(); | |
if (backgroundType === 'none') { | |
$('#TPE_DropZone').css({ 'background': '#000 url("/images/background.jpg") center center / cover no-repeat' }); | |
$('.TPE_WPG_Color').hide(0); | |
$('.TPE_WPG_Gradient').hide(0); | |
$('.TPE_WPG_Image').hide(0); | |
} else if (backgroundType === 'color') { | |
$('#TPE_DropZone').css({ 'background': $('#TPE_WPG_Color').val() }); | |
$('#TPE_WP').val('color'); | |
$('.TPE_WPG_Color').show(0); | |
$('.TPE_WPG_Gradient').hide(0); | |
$('.TPE_WPG_Image').hide(0); | |
} else if (backgroundType === 'gradient') { | |
var gradientType = $('#TPE_GradientTypes').val(); | |
var c1 = $('#TPE_GameWallPaper_Color1').val(); | |
var c2 = $('#TPE_GameWallPaper_Color2').val(); | |
if (gradientType === 'vertical') { | |
$('#TPE_DropZone').css({ 'background': 'linear-gradient('+c1+', '+c2+', '+c1+')' }); | |
} else if (gradientType === 'horizontal') { | |
$('#TPE_DropZone').css({ 'background': 'linear-gradient(to right, '+c1+', '+c2+', '+c1+')' }); | |
} else if (gradientType === 'circle' || gradientType === 'ellipse') { | |
$('#TPE_DropZone').css({ 'background': 'radial-gradient('+gradientType+', '+c1+', '+c2+')' }); | |
} else if (gradientType === 'team') { | |
$('#TPE_DropZone').css({ 'background': 'linear-gradient(135deg, '+c1+', '+c2+')' }); | |
} | |
$('.TPE_WPG_Color').hide(0); | |
$('.TPE_WPG_Gradient').show(0); | |
$('.TPE_WPG_Image').hide(0); | |
} else if (backgroundType === 'image') { | |
if (options.gamewallpaper.imagedata) { | |
$('#TPE_DropZone').css({ 'background': '#000 url("'+options.gamewallpaper.imagedata+'") center / '+(options.gamewallpaper.stretch ? 'cover' : 'contain')+' no-repeat' }); | |
} else { | |
//$('#TPE_DropZone').css({ 'background': 'none' }); | |
$('#TPE_DropZone').css({ 'background': '#000 url("/images/background.jpg") center center / cover no-repeat' }); | |
} | |
$('#TPE_WP').val('image'); | |
$('#TPE_WPG_Image_Size').text((options.gamewallpaper.imagedata.length/1024/1024).toFixed(2)+'MB'); | |
$('.TPE_WPG_Color').hide(0); | |
$('.TPE_WPG_Gradient').hide(0); | |
$('.TPE_WPG_Image').show(0); | |
} | |
}; | |
var updateFloorImagePreview = function() { | |
if (options.floortiles.image && options.floortiles.imagedata) { | |
$('#TPE_FloorImage_DropZone').css({ 'background': '#000 url("'+options.floortiles.imagedata+'") center / cover no-repeat' }); | |
$('#TPE_FloorImage_Size').text((options.floortiles.imagedata.length/1024/1024).toFixed(2)+'MB'); | |
} else { | |
$('#TPE_FloorImage_DropZone').css({ 'background': 'none' }); | |
$('#TPE_FloorImage_Size').text('0.00MB'); | |
} | |
}; | |
var resizeImage = function(img, callback) { | |
var ratio = Math.min(window.screen.width / img.width, window.screen.height / img.height); | |
let tempCanvas = document.createElement('canvas'); | |
tempCanvas.width = img.width * ratio; | |
tempCanvas.height = img.height * ratio; | |
let tempCtx = tempCanvas.getContext("2d"); | |
tempCtx.drawImage(img, 0, 0, tempCanvas.width, tempCanvas.height); | |
let newImgData = tempCanvas.toDataURL('image/jpeg', 0.5); | |
callback(newImgData); | |
tempCanvas = null; | |
}; | |
var saveDrop = function(what, imageData) { | |
options[what].imagedata = imageData; | |
GM_setValue('options', options); | |
setTimeout(function() { | |
if (what === 'gamewallpaper') updateBGPreview(); | |
else if (what === 'floortiles') updateFloorImagePreview(); | |
}, 200); | |
}; | |
var convertImgToDataURLviaCanvas = function(url, what) { | |
var img = new Image(); | |
img.onload = function() { | |
var canvas = document.createElement('canvas'); | |
canvas.width = this.width; | |
canvas.height = this.height; | |
var ctx = canvas.getContext('2d'); | |
ctx.drawImage(this, 0, 0); | |
var dataURL = canvas.toDataURL('image/jpeg', 0.85); | |
console.log(this.width, this.height, dataURL.length, img, ctx); | |
if (dataURL.length > 500000 || this.width > window.screen.width || this.height > window.screen.height) { | |
let response = confirm('This image is quite large - do you want to try and auto-resize it now?'); | |
if (response) { | |
resizeImage(this, function(newImgData) { | |
console.log(newImgData.length); | |
saveDrop(what, newImgData); | |
}); | |
} else { | |
saveDrop(what, dataURL); | |
} | |
} else { | |
saveDrop(what, dataURL); | |
} | |
canvas = null; | |
}; | |
img.onerror = function(e) { | |
//console.log(e); | |
alert('An error has occured - this site may not allow images to be dragged.\n\nTry saving the image to your computer, then drag it across.\n\nOr drag images from a CORS enabled site (like Imgur).'); | |
}; | |
img.crossOrigin = 'Anonymous'; | |
img.src = url; | |
}; | |
var handleDrop = function(e, what) { | |
var data = e.originalEvent.dataTransfer; | |
if (data.files[0]) { // Handle as a file... | |
var reader = new FileReader(); | |
var filename = data.files[0].name; | |
var filesize = data.files[0].size / 1024 / 1024; | |
console.log(filename, filesize); | |
reader.onload = function(file) { | |
if (what === 'gamewallpaper' || what === 'floortiles') { | |
var img = new Image(); | |
img.onload = function() { | |
if (filesize > 1 || img.width > window.screen.width || img.height > window.screen.height) { //1.91 | |
let response = confirm(filename + ' is quite large - do you want to try and auto-resize it now?'); | |
if (response) { | |
resizeImage(img, function(newImgData) { | |
saveDrop(what, newImgData); | |
}); | |
} else { | |
saveDrop(what, file.target.result); | |
} | |
} else { | |
saveDrop(what, file.target.result); | |
} | |
}; | |
img.src = file.target.result; | |
} | |
}; | |
reader.readAsDataURL(data.files[0]); | |
} else { // Handle as a URL... | |
data.items[0].getAsString(function(url) { | |
if (!url.startsWith('http')) url = 'http://' + url; | |
if (what === 'gamewallpaper' || what === 'floortiles') { | |
convertImgToDataURLviaCanvas(url, what); | |
} | |
}); | |
} | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var saveValue = function(value, save=true) { | |
var saveto = $(value).data('saveto'); | |
var val; | |
if (!saveto) return; | |
if (value.type === 'checkbox') { | |
val = value.checked; | |
} else if (value.type === 'radio') { | |
if (value.checked && value.dataset.type) { | |
val = value.dataset.type; | |
} else { | |
return true; | |
} | |
} else { | |
val = value.value; | |
} | |
if (saveto.includes('.')) { | |
var index = saveto.split('.'); | |
options[index[0]][index[1]] = val; | |
} else { | |
options[saveto] = val; | |
} | |
if (save) GM_setValue('options', options); | |
}; | |
var saveValues = function() { | |
$('#TPE_Container, #TPE_Container_Balls').find('input, select').each(function() { | |
saveValue(this, false); | |
}); | |
GM_setValue('options', options); | |
}; | |
var checkOptions = function() { | |
var parent = ''; | |
const loopNestedObj = (obj) => { | |
Object.keys(obj).forEach(key => { | |
if (key !== 'textures') { | |
if (obj[key] && typeof obj[key] === 'object') { | |
parent = key; | |
loopNestedObj(obj[key]); | |
parent = ''; | |
} else { | |
let hasDot = key.includes('.'); | |
let hasLength = $('#TPE_Container, #TPE_Container_Balls').find('input[data-saveto="'+key+'"], select[data-saveto="'+key+'"]').length; | |
if (!hasDot) { | |
if (!parent) { | |
if (!hasLength) { | |
delete options[key]; | |
} | |
} else { | |
hasLength = $('#TPE_Container, #TPE_Container_Balls').find('input[data-saveto="'+parent+'.'+key+'"], select[data-saveto="'+parent+'.'+key+'"]').length; | |
if (!hasLength) { | |
delete options[parent][key]; | |
if (!Object.keys(options[parent]).length) { | |
delete options[parent]; | |
} | |
} | |
} | |
} else { | |
delete options[key]; | |
} | |
} | |
} | |
}); | |
}; | |
loopNestedObj(options); | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var getCurrentPack = function() { | |
var currentPack = {}; | |
$.each($('#custom').find('input[type="text"]'), function() { | |
currentPack[this.id] = this.value; | |
}); | |
return currentPack; | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var createNewPackIcon = function(name) { | |
var myPacks = GM_getValue('myPacks', {}); | |
var tilesImg = new Image(); | |
tilesImg.onload = function() { | |
let thumbnail = createPreview(tilesImg, true); //.toDataURL('image/png'); | |
$('#TPE_MySavedPacks').append('<div class="TPE_MySavedPack" data-name="'+name+'" title="Load this saved custom textures pack"><div class="TPE_DeleteSavedPack" title="Delete this saved custom textures pack">x</div><div class="TPE_MySavedPackLabel">'+name+'</div></div>'); | |
$('#TPE_MySavedPacks').find('div.TPE_MySavedPack[data-name="'+name+'"]').prepend(thumbnail); | |
}; | |
tilesImg.crossOrigin = "Anonymous"; | |
tilesImg.src = myPacks[name].tiles; | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var createNewOptionsIcon = function(name) { | |
var myOptions = GM_getValue('myOptions', {}); | |
var title = 'Load this saved custom options set'; | |
var displayName = name; | |
if (myOptions.hasOwnProperty(name)) { | |
if (myOptions[name].hasOwnProperty('textures')) { | |
title += ' (includes texture links)'; | |
displayName = '<span style="color:mediumorchid">*</span>' + name; | |
} | |
} | |
$('#TPE_MySavedOptions').append('<div class="TPE_MySavedOptions" data-name="'+name+'" title="'+title+'">'+displayName+'<div class="TPE_DeleteSavedOptions" title="Delete this saved custom options set">x</div></div>'); | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var loadOptionsValues = function(createIcons=false) { | |
$('#TPE_Container, #TPE_Container_Balls').find('input, select').each(function(key, value) { | |
var saveto = value.dataset.saveto; | |
var group = value.dataset.group; | |
var rgroup = value.dataset.rgroup; | |
var index; | |
var val; | |
if (!saveto) return; | |
index = saveto.split('.'); | |
if (index[1]) { | |
if (options.hasOwnProperty(index[0])) { | |
if (options[index[0]].hasOwnProperty(index[1])) { | |
val = options[index[0]][index[1]]; | |
} else { | |
if (this.type === 'checkbox') options[index[0]][index[1]] = false; | |
else if (this.type === 'color') options[index[0]][index[1]] = '#000000'; | |
val = options[index[0]]; | |
} | |
} else { | |
options[index[0]] = {}; | |
if (this.type === 'checkbox') options[index[0]][index[1]] = false; | |
else if (this.type === 'color') options[index[0]][index[1]] = '#000000'; | |
val = options[index[0]][index[1]]; | |
} | |
} else if (index[0]) { | |
if (options.hasOwnProperty(index[0])) { | |
val = options[index[0]]; | |
} else { | |
if (this.type === 'checkbox') options[index[0]] = false; | |
else if (this.type === 'color') options[index[0]] = '#000000'; | |
val = options[index[0]]; | |
} | |
} else { | |
return true; | |
} | |
if (this.type === 'checkbox') { | |
$(this).prop('checked', val); | |
} else if (this.type === 'radio') { | |
if (val === this.dataset.type) { | |
$(this).prop('checked', true); | |
if (val === 'custom') { | |
$('input[data-saveto="'+index[0]+'.shapes_overlay_base64"]').show(); | |
} else { | |
$('input[data-saveto="'+index[0]+'.shapes_overlay_base64"]').hide(); | |
} | |
} | |
} else { | |
$(this).val(val); | |
} | |
if (group) { | |
if ( $(this).is(':checked') || ($(this).val() > 0) ) $('#TPE_Container, #TPE_Container_Balls').find('.'+group).fadeIn(); | |
else $('#TPE_Container, #TPE_Container_Balls').find('.'+group).fadeOut(); | |
} | |
if (rgroup) { | |
if ( $(this).is(':checked') || ($(this).val() > 0) ) $('#TPE_Container, #TPE_Container_Balls').find('.'+rgroup).fadeOut(); | |
else $('#TPE_Container, #TPE_Container_Balls').find('.'+rgroup).fadeIn(); | |
} | |
}); | |
$('#TPE_TransparentBallValue').text(options.gameoptions.ball_transparency); | |
if (!createIcons && options.hasOwnProperty('textures')) { | |
$.each(options.textures, function(key, value) { | |
if (value) $('#'+key).val(value); | |
}); | |
$('#custom-textures-btn').trigger('click'); | |
} | |
//if (!options.ballglow.modify) $('.TPE_Group_BallGlow').hide(); | |
//else $('.TPE_Group_BallGlow').show(); | |
if (createIcons) { | |
var myOptions = GM_getValue('myOptions', {}); | |
$.each(myOptions, function(key, value) { | |
createNewOptionsIcon(key); | |
}); | |
} | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var loadCustomValues = function() { | |
var texturePacks = JSON.parse($('#texture-pack-data').text()); | |
var extraPacks = {}; | |
var myPacks = GM_getValue('myPacks', {}); | |
//default packs... | |
texturePacks.sort(function(a, b) { | |
if (a.name.toLowerCase() < b.name.toLowerCase()) return -1; | |
if (a.name.toLowerCase() > b.name.toLowerCase()) return 1; | |
return 0; | |
}); | |
for (let i=0; i<texturePacks.length; i++) { | |
if (texturePacks[i].name === 'Classic') { //put this one at the start :) | |
texturePacks.splice(0, 0, texturePacks.splice(i, 1)[0]); | |
} | |
} | |
//some extra packs... | |
var message = '(Note: this texture is not part of the official TagPro texture packs collection)'; | |
//extraPacks['24K'] = { author:'MagicPigeon\n'+message, tiles:'https://i.imgur.com/mU3RG02.png', speedpad:'https://i.imgur.com/XGbQS0m.png', speedpadRed:'https://i.imgur.com/7ezs4BA.png', speedpadBlue:'https://i.imgur.com/rVFx0HE.png', portal:'https://i.imgur.com/f0HY7Tu.png', splats:'https://i.imgur.com/nRbpdju.png' }; | |
extraPacks['88 Electric'] = { author:'Rob Flagetti\n'+message, tiles:'http://i.imgur.com/kG50m2X.png', speedpad:'http://i.imgur.com/5i2b07D.png', speedpadRed:'http://i.imgur.com/WwQ70DK.png', speedpadBlue:'http://i.imgur.com/fIeILub.png', portal:'http://i.imgur.com/RFQgPXz.png', splats:'http://i.imgur.com/2kLd2Rn.png' }; | |
extraPacks['Aperture Laboratories'] = { author:'SuperSans\n'+message, tiles:'http://i.imgur.com/SveoaoC.png', speedpad:'https://i.imgur.com/CPoMTrR.png', speedpadRed:'https://i.imgur.com/Az9vhYO.png', speedpadBlue:'https://i.imgur.com/nMVO8KV.png', portal:'https://i.imgur.com/nPdqzJ2.png', splats:'https://i.imgur.com/HSufen1.png' }; | |
//extraPacks['Bold'] = { author:'MagicPigeon\n'+message, tiles:'https://i.imgur.com/Nsyvxei.png', speedpad:'https://i.imgur.com/eYngJF8.png', speedpadRed:'https://i.imgur.com/6Kii4h2.png', speedpadBlue:'https://i.imgur.com/VbjTWFF.png', portal:'https://i.imgur.com/DbZUFKV.png', splats:'https://i.imgur.com/S4Hhn01.png' }; | |
extraPacks['+Brioche Light'] = { author:'Brioche\n'+message, tiles:'https://i.imgur.com/47ulK1R.png', speedpad:'http://i.imgur.com/wtpkZWw.png', speedpadRed:'http://i.imgur.com/l6OMel5.png', speedpadBlue:'http://i.imgur.com/IAAOkQz.png', portal:'http://i.imgur.com/CXgNNTs.png', splats:'http://i.imgur.com/kbkOC6x.png' }; | |
extraPacks['Derezzed'] = { author:'-salt-\n'+message, tiles:'http://i.imgur.com/H9qQUAW.png', speedpad:'http://i.imgur.com/BXtUHQG.png', speedpadRed:'http://i.imgur.com/G92Af0J.png', speedpadBlue:'http://i.imgur.com/R9FAvpp.png', portal:'http://i.imgur.com/vJDZam9.png', splats:'http://i.imgur.com/WXHAA3I.png' }; | |
extraPacks['Glow'] = { author:'MagicPigeon\n'+message, tiles:'https://i.imgur.com/jpcHCtM.png', speedpad:'https://i.imgur.com/IB95nd5.png', speedpadRed:'https://i.imgur.com/8RgHd1Y.png', speedpadBlue:'https://i.imgur.com/E3gqIdZ.png', portal:'https://i.imgur.com/H1e5f5X.png', splats:'https://i.imgur.com/yMbLHLT.png' }; | |
extraPacks['Halloween'] = { author:'TagPro\n'+message, tiles:'/images/events/halloween/tiles.png', speedpad:'/images/events/halloween/speedpad.png', speedpadRed:'/images/events/halloween/speedpadred.png', speedpadBlue:'/images/events/halloween/speedpadblue.png', portal:'/images/events/halloween/portal.png', splats:'/images/events/halloween/splats.png' }; | |
extraPacks['Kindergarten'] = { author:'Clydas\n'+message, tiles:'http://i.imgur.com/y3tbmOS.png', speedpad:'http://i.imgur.com/UEpX1wb.png', speedpadRed:'http://i.imgur.com/tUC9CMG.png', speedpadBlue:'http://i.imgur.com/5yA3IOx.png', portal:'http://i.imgur.com/6Lbd9Aw.png', splats:'http://i.imgur.com/ZGSTp2s.png' }; | |
extraPacks['+Next Classic'] = { author:'MagicPigeon\n'+message, tiles:'https://i.imgur.com/ulQFpn7.png', speedpad:'https://i.imgur.com/w7pW8SC.png', speedpadRed:'https://i.imgur.com/FHjSv04.png', speedpadBlue:'https://i.imgur.com/SSK4Hno.png', portal:'https://i.imgur.com/gdJfGV9.png', splats:'http://i.imgur.com/GObCQoT.png' }; | |
extraPacks['+Nilla'] = { author:'Dotsarecool\n'+message, tiles:'https://i.imgur.com/kuPdAXV.png', speedpad:'https://i.imgur.com/bawbyQm.png', speedpadRed:'https://i.imgur.com/tDxnPWm.png', speedpadBlue:'https://i.imgur.com/NQaEKB0.png', portal:'https://i.imgur.com/v8aO03S.png', splats:'http://i.imgur.com/kHUlTwP.png' }; | |
extraPacks['+Seaweed R/B'] = { author:'Borgen\n'+message, tiles:'https://i.imgur.com/8I6wa21.png', speedpad:'http://i.imgur.com/ONxlcFL.png', speedpadRed:'http://i.imgur.com/DwUHM2I.png', speedpadBlue:'http://i.imgur.com/DpJS96w.png', portal:'http://i.imgur.com/44fPSBq.png', splats:'http://i.imgur.com/ZrimG2x.png' }; | |
extraPacks['Starlight+'] = { author:'MagicPigeon\n'+message, tiles:'https://i.imgur.com/PGVnwDs.png', speedpad:'https://i.imgur.com/Kzdjpjx.png', speedpadRed:'https://i.imgur.com/sYcoBZq.png', speedpadBlue:'https://i.imgur.com/MvKkWyf.png', portal:'https://i.imgur.com/SgvHlC2.png', splats:'https://i.imgur.com/FQL3CYa.png' }; | |
extraPacks['Star Wars'] = { author:'Moosen\n'+message, tiles:'https://i.imgur.com/lxV0cnH.png', speedpad:'http://i.imgur.com/WgeuDEz.png', speedpadRed:'http://i.imgur.com/cqY1LTe.png', speedpadBlue:'http://i.imgur.com/bCUoqXq.png', portal:'http://i.imgur.com/FtLHfuz.png', splats:'https://i.imgur.com/XIndyGS.png' }; | |
extraPacks['TagPro Ultra'] = { author:'MuscleCaps\n'+message, tiles:'http://i.imgur.com/HFF6UeV.png', speedpad:'http://i.imgur.com/dLPehvN.png', speedpadRed:'http://i.imgur.com/U9eQnIa.png', speedpadBlue:'http://i.imgur.com/CtRmTaF.png', portal:'http://i.imgur.com/yiLdTR9.png', splats:'http://i.imgur.com/TTuhrS5.png' }; | |
extraPacks['Ultra Smooth'] = { author:'ProfessorTag\n'+message, tiles:'http://i.imgur.com/zltfpGb.png', speedpad:'http://i.imgur.com/zxubWbQ.png', speedpadRed:'http://i.imgur.com/yJGhLPt.png', speedpadBlue:'http://i.imgur.com/K02G9jE.png', portal:'http://i.imgur.com/hffUZ2J.png', splats:'http://i.imgur.com/xMMkRce.png' }; | |
extraPacks['+Vanilla Pro'] = { author:'ProfessorTag\n'+message, tiles:'https://i.imgur.com/ivUVcRY.png', speedpad:'http://i.imgur.com/6h2Fna8.png', speedpadRed:'http://i.imgur.com/pF4l9SO.png', speedpadBlue:'http://i.imgur.com/NlepAuW.png', portal:'http://i.imgur.com/qpg0wCt.png', splats:'http://i.imgur.com/ABTYq4t.png' }; | |
extraPacks['Vortex'] = { author:'MagicPigeon\n'+message, tiles:'http://i.imgur.com/jlbr0Gr.png', speedpad:'http://i.imgur.com/hL1YlFu.png', speedpadRed:'http://i.imgur.com/gxQeYTw.png', speedpadBlue:'http://i.imgur.com/pbXh4b1.png', portal:'http://i.imgur.com/H1cHH5w.png', splats:'http://i.imgur.com/36fUJG2.png' }; | |
extraPacks['+Yin-Yang'] = { author:'Browncoat\n'+message, tiles:'https://i.imgur.com/kTVchxk.png', speedpad:'http://i.imgur.com/NVPIQ1y.png', speedpadRed:'http://i.imgur.com/e18kH49.png', speedpadBlue:'http://i.imgur.com/lv8pcWF.png', portal:'http://i.imgur.com/DZried3.png', splats:'http://i.imgur.com/0GTWyyW.png' }; | |
extraPacks['+N9'] = { author:'Nabby\n'+message, tiles:'http://i.imgur.com/Gx0bjaA.png', speedpad:'http://i.imgur.com/6h2Fna8.png', speedpadRed:'http://i.imgur.com/pF4l9SO.png', speedpadBlue:'http://i.imgur.com/NlepAuW.png', portal:'https://i.imgur.com/bxpfnHs.png', splats:'http://i.imgur.com/GObCQoT.png', gravityWell:'http://i.imgur.com/zPdBr5d.png' }; | |
extraPacks['+N10'] = { author:'Nabby\n'+message, tiles:'http://i.imgur.com/rTKZ2fA.png', speedpad:'http://i.imgur.com/6h2Fna8.png', speedpadRed:'http://i.imgur.com/pF4l9SO.png', speedpadBlue:'http://i.imgur.com/NlepAuW.png', portal:'https://i.imgur.com/bxpfnHs.png', splats:'http://i.imgur.com/GObCQoT.png', gravityWell:'http://i.imgur.com/zPdBr5d.png' }; | |
extraPacks['+Whix Light'] = { author:'Nabby\n'+message, tiles:'https://i.imgur.com/qylKn4g.png', speedpad:'https://i.imgur.com/oiuNpmu.png', speedpadRed:'https://i.imgur.com/biB4obE.png', speedpadBlue:'https://i.imgur.com/fFN5aYy.png', portal:'https://i.imgur.com/4W0sC4t.png', splats:'https://i.imgur.com/2kLd2Rn.png', gravityWell:'' }; | |
extraPacks['+Whix Dark'] = { author:'Nabby\n'+message, tiles:'https://i.imgur.com/Zj9ckzx.png', speedpad:'https://i.imgur.com/bhnLuED.png', speedpadRed:'https://i.imgur.com/SkkDJmu.png', speedpadBlue:'https://i.imgur.com/Zz7Yb0c.png', portal:'https://i.imgur.com/4W0sC4t.png', splats:'https://i.imgur.com/2kLd2Rn.png', gravityWell:'' }; | |
extraPacks['+Whix Dark Alt'] = { author:'Nabby\n'+message, tiles:'https://i.imgur.com/xn8V77C.png', speedpad:'https://i.imgur.com/bhnLuED.png', speedpadRed:'https://i.imgur.com/SkkDJmu.png', speedpadBlue:'https://i.imgur.com/Zz7Yb0c.png', portal:'https://i.imgur.com/4W0sC4t.png', splats:'https://i.imgur.com/2kLd2Rn.png', gravityWell:'' }; | |
$.each($('#custom').find('input[type="text"]'), function() { | |
var type = this.id; | |
var name = $(this).siblings('label').text(); | |
$(this).siblings('label').after('<select id="TPE_Packs_'+type+'" class="TPE_Packs" style="margin:0 0 0 5px; width:20px; color:black; font-size:12px; border-radius:5px;" title="Loads a SINGLE link for "'+name+'""></select>'); | |
$('#TPE_Packs_'+type).append('<optgroup label="Default Packs..." style="color:#e00; font-size:14px">'); | |
$.each(texturePacks, function(key, value) { | |
$('#TPE_Packs_'+type).append('<option value="'+value[type]+'"'+(value.author?' title="Created by '+value.author+'"':'')+'>'+value.name+'</option>'); | |
}); | |
$('#TPE_Packs_'+type).append('</optgroup>'); | |
$('#TPE_Packs_'+type).append('<optgroup label="Extra Packs..." style="color:#e00; font-size:14px">'); | |
$.each(extraPacks, function(key, value) { | |
$('#TPE_Packs_'+type).append('<option value="'+value[type]+'"'+(value.author?' title="Created by '+value.author+'"':'')+'>'+key+'</option>'); | |
}); | |
$('#TPE_Packs_'+type).append('</optgroup>'); | |
$('#TPE_Packs_'+type).append('<optgroup id="TPE_MyPacks_OptGroup_'+type+'" label="My Saved Packs..." style="color:#e00; font-size:14px">'); | |
$.each(myPacks, function(key, value) { | |
$('#TPE_Packs_'+type).append('<option value="'+value[type]+'" data-name="'+key+'">'+key+'</option>'); | |
}); | |
$('#TPE_Packs_'+type).append('</optgroup>'); | |
}); | |
$('#TP_ShowPreviewAll').after('<div style="position:absolute; right:0; margin:-10px 12px 0 0; font-size:12px;" title="Load all links from an extra texture pack.\nYou also need to click "Import Textures" to save/use them in a game."<span>Load Complete "Extra" Pack: </span><select id="TP_ExtraPacks" style="width:20px; color:black; border-radius:4px;"><option>- Select -</option></select></div>'); | |
$.each(extraPacks, function(key, value) { | |
$('#TP_ExtraPacks').append('<option value="'+key+'"'+(value.author?' title="Created by '+value.author+'"':'')+'>'+key+'</option>'); | |
}); | |
$('#TP_ExtraPacks').on('change', function() { | |
var val = this.value; | |
$.each($('#custom').find('input[type="text"]'), function() { | |
$('#'+this.id).val(extraPacks[val][this.id]); | |
}); | |
updateFloorTilesPreview(); | |
}); | |
$.each(myPacks, function(key, value) { | |
createNewPackIcon(key); | |
}); | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var updateFloorTilesPreview = function() { | |
var ctx = $("#TPE_FloorTiles_Preview").get(0).getContext("2d"); | |
var addExtras = function() { | |
if (options.floortiles.gradient) addFloorGradient(ctx, 40, 40); | |
if (options.floortiles.checkered) addCheckered(ctx, 40, 40); | |
if (options.floortiles.hexagons) addHexagons(ctx, 40, 40); | |
if (options.floortiles.grids_diagonal) addDiagonalGrid(ctx, 40, 40); | |
if (options.floortiles.grids_square) addSquareGrid(ctx, 40, 40); | |
if (options.floortiles.specks) addRandoms(ctx, 40, 40); | |
}; | |
if (options.floortiles.modify && options.floortiles.plain) { | |
clearFloor(ctx, 40, 40); | |
addExtras(); | |
} else if (!options.floortiles.modify || (options.floortiles.modify && !options.floortiles.plain)) { | |
var img = document.createElement('img'); | |
img.onload = function() { | |
if (options.floortiles.modify && options.floortiles.tint_opacity > 0) { | |
let tileCanvas = document.createElement('canvas'); | |
tileCanvas.width = 40; | |
tileCanvas.height = 40; | |
let tileCtx = tileCanvas.getContext('2d'); | |
tileCtx.drawImage(img, 520,160,40,40, 0,0,40,40); | |
setTint(tileCanvas, options.floortiles.tint_color, options.floortiles.tint_opacity / 100); | |
ctx.drawImage(tileCanvas, 0,0,40,40, 0,0,40,40); | |
tileCanvas = null; | |
} else { | |
ctx.drawImage(img, 520,160,40,40, 0,0,40,40); | |
} | |
addExtras(); | |
img = null; | |
}; | |
img.crossOrigin = 'Anonymous'; | |
img.src = $('#tiles').val(); | |
} | |
}; | |
var updateBallPreviews = function() { | |
if (options.redball.modify) { | |
var redctx = $("#TPE_Red_Ball_Preview").get(0).getContext("2d"); | |
redctx.clearRect(0, 0, 40, 40); | |
drawBall2(redctx, 'redball'); | |
/* | |
$.Deferred().resolve() | |
.then(drawBall(redctx, 'redball')) | |
.then(drawOverlay(redctx, 'redball')) | |
.then(drawBorder(redctx, 'redball')) | |
.then(drawArc(redctx, 'redball')) | |
.then(drawStar(redctx, 'redball')) | |
.done(function() { | |
console.log('done'); | |
}); | |
*/ | |
/* | |
drawBall(redctx, 'redball'); | |
if (options.redball.shapes_overlay) drawOverlay(redctx, 'redball'); | |
if (options.redball.border_width > 0) drawBorder(redctx, 'redball'); | |
if (options.redball.shapes_arc) drawArc(redctx, 'redball'); | |
if (options.redball.shapes_star) drawStar(redctx, 'redball'); | |
*/ | |
} | |
if (options.blueball.modify) { | |
var bluectx = $("#TPE_Blue_Ball_Preview").get(0).getContext("2d"); | |
bluectx.clearRect(0, 0, 40, 40); | |
drawBall(bluectx, 'blueball'); | |
if (options.blueball.shapes_overlay) drawOverlay(bluectx, 'blueball'); | |
if (options.blueball.border_width > 0) drawBorder(bluectx, 'blueball'); | |
if (options.blueball.shapes_arc) drawArc(bluectx, 'blueball'); | |
if (options.blueball.shapes_star) drawStar(bluectx, 'blueball'); | |
} | |
}; | |
var updateAllPreviews = function() { | |
updateBGPreview(); | |
updateFloorImagePreview(); | |
updateFloorTilesPreview(); | |
updateBallPreviews(); | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
// Define the preset values... | |
/*-------------------------------------------------------------------------------*/ | |
var presets = { | |
all: { | |
containerId: ['TPE_MySavedOptions'], | |
presets: { | |
'None / Clear All': {}, | |
'20SD': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#8c8c8c","color2":"#464646"},"altSpawnShadow":{"modify":true},"modify_TP":{"modify":true,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":true,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":true,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"http://i.imgur.com/7taPBrC.png","speedpad":"http://i.imgur.com/6h2Fna8.png","speedpadRed":"http://i.imgur.com/pF4l9SO.png","speedpadBlue":"http://i.imgur.com/NlepAuW.png","portal":"http://i.imgur.com/f0HY7Tu.png","splats":"http://i.imgur.com/2kLd2Rn.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#282828","tint_opacity":"50","specks":false,"specks_color":"#969696","specks_length":"10","specks_width":"1","specks_angle":"180","specks_count":"20","specks_opacity":"14","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#454545","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"20","checkered_altTintColor":"#000000","checkered_altTintOpacity":"10","grids_square":true,"grids_square_size":"20","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"12","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":true,"grids_diagonal_size":"160","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"6","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#4a4a4a","gradient_opacity1":"50","gradient_opacity2":"50","gradient_type":"centerline","gradient_repeats":"2","grids_square_altColor":"#2d0059"},"shapes":{"centerline":true,"centerline_color":"#ffbe7d","centerline_width":"1","centerline_dashsize":"3","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"5","circle_radius":"150","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#800000","opacity":"15","brightness":"125","contrast":"120","sepia":"40","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"1","shadow_opacity":"50","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"15","boosts_yellow":true,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"10","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"125","flags_red_opacity":"35","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"125","flags_blue_opacity":"35","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"100","flags_yellow_opacity":"50","spikes":false,"spikes_color":"#ffffff","spikes_radius":"20","spikes_opacity":"100","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"50","bombs_opacity":"20","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"40"},"spikes":{"modify":true,"color":"#ff8877","opacity":"0","brightness":"100","contrast":"100","sepia":"100","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ffff80","shadow_opacity":"50"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"0","brightness":"100","contrast":"100","sepia":"72","shadow":true,"shadow_size":"0","shadow_blur":"2","shadow_color":"#e6ffff","shadow_opacity":"100"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#9d0000","blue_color":"#006cd9","yellow_color":"#ffff00","gradient":true,"pattern":true,"pattern_size":"8","pattern_margin":"5","pattern_blur":"0","pattern_red_color":"#ff0000","pattern_blue_color":"#0080ff","pattern_yellow_color":"#ffff00","pattern_opacity":"100","pattern_altsides":false,"border":false,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"90","contrast":"75","sepia":"20","opacity":"100","margin":"20","drawFloorUnderneath":true},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":true},"pups":{"shadow":true,"shadow_size":"3","shadow_blur":"2","shadow_color":"#000000","shadow_opacity":"70"},"redball":{"modify":true,"color":"#b70000","size":"16","opacity":"70","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":true,"color":"#0080ff","size":"16","opacity":"70","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#2b95ff","shapes_arc_color":"#414141","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'40SB': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#8c8c8c","color2":"#464646"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/ne0PP8e.png","speedpad":"/textures/crystal/speedpad.png","speedpadRed":"/textures/crystal/speedpadred.png","speedpadBlue":"/textures/crystal/speedpadblue.png","portal":"https://i.imgur.com/4W0sC4t.png","splats":"https://i.imgur.com/2kLd2Rn.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#bebebe","tint_opacity":"50","specks":true,"specks_color":"#969696","specks_length":"-80","specks_width":"3","specks_angle":"0","specks_count":"20","specks_opacity":"-10","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":false,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"4","grids_square":false,"grids_square_size":"40","grids_square_margin":"6","grids_square_color":"#000000","grids_square_linewidth":"2","grids_square_opacity":"15","grids_square_dashed":"0","grids_square_blur":"3","grids_diagonal":false,"grids_diagonal_size":"40","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#8fa28c","gradient_color2":"#ffffbf","gradient_opacity1":"50","gradient_opacity2":"33","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":true,"grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#400040","centerline_width":"1","centerline_dashsize":"4","centerline_opacity":"80","circle":false,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"16","circle_radius":"330","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"60","contrast":"100","sepia":"15","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"6","shadow_opacity":"50","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"25","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"25","boosts_yellow":false,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"30","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"125","flags_red_opacity":"35","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"125","flags_blue_opacity":"35","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"100","flags_yellow_opacity":"50","spikes":false,"spikes_color":"#0d0d0d","spikes_radius":"30","spikes_opacity":"15","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"50","bombs_opacity":"35","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"15"},"spikes":{"modify":true,"color":"#000000","opacity":"0","brightness":"30","contrast":"100","sepia":"0","shadow":true,"shadow_size":"1","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"40"},"bombs":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"1","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"50"},"gates":{"neutral":true,"neutral_fill":true,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":true,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"3","neutral_cross":true,"neutral_cross_color":"#000000","neutral_cross_opacity":"25","neutral_cross_linewidth":"1","neutral_cross_margin":"16","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0"},"team":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","yellow_color":"#ffff00","gradient":true,"border":true,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"100","contrast":"100","sepia":"0","opacity":"100","margin":"1"},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":true,"shadow_size":"1","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"50"},"redball":{"modify":false,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'80SC': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#8c8c8c","color2":"#464646"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/ivUVcRY.png","speedpad":"http://i.imgur.com/6h2Fna8.png","speedpadRed":"http://i.imgur.com/pF4l9SO.png","speedpadBlue":"http://i.imgur.com/NlepAuW.png","portal":"http://i.imgur.com/qpg0wCt.png","splats":"http://i.imgur.com/ABTYq4t.png","gravityWell":""},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#dbdbdb","tint_opacity":"50","specks":false,"specks_color":"#969696","specks_length":"10","specks_width":"1","specks_angle":"180","specks_count":"20","specks_opacity":"14","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#454545","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"80","checkered_altTintColor":"#000000","checkered_altTintOpacity":"5","grids_square":true,"grids_square_size":"80","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"35","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"160","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"10","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#aeaeae","gradient_color2":"#000000","gradient_opacity1":"17","gradient_opacity2":"40","gradient_type":"randomcircles","gradient_repeats":"100","grids_square_altSides":false,"grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#000000","centerline_width":"1","centerline_dashsize":"3","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"5","circle_radius":"150","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#000000","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"5","shadow_opacity":"81","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"15","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"15","boosts_yellow":false,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"10","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"35","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"35","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"20","spikes":false,"spikes_color":"#ffffff","spikes_radius":"20","spikes_opacity":"100","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"50","bombs_opacity":"20","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"20"},"spikes":{"modify":false,"color":"#000000","opacity":"100","brightness":"100","contrast":"100","sepia":"100","shadow":false,"shadow_size":"0","shadow_blur":"0","shadow_color":"#000000","shadow_opacity":"50"},"bombs":{"modify":false,"color":"#000000","opacity":"100","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"1","shadow_blur":"0","shadow_color":"#000000","shadow_opacity":"50"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0"},"team":{"modify":true,"red_color":"#ffaeae","blue_color":"#9d9dff","yellow_color":"#ffff95","gradient":false,"border":true,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"35","brightness":"75","contrast":"100","sepia":"0","opacity":"100","margin":"0"},"endzone":{"modify":false,"red_color":"#800000","blue_color":"#5959ff","opacity":"100","margin":"0","checkered":false,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":true,"stripes_size":"13","stripes_red_color":"#000000","stripes_blue_color":"#000000","border":false,"border_size":"38","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":false,"shadow_size":"3","shadow_blur":"2","shadow_color":"#000000","shadow_opacity":"70"},"redball":{"modify":false,"color":"#b70000","size":"16","opacity":"70","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"16","opacity":"70","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#2b95ff","shapes_arc_color":"#414141","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'400D': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"ellipse","gradient_preset":"red","color":"#000040","color1":"#554444","color2":"#552222"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"http://i.imgur.com/te3NexP.png","speedpad":"http://i.imgur.com/6h2Fna8.png","speedpadRed":"http://i.imgur.com/pF4l9SO.png","speedpadBlue":"http://i.imgur.com/NlepAuW.png","portal":"http://i.imgur.com/f0HY7Tu.png","splats":"http://i.imgur.com/2kLd2Rn.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"9","color":"#8080ff","opacity":"70","dashsize":"3","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#3e3e3e","tint_opacity":"50","specks":true,"specks_color":"#969696","specks_length":"-12","specks_width":"1","specks_angle":"45","specks_count":"4","specks_opacity":"6","image":false,"image_floor":false,"image_brightness":"63","image_contrast":"119","image_saturation":"100","image_opacity":"25","image_grayscale":"0","image_sepia":"65","image_huerotate":"245","image_blur":"0","image_walls":true,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#000000","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"160","checkered_altTintColor":"#000000","checkered_altTintOpacity":"8","grids_square":false,"grids_square_size":"36","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"20","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":true,"grids_diagonal_size":"400","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"30","grids_diagonal_dashed":"0","grids_diagonal_blur":"3","gradient":true,"gradient_color1":"#cccccc","gradient_color2":"#777777","gradient_opacity1":"25","gradient_opacity2":"25","gradient_type":"randomcircles","gradient_repeats":"60","grids_square_altColor":"#838383"},"shapes":{"centerline":true,"centerline_color":"#00ff00","centerline_width":"1","centerline_dashsize":"12","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"14","circle_radius":"400","circle_opacity":"50","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"1","octagon_radius":"160","octagon_opacity":"80","octagon_sides":"100","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#8080ff","opacity":"12","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"8","shadow_blur":"6","shadow_opacity":"100","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":true,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":true,"spikes_color":"#000000","spikes_radius":"18","spikes_opacity":"100","bombs":false,"bombs_color":"#ffff00","bombs_radius":"18","bombs_opacity":"70","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":false,"color":"#ff8877","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"0","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"20"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"1","shadow_color":"#ffff00","shadow_opacity":"60"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#ff6464","blue_color":"#42aeff","yellow_color":"#ffff00","gradient":true,"pattern":true,"pattern_size":"5","pattern_margin":"1","pattern_blur":"0","pattern_red_color":"#000000","pattern_blue_color":"#000000","pattern_yellow_color":"#000000","pattern_opacity":"20","pattern_altsides":false,"border":false,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"65","contrast":"80","sepia":"0","opacity":"100","margin":"0","drawFloorUnderneath":true},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":true},"pups":{"shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ffff80","shadow_opacity":"60"},"redball":{"modify":true,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":true,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Ball Glow:': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"ballglow":{"modify":true,"red_color":"#ff51a8","red_opacity":"100","blue_color":"#8080ff","blue_opacity":"100","radius":"60","below":true},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"color","stretch":true,"gradient_type":"team","gradient_preset":"blue","color":"#000000","color1":"#9696ab","color2":"#222255"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"/textures/coral/tiles.png","speedpad":"/textures/coral/speedpad.png","speedpadRed":"/textures/coral/speedpadred.png","speedpadBlue":"/textures/coral/speedpadblue.png","portal":"/textures/coral/portal.png","splats":"/textures/coral/splats.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#2c2c2c","tint_opacity":"0","random":false,"random_saturation":"15","random_brightness":"25","nofloor":false,"specks":false,"specks_color":"#969696","specks_length":"-80","specks_width":"3","specks_angle":"0","specks_count":"20","specks_opacity":"-10","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"40","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":true,"image_walls_brightness":"65","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"40","image_walls_grayscale":"0","image_walls_sepia":"82","image_walls_huerotate":"90","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":false,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"40","checkered_altTintColor":"#0080ff","checkered_altTintOpacity":"10","grids_square":false,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#ffff00","grids_square_linewidth":"1","grids_square_opacity":"100","grids_square_dashed":"0","grids_square_blur":"1","grids_square_altSides":false,"grids_diagonal":true,"grids_diagonal_size":"80","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"100","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#000000","gradient_color2":"#c0c0c0","gradient_opacity1":"35","gradient_opacity2":"75","gradient_type":"centerline","gradient_repeats":"2","grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#ffffff","centerline_width":"1","centerline_dashsize":"4","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"40","circle_radius":"350","circle_opacity":"50","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"20","octagon_radius":"300","octagon_opacity":"40","octagon_sides":"80","octagon_fillopacity":"18","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"60","contrast":"100","sepia":"15","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"3","shadow_opacity":"75","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"25","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"25","boosts_yellow":false,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"30","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"125","flags_red_opacity":"35","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"125","flags_blue_opacity":"35","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"100","flags_yellow_opacity":"50","spikes":true,"spikes_color":"#ffff80","spikes_radius":"19","spikes_opacity":"40","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"20","bombs_opacity":"75","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"15"},"spikes":{"modify":true,"color":"#ffff80","opacity":"10","brightness":"85","contrast":"100","sepia":"0","shadow":false,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff8040","shadow_opacity":"100"},"bombs":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff00ff","shadow_opacity":"50"},"gates":{"neutral":true,"neutral_fill":false,"neutral_fill_color":"#000000","neutral_fill_opacity":"30","neutral_fill_margin":"0","neutral_border":true,"neutral_border_color":"#4f4f4f","neutral_border_linewidth":"1","neutral_border_margin":"3","neutral_cross":true,"neutral_cross_color":"#5b5b5b","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"16","green":true,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"25","green_fill_margin":"1","green_border":true,"green_border_color":"#00ff00","green_border_linewidth":"2","green_border_margin":"2","green_cross":true,"green_cross_color":"#00ff00","green_cross_opacity":"100","green_cross_linewidth":"2","green_cross_margin":"10","red":true,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"25","red_fill_margin":"1","red_border":true,"red_border_color":"#ff0000","red_border_linewidth":"2","red_border_margin":"2","red_cross":true,"red_cross_color":"#ff0000","red_cross_opacity":"100","red_cross_linewidth":"2","red_cross_margin":"10","blue":true,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"25","blue_fill_margin":"1","blue_border":true,"blue_border_color":"#0080ff","blue_border_linewidth":"2","blue_border_margin":"2","blue_cross":true,"blue_cross_color":"#0080ff","blue_cross_opacity":"100","blue_cross_linewidth":"2","blue_cross_margin":"10","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#530000","blue_color":"#002953","yellow_color":"#7d7d00","gradient":false,"pattern":true,"pattern_size":"4","pattern_margin":"2","pattern_blur":"0","pattern_red_color":"#000000","pattern_blue_color":"#000000","pattern_yellow_color":"#000000","pattern_opacity":"30","pattern_altsides":false,"border":false,"border_size":"8","border_linewidth":"1","border_red_color":"#ff0000","border_blue_color":"#0080ff","border_yellow_color":"#000000","border_opacity":"100","brightness":"100","contrast":"100","sepia":"0","opacity":"100","margin":"2","drawFloorUnderneath":false},"endzone":{"modify":true,"red_color":"#ff4040","blue_color":"#0080ff","opacity":"30","margin":"2","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":true,"stripes_size":"10","stripes_red_color":"#ff0000","stripes_blue_color":"#0080ff","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","border_count":"1","drawFloorUnderneath":false},"pups":{"shadow":true,"shadow_size":"1","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"50"},"redball":{"modify":false,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Hex': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":true,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"blue","color":"#000040","color1":"#444455","color2":"#222255"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":true,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":true,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":true,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"http://i.imgur.com/nhqtmd3.png","speedpad":"http://i.imgur.com/6h2Fna8.png","speedpadRed":"http://i.imgur.com/pF4l9SO.png","speedpadBlue":"http://i.imgur.com/NlepAuW.png","portal":"http://i.imgur.com/qpg0wCt.png","splats":"http://i.imgur.com/ABTYq4t.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#191919","tint_opacity":"50","specks":true,"specks_color":"#ffffff","specks_length":"1","specks_width":"1","specks_angle":"1","specks_count":"30","specks_opacity":"-35","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":true,"hexagons_size":"100","hexagons_linewidth":"1","hexagons_margin":"2","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ffffff","hexagons_stroke_opacity":"15","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#ffffff","hexagons_fill_opacity":"1","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"40","checkered_altTintColor":"#80ff00","checkered_altTintOpacity":"8","grids_square":false,"grids_square_size":"36","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"20","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":false,"grids_diagonal_size":"40","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#202020","gradient_color2":"#585858","gradient_opacity1":"34","gradient_opacity2":"40","gradient_type":"centerline","gradient_repeats":"2","grids_square_altColor":"#838383"},"shapes":{"centerline":true,"centerline_color":"#00ff00","centerline_width":"1","centerline_dashsize":"12","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"16","circle_radius":"330","circle_opacity":"50","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"5","octagon_radius":"120","octagon_opacity":"40","octagon_sides":"10","octagon_fillopacity":"5","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#000000","opacity":"0","brightness":"66","contrast":"115","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"5","shadow_blur":"4","shadow_opacity":"80","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":true,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":true,"spikes_color":"#bbbbbb","spikes_radius":"30","spikes_opacity":"18","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"30","bombs_opacity":"20","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":false,"color":"#ffffff","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"14"},"bombs":{"modify":true,"color":"#ff5bff","opacity":"8","brightness":"110","contrast":"115","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"2","shadow_color":"#9f9f9f","shadow_opacity":"60"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#d50000","blue_color":"#0080c0","yellow_color":"#ffff00","gradient":true,"pattern":true,"pattern_size":"2","pattern_margin":"1","pattern_blur":"0","pattern_red_color":"#000000","pattern_blue_color":"#000000","pattern_yellow_color":"#000000","pattern_opacity":"50","pattern_altsides":false,"border":false,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"90","contrast":"140","sepia":"30","opacity":"100","margin":"1","drawFloorUnderneath":true},"endzone":{"modify":true,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"50","margin":"1","checkered":true,"checkered_size":"13","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"16","stripes_red_color":"#bcbcbc","stripes_blue_color":"#bcbcbc","border":false,"border_size":"24","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":true},"pups":{"shadow":false,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"70"},"redball":{"modify":false,"color":"#ca0000","size":"18","opacity":"100","gradient":false,"gradient_color":"#550000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"1","border_segments":"0","shapes_arc":true,"shapes_arc_width":"7","shapes_arc_position":"3","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"8","shapes_star_spikes":"6","shapes_star_inner":"6","shapes_star_outer":"1","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#000000","border_color":"#fdfdfd","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#333333","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_arc_color":"#333333"},"blueball":{"modify":false,"color":"#0079f2","size":"18","opacity":"100","gradient":false,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"1","border_segments":"0","shapes_arc":true,"shapes_arc_width":"7","shapes_arc_position":"3","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"8","shapes_star_spikes":"6","shapes_star_inner":"6","shapes_star_outer":"1","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#000000","border_color":"#fdfdfd","shapes_arc_color":"#aaaaaa","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#aaaaaa","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_overlay_type":"earth1"}}, | |
'Nebula': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#3b3b3b","color2":"#090909"},"altSpawnShadow":{"modify":true},"modify_TP":{"modify":true,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#97ff97","fill_opacity":"10"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"50"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/pc69rcO.png","speedpad":"/textures/crystal/speedpad.png","speedpadRed":"/textures/crystal/speedpadred.png","speedpadBlue":"/textures/crystal/speedpadblue.png","portal":"https://i.imgur.com/H1e5f5X.png","splats":"https://i.imgur.com/nRbpdju.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#000000","tint_opacity":"100","specks":true,"specks_color":"#969696","specks_length":"1","specks_width":"1","specks_angle":"1","specks_count":"33","specks_opacity":"-75","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":true,"hexagons_size":"400","hexagons_linewidth":"0","hexagons_margin":"5","hexagons_blur":"6","hexagons_stroke":false,"hexagons_stroke_color":"#ffffff","hexagons_stroke_opacity":"100","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#0c0c0c","hexagons_fill_opacity":"50","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"240","checkered_altTintColor":"#80ff00","checkered_altTintOpacity":"8","grids_square":false,"grids_square_size":"160","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"20","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"400","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"15","grids_diagonal_dashed":"50","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#400080","gradient_color2":"#530000","gradient_opacity1":"35","gradient_opacity2":"40","gradient_type":"centercircle","gradient_repeats":"14","grids_square_altSides":false,"grids_square_altColor":"#838383"},"shapes":{"centerline":true,"centerline_color":"#ffff00","centerline_width":"2","centerline_dashsize":"20","centerline_opacity":"65","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"25","circle_radius":"300","circle_opacity":"30","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"1","octagon_radius":"284","octagon_opacity":"50","octagon_sides":"100","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#8080c0","opacity":"10","brightness":"130","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#8000ff","shadow_size":"0","shadow_blur":"13","shadow_opacity":"13","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"60","boosts_red_opacity":"35","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"60","boosts_blue_opacity":"35","boosts_yellow":true,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"60","boosts_yellow_opacity":"35","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"400","flags_red_opacity":"33","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"400","flags_blue_opacity":"33","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"400","flags_yellow_opacity":"25","spikes":true,"spikes_color":"#bbbbbb","spikes_radius":"150","spikes_opacity":"20","bombs":true,"bombs_color":"#ff88ff","bombs_radius":"60","bombs_opacity":"35","pups":true,"pups_color":"#ff7700","pups_radius":"50","pups_opacity":"40"},"spikes":{"modify":false,"color":"#ff8877","opacity":"0","brightness":"135","contrast":"124","sepia":"0","shadow":false,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"bombs":{"modify":false,"color":"#bb00bb","opacity":"20","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"team":{"modify":true,"red_color":"#800000","blue_color":"#006ad5","yellow_color":"#ffff00","gradient":true,"border":true,"border_size":"4","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"125","contrast":"100","sepia":"0","opacity":"50","margin":"5"},"endzone":{"modify":true,"red_color":"#ae0000","blue_color":"#0000c4","opacity":"100","margin":"0","checkered":true,"checkered_size":"10","checkered_alt_red_color":"#910000","checkered_alt_blue_color":"#000091","stripes":false,"stripes_size":"40","stripes_red_color":"#dddddd","stripes_blue_color":"#dddddd","border":false,"border_size":"40","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"redball":{"modify":true,"color":"#ff0000","size":"10","opacity":"100","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"6","shapes_arc":true,"shapes_arc_width":"3","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"3","shapes_star_spikes":"6","shapes_star_inner":"2","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#800000"},"blueball":{"modify":true,"color":"#0080ff","size":"10","opacity":"100","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"6","shapes_arc":true,"shapes_arc_width":"3","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"3","shapes_star_spikes":"6","shapes_star_inner":"2","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#0052a4","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Circles': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"none","stretch":true,"gradient_type":"ellipse","gradient_preset":"dark","color":"#000040","color1":"#222222","color2":"#090909"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#80ff80","line_opacity":"100","line_width":"1","line_radius":"20","fill_color":"#80ff80","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"50","line_width":"1","line_radius":"19","fill_color":"#ffff00","fill_opacity":"75","speed":"60"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"/textures/classic/tiles.png","speedpad":"https://i.imgur.com/IB95nd5.png","speedpadRed":"https://i.imgur.com/8RgHd1Y.png","speedpadBlue":"https://i.imgur.com/VbjTWFF.png","portal":"https://i.imgur.com/H1e5f5X.png","splats":"http://i.imgur.com/2kLd2Rn.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#121212","tint_opacity":"60","specks":false,"specks_color":"#969696","specks_length":"1","specks_width":"1","specks_angle":"0","specks_count":"25","specks_opacity":"0","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"100","hexagons_linewidth":"1","hexagons_margin":"1","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#c1c1c1","hexagons_stroke_opacity":"50","hexagons_stroke_gradient":"20","hexagons_fill":false,"hexagons_fill_color":"#2a2a2a","hexagons_fill_opacity":"40","hexagons_fill_gradient":"31","checkered":false,"checkered_size":"40","checkered_altTintColor":"#ffffff","checkered_altTintOpacity":"1","grids_square":true,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"12","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"10","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"9","grids_diagonal_dashed":"2","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#7dbeff","gradient_color2":"#001428","gradient_opacity1":"50","gradient_opacity2":"40","gradient_type":"centercircle","gradient_repeats":"6","grids_square_altSides":false,"grids_square_altColor":"#838383"},"shapes":{"centerline":false,"centerline_color":"#ffff00","centerline_width":"1","centerline_dashsize":"12","centerline_opacity":"80","circle":true,"circle_red_color":"#ffffff","circle_blue_color":"#ffffff","circle_yellow_color":"#ffff00","circle_width":"20","circle_radius":"280","circle_opacity":"30","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#020202","opacity":"0","brightness":"80","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"5","shadow_blur":"4","shadow_opacity":"100","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":true,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":true,"spikes_color":"#bbbbbb","spikes_radius":"17","spikes_opacity":"75","bombs":false,"bombs_color":"#fda2ef","bombs_radius":"21","bombs_opacity":"50","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":true,"color":"#ff8877","opacity":"0","brightness":"125","contrast":"100","sepia":"32","shadow":false,"shadow_size":"0","shadow_blur":"0","shadow_color":"#000000","shadow_opacity":"60"},"bombs":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"125","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff80ff","shadow_opacity":"60"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0"},"team":{"modify":true,"red_color":"#d50000","blue_color":"#4040ff","yellow_color":"#ffff00","gradient":false,"border":true,"border_size":"5","border_red_color":"#ffffff","border_blue_color":"#fffffb","border_yellow_color":"#000000","border_opacity":"10","brightness":"75","contrast":"100","sepia":"20","opacity":"100","margin":"1"},"endzone":{"modify":true,"red_color":"#ff0000","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":false,"checkered_size":"10","checkered_alt_red_color":"#800000","checkered_alt_blue_color":"#ffffff","stripes":true,"stripes_size":"8","stripes_red_color":"#b4b4b4","stripes_blue_color":"#b4b4b4","border":false,"border_size":"10","border_linewidth":"1","border_red_color":"#ffffff","border_blue_color":"#000000","border_opacity":"100"},"pups":{"shadow":true,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"70"},"redball":{"modify":true,"color":"#b70000","size":"14","opacity":"65","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffc6c6","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":true,"color":"#0080ff","size":"14","opacity":"65","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#bfdfff","border_color":"#2b95ff","shapes_arc_color":"#000000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Pretty': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"75"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"none","stretch":true,"gradient_type":"circle","gradient_preset":"blue","color":"#000040","color1":"#222222","color2":"#090909"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"19","fill_color":"#00ff00","fill_opacity":"15"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"0","line_width":"0","line_radius":"19","fill_color":"#ffff00","fill_opacity":"75","speed":"150"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"8","y":"32","radius":"5"},"textures":{"tiles":"http://i.imgur.com/WA1lpvM.png","speedpad":"http://i.imgur.com/6h2Fna8.png","speedpadRed":"http://i.imgur.com/pF4l9SO.png","speedpadBlue":"http://i.imgur.com/NlepAuW.png","portal":"https://i.imgur.com/f0HY7Tu.png","splats":"https://i.imgur.com/nRbpdju.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":false,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":false,"plain":false,"tint_color":"#000000","tint_opacity":"0","specks":false,"specks_color":"#000000","specks_length":"1","specks_width":"1","specks_angle":"45","specks_count":"50","specks_opacity":"0","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"2","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ffffff","hexagons_stroke_opacity":"25","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#ffffff","hexagons_fill_opacity":"25","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"4","grids_square":false,"grids_square_size":"80","grids_square_margin":"0","grids_square_color":"#777777","grids_square_linewidth":"1","grids_square_opacity":"50","grids_square_dashed":"0","grids_square_blur":"1","grids_square_altSides":true,"grids_diagonal":false,"grids_diagonal_size":"80","grids_diagonal_color":"#000000","grids_diagonal_opacity":"50","grids_diagonal_dashed":"0","grids_diagonal_blur":"2","gradient":true,"gradient_color1":"#000000","gradient_color2":"#b7b7b7","gradient_opacity1":"50","gradient_opacity2":"50","gradient_type":"centerline","gradient_repeats":"2","grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#004080","centerline_width":"2","centerline_dashsize":"5","centerline_opacity":"100","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff80","circle_width":"20","circle_radius":"250","circle_opacity":"80","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff80","octagon_width":"6","octagon_radius":"80","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff80","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#00ffff","opacity":"5","brightness":"200","contrast":"115","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"6","shadow_blur":"2","shadow_opacity":"75","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":false,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":false,"spikes_color":"#bbbbbb","spikes_radius":"30","spikes_opacity":"15","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"30","bombs_opacity":"20","pups":false,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":true,"color":"#ff8877","opacity":"20","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"69"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"20","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#ff4040","blue_color":"#0065ca","yellow_color":"#ffff00","gradient":true,"pattern":true,"pattern_size":"5","pattern_margin":"1","pattern_blur":"0","pattern_red_color":"#000000","pattern_blue_color":"#000000","pattern_yellow_color":"#000000","pattern_opacity":"12","pattern_altsides":false,"border":false,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"100","contrast":"75","sepia":"0","opacity":"100","margin":"0","drawFloorUnderneath":true},"endzone":{"modify":true,"red_color":"#d50000","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"10","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":true},"pups":{"shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"redball":{"modify":false,"color":"#ff0000","size":"19","opacity":"100","gradient":false,"gradient_color":"#000000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"0","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"14","shapes_arc_size":"4","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"4","shapes_star_inner":"5","shapes_star_outer":"12","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#000000","border_alt_color":"#000000","shapes_arc_color":"#000000","shapes_arc_transparent":true,"shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#000000","shapes_overlay_type":"earth1","shapes_overlay_base64":""},"blueball":{"modify":false,"color":"#0080ff","size":"19","opacity":"100","gradient":false,"gradient_color":"#000000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"0","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"14","shapes_arc_size":"4","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"4","shapes_star_inner":"5","shapes_star_outer":"12","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#000000","border_alt_color":"#000000","shapes_arc_color":"#000000","shapes_arc_transparent":true,"shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#000000","shapes_overlay_type":"earth1","shapes_overlay_base64":""}}, | |
'RFC': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"ballglow":{"modify":false,"red_color":"#ff0000","red_opacity":"60","blue_color":"#2591ff","blue_opacity":"70","radius":"60","below":false},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"red","color":"#000040","color1":"#554444","color2":"#552222"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/pFDIEYB.png","speedpad":"http://i.imgur.com/6h2Fna8.png","speedpadRed":"http://i.imgur.com/pF4l9SO.png","speedpadBlue":"http://i.imgur.com/NlepAuW.png","portal":"https://i.imgur.com/4W0sC4t.png","splats":"https://i.imgur.com/2kLd2Rn.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#333333","tint_opacity":"0","random":true,"random_saturation":"25","random_brightness":"25","nofloor":false,"specks":false,"specks_color":"#969696","specks_length":"-80","specks_width":"3","specks_angle":"0","specks_count":"20","specks_opacity":"-10","image":false,"image_floor":true,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"30","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"1","image_walls":true,"image_walls_brightness":"65","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"40","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"1","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":false,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"10","grids_square":true,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"8","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":false,"grids_diagonal_size":"120","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#595959","gradient_color2":"#000000","gradient_opacity1":"39","gradient_opacity2":"49","gradient_type":"centercircle","gradient_repeats":"2","grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#80ff00","centerline_width":"1","centerline_dashsize":"14","centerline_opacity":"65","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"20","circle_radius":"350","circle_opacity":"50","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"4","octagon_radius":"332","octagon_opacity":"40","octagon_sides":"80","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"60","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"3","shadow_opacity":"40","shadow_include_gates":false},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"25","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"25","boosts_yellow":false,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"30","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"125","flags_red_opacity":"35","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"125","flags_blue_opacity":"35","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"100","flags_yellow_opacity":"50","spikes":false,"spikes_color":"#ffffff","spikes_radius":"20","spikes_opacity":"100","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"20","bombs_opacity":"75","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"15"},"spikes":{"modify":true,"color":"#8000ff","opacity":"5","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"50"},"bombs":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"50"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#000000","neutral_fill_opacity":"30","neutral_fill_margin":"0","neutral_border":true,"neutral_border_color":"#8b8b8b","neutral_border_linewidth":"1","neutral_border_margin":"3","neutral_cross":true,"neutral_cross_color":"#5b5b5b","neutral_cross_opacity":"25","neutral_cross_linewidth":"1","neutral_cross_margin":"16","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"25","green_fill_margin":"1","green_border":true,"green_border_color":"#00ff00","green_border_linewidth":"2","green_border_margin":"2","green_cross":true,"green_cross_color":"#00ff00","green_cross_opacity":"100","green_cross_linewidth":"2","green_cross_margin":"10","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"25","red_fill_margin":"1","red_border":true,"red_border_color":"#ff0000","red_border_linewidth":"2","red_border_margin":"2","red_cross":true,"red_cross_color":"#ff0000","red_cross_opacity":"100","red_cross_linewidth":"2","red_cross_margin":"10","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"25","blue_fill_margin":"1","blue_border":true,"blue_border_color":"#0080ff","blue_border_linewidth":"2","blue_border_margin":"2","blue_cross":true,"blue_cross_color":"#0080ff","blue_cross_opacity":"100","blue_cross_linewidth":"2","blue_cross_margin":"10","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#ff0000","blue_color":"#0080ff","yellow_color":"#ffff00","gradient":false,"pattern":true,"pattern_size":"4","pattern_margin":"3","pattern_blur":"0","pattern_red_color":"#ff0000","pattern_blue_color":"#0080ff","pattern_yellow_color":"#ffff00","pattern_opacity":"100","pattern_altsides":false,"border":false,"border_size":"8","border_linewidth":"1","border_red_color":"#ff0000","border_blue_color":"#0080ff","border_yellow_color":"#000000","border_opacity":"100","brightness":"65","contrast":"50","sepia":"0","opacity":"100","margin":"18","drawFloorUnderneath":true},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","border_count":"1","drawFloorUnderneath":true},"pups":{"shadow":true,"shadow_size":"2","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"50"},"redball":{"modify":false,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'White': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#3b3b3b","color2":"#090909"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":true,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#97ff97","fill_opacity":"10"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"50"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"http://i.imgur.com/7taPBrC.png","speedpad":"https://i.imgur.com/XGbQS0m.png","speedpadRed":"https://i.imgur.com/7ezs4BA.png","speedpadBlue":"https://i.imgur.com/rVFx0HE.png","portal":"https://i.imgur.com/f0HY7Tu.png","splats":"https://i.imgur.com/nRbpdju.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#ffffff","tint_opacity":"100","specks":false,"specks_color":"#969696","specks_length":"1","specks_width":"1","specks_angle":"1","specks_count":"33","specks_opacity":"-75","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"400","hexagons_linewidth":"0","hexagons_margin":"5","hexagons_blur":"3","hexagons_stroke":true,"hexagons_stroke_color":"#b9b9b9","hexagons_stroke_opacity":"100","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#0c0c0c","hexagons_fill_opacity":"50","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"240","checkered_altTintColor":"#80ff00","checkered_altTintOpacity":"8","grids_square":false,"grids_square_size":"60","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"100","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":false,"grids_diagonal_size":"115","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"35","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#ffffff","gradient_color2":"#b4b4b4","gradient_opacity1":"35","gradient_opacity2":"16","gradient_type":"centerline","gradient_repeats":"6","grids_square_altColor":"#838383"},"shapes":{"centerline":true,"centerline_color":"#ffff00","centerline_width":"10","centerline_dashsize":"0","centerline_opacity":"65","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"16","circle_radius":"320","circle_opacity":"80","circle_gradient":false,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#c0c0c0","opacity":"50","brightness":"180","contrast":"170","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"0","shadow_blur":"10","shadow_opacity":"100","shadow_include_gates":false},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"70","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"70","boosts_blue_opacity":"15","boosts_yellow":true,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"70","boosts_yellow_opacity":"30","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"300","flags_red_opacity":"100","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"300","flags_blue_opacity":"100","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"280","flags_yellow_opacity":"100","spikes":false,"spikes_color":"#bbbbbb","spikes_radius":"150","spikes_opacity":"20","bombs":false,"bombs_color":"#ff88ff","bombs_radius":"60","bombs_opacity":"35","pups":true,"pups_color":"#ff7700","pups_radius":"50","pups_opacity":"20"},"spikes":{"modify":false,"color":"#ff8877","opacity":"20","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"bombs":{"modify":false,"color":"#bb00bb","opacity":"20","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"gates":{"neutral":true,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":true,"neutral_border_color":"#cacaca","neutral_border_linewidth":"2","neutral_border_margin":"2","neutral_cross":true,"neutral_cross_color":"#000000","neutral_cross_opacity":"30","neutral_cross_linewidth":"1","neutral_cross_margin":"15","green":true,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":true,"green_border_color":"#00ff00","green_border_linewidth":"2","green_border_margin":"2","green_cross":true,"green_cross_color":"#00ff00","green_cross_opacity":"100","green_cross_linewidth":"3","green_cross_margin":"6","red":true,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":true,"red_border_color":"#ff0000","red_border_linewidth":"2","red_border_margin":"2","red_cross":true,"red_cross_color":"#ff0000","red_cross_opacity":"100","red_cross_linewidth":"3","red_cross_margin":"6","blue":true,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":true,"blue_border_color":"#0000ff","blue_border_linewidth":"2","blue_border_margin":"2","blue_cross":true,"blue_cross_color":"#0000ff","blue_cross_opacity":"100","blue_cross_linewidth":"3","blue_cross_margin":"6","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#970000","blue_color":"#2828ff","yellow_color":"#ff8040","gradient":false,"pattern":true,"pattern_size":"4","pattern_margin":"2","pattern_blur":"0","pattern_red_color":"#ff0000","pattern_blue_color":"#0000ff","pattern_yellow_color":"#ff8040","pattern_opacity":"100","pattern_altsides":false,"border":false,"border_size":"40","border_red_color":"#ffffff","border_blue_color":"#ffffff","border_yellow_color":"#000000","border_opacity":"100","brightness":"125","contrast":"100","sepia":"0","opacity":"80","margin":"20","drawFloorUnderneath":true},"endzone":{"modify":true,"red_color":"#ae0000","blue_color":"#0000c4","opacity":"100","margin":"2","checkered":false,"checkered_size":"8","checkered_alt_red_color":"#910000","checkered_alt_blue_color":"#000091","stripes":true,"stripes_size":"8","stripes_red_color":"#9b9b9b","stripes_blue_color":"#9b9b9b","border":false,"border_size":"10","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":true},"pups":{"shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"redball":{"modify":false,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Wow': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"75"},"sbpl":{"modify":true,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"blue","color":"#595959","color1":"#444455","color2":"#222255"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"19","fill_color":"#00ff00","fill_opacity":"15"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"0","line_width":"0","line_radius":"19","fill_color":"#ffff00","fill_opacity":"75","speed":"150"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"8","y":"32","radius":"5"},"textures":{"tiles":"http://i.imgur.com/nhqtmd3.png","speedpad":"https://i.imgur.com/vpIJqki.png","speedpadRed":"https://i.imgur.com/NKGU9NY.png","speedpadBlue":"https://i.imgur.com/seLHQQs.png","portal":"/textures/element/portal.png","splats":"/textures/circlejerk/splats.png","gravityWell":"/textures/classic/gravitywell.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":false,"plain":false,"tint_color":"#000000","tint_opacity":"65","specks":false,"specks_color":"#ffffff","specks_length":"1","specks_width":"1","specks_angle":"0","specks_count":"15","specks_opacity":"-40","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"80","hexagons_linewidth":"1","hexagons_margin":"0","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ffffff","hexagons_stroke_opacity":"5","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#ffffff","hexagons_fill_opacity":"25","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"10","grids_square":true,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"2","grids_square_opacity":"30","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"120","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"10","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#808080","gradient_opacity1":"30","gradient_opacity2":"20","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":true,"grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#ffff80","centerline_width":"1","centerline_dashsize":"5","centerline_opacity":"100","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff80","circle_width":"15","circle_radius":"265","circle_opacity":"50","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff80","octagon_width":"2","octagon_radius":"254","octagon_opacity":"50","octagon_sides":"100","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff80","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#ffff80","opacity":"0","brightness":"85","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"6","shadow_blur":"10","shadow_opacity":"100","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":false,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":false,"spikes_color":"#bbbbbb","spikes_radius":"30","spikes_opacity":"15","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"30","bombs_opacity":"20","pups":false,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":true,"color":"#808000","opacity":"40","brightness":"90","contrast":"100","sepia":"52","shadow":false,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"10","brightness":"115","contrast":"100","sepia":"0","shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"51"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","neutral_border_linewidth":"","green_border_linewidth":"","red_border_linewidth":"","blue_border_linewidth":""},"team":{"modify":true,"red_color":"#ff4040","blue_color":"#0065ca","yellow_color":"#ffff00","gradient":true,"border":false,"border_size":"6","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"20","brightness":"100","contrast":"100","sepia":"0","opacity":"60","margin":"1"},"endzone":{"modify":true,"red_color":"#d50000","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":false,"checkered_size":"10","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":true,"stripes_size":"5","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"30","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":false,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"redball":{"modify":false,"color":"#ff0000","size":"19","opacity":"100","gradient":false,"gradient_color":"#000000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"0","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"14","shapes_arc_size":"4","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"4","shapes_star_inner":"5","shapes_star_outer":"12","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#000000","border_alt_color":"#000000","shapes_arc_color":"#000000","shapes_arc_transparent":true,"shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#000000","shapes_overlay_type":"earth1","shapes_overlay_base64":""},"blueball":{"modify":false,"color":"#0080ff","size":"19","opacity":"100","gradient":false,"gradient_color":"#000000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"0","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"14","shapes_arc_size":"4","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"4","shapes_star_inner":"5","shapes_star_outer":"12","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#000000","border_alt_color":"#000000","shapes_arc_color":"#000000","shapes_arc_transparent":true,"shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#000000","shapes_overlay_type":"earth1","shapes_overlay_base64":""}}, | |
'Whix': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"blue","color":"#000040","color1":"#9696ab","color2":"#222255"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/ne0PP8e.png","speedpad":"/textures/crystal/speedpad.png","speedpadRed":"/textures/crystal/speedpadred.png","speedpadBlue":"/textures/crystal/speedpadblue.png","portal":"https://i.imgur.com/4W0sC4t.png","splats":"https://i.imgur.com/2kLd2Rn.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":false,"tint_color":"#838383","tint_opacity":"0","specks":false,"specks_color":"#969696","specks_length":"-80","specks_width":"3","specks_angle":"0","specks_count":"20","specks_opacity":"-10","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"40","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":true,"image_walls_brightness":"65","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"40","image_walls_grayscale":"0","image_walls_sepia":"82","image_walls_huerotate":"90","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":false,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"40","checkered_altTintColor":"#0080ff","checkered_altTintOpacity":"6","grids_square":false,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"32","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":false,"grids_diagonal_size":"40","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#000000","gradient_color2":"#c0c0c0","gradient_opacity1":"35","gradient_opacity2":"75","gradient_type":"centerline","gradient_repeats":"2","grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#400040","centerline_width":"1","centerline_dashsize":"4","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"20","circle_radius":"350","circle_opacity":"50","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"4","octagon_radius":"332","octagon_opacity":"40","octagon_sides":"80","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"60","contrast":"100","sepia":"15","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"3","shadow_opacity":"50","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"25","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"25","boosts_yellow":false,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"30","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"125","flags_red_opacity":"35","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"125","flags_blue_opacity":"35","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"100","flags_yellow_opacity":"50","spikes":true,"spikes_color":"#ffffff","spikes_radius":"20","spikes_opacity":"100","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"20","bombs_opacity":"75","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"15"},"spikes":{"modify":true,"color":"#000000","opacity":"0","brightness":"30","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"59"},"bombs":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff00ff","shadow_opacity":"50"},"gates":{"neutral":true,"neutral_fill":false,"neutral_fill_color":"#000000","neutral_fill_opacity":"30","neutral_fill_margin":"0","neutral_border":true,"neutral_border_color":"#4f4f4f","neutral_border_linewidth":"1","neutral_border_margin":"3","neutral_cross":true,"neutral_cross_color":"#5b5b5b","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"16","green":true,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"25","green_fill_margin":"1","green_border":true,"green_border_color":"#00ff00","green_border_linewidth":"2","green_border_margin":"2","green_cross":true,"green_cross_color":"#00ff00","green_cross_opacity":"100","green_cross_linewidth":"2","green_cross_margin":"10","red":true,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"25","red_fill_margin":"1","red_border":true,"red_border_color":"#ff0000","red_border_linewidth":"2","red_border_margin":"2","red_cross":true,"red_cross_color":"#ff0000","red_cross_opacity":"100","red_cross_linewidth":"2","red_cross_margin":"10","blue":true,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"25","blue_fill_margin":"1","blue_border":true,"blue_border_color":"#0080ff","blue_border_linewidth":"2","blue_border_margin":"2","blue_cross":true,"blue_cross_color":"#0080ff","blue_cross_opacity":"100","blue_cross_linewidth":"2","blue_cross_margin":"10","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#ff0000","blue_color":"#0000ff","yellow_color":"#ffff00","gradient":false,"pattern":false,"pattern_size":"5","pattern_margin":"2","pattern_blur":"0","pattern_red_color":"#000000","pattern_blue_color":"#000000","pattern_yellow_color":"#000000","pattern_opacity":"40","pattern_altsides":false,"border":false,"border_size":"8","border_red_color":"#ff0000","border_blue_color":"#0080ff","border_yellow_color":"#000000","border_opacity":"100","brightness":"100","contrast":"100","sepia":"0","opacity":"20","margin":"2","drawFloorUnderneath":true},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":true},"pups":{"shadow":true,"shadow_size":"1","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"50"},"redball":{"modify":false,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Coral+': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#8c8c8c","color2":"#464646"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"/textures/coral/tiles.png","speedpad":"/textures/coral/speedpad.png","speedpadRed":"/textures/coral/speedpadred.png","speedpadBlue":"/textures/coral/speedpadblue.png","portal":"/textures/coral/portal.png","splats":"/textures/coral/splats.png","gravityWell":"/textures/flat/gravitywell.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#000000","tint_opacity":"50","specks":true,"specks_color":"#ffffff","specks_length":"1","specks_width":"1","specks_angle":"180","specks_count":"29","specks_opacity":"-58","image":false,"image_floor":true,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":true,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"100","hexagons_linewidth":"10","hexagons_margin":"1","hexagons_blur":"1","hexagons_stroke":true,"hexagons_stroke_color":"#c3c3c3","hexagons_stroke_opacity":"6","hexagons_stroke_gradient":"50","hexagons_fill":true,"hexagons_fill_color":"#ffff80","hexagons_fill_opacity":"10","hexagons_fill_gradient":"97","checkered":false,"checkered_size":"40","checkered_altTintColor":"#a7a7a7","checkered_altTintOpacity":"3","grids_square":true,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"10","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":true,"grids_diagonal_size":"160","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"10","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#00b92f","gradient_opacity1":"100","gradient_opacity2":"15","gradient_type":"randomcircles","gradient_repeats":"60","grids_square_altColor":"#2d0059"},"shapes":{"centerline":true,"centerline_color":"#00ff00","centerline_width":"1","centerline_dashsize":"3","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"6","circle_radius":"165","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#800000","opacity":"0","brightness":"125","contrast":"120","sepia":"40","shadow":true,"shadow_color":"#80ff80","shadow_size":"0","shadow_blur":"6","shadow_opacity":"55","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"15","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"15","boosts_yellow":false,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"10","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"35","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"35","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"20","spikes":false,"spikes_color":"#ffffff","spikes_radius":"20","spikes_opacity":"100","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"50","bombs_opacity":"20","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"20"},"spikes":{"modify":true,"color":"#ff8877","opacity":"0","brightness":"100","contrast":"100","sepia":"100","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ffff80","shadow_opacity":"50"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"0","brightness":"100","contrast":"100","sepia":"72","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ffff80","shadow_opacity":"65"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","drawFloorUnderneath":true},"team":{"modify":true,"red_color":"#d20000","blue_color":"#3e3eff","yellow_color":"#ffff00","gradient":false,"pattern":true,"pattern_size":"5","pattern_margin":"4","pattern_blur":"0","pattern_red_color":"#000000","pattern_blue_color":"#000000","pattern_yellow_color":"#000000","pattern_opacity":"55","pattern_altsides":false,"border":false,"border_size":"30","border_red_color":"#000000","border_blue_color":"#535353","border_yellow_color":"#000000","border_opacity":"23","brightness":"90","contrast":"75","sepia":"0","opacity":"75","margin":"1","drawFloorUnderneath":true},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":true},"pups":{"shadow":false,"shadow_size":"3","shadow_blur":"2","shadow_color":"#000000","shadow_opacity":"70"},"redball":{"modify":false,"color":"#b70000","size":"16","opacity":"70","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"16","opacity":"70","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#2b95ff","shapes_arc_color":"#414141","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Flat+': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#8c8c8c","color2":"#464646"},"altSpawnShadow":{"modify":true},"modify_TP":{"modify":true,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"/textures/flat/tiles.png","speedpad":"/textures/flat/speedpad.png","speedpadRed":"/textures/flat/speedpadred.png","speedpadBlue":"/textures/flat/speedpadblue.png","portal":"/textures/flat/portal.png","splats":"/textures/flat/splats.png","gravityWell":"/textures/flat/gravitywell.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":false,"plain":false,"tint_color":"#bebebe","tint_opacity":"50","specks":false,"specks_color":"#000000","specks_length":"-50","specks_width":"1","specks_angle":"180","specks_count":"15","specks_opacity":"4","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"4","grids_square":false,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"13","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":false,"grids_diagonal":false,"grids_diagonal_size":"82","grids_diagonal_color":"#000000","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#e9e9e9","gradient_opacity1":"50","gradient_opacity2":"0","gradient_type":"centerline","gradient_repeats":"2","grids_square_altColor":"#838383"},"shapes":{"centerline":false,"centerline_color":"#000000","centerline_width":"2","centerline_dashsize":"20","centerline_opacity":"80","circle":false,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"16","circle_radius":"330","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#ff0000","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"4","shadow_opacity":"50","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"15","boosts_yellow":true,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"15","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"125","flags_red_opacity":"15","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"125","flags_blue_opacity":"15","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"125","flags_yellow_opacity":"25","spikes":false,"spikes_color":"#0d0d0d","spikes_radius":"30","spikes_opacity":"15","bombs":true,"bombs_color":"#bb00bb","bombs_radius":"40","bombs_opacity":"15","pups":false,"pups_color":"#643000","pups_radius":"35","pups_opacity":"15"},"spikes":{"modify":true,"color":"#ff8877","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"40"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"40"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","drawFloorUnderneath":false},"team":{"modify":true,"red_color":"#d88d8d","blue_color":"#95caff","yellow_color":"#ffffa8","gradient":false,"border":false,"border_size":"10","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"20","brightness":"100","contrast":"100","sepia":"0","opacity":"65","margin":"0","drawFloorUnderneath":false,"pattern":true,"pattern_red_color":"#000000","pattern_blue_color":"#000000","pattern_yellow_color":"#000000","pattern_altsides":false,"pattern_opacity":"15","pattern_size":"5","pattern_margin":"1","pattern_blur":"0"},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","drawFloorUnderneath":false},"pups":{"shadow":true,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"18"},"redball":{"modify":true,"color":"#d70000","size":"0","opacity":"100","gradient":false,"gradient_color":"#550000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"19","border_segments":"2","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"20","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ff1111","border_color":"#b90000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_arc_color":"#ff8c8c"},"blueball":{"modify":true,"color":"#4a4aff","size":"0","opacity":"100","gradient":false,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"19","border_segments":"2","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"20","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#6f6fff","border_color":"#4646ff","shapes_arc_color":"#9f9fff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_overlay_type":"earth1"}}, | |
'CamsDark+': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":true,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"ellipse","gradient_preset":"dark","color":"#000040","color1":"#222222","color2":"#090909"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":true,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"0","line_width":"0","line_radius":"19","fill_color":"#ffff00","fill_opacity":"75","speed":"60"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"/textures/camsppdark/tiles.png","speedpad":"/textures/camsppdark/speedpad.png","speedpadRed":"/textures/camsppdark/speedpadred.png","speedpadBlue":"/textures/camsppdark/speedpadblue.png","portal":"/textures/camsppdark/portal.png","splats":"/textures/camsppdark/splats.png","gravityWell":"/textures/flat/gravitywell.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#121212","tint_opacity":"60","specks":false,"specks_color":"#969696","specks_length":"1","specks_width":"1","specks_angle":"0","specks_count":"25","specks_opacity":"0","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"100","hexagons_linewidth":"1","hexagons_margin":"1","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#c1c1c1","hexagons_stroke_opacity":"50","hexagons_stroke_gradient":"20","hexagons_fill":false,"hexagons_fill_color":"#2a2a2a","hexagons_fill_opacity":"40","hexagons_fill_gradient":"31","checkered":true,"checkered_size":"40","checkered_altTintColor":"#ffffff","checkered_altTintOpacity":"1","grids_square":true,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"5","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":true,"grids_diagonal_size":"10","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"4","grids_diagonal_dashed":"2","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#400000","gradient_opacity1":"0","gradient_opacity2":"40","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":false,"grids_square_altColor":"#838383"},"shapes":{"centerline":true,"centerline_color":"#ffff00","centerline_width":"1","centerline_dashsize":"12","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"16","circle_radius":"330","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"5","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#020202","opacity":"0","brightness":"60","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"7","shadow_blur":"5","shadow_opacity":"100","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":true,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":false,"spikes_color":"#bbbbbb","spikes_radius":"17","spikes_opacity":"50","bombs":false,"bombs_color":"#fda2ef","bombs_radius":"21","bombs_opacity":"100","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":false,"color":"#ff8877","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"bombs":{"modify":true,"color":"#000000","opacity":"0","brightness":"125","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff00ff","shadow_opacity":"60"},"team":{"modify":true,"red_color":"#d50000","blue_color":"#4040ff","yellow_color":"#ffff00","gradient":true,"border":true,"border_size":"5","border_red_color":"#ffffff","border_blue_color":"#fffffb","border_yellow_color":"#000000","border_opacity":"8","brightness":"75","contrast":"100","sepia":"20","opacity":"100","margin":"1"},"endzone":{"modify":true,"red_color":"#ff4040","blue_color":"#5555ff","checkered":true,"checkered_size":"14","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":false,"shadow_size":"2","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"70"},"redball":{"modify":false,"color":"#b70000","size":"14","opacity":"65","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffc6c6","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"14","opacity":"65","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#bfdfff","border_color":"#2b95ff","shapes_arc_color":"#000000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'MLTP+': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"ellipse","gradient_preset":"red","color":"#000040","color1":"#554444","color2":"#552222"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#80ff80","line_opacity":"100","line_width":"2","line_radius":"20","fill_color":"#80ff80","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"50","line_width":"1","line_radius":"19","fill_color":"#ffff00","fill_opacity":"75","speed":"60"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"/textures/mltplive/tiles.png","speedpad":"/textures/crystal/speedpad.png","speedpadRed":"/textures/crystal/speedpadred.png","speedpadBlue":"/textures/crystal/speedpadblue.png","portal":"/textures/mltplive/portal.png","splats":"/textures/mltplive/splats.png","gravityWell":"/textures/flat/gravitywell.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#e0e0e0","tint_opacity":"60","specks":false,"specks_color":"#969696","specks_length":"-50","specks_width":"1","specks_angle":"0","specks_count":"15","specks_opacity":"7","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"100","hexagons_linewidth":"1","hexagons_margin":"1","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#c1c1c1","hexagons_stroke_opacity":"50","hexagons_stroke_gradient":"20","hexagons_fill":false,"hexagons_fill_color":"#2a2a2a","hexagons_fill_opacity":"40","hexagons_fill_gradient":"31","checkered":false,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"10","grids_square":true,"grids_square_size":"80","grids_square_margin":"2","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"10","grids_square_dashed":"0","grids_square_blur":"0","grids_square_altSides":true,"grids_diagonal":false,"grids_diagonal_size":"80","grids_diagonal_color":"#000000","grids_diagonal_opacity":"6","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#ffffff","gradient_opacity1":"25","gradient_opacity2":"10","gradient_type":"centerline","gradient_repeats":"2","grids_square_altColor":"#838383"},"shapes":{"centerline":false,"centerline_color":"#ffff00","centerline_width":"1","centerline_dashsize":"12","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"5","circle_radius":"250","circle_opacity":"50","circle_gradient":false,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"50","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"800","cross_opacity":"60","octagon_fillgradient":true},"walls":{"modify":true,"color":"#020202","opacity":"0","brightness":"130","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"4","shadow_blur":"3","shadow_opacity":"60","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":false,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":false,"spikes_color":"#bbbbbb","spikes_radius":"17","spikes_opacity":"50","bombs":false,"bombs_color":"#fda2ef","bombs_radius":"21","bombs_opacity":"50","pups":false,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":true,"color":"#ff8877","opacity":"10","brightness":"110","contrast":"100","sepia":"20","shadow":true,"shadow_size":"2","shadow_blur":"2","shadow_color":"#000000","shadow_opacity":"50"},"bombs":{"modify":true,"color":"#8000ff","opacity":"10","brightness":"125","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"2","shadow_color":"#000000","shadow_opacity":"60"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#999999","neutral_fill_opacity":"100","neutral_fill_margin":"0","neutral_border":false,"neutral_border_color":"#444444","neutral_border_linewidth":"1","neutral_border_margin":"0","neutral_cross":false,"neutral_cross_color":"#000000","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"0","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"100","green_fill_margin":"0","green_border":false,"green_border_color":"#444444","green_border_linewidth":"1","green_border_margin":"0","green_cross":false,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"0","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"100","red_fill_margin":"0","red_border":false,"red_border_color":"#444444","red_border_linewidth":"1","red_border_margin":"0","red_cross":false,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"0","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"100","blue_fill_margin":"0","blue_border":false,"blue_border_color":"#444444","blue_border_linewidth":"1","blue_border_margin":"0","blue_cross":false,"blue_cross_color":"#000000","blue_cross_opacity":"50","blue_cross_linewidth":"1","blue_cross_margin":"0","drawFloorUnderneath":false},"team":{"modify":true,"red_color":"#800000","blue_color":"#9191ff","yellow_color":"#ffff00","gradient":false,"pattern":true,"pattern_size":"5","pattern_margin":"4","pattern_blur":"0","pattern_red_color":"#ff0000","pattern_blue_color":"#0000ff","pattern_yellow_color":"#ffff00","pattern_opacity":"100","pattern_altsides":false,"border":false,"border_size":"20","border_red_color":"#ffffff","border_blue_color":"#fffffb","border_yellow_color":"#b7b7b7","border_opacity":"35","brightness":"77","contrast":"100","sepia":"0","opacity":"100","margin":"20","drawFloorUnderneath":true},"endzone":{"modify":true,"red_color":"#ff9595","blue_color":"#9191ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#e1e1e1","checkered_alt_blue_color":"#e1e1e1","stripes":false,"stripes_size":"8","stripes_red_color":"#b4b4b4","stripes_blue_color":"#b4b4b4","border":false,"border_size":"10","border_linewidth":"1","border_red_color":"#ffffff","border_blue_color":"#000000","border_opacity":"100","drawFloorUnderneath":false},"pups":{"shadow":true,"shadow_size":"2","shadow_blur":"2","shadow_color":"#000000","shadow_opacity":"60"},"redball":{"modify":false,"color":"#b70000","size":"14","opacity":"65","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffc6c6","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"14","opacity":"65","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#bfdfff","border_color":"#2b95ff","shapes_arc_color":"#000000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'MCG+': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"ballglow":{"modify":false,"red_color":"#ff0000","red_opacity":"60","blue_color":"#2591ff","blue_opacity":"70","radius":"60","below":false},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"circle","gradient_preset":"orange","color":"#000040","color1":"#75ffba","color2":"#171717"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/CKq3oqn.png","speedpad":"/textures/crystal/speedpad.png","speedpadRed":"/textures/crystal/speedpadred.png","speedpadBlue":"/textures/crystal/speedpadblue.png","portal":"/textures/starlight/portal.png","splats":"/textures/musclescupgradients/splats.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":false,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#333333","tint_opacity":"0","random":false,"random_saturation":"10","random_brightness":"80","nofloor":true,"specks":false,"specks_color":"#4b4b4b","specks_length":"3","specks_width":"1","specks_angle":"0","specks_count":"40","specks_opacity":"-20","image":false,"image_floor":true,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"30","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"1","image_walls":true,"image_walls_brightness":"65","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"40","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"1","hexagons":false,"hexagons_size":"86","hexagons_linewidth":"1","hexagons_margin":"4","hexagons_blur":"0","hexagons_stroke":false,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"20","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"10","grids_square":true,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"2","grids_square_opacity":"33","grids_square_dashed":"0","grids_square_blur":"1","grids_square_altSides":true,"grids_diagonal":false,"grids_diagonal_size":"120","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#595959","gradient_color2":"#000000","gradient_opacity1":"39","gradient_opacity2":"49","gradient_type":"centercircle","gradient_repeats":"2","grids_square_altColor":"#ffffff"},"shapes":{"centerline":false,"centerline_color":"#80ff00","centerline_width":"1","centerline_dashsize":"14","centerline_opacity":"65","circle":false,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"20","circle_radius":"350","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"4","octagon_radius":"332","octagon_opacity":"40","octagon_sides":"80","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80","octagon_fillgradient":true},"walls":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"60","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"2","shadow_blur":"1","shadow_opacity":"30","shadow_include_gates":false},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"40","boosts_red_opacity":"25","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"40","boosts_blue_opacity":"25","boosts_yellow":false,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"40","boosts_yellow_opacity":"30","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"125","flags_red_opacity":"35","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"125","flags_blue_opacity":"35","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"100","flags_yellow_opacity":"50","spikes":false,"spikes_color":"#ffffff","spikes_radius":"20","spikes_opacity":"100","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"20","bombs_opacity":"75","pups":false,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"15"},"spikes":{"modify":false,"color":"#8000ff","opacity":"5","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"50"},"bombs":{"modify":false,"color":"#ffffff","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"2","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"50"},"gates":{"neutral":false,"neutral_fill":false,"neutral_fill_color":"#000000","neutral_fill_opacity":"30","neutral_fill_margin":"0","neutral_border":true,"neutral_border_color":"#8b8b8b","neutral_border_linewidth":"1","neutral_border_margin":"3","neutral_cross":true,"neutral_cross_color":"#5b5b5b","neutral_cross_opacity":"25","neutral_cross_linewidth":"1","neutral_cross_margin":"16","green":false,"green_fill":false,"green_fill_color":"#00cc00","green_fill_opacity":"25","green_fill_margin":"1","green_border":true,"green_border_color":"#00ff00","green_border_linewidth":"2","green_border_margin":"2","green_cross":true,"green_cross_color":"#00ff00","green_cross_opacity":"100","green_cross_linewidth":"2","green_cross_margin":"10","red":false,"red_fill":false,"red_fill_color":"#cc0000","red_fill_opacity":"25","red_fill_margin":"1","red_border":true,"red_border_color":"#ff0000","red_border_linewidth":"2","red_border_margin":"2","red_cross":true,"red_cross_color":"#ff0000","red_cross_opacity":"100","red_cross_linewidth":"2","red_cross_margin":"10","blue":false,"blue_fill":false,"blue_fill_color":"#0000cc","blue_fill_opacity":"25","blue_fill_margin":"1","blue_border":true,"blue_border_color":"#0080ff","blue_border_linewidth":"2","blue_border_margin":"2","blue_cross":true,"blue_cross_color":"#0080ff","blue_cross_opacity":"100","blue_cross_linewidth":"2","blue_cross_margin":"10","drawFloorUnderneath":false},"team":{"modify":true,"red_color":"#ff4646","blue_color":"#84c1ff","yellow_color":"#ffff00","gradient":true,"pattern":false,"pattern_size":"5","pattern_margin":"8","pattern_blur":"0","pattern_red_color":"#ff0000","pattern_blue_color":"#0080ff","pattern_yellow_color":"#ffff00","pattern_opacity":"100","pattern_altsides":false,"border":true,"border_size":"3","border_linewidth":"1","border_red_color":"#2c2c2c","border_blue_color":"#2c2c2c","border_yellow_color":"#2c2c2c","border_opacity":"100","brightness":"90","contrast":"80","sepia":"0","opacity":"45","margin":"2","drawFloorUnderneath":true},"endzone":{"modify":true,"red_color":"#ff4040","blue_color":"#5555ff","opacity":"65","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_linewidth":"1","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100","border_count":"1","drawFloorUnderneath":true},"pups":{"shadow":false,"shadow_size":"2","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"50"},"redball":{"modify":false,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Sniper+': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"75"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"none","stretch":true,"gradient_type":"circle","gradient_preset":"blue","color":"#000040","color1":"#222222","color2":"#090909"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"19","fill_color":"#00ff00","fill_opacity":"15"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"0","line_width":"0","line_radius":"19","fill_color":"#ffff00","fill_opacity":"75","speed":"150"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"8","y":"32","radius":"5"},"textures":{"tiles":"/textures/sniperpack/tiles.png","speedpad":"http://i.imgur.com/6h2Fna8.png","speedpadRed":"http://i.imgur.com/pF4l9SO.png","speedpadBlue":"http://i.imgur.com/NlepAuW.png","portal":"http://i.imgur.com/rGEEQ2s.png","splats":"http://i.imgur.com/GObCQoT.png","gravityWell":"/textures/sniperpack/gravitywell.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":false,"plain":false,"tint_color":"#000000","tint_opacity":"0","specks":false,"specks_color":"#000000","specks_length":"-2","specks_width":"1","specks_angle":"0","specks_count":"15","specks_opacity":"-23","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"2","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ffffff","hexagons_stroke_opacity":"25","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#ffffff","hexagons_fill_opacity":"25","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"20","checkered_altTintColor":"#000000","checkered_altTintOpacity":"4","grids_square":false,"grids_square_size":"80","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"25","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"120","grids_diagonal_color":"#000000","grids_diagonal_opacity":"10","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#808080","gradient_opacity1":"40","gradient_opacity2":"7","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":false,"grids_square_altColor":"#000000"},"shapes":{"centerline":true,"centerline_color":"#454545","centerline_width":"1","centerline_dashsize":"0","centerline_opacity":"100","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff80","circle_width":"3","circle_radius":"228","circle_opacity":"50","circle_gradient":false,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff80","octagon_width":"3","octagon_radius":"222","octagon_opacity":"50","octagon_sides":"100","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff80","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#ffff80","opacity":"5","brightness":"200","contrast":"115","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"6","shadow_blur":"10","shadow_opacity":"100","shadow_include_gates":true},"glow":{"boosts_red":false,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":false,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":false,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":false,"spikes_color":"#bbbbbb","spikes_radius":"30","spikes_opacity":"15","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"30","bombs_opacity":"20","pups":false,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":true,"color":"#ffffff","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"10","brightness":"115","contrast":"100","sepia":"0","shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"51"},"team":{"modify":true,"red_color":"#ff4040","blue_color":"#0065ca","yellow_color":"#ffff00","gradient":true,"border":false,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"100","contrast":"100","sepia":"0","opacity":"70","margin":"3"},"endzone":{"modify":false,"red_color":"#d50000","blue_color":"#5555ff","opacity":"100","margin":"0","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":true,"shadow_size":"3","shadow_blur":"1","shadow_color":"#000000","shadow_opacity":"60"},"redball":{"modify":false,"color":"#ff0000","size":"19","opacity":"100","gradient":false,"gradient_color":"#000000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"0","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"14","shapes_arc_size":"4","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"4","shapes_star_inner":"5","shapes_star_outer":"12","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#000000","border_alt_color":"#000000","shapes_arc_color":"#000000","shapes_arc_transparent":true,"shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#000000","shapes_overlay_type":"earth1","shapes_overlay_base64":""},"blueball":{"modify":false,"color":"#0080ff","size":"19","opacity":"100","gradient":false,"gradient_color":"#000000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"0","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"14","shapes_arc_size":"4","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"4","shapes_star_inner":"5","shapes_star_outer":"12","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#000000","border_alt_color":"#000000","shapes_arc_color":"#000000","shapes_arc_transparent":true,"shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#000000","shapes_overlay_type":"earth1","shapes_overlay_base64":""}}, | |
'TerminalPX+': {"gameoptions":{"ball_transparency":"0","fading_splats":false,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"75"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"redblue","color":"#000040","color1":"#240000","color2":"#001b35"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"19","fill_color":"#00ff00","fill_opacity":"15"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"0","line_width":"0","line_radius":"19","fill_color":"#ffff00","fill_opacity":"75","speed":"150"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"8","y":"32","radius":"5"},"textures":{"tiles":"/textures/terminalpx/tiles.png","speedpad":"/textures/terminalpx/speedpad.png","speedpadRed":"/textures/terminalpx/speedpadred.png","speedpadBlue":"/textures/terminalpx/speedpadblue.png","portal":"/textures/terminalpx/portal.png","splats":"/textures/terminalpx/splats.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#000000","tint_opacity":"0","specks":false,"specks_color":"#88286b","specks_length":"-31","specks_width":"1","specks_angle":"45","specks_count":"20","specks_opacity":"-20","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"2","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ffffff","hexagons_stroke_opacity":"25","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#ffffff","hexagons_fill_opacity":"25","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"20","checkered_altTintColor":"#000000","checkered_altTintOpacity":"4","grids_square":false,"grids_square_size":"80","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"25","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"120","grids_diagonal_color":"#f7f7f7","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#000000","gradient_color2":"#5c5c5c","gradient_opacity1":"40","gradient_opacity2":"59","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":false,"grids_square_altColor":"#000000"},"shapes":{"centerline":false,"centerline_color":"#00ff00","centerline_width":"1","centerline_dashsize":"0","centerline_opacity":"100","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff80","circle_width":"3","circle_radius":"228","circle_opacity":"50","circle_gradient":false,"octagon":true,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff80","octagon_width":"3","octagon_radius":"222","octagon_opacity":"50","octagon_sides":"100","octagon_fillopacity":"0","cross":true,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff80","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"1000","cross_opacity":"21"},"walls":{"modify":true,"color":"#ffffff","opacity":"20","brightness":"50","contrast":"100","sepia":"29","shadow":false,"shadow_color":"#d5aaff","shadow_size":"0","shadow_blur":"0","shadow_opacity":"50","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"15","boosts_red_opacity":"41","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"15","boosts_blue_opacity":"41","boosts_yellow":true,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"15","boosts_yellow_opacity":"31","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"240","flags_red_opacity":"15","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"240","flags_blue_opacity":"15","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"240","flags_yellow_opacity":"10","spikes":false,"spikes_color":"#bbbbbb","spikes_radius":"30","spikes_opacity":"15","bombs":false,"bombs_color":"#bb00bb","bombs_radius":"30","bombs_opacity":"20","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"20"},"spikes":{"modify":true,"color":"#ff8040","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff8000","shadow_opacity":"60"},"bombs":{"modify":true,"color":"#bb00bb","opacity":"10","brightness":"115","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff00ff","shadow_opacity":"30"},"team":{"modify":true,"red_color":"#ff4040","blue_color":"#0065ca","yellow_color":"#ffff00","gradient":false,"border":true,"border_size":"8","border_red_color":"#000000","border_blue_color":"#d2d2d2","border_yellow_color":"#000000","border_opacity":"25","brightness":"65","contrast":"100","sepia":"0","opacity":"100","margin":"1"},"endzone":{"modify":false,"red_color":"#5a3030","blue_color":"#33445e","checkered":false,"checkered_size":"23","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":true,"stripes_size":"13","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":false,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ffff00","shadow_opacity":"60"},"redball":{"modify":true,"color":"#ff0000","size":"0","opacity":"100","gradient":false,"gradient_color":"#550000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"19","border_segments":"2","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"20","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#df0000","border_alt_color":"#ff5353","shapes_arc_color":"#280000","shapes_arc_transparent":false,"shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_overlay_type":"earth1","shapes_overlay_base64":""},"blueball":{"modify":true,"color":"#4a4aff","size":"0","opacity":"100","gradient":false,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"19","border_segments":"2","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"20","shapes_overlay":false,"shapes_overlay_transparency":"20","border_color":"#4646ff","border_alt_color":"#6f6fff","shapes_arc_color":"#00002b","shapes_arc_transparent":false,"shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_overlay_type":"earth1","shapes_overlay_base64":""}}, | |
'24K+': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"ellipse","gradient_preset":"red","color":"#000040","color1":"#554444","color2":"#552222"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/ia1X6yz.png","speedpad":"https://i.imgur.com/XGbQS0m.png","speedpadRed":"https://i.imgur.com/7ezs4BA.png","speedpadBlue":"https://i.imgur.com/rVFx0HE.png","portal":"https://i.imgur.com/f0HY7Tu.png","splats":"https://i.imgur.com/nRbpdju.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#ebebeb","tint_opacity":"50","specks":false,"specks_color":"#d1d1d1","specks_length":"1","specks_width":"1","specks_angle":"180","specks_count":"25","specks_opacity":"0","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"80","hexagons_linewidth":"2","hexagons_margin":"0","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#c0c0c0","hexagons_stroke_opacity":"40","hexagons_stroke_gradient":"1","hexagons_fill":false,"hexagons_fill_color":"#ccffcc","hexagons_fill_opacity":"25","hexagons_fill_gradient":"100","checkered":false,"checkered_size":"200","checkered_altTintColor":"#000000","checkered_altTintOpacity":"10","grids_square":true,"grids_square_size":"40","grids_square_margin":"4","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"12","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"160","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"4","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":true,"gradient_color1":"#cccccc","gradient_color2":"#777777","gradient_opacity1":"30","gradient_opacity2":"50","gradient_type":"randomcircles","gradient_repeats":"100","grids_square_altSides":true,"grids_square_altColor":"#2d0059"},"shapes":{"centerline":true,"centerline_color":"#ffdf00","centerline_width":"3","centerline_dashsize":"24","centerline_opacity":"80","circle":true,"circle_red_color":"#ff4040","circle_blue_color":"#5555ff","circle_yellow_color":"#ffff00","circle_width":"5","circle_radius":"260","circle_opacity":"50","circle_gradient":true,"octagon":false,"octagon_red_color":"#ff4040","octagon_blue_color":"#5555ff","octagon_yellow_color":"#ffff00","octagon_width":"6","octagon_radius":"120","octagon_opacity":"80","octagon_sides":"8","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#8080ff","opacity":"10","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#000000","shadow_size":"5","shadow_blur":"8","shadow_opacity":"85","shadow_include_gates":true},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"100","boosts_red_opacity":"15","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"100","boosts_blue_opacity":"15","boosts_yellow":false,"boosts_yellow_color":"#ffff80","boosts_yellow_radius":"100","boosts_yellow_opacity":"10","flags_red":false,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"15","flags_blue":false,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"15","flags_yellow":false,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"10","spikes":false,"spikes_color":"#000000","spikes_radius":"18","spikes_opacity":"100","bombs":false,"bombs_color":"#ffff00","bombs_radius":"18","bombs_opacity":"70","pups":false,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":false,"color":"#ff8877","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"0","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"20"},"bombs":{"modify":false,"color":"#bb00bb","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":false,"shadow_size":"0","shadow_blur":"1","shadow_color":"#ffff00","shadow_opacity":"60"},"team":{"modify":false,"red_color":"#ff0d0d","blue_color":"#42aeff","yellow_color":"#ffff00","gradient":false,"border":false,"border_size":"40","border_red_color":"#000000","border_blue_color":"#000000","border_yellow_color":"#000000","border_opacity":"100","brightness":"65","contrast":"100","sepia":"0","opacity":"100","margin":"0"},"endzone":{"modify":false,"red_color":"#ff4040","blue_color":"#5555ff","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#dddddd","checkered_alt_blue_color":"#dddddd","stripes":false,"stripes_size":"20","stripes_red_color":"#888888","stripes_blue_color":"#888888","border":false,"border_size":"40","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"100"},"pups":{"shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#000000","shadow_opacity":"60"},"redball":{"modify":false,"color":"#ff0000","size":"10","opacity":"50","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"10","opacity":"50","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"2","border_segments":"8","shapes_arc":false,"shapes_arc_width":"3","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#ffffff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
'Glow+': {"gameoptions":{"ball_transparency":"0","fading_splats":true,"transparent_background":true,"filters_brightness":false,"filters_brightness_value":"80"},"sbpl":{"modify":false,"x":"18","y":"18","color":"#ffd700","opacity":"60"},"gamewallpaper":{"type":"gradient","stretch":true,"gradient_type":"team","gradient_preset":"dark","color":"#000040","color1":"#8c8c8c","color2":"#464646"},"altSpawnShadow":{"modify":false},"modify_TP":{"modify":false,"line_color":"#00ff00","line_opacity":"100","line_width":"2","line_radius":"21","fill_color":"#00ff00","fill_opacity":"0"},"modify_RB":{"modify":false,"line_color":"#ffff00","line_opacity":"100","line_width":"5","line_radius":"14","fill_color":"#ffff00","fill_opacity":"0","speed":"45"},"modify_JJ":{"modify":false,"line_color":"#235957","fill_color":"#40a8a5","x":"5","y":"35","radius":"5"},"textures":{"tiles":"https://i.imgur.com/ciiB8Pw.png","speedpad":"https://i.imgur.com/IB95nd5.png","speedpadRed":"https://i.imgur.com/8RgHd1Y.png","speedpadBlue":"https://i.imgur.com/E3gqIdZ.png","portal":"https://i.imgur.com/H1e5f5X.png","splats":"https://i.imgur.com/yMbLHLT.png","gravityWell":"http://i.imgur.com/zPdBr5d.png"},"gravityWell":{"enable":true,"linewidth":"50","color":"#00bb00","opacity":"40","dashsize":"0","useGradient":true},"floortiles":{"modify":true,"plain":true,"tint_color":"#060606","tint_opacity":"50","specks":false,"specks_color":"#0080c0","specks_length":"-41","specks_width":"1","specks_angle":"90","specks_count":"20","specks_opacity":"-21","image":false,"image_floor":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","image_walls":false,"image_walls_brightness":"100","image_walls_contrast":"100","image_walls_saturation":"100","image_walls_opacity":"100","image_walls_grayscale":"0","image_walls_sepia":"0","image_walls_huerotate":"0","image_walls_blur":"0","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#454545","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"3","grids_square":true,"grids_square_size":"40","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"10","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"160","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"10","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#009797","gradient_color2":"#00ffff","gradient_opacity1":"33","gradient_opacity2":"50","gradient_type":"randomsquares","gradient_repeats":"4","grids_square_altSides":false,"grids_square_altColor":"#2d0059"},"shapes":{"centerline":true,"centerline_color":"#ffff80","centerline_width":"5","centerline_dashsize":"7","centerline_opacity":"50","circle":true,"circle_red_color":"#ff0000","circle_blue_color":"#0000ff","circle_yellow_color":"#ffff00","circle_width":"20","circle_radius":"313","circle_opacity":"60","circle_gradient":true,"octagon":true,"octagon_red_color":"#ff0000","octagon_blue_color":"#0000ff","octagon_yellow_color":"#ffff00","octagon_width":"3","octagon_radius":"298","octagon_opacity":"60","octagon_sides":"100","octagon_fillopacity":"0","cross":false,"cross_red_color":"#ff4040","cross_blue_color":"#5555ff","cross_yellow_color":"#ffff00","cross_width":"1","cross_radius_inner":"8","cross_radius_outer":"500","cross_opacity":"80"},"walls":{"modify":true,"color":"#000000","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_color":"#ffffff","shadow_size":"0","shadow_blur":"7","shadow_opacity":"100","shadow_include_gates":false},"glow":{"boosts_red":true,"boosts_red_color":"#ff4040","boosts_red_radius":"50","boosts_red_opacity":"25","boosts_blue":true,"boosts_blue_color":"#5555ff","boosts_blue_radius":"50","boosts_blue_opacity":"25","boosts_yellow":true,"boosts_yellow_color":"#ffff00","boosts_yellow_radius":"50","boosts_yellow_opacity":"20","flags_red":true,"flags_red_color":"#ff4040","flags_red_radius":"200","flags_red_opacity":"35","flags_blue":true,"flags_blue_color":"#5555ff","flags_blue_radius":"200","flags_blue_opacity":"35","flags_yellow":true,"flags_yellow_color":"#ffff80","flags_yellow_radius":"200","flags_yellow_opacity":"20","spikes":true,"spikes_color":"#ff00ff","spikes_radius":"20","spikes_opacity":"60","bombs":true,"bombs_color":"#8000ff","bombs_radius":"30","bombs_opacity":"35","pups":true,"pups_color":"#ff7700","pups_radius":"40","pups_opacity":"30"},"spikes":{"modify":true,"color":"#000000","opacity":"0","brightness":"100","contrast":"100","sepia":"100","shadow":false,"shadow_size":"0","shadow_blur":"3","shadow_color":"#ff80ff","shadow_opacity":"76"},"bombs":{"modify":true,"color":"#000000","opacity":"0","brightness":"100","contrast":"100","sepia":"0","shadow":true,"shadow_size":"0","shadow_blur":"3","shadow_color":"#8000ff","shadow_opacity":"81"},"gates":{"neutral":true,"neutral_fill":false,"neutral_fill_color":"#585858","neutral_fill_opacity":"100","neutral_fill_margin":"8","neutral_border":true,"neutral_border_color":"#4a4a4a","neutral_border_margin":"2","neutral_cross":false,"neutral_cross_color":"#ffffff","neutral_cross_opacity":"50","neutral_cross_linewidth":"1","neutral_cross_margin":"4","green":false,"green_fill":true,"green_fill_color":"#00c600","green_fill_opacity":"100","green_fill_margin":"5","green_border":true,"green_border_color":"#00c600","green_border_margin":"2","green_cross":true,"green_cross_color":"#000000","green_cross_opacity":"50","green_cross_linewidth":"1","green_cross_margin":"2","red":false,"red_fill":true,"red_fill_color":"#a60000","red_fill_opacity":"100","red_fill_margin":"5","red_border":true,"red_border_color":"#a60000","red_border_margin":"2","red_cross":true,"red_cross_color":"#000000","red_cross_opacity":"50","red_cross_linewidth":"1","red_cross_margin":"2","blue":false,"blue_fill":true,"blue_fill_color":"#0000df","blue_fill_opacity":"100","blue_fill_margin":"5","blue_border":true,"blue_border_color":"#0000df","blue_border_margin":"2","blue_cross":true,"blue_cross_color":"#000000","blue_cross_opacity":"75","blue_cross_linewidth":"1","blue_cross_margin":"2","neutral_border_linewidth":"2","green_border_linewidth":"2","blue_border_linewidth":"2","red_border_linewidth":"2"},"team":{"modify":false,"red_color":"#bf0000","blue_color":"#0000d9","yellow_color":"#e47b07","gradient":false,"border":true,"border_size":"8","border_red_color":"#ffffff","border_blue_color":"#ffffff","border_yellow_color":"#ffffff","border_opacity":"23","brightness":"100","contrast":"100","sepia":"0","opacity":"70","margin":"1"},"endzone":{"modify":true,"red_color":"#5e0000","blue_color":"#00005e","opacity":"100","margin":"2","checkered":true,"checkered_size":"20","checkered_alt_red_color":"#800000","checkered_alt_blue_color":"#0000a0","stripes":false,"stripes_size":"13","stripes_red_color":"#000000","stripes_blue_color":"#4f4fff","border":true,"border_size":"37","border_red_color":"#dddddd","border_blue_color":"#dddddd","border_opacity":"45"},"pups":{"shadow":false,"shadow_size":"3","shadow_blur":"2","shadow_color":"#000000","shadow_opacity":"70"},"redball":{"modify":false,"color":"#b70000","size":"16","opacity":"70","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"},"blueball":{"modify":false,"color":"#0080ff","size":"16","opacity":"70","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"4","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#2b95ff","shapes_arc_color":"#414141","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}}, | |
} | |
}, floortiles: { | |
keys: ['floortiles'], | |
containerId: ['TPE_Presets_FloorTiles'], | |
presets: { | |
a: {"modify":true,"plain":true,"tint_color":"#1e1e1e","tint_opacity":"50","specks":true,"specks_color":"#d1d1d1","specks_length":"1","specks_width":"1","specks_angle":"180","specks_count":"25","specks_opacity":"0","hexagons":true,"hexagons_size":"80","hexagons_linewidth":"2","hexagons_margin":"0","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#c0c0c0","hexagons_stroke_opacity":"40","hexagons_stroke_gradient":"1","hexagons_fill":false,"hexagons_fill_color":"#ccffcc","hexagons_fill_opacity":"25","hexagons_fill_gradient":"100","checkered":false,"checkered_size":"200","checkered_altTintColor":"#000000","checkered_altTintOpacity":"10","grids_square":false,"grids_square_size":"20","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"12","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"160","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"4","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#cccccc","gradient_color2":"#777777","gradient_opacity1":"50","gradient_opacity2":"50","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":false,"grids_square_altColor":"#2d0059"}, | |
b: {"modify":true,"plain":true,"tint_color":"#50706b","tint_opacity":"50","specks":true,"specks_color":"#000000","specks_length":"-25","specks_width":"2","specks_angle":"0","specks_count":"20","specks_opacity":"8","hexagons":false,"hexagons_size":"99","hexagons_linewidth":"2","hexagons_margin":"0","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ff00ff","hexagons_stroke_opacity":"35","hexagons_stroke_gradient":"65","hexagons_fill":false,"hexagons_fill_color":"#ccffcc","hexagons_fill_opacity":"25","hexagons_fill_gradient":"100","checkered":true,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"9","grids_square":true,"grids_square_size":"40","grids_square_margin":"1","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"30","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"60","grids_diagonal_color":"#80ff00","grids_diagonal_opacity":"15","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#cccccc","gradient_color2":"#777777","gradient_opacity1":"50","gradient_opacity2":"50","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":true,"grids_square_altColor":"#ffffff"}, | |
c: {"modify":true,"plain":true,"tint_color":"#706b50","tint_opacity":"50","specks":true,"specks_color":"#aeaeae","specks_length":"30","specks_width":"1","specks_angle":"315","specks_count":"2","specks_opacity":"13","image":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","hexagons":false,"hexagons_size":"99","hexagons_linewidth":"2","hexagons_margin":"0","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ff00ff","hexagons_stroke_opacity":"35","hexagons_stroke_gradient":"65","hexagons_fill":false,"hexagons_fill_color":"#ccffcc","hexagons_fill_opacity":"25","hexagons_fill_gradient":"100","checkered":false,"checkered_size":"38","checkered_altTintColor":"#000000","checkered_altTintOpacity":"9","grids_square":true,"grids_square_size":"19","grids_square_margin":"1","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"30","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"60","grids_diagonal_color":"#80ff00","grids_diagonal_opacity":"15","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#cccccc","gradient_color2":"#777777","gradient_opacity1":"50","gradient_opacity2":"50","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":true,"grids_square_altColor":"#000000"}, | |
d: {"modify":true,"plain":true,"tint_color":"#413f43","tint_opacity":"50","specks":true,"specks_color":"#000000","specks_length":"20","specks_width":"10","specks_angle":"0","specks_count":"37","specks_opacity":"6","hexagons":false,"hexagons_size":"99","hexagons_margin":"0","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#ff00ff","hexagons_stroke_opacity":"35","hexagons_stroke_gradient":"65","hexagons_fill":false,"hexagons_fill_color":"#ccffcc","hexagons_fill_opacity":"25","hexagons_fill_gradient":"100","checkered":true,"checkered_random":false,"checkered_altTintColor":"#49b683","checkered_altTintOpacity":"13","grids_square":true,"grids_square_size":"38","grids_square_margin":"2","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"20","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"40","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","team_modify":true,"team_red_color":"#ff4040","team_blue_color":"#5555ff","team_gradient":true,"checkered_stripes":false,"grids_square_altSides":false,"grids_square_altColor":"#838383","hexagons_linewidth":"2","checkered_size":"38"}, | |
e: {"modify":true,"plain":true,"tint_color":"#666666","tint_opacity":"50","specks":true,"specks_color":"#000000","specks_length":"-50","specks_width":"1","specks_angle":"180","specks_count":"15","specks_opacity":"-4","image":false,"image_brightness":"100","image_contrast":"100","image_saturation":"100","image_opacity":"100","image_grayscale":"0","image_sepia":"0","image_huerotate":"0","image_blur":"0","hexagons":false,"hexagons_size":"97","hexagons_linewidth":"1","hexagons_margin":"0","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#dbdbdb","hexagons_stroke_opacity":"35","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#ccffcc","hexagons_fill_opacity":"25","hexagons_fill_gradient":"100","checkered":true,"checkered_size":"240","checkered_altTintColor":"#000000","checkered_altTintOpacity":"6","grids_square":true,"grids_square_size":"240","grids_square_margin":"0","grids_square_color":"#ffffff","grids_square_linewidth":"1","grids_square_opacity":"15","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"40","grids_diagonal_color":"#777777","grids_diagonal_opacity":"65","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#cccccc","gradient_color2":"#777777","gradient_opacity1":"50","gradient_opacity2":"50","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":false,"grids_square_altColor":"#ffffff"}, | |
f: {"modify":true,"plain":true,"tint_color":"#b900b9","tint_opacity":"50","specks":true,"specks_color":"#000000","specks_length":"35","specks_width":"20","specks_angle":"0","specks_count":"55","specks_opacity":"20","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":true,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":false,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":true,"checkered_size":"160","checkered_altTintColor":"#000000","checkered_altTintOpacity":"7","grids_square":false,"grids_square_size":"160","grids_square_margin":"0","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"49","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"40","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"12","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#cccccc","gradient_color2":"#777777","gradient_opacity1":"50","gradient_opacity2":"50","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":false,"grids_square_altColor":"#838383"}, | |
g: {"modify":true,"plain":true,"tint_color":"#bebebe","tint_opacity":"50","specks":false,"specks_color":"#ffffff","specks_length":"-100","specks_width":"1","specks_angle":"180","specks_count":"15","specks_opacity":"5","hexagons":false,"hexagons_size":"65","hexagons_linewidth":"1","hexagons_margin":"6","hexagons_blur":"0","hexagons_stroke":false,"hexagons_stroke_color":"#3e3e3e","hexagons_stroke_opacity":"75","hexagons_stroke_gradient":"0","hexagons_fill":true,"hexagons_fill_color":"#000000","hexagons_fill_opacity":"40","hexagons_fill_gradient":"0","checkered":false,"checkered_size":"40","checkered_altTintColor":"#000000","checkered_altTintOpacity":"5","grids_square":true,"grids_square_size":"20","grids_square_margin":"9","grids_square_color":"#000000","grids_square_linewidth":"1","grids_square_opacity":"13","grids_square_dashed":"0","grids_square_blur":"0","grids_diagonal":false,"grids_diagonal_size":"120","grids_diagonal_color":"#ffffff","grids_diagonal_opacity":"30","grids_diagonal_dashed":"0","grids_diagonal_blur":"0","gradient":false,"gradient_color1":"#8fa28c","gradient_color2":"#ffffbf","gradient_opacity1":"50","gradient_opacity2":"33","gradient_type":"centerline","gradient_repeats":"2","grids_square_altSides":true,"grids_square_altColor":"#000000"}, | |
} | |
}, redball: { | |
keys: ['redball'], | |
containerId: ['TPE_Presets_RedBall'], | |
presets: { | |
a: {"modify":true,"color":"#ff0000","size":"19","opacity":"100","gradient":true,"gradient_color":"#550000","gradient_position":"20","border_width":"1","border_segments":"4","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#d2d2d2","border_color":"#bb0000","gradient_start":"5","gradient_stop":"25","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#222222","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#535353","shapes_arc_color":"#333333"}, | |
b: {"modify":true,"color":"#ff0000","size":"13","opacity":"100","gradient":true,"gradient_color":"#400000","gradient_position":"12","border_width":"3","border_segments":"6","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"4","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","gradient_start":"5","gradient_stop":"32","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#333333"}, | |
c: {"modify":true,"color":"#ff0000","size":"5","opacity":"100","gradient":true,"gradient_color":"#550000","gradient_position":"20","border_width":"1","border_segments":"8","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","gradient_start":"1","gradient_stop":"5","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#333333"}, | |
d: {"modify":true,"color":"#ff0000","size":"19","opacity":"100","gradient":true,"gradient_color":"#550000","gradient_position":"17","border_width":"1","border_segments":"0","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"6","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"1","shapes_star_outer":"14","shapes_overlay":true,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#000000","gradient_start":"5","gradient_stop":"25","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#333333","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#333333"}, | |
e: {"modify":true,"color":"#ff0000","size":"13","opacity":"100","gradient":false,"gradient_color":"#550000","gradient_position":"17","border_width":"4","border_segments":"2","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"6","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"1","shapes_star_spikes":"5","shapes_star_inner":"3","shapes_star_outer":"11","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#ff0000","gradient_start":"5","gradient_stop":"25","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#333333"}, | |
f: {"modify":true,"color":"#b70000","size":"14","opacity":"65","gradient":false,"gradient_color":"#550000","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffc6c6","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#000000","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#535353","shapes_arc_color":"#000000"}, | |
g: {"modify":true,"color":"#ff0000","size":"19","opacity":"100","gradient":true,"gradient_color":"#550000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"1","border_segments":"0","shapes_arc":true,"shapes_arc_width":"7","shapes_arc_position":"3","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"9","shapes_star_spikes":"3","shapes_star_inner":"7","shapes_star_outer":"1","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#000000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#333333","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#ffffff","shapes_arc_color":"#333333"}, | |
h: {"modify":true,"color":"#ff0000","size":"19","opacity":"100","gradient":true,"gradient_color":"#550000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"4","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"8","shapes_overlay":true,"shapes_overlay_transparency":"10","border_alt_color":"#ffffff","border_color":"#ff0000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_overlay_type":"marble1","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_arc_color":"#000000"}, | |
i: {"modify":true,"color":"#ff0000","size":"0","opacity":"100","gradient":false,"gradient_color":"#550000","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"19","border_segments":"2","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"20","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ff5353","border_color":"#df0000","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_overlay_type":"earth1","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_arc_color":"#ff8c8c"}, | |
} | |
}, blueball: { | |
keys: ['blueball'], | |
containerId: ['TPE_Presets_BlueBall'], | |
presets: { | |
a: {"modify":true,"color":"#0080ff","size":"19","opacity":"100","gradient":true,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"1","border_segments":"4","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"3","shapes_star_spikes":"4","shapes_star_inner":"2","shapes_star_outer":"9","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#d2d2d2","border_color":"#0080ff","shapes_arc_color":"#aaaaaa","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":true,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}, | |
b: {"modify":true,"color":"#0080ff","size":"13","opacity":"100","gradient":true,"gradient_color":"#bfdfff","gradient_start":"5","gradient_stop":"32","gradient_position":"12","border_width":"3","border_segments":"6","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#aaaaaa","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}, | |
c: {"modify":true,"color":"#0080ff","size":"5","opacity":"100","gradient":true,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"1","border_segments":"8","shapes_arc":false,"shapes_arc_width":"2","shapes_arc_position":"13","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#aaaaaa","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}, | |
d: {"modify":true,"color":"#0080ff","size":"19","opacity":"100","gradient":true,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"17","border_width":"1","border_segments":"0","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"6","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"1","shapes_star_spikes":"4","shapes_star_inner":"1","shapes_star_outer":"14","shapes_overlay":true,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#000000","shapes_arc_color":"#aaaaaa","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#aaaaaa","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}, | |
e: {"modify":true,"color":"#0080ff","size":"13","opacity":"100","gradient":false,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"17","border_width":"4","border_segments":"2","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"6","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"1","shapes_star_spikes":"5","shapes_star_inner":"3","shapes_star_outer":"11","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#aaaaaa","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}, | |
f: {"modify":true,"color":"#0080ff","size":"14","opacity":"65","gradient":false,"gradient_color":"#003a75","gradient_start":"1","gradient_stop":"5","gradient_position":"20","border_width":"3","border_segments":"8","shapes_arc":true,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"10","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#bfdfff","border_color":"#2b95ff","shapes_arc_color":"#000000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":false,"shapes_star_fill":false,"shapes_star_fill_color":"#b9b9b9","shapes_overlay_type":"earth1"}, | |
g: {"modify":true,"color":"#0080ff","size":"19","opacity":"100","gradient":true,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"1","border_segments":"0","shapes_arc":true,"shapes_arc_width":"7","shapes_arc_position":"3","shapes_arc_size":"18","shapes_star":true,"shapes_star_width":"9","shapes_star_spikes":"3","shapes_star_inner":"7","shapes_star_outer":"1","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#ffffff","border_color":"#000000","shapes_arc_color":"#aaaaaa","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#aaaaaa","shapes_star_transparent":true,"shapes_star_fill":true,"shapes_star_fill_color":"#ffffff","shapes_overlay_type":"earth1"}, | |
h: {"modify":true,"color":"#0080ff","size":"19","opacity":"100","gradient":true,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"0","border_segments":"4","shapes_arc":false,"shapes_arc_width":"1","shapes_arc_position":"18","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"4","shapes_star_spikes":"4","shapes_star_inner":"0","shapes_star_outer":"8","shapes_overlay":true,"shapes_overlay_transparency":"10","border_alt_color":"#ffffff","border_color":"#0080ff","shapes_arc_color":"#000000","shapes_arc_transparent":false,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_overlay_type":"marble1"}, | |
i: {"modify":true,"color":"#4a4aff","size":"0","opacity":"100","gradient":false,"gradient_color":"#000055","gradient_start":"5","gradient_stop":"25","gradient_position":"20","border_width":"19","border_segments":"2","shapes_arc":true,"shapes_arc_width":"2","shapes_arc_position":"16","shapes_arc_size":"18","shapes_star":false,"shapes_star_width":"2","shapes_star_spikes":"2","shapes_star_inner":"0","shapes_star_outer":"20","shapes_overlay":false,"shapes_overlay_transparency":"20","border_alt_color":"#6f6fff","border_color":"#4646ff","shapes_arc_color":"#9f9fff","shapes_arc_transparent":true,"shapes_overlay_base64":"","shapes_star_color":"#ffffff","shapes_star_transparent":true,"shapes_star_fill":false,"shapes_star_fill_color":"#ffffff","shapes_overlay_type":"earth1"}, | |
} | |
}, | |
ballshapes: { | |
keys: ['redball', 'blueball'], | |
containerId: ['TPE_Presets_Shapes_RedBall', 'TPE_Presets_Shapes_BlueBall'], | |
presets: { | |
'square': { 'shapes_star_width': 2, 'shapes_star_spikes': 4, 'shapes_star_inner': 9, 'shapes_star_outer': 13, 'shapes_star_fill': false }, | |
'plus': { 'shapes_star_width': 4, 'shapes_star_spikes': 4, 'shapes_star_inner': 0, 'shapes_star_outer': 10, 'shapes_star_fill': false }, | |
'minus': { 'shapes_star_width': 4, 'shapes_star_spikes': 2, 'shapes_star_inner': 0, 'shapes_star_outer': 8, 'shapes_star_fill': false }, | |
'merc': { 'shapes_star_width': 2, 'shapes_star_spikes': 3, 'shapes_star_inner': 7, 'shapes_star_outer': 1, 'shapes_star_fill': true, 'shapes_star_fill_color': '#FFFFFF' }, | |
'star4': { 'shapes_star_width': 3, 'shapes_star_spikes': 4, 'shapes_star_inner': 2, 'shapes_star_outer': 9, 'shapes_star_fill': false }, | |
} | |
} | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
var loadPresets = function() { | |
$('#TPE_MySavedOptions').append('<select id="TPE_MySavedOptions_Presets" style="width:130px; color:black;"><option>Select Preset...</option></select>'); | |
$.each(presets, function(key, value) { | |
$.each(value.containerId, function(ke, va) { | |
var thiskey = ''; | |
if (value.keys) thiskey = value.keys[ke]; | |
$.each(value.presets, function(k, v) { | |
let title = 'Load this preset'; | |
let displayName = k; | |
if (va === 'TPE_MySavedOptions') { | |
if (v.hasOwnProperty('textures') && (v.textures.tiles || v.textures.speedpad || v.textures.speedpadRed || v.textures.speedpadBlue || v.textures.portal || v.textures.splats || v.textures.gravityWell) ) { | |
title += ' (includes texture links)'; | |
//displayName = '<span style="color:mediumorchid">*</span>' + k; | |
} | |
$('#TPE_MySavedOptions_Presets').append('<option class="TPE_Preset" value="'+key+'.'+k+'" data-preset="'+key+'.'+k+'" data-color="'+thiskey+'" title="'+title+'">'+displayName+'</option>'); | |
} else { | |
$('#'+va).append('<div class="TPE_Preset" data-preset="'+key+'.'+k+'" data-color="'+thiskey+'" title="'+title+'">'+displayName+'</div>'); | |
} | |
}); | |
if (key === 'ballshapes') return true; | |
if (true) { | |
$('#'+va).append('<div style="display:flex; flex-flow:column; align-self:stretch; align-items:center; justify-content:space-evenly; position:absolute; height:100%; top:0px; left:5px;">' + | |
' <div class="TPE_Import_Presets" data-key="'+key+'" data-keys="'+thiskey+'" title="Import a JSON formatted string for '+key+' options" style="width:12px; height:12px; opacity:0.2; text-align:center; font-size:8px; color:white; background:midnightblue; border:1px solid dodgerblue; border-radius:4px; cursor:pointer">I</div>' + | |
' <div class="TPE_Export_Presets" data-key="'+key+'" data-keys="'+thiskey+'" title="Export '+key+' options to a JSON formatted string" style="width:12px; height:12px; opacity:0.2; text-align:center; font-size:8px; color:white; background:blueviolet; border:1px solid skyblue; border-radius:4px; cursor:pointer">E</div>' + | |
'</div>'); | |
} | |
}); | |
}); | |
}; | |
var loadPreset = function(preset, color) { | |
if (!preset || !preset.includes('.')) return; | |
var index = preset.split('.'); | |
if (!presets[index[0]].presets[index[1]]) return; | |
if (index[0] === 'all') { | |
if (presets.all.presets.hasOwnProperty([index[1]])) { | |
options = $.extend(true, {}, defaultOptions, presets.all.presets[index[1]]); | |
GM_setValue('options', options); | |
loadOptionsValues(false); | |
//updateFloorTilesPreview(); | |
} | |
} else { | |
$.each(presets[index[0]].presets[index[1]], function(key, value) { | |
var newValue; | |
var selectedColor; | |
if (typeof value !== 'object') { | |
if (color) key = color + '.' + key; | |
newValue = { [key]: value }; | |
} else { | |
selectedColor = color; | |
newValue = value; | |
} | |
$.each(newValue, function(k, v) { | |
if ((index[0] === 'ballshapes')) { | |
if (!color || (selectedColor && k !== selectedColor)) { | |
return true; | |
} | |
if (typeof value === 'object') { | |
k = color + '.' + key; | |
v = value[color]; | |
} | |
} else if (!k.includes('.')) { | |
k = key + '.' + k; | |
} | |
var element = $('#TPE_Container, #TPE_Container_Balls').find('[data-saveto="'+k+'"]'); | |
if ((v === true) || (v === false)) { | |
element.prop('checked', v); | |
} else if ($(element).attr('type') === 'radio') { | |
$('#TPE_Container, #TPE_Container_Balls').find('[data-type="'+value+'"][data-saveto="'+k+'"]').prop('checked', true); | |
} else { | |
element.val(v); | |
} | |
var group = $(element).data('group'); | |
var rgroup = $(element).data('rgroup'); | |
if (group) { | |
if ((v === true) || (v > 0)) $('.' + group).slideDown(400); | |
else $('.' + group).slideUp(400); | |
} | |
if (rgroup) { | |
if ((v === true) || (v > 0)) $('.' + rgroup).slideUp(400); | |
else $('.' + rgroup).slideDown(400); | |
} | |
}); | |
}); | |
} | |
saveValues(); | |
if (index[0] === 'all') { | |
updateAllPreviews(); | |
} else if (index[0] === 'floortiles') { | |
updateFloorTilesPreview(); | |
} else if ((index[0] === 'redball') || (index[0] === 'blueball') || (index[0] === 'ballshapes')) { | |
updateBallPreviews(); | |
} | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
// Create the new page elements & menus... | |
/*-------------------------------------------------------------------------------*/ | |
//Add new elements to the "Import Custom" tab... | |
$('#TP_ShowPreviewAll').remove(); //remove the built-in "Preview All" | |
$('#custom').find('.TP_ShowPreview').remove(); //remove the built-in link previews | |
$('#custom').find('input').parent('div').prepend('<span class="TP_ShowPreview" style="margin:4px 5px 0 0; padding:2px 5px; font-size:12px; color:white; background:#444; border:1px dashed #aaa; border-radius:5px; float:right; cursor:default;">Preview</span>'); | |
$('#custom-textures-btn').before('<span id="TP_ShowPreviewAll" style="position:absolute; right:0; margin:30px 16px 0 0; padding:2px 5px; font-size:16px; color:white; background:#444; border:1px dashed #aaa; border-radius:5px; cursor:default;">Preview All</span>'); | |
$('#custom-textures-btn').after('<div id="TPE_MySavedPacks" style="display:flex; margin:15px 5px 0; flex-flow:row wrap; align-items:center; justify-content:center; background:#333; border:1px solid #444; border-radius:5px;"></div>'); | |
$('#TPE_MySavedPacks').append('<div id="TPE_SaveMyPack" title="Save the current texture links as a new pack" style="margin:2px 13px; padding:6px 0; width:38px; height:38px; opacity:0.6; text-align:center; font-size:18px; color:white; background:limegreen; border: 1px dashed white; border-radius:10px; cursor:pointer">+</div>'); | |
//Create "Options" tab... | |
$('ul.tab-list').append('<li data-target="#TPE_Container"><a>Game Options</a></li>'); | |
$('div.tab-content').append('<div id="TPE_Container" class="tab-pane" style="margin-top:-30px; padding:10px; font-size:12px;"></div>'); | |
//Add Ball Editor Tab... | |
$('ul.tab-list').append('<li data-target="#TPE_Container_Balls"><a>Tile Editor</a></li>'); | |
$('div.tab-content').append('<div id="TPE_Container_Balls" class="tab-pane" style="margin-top:-30px; padding:10px; font-size:12px;"></div>'); | |
/*******************/ | |
//Preview Tile | |
$('h1.header-title').css({'display':'inline-block', 'width':'100%'}); | |
$('h1.header-title').append('<div id="TPE_FloorTiles_Preview_Container" style="position:absolute; display:inline-block; margin:-14px 0 0 50px; padding: 2px 1px 2px 4px; height:46px; z-index:100; border:1px dashed rgba(128,220,128,0.6); border-radius:4px; text-align:center; font-size:12px;"><canvas id="TPE_FloorTiles_Preview" width="40" height="40"></canvas><div>Show Preview</div></div>'); | |
/*******************/ | |
//Options Container | |
$('#TPE_Container').append('<div id="TPE_GameOptions" style="display:flex; align-items:flex-start; justify-content:center; width:100%;"></div>'); | |
/****************************/ | |
/******** 1st Column ********/ | |
/****************************/ | |
$('#TPE_GameOptions').append('<div id="TPE_Options1_Outer" style="display:flex; flex-flow:column wrap; align-items:flex-start; justify-content:center; margin:10px 5px; width:340px;"></div>'); | |
//Wallpaper Options... | |
$('#TPE_Options1_Outer').append('<div id="TPE_Wallpaper" style="display:flex; flex-flow:column wrap; align-items:center; padding:6px; width:100%; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_Wallpaper').append('<span>Game Wallpaper: <select id="TPE_WP" style="color:black" data-saveto="gamewallpaper.type">' + | |
' <option value="none">None</option>' + | |
' <option value="color">Color</option>' + | |
' <option value="gradient">Gradient</option>' + | |
' <option value="image">Image</option>' + | |
'</select></span>'); | |
$('#TPE_Wallpaper').append('<div id="TPE_DropZone_Outer" style="display:flex; align-items:center; margin:10px; width:220px; height:165px; text-align:center; border:2px dotted silver;"><div id="TPE_DropZone" style="width:100%; height:100%"></div></div>'); | |
$('#TPE_Wallpaper').append('<div class="TPE_WPG_Image" style="margin:-10px 0 5px; font-size:12px; font-style:italic">(Drag & Drop Backgrounds Here)</div>'); | |
$('#TPE_Wallpaper').append('<div class="TPE_WPG_Image" style="margin:-10px 0 5px; font-size:12px;">Stored Image Size: <span id="TPE_WPG_Image_Size"></span></div>'); | |
$('#TPE_Wallpaper').append('<label class="TPE_WPG_Image"><input type="checkbox" data-saveto="gamewallpaper.stretch">Stretch Wallpaper to Fit</label>'); | |
//$('#TPE_Wallpaper').append('<input type="hidden" data-saveto="gamewallpaper.imagedata">'); | |
$('#TPE_Wallpaper').append('<span class="TPE_WPG_Color">Color: <input type="color" id="TPE_WPG_Color" data-saveto="gamewallpaper.color"></span>'); | |
$('#TPE_Wallpaper').append('<div class="TPE_WPG_Gradient" style="text-align:center;">' + | |
' <label><input type="radio" name="TPE_GradientPresets" data-type="red" data-saveto="gamewallpaper.gradient_preset" data-c1="#554444" data-c2="#552222">Red</label>' + | |
' <label><input type="radio" name="TPE_GradientPresets" data-type="green" data-saveto="gamewallpaper.gradient_preset" data-c1="#445544" data-c2="#225522">Green</label>' + | |
' <label><input type="radio" name="TPE_GradientPresets" data-type="blue" data-saveto="gamewallpaper.gradient_preset" data-c1="#444455" data-c2="#222255">Blue</label>' + | |
' <label><input type="radio" name="TPE_GradientPresets" data-type="orange" data-saveto="gamewallpaper.gradient_preset" data-c1="#665400" data-c2="#512400">Orange</label>' + | |
' <label><input type="radio" name="TPE_GradientPresets" data-type="light" data-saveto="gamewallpaper.gradient_preset" data-c1="#DDDDDD" data-c2="#777777">Light</label>' + | |
' <label><input type="radio" name="TPE_GradientPresets" data-type="dark" data-saveto="gamewallpaper.gradient_preset" data-c1="#222222" data-c2="#090909">Dark</label>' + | |
' <label><input type="radio" name="TPE_GradientPresets" data-type="redblue" data-saveto="gamewallpaper.gradient_preset" data-c1="#aa0000" data-c2="#0055aa">Red/Blue</label>' + | |
'</div>'); | |
$('#TPE_Wallpaper').append('<div class="TPE_WPG_Gradient"><span>Color 1: <input type="color" id="TPE_GameWallPaper_Color1" data-saveto="gamewallpaper.color1"></span><span style="margin-left:20px;">Color 2: <input type="color" id="TPE_GameWallPaper_Color2" data-saveto="gamewallpaper.color2"></span></div>'); | |
$('#TPE_Wallpaper').append('<span class="TPE_WPG_Gradient" style="margin-top:5px;">Gradient Type: <select id="TPE_GradientTypes" style="color:black" data-saveto="gamewallpaper.gradient_type">' + | |
' <option value="horizontal">Horizontal</option>' + | |
' <option value="vertical">Vertical</option>' + | |
' <option value="circle">Circle</option>' + | |
' <option value="ellipse">Ellipse</option>' + | |
' <option value="team" title="Color1 is on the Red side of the screen, Color2 is on the Blue side.">Team</option>' + | |
'</select></span>'); | |
//Options... | |
$('#TPE_Options1_Outer').append('<div id="TPE_Options" style="display:flex; flex-flow:column wrap; width:100%; margin-top:10px; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_Options').append('<label title="0=Solid Color. 100=Invisible!" style="display:flex; justify-content:flex-start; align-items:center; white-space:nowrap;"><span>Ball Transparency: </span><span style="margin:0 10px"><input type="range" id="TPE_TransparentBall" min="0" max="100" data-saveto="gameoptions.ball_transparency" style="width:80px"></span><span id="TPE_TransparentBallValue">'+(options.gameoptions.ball_transparency)+'</span>%</label>'); | |
$('#TPE_Options').append('<label title="Splats will fade out after 5 seconds"><input type="checkbox" id="TPE_FadingSplats" data-saveto="gameoptions.fading_splats">Use Fading Splats</label>'); | |
$('#TPE_Options').append('<label title="Remove the black background behind the map"><input type="checkbox" data-saveto="gameoptions.transparent_background">Transparent Game Background</label>'); | |
$('#TPE_Options').append('<label title="Modify the "TagPro" powerup effect"><input type="checkbox" data-saveto="modify_TP.modify" data-group="TPE_Group_ModifyTP">Modify TagPro</label>' + | |
'<div class="TPE_Group_ModifyTP TPE_SubGroup">' + | |
' <div><label title="">Line Color: <input type="color" data-saveto="modify_TP.line_color"></label>' + | |
' <label title="TagPro default is: 100">Line Opacity: <input type="number" min="0" max="100" data-saveto="modify_TP.line_opacity"></label>' + | |
' <label title="TagPro default is: 3">Line Width: <input type="number" min="0" max="20" data-saveto="modify_TP.line_width"></label></div>' + | |
' <div><label title="">Fill Color: <input type="color" data-saveto="modify_TP.fill_color"></label>' + | |
' <label title="TagPro default is: 15">Fill Opacity: <input type="number" min="0" max="100" data-saveto="modify_TP.fill_opacity"></label></div>' + | |
' <div><label title="TagPro default is: 20">Radius: <input type="number" min="1" max="30" data-saveto="modify_TP.line_radius"></label></div>' + | |
'</div>'); | |
$('#TPE_Options').append('<label title="Modify the "Rolling Bomb" powerup effect"><input type="checkbox" data-saveto="modify_RB.modify" data-group="TPE_Group_ModifyRB">Modify Rolling Bomb</label>' + | |
'<div class="TPE_Group_ModifyRB TPE_SubGroup">' + | |
' <div><label title="">Line Color: <input type="color" data-saveto="modify_RB.line_color"></label>' + | |
' <label title="TagPro default is: 0 (0 = no line)">Line Opacity: <input type="number" min="0" max="100" data-saveto="modify_RB.line_opacity"></label>' + | |
' <label title="TagPro default is: 0 (0 = no line)">Line Width: <input type="number" min="0" max="20" data-saveto="modify_RB.line_width"></label></div>' + | |
' <div><label title="">Fill Color: <input type="color" data-saveto="modify_RB.fill_color"></label>' + | |
' <label title="TagPro default is: 75 (0 = no fill)">Fill Opacity: <input type="number" min="0" max="100" data-saveto="modify_RB.fill_opacity"></label></div>' + | |
' <div><label title="TagPro default is: 20">Radius: <input type="number" min="1" max="30" data-saveto="modify_RB.line_radius"></label>' + | |
' <label title="TagPro default is: 150 (lower is faster flashing)">Flashing Speed: <input type="number" min="20" max="200" step="5" data-saveto="modify_RB.speed"></label></div>' + | |
'</div>'); | |
$('#TPE_Options').append('<label title="Modify the "Juke Juice" powerup\n(Replaces the JJ icon with circle => no icon lag with live player position script!)"><input type="checkbox" data-saveto="modify_JJ.modify" data-group="TPE_Group_ModifyJJ">Modify Juke Juice</label>' + | |
'<div class="TPE_Group_ModifyJJ TPE_SubGroup">' + | |
' <label title="">Line Color: <input type="color" data-saveto="modify_JJ.line_color"></label>' + | |
' <label title="">Fill Color: <input type="color" data-saveto="modify_JJ.fill_color"></label>' + | |
' <div><label title="TagPro default is: ~8\n(Left is 0, Center is 20, Right is 40)">X: <input type="number" min="0" max="40" data-saveto="modify_JJ.x"></label>' + | |
' <label title="TagPro default is: ~32\n(Top is 0, Center is 20, Bottom is 40)">Y: <input type="number" min="0" max="40" data-saveto="modify_JJ.y"></label>' + | |
' <label title="TagPro default is: ~5">Radius: <input type="number" min="2" max="10" data-saveto="modify_JJ.radius"></label></div>' + | |
'</div>'); | |
$('#TPE_Options').append('<label title="Use an alternate "dead ball face" as the spawn shadow (only works if "Modify Balls" is enabled in the "Ball Editor" tab)"><input type="checkbox" data-saveto="altSpawnShadow.modify" data-group="TPE_Group_AltSpawnShadow">Alternate Spawn Shadow</label>'); | |
$('#TPE_Options').append('<label title="Changes the brightness of *everyone elses* ball so yours stands out better (only works if "Modify Balls" is enabled in the "Ball Editor" tab)"><input type="checkbox" data-saveto="gameoptions.filters_brightness" data-group="TPE_Group_FilterBrightness">Make Me Special</label>' + | |
'<div class="TPE_Group_FilterBrightness TPE_SubGroup">' + | |
' <label title="100 = Normal; <100 = Darker; >100 = Brighter">Brightness: <input type="number" min="0" max="200" data-saveto="gameoptions.filters_brightness_value"></label>' + | |
'</div>'); | |
$('#TPE_Options').append('<div class="TPE_Divider"></div>'); | |
$('#TPE_Options').append('<label title="Shows the current scoreboard position for each player on their ball"><input type="checkbox" id="TPE_AddSBPosLabels" data-saveto="sbpl.modify" data-group="TPE_Group_SBPL">Add Scoreboard Position Labels</label>' + | |
'<div class="TPE_Group_SBPL TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="sbpl.color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="sbpl.opacity"></label>' + | |
' <label title="0 = Ball Centre. Less than 0 = Left. Greater than 0 = Right.">X: <input type="number" min="-40" max="40" data-saveto="sbpl.x"></label>' + | |
' <label title="0 = Ball Centre. Less than 0 = Up. Greater than 0 = Down.">Y: <input type="number" min="-40" max="40" data-saveto="sbpl.y"></label>' + | |
'</div>'); | |
$('#TPE_Options').append('<label title=""><input type="checkbox" data-saveto="ballglow.modify" data-group="TPE_Group_BallGlow">Add Ball Glow</label>' + | |
'<div class="TPE_Group_BallGlow TPE_SubGroup">' + | |
' <div><label title="">"Red": <input type="color" data-saveto="ballglow.red_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="ballglow.red_opacity"></label></div>' + | |
' <div><label title="">"Blue": <input type="color" data-saveto="ballglow.blue_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="ballglow.blue_opacity"></label></div>' + | |
' <div><label title="">Radius: <input type="number" min="20" max="400" data-saveto="ballglow.radius"></label>' + | |
' <label title="">Under Floor?: <input type="checkbox" data-saveto="ballglow.below"></label></div>' + | |
' <div style="font-size:10px; color:#999; font-style:italic; margin-top:5px; text-align:center;">To use Ball Glow both "Plain Tiles" and "Square Grid" must be checked</div>' + | |
'</div>'); | |
/****************************/ | |
/******** 2nd Column ********/ | |
/****************************/ | |
$('#TPE_GameOptions').append('<div id="TPE_Options2_Outer" style="display:flex; flex-flow:column wrap; align-items:flex-start; justify-content:center; margin:10px 5px; width:340px;"></div>'); | |
//Floor Tiles... | |
$('#TPE_Options2_Outer').append('<div id="TPE_FloorTiles" style="position:relative; display:flex; flex-flow:column wrap; align-items:flex-start; width:100%; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448);"></div>'); | |
//Plain tiles... | |
$('#TPE_FloorTiles').append('<label title=""><input type="checkbox" data-saveto="floortiles.modify" data-group="TPE_Group_ModifyFloorTiles">Modify Floor Tiles</label>' + | |
'<div class="TPE_Group_ModifyFloorTiles TPE_SubGroup">' + | |
' <div class="TPE_Group_Tiles_NoFloor">' + | |
' <div><label title="This will replace the Floor tiles in your texture pack with a plain square tile"><input type="checkbox" data-saveto="floortiles.plain" data-rgroup="TPE_Group_Tiles_Plain">Use Plain Tiles</label></div>' + | |
' <div><label title="Tint the floor tiles with this color">Color: <input type="color" data-saveto="floortiles.tint_color"></label></div>' + | |
' <div class="TPE_Group_Tiles_Plain"><label title="0=No Tint, 100=Solid Color">Tint Opacity: <input type="number" min="0" max="100" data-saveto="floortiles.tint_opacity"></label></div>' + | |
' <label title="Use a different random floor color each game"><input type="checkbox" data-saveto="floortiles.random" data-group="TPE_Group_Tiles_Random">Random Colors</label>' + | |
' <div class="TPE_Group_Tiles_Random TPE_SubGroup">' + | |
' <label title="<40 = Dull Colors; >60 = Rich Colors">Saturation: <input type="number" min="0" max="100" data-saveto="floortiles.random_saturation"></label>' + | |
' <label title="<40 = Dark Shades; >60 = Lighter Shades">Brightness: <input type="number" min="0" max="100" data-saveto="floortiles.random_brightness"></label>' + | |
' </div>' + | |
' </div>' + | |
' <div><label title="The floor tile won\'t be drawn (select a gradient wallpaper and use a grid instead)"><input type="checkbox" data-saveto="floortiles.nofloor" data-rgroup="TPE_Group_Tiles_NoFloor">No Floor</label></div>' + | |
//' <div><label title="This is the transparency of your texture pack floor floortiles. 0=Solid Color, 100=Transparent\nNote that older systems may struggle with transparency - set to 0 for best performance.">Tiles Transparency: <input type="number" min="0" max="100" data-saveto="floortiles.transparency"></label></div>' + | |
//' <div><label title="Reduces the tile size by this much (e.g.: 2 = 38px floor tile size, 20 = No Tile)">Tile Margin: <input type="number" min="0" max="20" data-saveto="floortiles.margin"></label></div>' + | |
'</div>'); | |
//Overlay Image... | |
$('#TPE_FloorTiles').append('<label><input type="checkbox" data-saveto="floortiles.image" data-group="TPE_Group_FloorImage">Overlay Image</label>' + | |
'<div class="TPE_Group_FloorImage TPE_SubGroup">' + | |
' <div id="TPE_FloorImage_DropZone_Outer" style="display:flex; align-items:center; margin:5px 5px 10px; width:220px; height:165px; text-align:center; border:2px dotted silver;"><div id="TPE_FloorImage_DropZone" style="width:100%; height:100%"></div></div>' + | |
' <div class="TPE_FloorImage_Image" style="margin:-10px 0 5px; text-align:center; font-size:12px; font-style:italic">(Drag & Drop Images Here)</div>' + | |
' <div class="TPE_FloorImage_Image" style="margin:-10px 0 5px; text-align:center; font-size:12px;">Stored Image Size: <span id="TPE_FloorImage_Size"></span></div>' + | |
' <div><label title=""><input type="checkbox" data-saveto="floortiles.image_floor" data-group="TPE_Group_FloorImage_Floor">Apply to Floor</label></div>' + | |
' <div class="TPE_Group_FloorImage_Floor TPE_SubGroup">' + | |
' <label title="Less than 100 is darker. Over 100 is brighter. Unchanged is 100.">Brightness: <input type="number" min="0" max="500" data-saveto="floortiles.image_brightness"></label>' + | |
' <label title="Less than 100 is less contrast. Over 100 is more contrast. Unchanged is 100.">Contrast: <input type="number" min="0" max="500" data-saveto="floortiles.image_contrast"></label>' + | |
' <label title="Less than 100 is less saturation. Over 100 is more saturation. Unchanged is 100.">Saturation: <input type="number" min="0" max="500" data-saveto="floortiles.image_saturation"></label>' + | |
' <label title="100 is unchanged. 0 is transparent.">Opacity: <input type="number" min="0" max="100" data-saveto="floortiles.image_opacity"></label>' + | |
' <label title="0 is unchanged.">Hue Rotate: <input type="number" min="0" max="360" step="5" data-saveto="floortiles.image_huerotate"></label>' + | |
' <label title="">Sepia: <input type="number" min="0" max="100" data-saveto="floortiles.image_sepia"></label>' + | |
' <label title="">Grayscale: <input type="number" min="0" max="100" data-saveto="floortiles.image_grayscale"></label>' + | |
' <label title="">Blur: <input type="number" min="0" max="50" data-saveto="floortiles.image_blur"></label>' + | |
' </div>' + | |
' <div><label title=""><input type="checkbox" data-saveto="floortiles.image_walls" data-group="TPE_Group_FloorImage_Walls">Apply to Walls</label></div>' + | |
' <div class="TPE_Group_FloorImage_Walls TPE_SubGroup">' + | |
' <label title="Less than 100 is darker. Over 100 is brighter. Unchanged is 100.">Brightness: <input type="number" min="0" max="500" data-saveto="floortiles.image_walls_brightness"></label>' + | |
' <label title="Less than 100 is less contrast. Over 100 is more contrast. Unchanged is 100.">Contrast: <input type="number" min="0" max="500" data-saveto="floortiles.image_walls_contrast"></label>' + | |
' <label title="Less than 100 is less saturation. Over 100 is more saturation. Unchanged is 100.">Saturation: <input type="number" min="0" max="500" data-saveto="floortiles.image_walls_saturation"></label>' + | |
' <label title="100 is unchanged. 0 is transparent.">Opacity: <input type="number" min="0" max="100" data-saveto="floortiles.image_walls_opacity"></label>' + | |
' <label title="0 is unchanged.">Hue Rotate: <input type="number" min="0" max="360" step="5" data-saveto="floortiles.image_walls_huerotate"></label>' + | |
' <label title="">Sepia: <input type="number" min="0" max="100" data-saveto="floortiles.image_walls_sepia"></label>' + | |
' <label title="">Grayscale: <input type="number" min="0" max="100" data-saveto="floortiles.image_walls_grayscale"></label>' + | |
' <label title="">Blur: <input type="number" min="0" max="50" data-saveto="floortiles.image_walls_blur"></label>' + | |
' </div>' + | |
'</div>'); | |
//Floor Gradient... | |
$('#TPE_FloorTiles').append('<label><input type="checkbox" data-saveto="floortiles.gradient" data-group="TPE_Group_FloorGradient">Floor Gradient</label>' + | |
'<div class="TPE_Group_FloorGradient TPE_SubGroup">' + | |
' <label title="">Color 1: <input type="color" data-saveto="floortiles.gradient_color1"></label>' + | |
' <label title="">Color 2: <input type="color" data-saveto="floortiles.gradient_color2"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity 1: <input type="number" min="0" max="100" data-saveto="floortiles.gradient_opacity1"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity 2: <input type="number" min="0" max="100" data-saveto="floortiles.gradient_opacity2"></label>' + | |
' <select title="" data-saveto="floortiles.gradient_type" style="color:black">' + | |
' <option value="centerline">Halfway</option>' + | |
' <option value="centercircle">Center Radial</option>' + | |
' <option value="randomcircles" title=""Repeats" is blur - higher is better">Random Circles</option>' + | |
' <option value="randomsquares" title=""Repeats" is blur - higher is better">Random Squares</option>' + | |
//' <option value="flags">Between Flags</option>' + | |
' </select>' + | |
' <label title="Number of times the gradient repeats">Repeats: <input type="number" min="2" max="100" step="2" data-saveto="floortiles.gradient_repeats"></label>' + | |
'</div>'); | |
//Hexagons... | |
$('#TPE_FloorTiles').append('<label title=""><input type="checkbox" data-saveto="floortiles.hexagons" data-group="TPE_Group_Tiles_Hexagons">Add Hexagons</label>' + | |
'<div class="TPE_Group_Tiles_Hexagons TPE_SubGroup">' + | |
' <label title="">Size: <input type="number" min="1" max="600" data-saveto="floortiles.hexagons_size"></label>' + | |
' <label title="">Line Width: <input type="number" min="0" max="10" data-saveto="floortiles.hexagons_linewidth"></label>' + | |
' <label title="">Margin: <input type="number" min="0" max="20" data-saveto="floortiles.hexagons_margin"></label>' + | |
' <label title="">Blur: <input type="number" min="0" max="10" data-saveto="floortiles.hexagons_blur"></label>' + | |
' <div><label title=""><input type="checkbox" data-saveto="floortiles.hexagons_stroke" data-group="TPE_Group_Tiles_Hexagons_Stroke"> Stroke</label>' + | |
' <div class="TPE_Group_Tiles_Hexagons_Stroke" style="display:inline-block;"><label title=""><input type="color" data-saveto="floortiles.hexagons_stroke_color"></label>' + | |
' <label title="Opacity: 0=Transparent, 100=Solid Color"><input type="number" min="0" max="100" data-saveto="floortiles.hexagons_stroke_opacity"></label>' + | |
' <label title="Gradient Position (0=No Gradient)"><input type="number" min="0" max="100" data-saveto="floortiles.hexagons_stroke_gradient"></label></div></div>' + | |
' <div><label title=""><input type="checkbox" data-saveto="floortiles.hexagons_fill" data-group="TPE_Group_Tiles_Hexagons_Fill"> Fill</label>' + | |
' <div class="TPE_Group_Tiles_Hexagons_Fill" style="display:inline-block;"><label title=""><input type="color" data-saveto="floortiles.hexagons_fill_color"></label>' + | |
' <label title="Opacity: 0=Transparent, 100=Solid Color"><input type="number" min="0" max="100" data-saveto="floortiles.hexagons_fill_opacity"></label>' + | |
' <label title="Gradient Position (0=No Gradient)"><input type="number" min="0" max="100" data-saveto="floortiles.hexagons_fill_gradient"></label></div></div>' + | |
'</div>'); | |
//Checkered... | |
$('#TPE_FloorTiles').append('<label title="Checkered Tiles works best when...\n- The 2 Tint Colors are the same (or very similar), and/or\n- The 2 Tint Opacity values are close together (1-10 difference is good)\n- If you\'re using "Plain Tiles" the Opacity values should be high (90-100), otherwise they will be transparent"><input type="checkbox" data-saveto="floortiles.checkered" data-group="TPE_Group_CheckeredTiles">Checkered Tiles</label>' + | |
'<div class="TPE_Group_CheckeredTiles TPE_SubGroup">' + | |
' <label title="Tint the alternate floor tiles with this color">Alt Tint: <input type="color" data-saveto="floortiles.checkered_altTintColor"></label>' + | |
' <label title="0=No Tint, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="floortiles.checkered_altTintOpacity"></label>' + | |
' <label title="0=Half Map">Size: <input type="number" min="-1" max="400" data-saveto="floortiles.checkered_size"></label>' + | |
//' <label title="">Random: <input type="checkbox" data-saveto="floortiles.checkered_random"></label>' + | |
//' <label title="">Blur: <input type="number" min="0" max="100" data-saveto="floortiles.checkered_blur"></label>' + | |
'</div>'); | |
//Square Grid... | |
$('#TPE_FloorTiles').append('<label title=""><input type="checkbox" data-saveto="floortiles.grids_square" data-group="TPE_Group_Grids_Square">Square Grid</label>' + | |
'<div class="TPE_Group_Grids_Square TPE_SubGroup">' + | |
' <label title="">Size: <input type="number" min="1" max="400" data-saveto="floortiles.grids_square_size"></label>' + | |
' <label title="">Margin: <input type="number" min="0" max="40" data-saveto="floortiles.grids_square_margin"></label>' + | |
' <label title="">Color: <input type="color" data-saveto="floortiles.grids_square_color"></label>' + | |
' <label title="">Linewidth: <input type="number" min="1" max="40" data-saveto="floortiles.grids_square_linewidth"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="floortiles.grids_square_opacity"></label>' + | |
' <label title="">Dashed: <input type="number" min="0" max="40" data-saveto="floortiles.grids_square_dashed"></label>' + | |
' <label title="">Blur: <input type="number" min="0" max="10" data-saveto="floortiles.grids_square_blur"></label>' + | |
' <label title="Also draws the right and bottom edges">Alt Side: <input type="checkbox" data-saveto="floortiles.grids_square_altSides" data-group="TPE_Group_Grids_Square_AltSides"></label>' + | |
' <label title="Color for the right & bottom edges. If darker than grid color, the tile appears raised. If lighter, the tile appears sunken." class="TPE_Group_Grids_Square_AltSides">Color: <input type="color" data-saveto="floortiles.grids_square_altColor"></label>' + | |
'</div>'); | |
//Diagonal Grid... | |
$('#TPE_FloorTiles').append('<label><input type="checkbox" data-saveto="floortiles.grids_diagonal" data-group="TPE_Group_Grids_Diagonal">Diagonal Grid</label>' + | |
'<div class="TPE_Group_Grids_Diagonal TPE_SubGroup">' + | |
' <label title="">Size: <input type="number" min="1" max="400" data-saveto="floortiles.grids_diagonal_size"></label>' + | |
' <label title="">Color: <input type="color" data-saveto="floortiles.grids_diagonal_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="floortiles.grids_diagonal_opacity"></label>' + | |
' <label title="0=No Dash">Dashed: <input type="number" min="0" max="40" data-saveto="floortiles.grids_diagonal_dashed"></label>' + | |
' <label title="">Blur: <input type="number" min="0" max="10" data-saveto="floortiles.grids_diagonal_blur"></label>' + | |
'</div>'); | |
//Specks... | |
$('#TPE_FloorTiles').append('<label title=""><input type="checkbox" data-saveto="floortiles.specks" data-group="TPE_Group_Tiles_Specks">Add Randoms</label>' + | |
'<div class="TPE_Group_Tiles_Specks TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="floortiles.specks_color"></label>' + | |
' <label title="Negative = Random opacity up to this value, 100=Solid Color">Opacity: <input type="number" min="-100" max="100" data-saveto="floortiles.specks_opacity"></label>' + | |
' <label title="Negative = Random lengths up to value">Length: <input type="number" min="-500" max="500" data-saveto="floortiles.specks_length"></label>' + | |
' <label title="">Width: <input type="number" min="1" max="20" data-saveto="floortiles.specks_width"></label>' + | |
' <label title="0=Random Angles">Angle: <input type="number" min="0" max="360" value="315" data-saveto="floortiles.specks_angle"></label>' + | |
' <label title="The approx number of randoms to draw per 40px tile">Count: <input type="number" min="1" max="300" data-saveto="floortiles.specks_count"></label>' + | |
'</div>'); | |
//Floor Presets... | |
$('#TPE_FloorTiles').append('<div id="TPE_Presets_FloorTiles" class="TPE_Presets" style="position:relative; text-align:center; margin-top:5px; width:100%; border:1px solid #555; border-radius:3px; padding:5px 0;" title="Floor Tile Presets"></div>'); | |
/****************************/ | |
/******** 3rd Column ********/ | |
/****************************/ | |
$('#TPE_GameOptions').append('<div id="TPE_Options3_Outer" style="position:relative; display:flex; flex-flow:column wrap; align-items:flex-start; margin:10px 5px; width:340px;"></div>'); | |
//Base Shapes... | |
$('#TPE_Options3_Outer').append('<div id="TPE_ShapesOptions" style="display:flex; flex-flow:column wrap; width:100%; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_ShapesOptions').append('<label title="Draws a line down the center of the map"><input type="checkbox" data-saveto="shapes.centerline" data-group="TPE_Group_ShapesCenterLine">Map Center Line</label>' + | |
'<div class="TPE_Group_ShapesCenterLine TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="shapes.centerline_color"></label>' + | |
' <label title="">Line Width: <input type="number" min="1" max="40" data-saveto="shapes.centerline_width"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="shapes.centerline_opacity"></label>' + | |
' <label title="0=Solid Line">Dash Size: <input type="number" min="0" max="39" data-saveto="shapes.centerline_dashsize"></label>' + | |
'</div>'); | |
$('#TPE_ShapesOptions').append('<label title="Draws a circle around the flags"><input type="checkbox" data-saveto="shapes.circle" data-group="TPE_Group_ShapesCircle">Circle Around Flags</label>' + | |
'<div class="TPE_Group_ShapesCircle TPE_SubGroup">' + | |
' <label title="">"R": <input type="color" data-saveto="shapes.circle_red_color"></label>' + | |
' <label title="">"B": <input type="color" data-saveto="shapes.circle_blue_color"></label>' + | |
' <label title="">"Y": <input type="color" data-saveto="shapes.circle_yellow_color"></label>' + | |
' <label title="Line Width">Width: <input type="number" min="1" max="100" data-saveto="shapes.circle_width"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="shapes.circle_opacity"></label>' + | |
' <label title="">Radius: <input type="number" min="1" max="400" data-saveto="shapes.circle_radius"></label>' + | |
' <label title="">Use Gradient: <input type="checkbox" data-saveto="shapes.circle_gradient"></label>' + | |
'</div>'); | |
$('#TPE_ShapesOptions').append('<label title="Draws a n-sided polygon around the flags"><input type="checkbox" data-saveto="shapes.octagon" data-group="TPE_Group_ShapesOctagon">Polygon Around Flags</label>' + | |
'<div class="TPE_Group_ShapesOctagon TPE_SubGroup">' + | |
' <label title="">"R": <input type="color" data-saveto="shapes.octagon_red_color"></label>' + | |
' <label title="">"B": <input type="color" data-saveto="shapes.octagon_blue_color"></label>' + | |
' <label title="">"Y": <input type="color" data-saveto="shapes.octagon_yellow_color"></label>' + | |
' <label title="Hint: 100 will be a circle">#Sides: <input type="number" min="3" max="100" data-saveto="shapes.octagon_sides"></label>' + | |
' <label title="">Radius: <input type="number" min="40" max="400" data-saveto="shapes.octagon_radius"></label>' + | |
' <label title="Line Width">Line Width: <input type="number" min="1" max="40" data-saveto="shapes.octagon_width"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="shapes.octagon_opacity"></label>' + | |
' <label title="0=No Fill. 100=Solid Color (can\'t see flag)">Fill Opacity: <input type="number" min="0" max="100" data-saveto="shapes.octagon_fillopacity"></label>' + | |
' <label title="">Use Gradient: <input type="checkbox" data-saveto="shapes.octagon_fillgradient"></label>' + | |
'</div>'); | |
$('#TPE_ShapesOptions').append('<label title="Draws a cross around the flags"><input type="checkbox" data-saveto="shapes.cross" data-group="TPE_Group_ShapesCross">Radial Lines Around Flags</label>' + | |
'<div class="TPE_Group_ShapesCross TPE_SubGroup">' + | |
' <label title="">"R": <input type="color" data-saveto="shapes.cross_red_color"></label>' + | |
' <label title="">"B": <input type="color" data-saveto="shapes.cross_blue_color"></label>' + | |
' <label title="">"Y": <input type="color" data-saveto="shapes.cross_yellow_color"></label>' + | |
' <label title="Line Width">Line Width: <input type="number" min="1" max="80" data-saveto="shapes.cross_width"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="shapes.cross_opacity"></label>' + | |
' <label title="Inner Radius"># Lines: <input type="number" min="1" max="200" data-saveto="shapes.cross_radius_inner"></label>' + | |
' <label title="Outer Radius)">Outer: <input type="number" min="20" max="2000" step="5" data-saveto="shapes.cross_radius_outer"></label>' + | |
'</div>'); | |
$('#TPE_ShapesOptions').append('<label title="Draws a circle around the Gravity Well outer area"><input type="checkbox" data-saveto="gravityWell.enable" data-group="TPE_Group_GravityWell">Circle Around Gravity Well</label>' + | |
'<div class="TPE_Group_GravityWell TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="gravityWell.color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="gravityWell.opacity"></label>' + | |
' <label title="">Line Width: <input type="number" min="1" max="100" data-saveto="gravityWell.linewidth"></label>' + | |
' <label title="">Dash Size: <input type="number" min="0" max="50" data-saveto="gravityWell.dashsize"></label>' + | |
' <label title="">Use Gradient: <input type="checkbox" data-saveto="gravityWell.useGradient"></label>' + | |
'</div>'); | |
//Glow... | |
$('#TPE_Options3_Outer').append('<div id="TPE_GlowOptions" style="display:flex; flex-flow:column wrap; width:100%; margin:10px 0 0; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.boosts_red" data-group="TPE_Group_GlowBoostsRed">Red Boosts Glow</label>' + | |
'<div class="TPE_Group_GlowBoostsRed TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.boosts_red_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.boosts_red_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="200" data-saveto="glow.boosts_red_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.boosts_blue" data-group="TPE_Group_GlowBoostsBlue">Blue Boosts Glow</label>' + | |
'<div class="TPE_Group_GlowBoostsBlue TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.boosts_blue_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.boosts_blue_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="200" data-saveto="glow.boosts_blue_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.boosts_yellow" data-group="TPE_Group_GlowBoostsYellow">Neutral Boosts Glow</label>' + | |
'<div class="TPE_Group_GlowBoostsYellow TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.boosts_yellow_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.boosts_yellow_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="200" data-saveto="glow.boosts_yellow_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.flags_red" data-group="TPE_Group_GlowFlagRed">Red Flag Glow</label>' + | |
'<div class="TPE_Group_GlowFlagRed TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.flags_red_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.flags_red_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="400" data-saveto="glow.flags_red_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.flags_blue" data-group="TPE_Group_GlowFlagBlue">Blue Flag Glow</label>' + | |
'<div class="TPE_Group_GlowFlagBlue TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.flags_blue_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.flags_blue_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="400" data-saveto="glow.flags_blue_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.flags_yellow" data-group="TPE_Group_GlowFlagYellow">Yellow Flag Glow</label>' + | |
'<div class="TPE_Group_GlowFlagYellow TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.flags_yellow_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.flags_yellow_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="400" data-saveto="glow.flags_yellow_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.spikes" data-group="TPE_Group_GlowSpikes">Spikes Glow</label>' + | |
'<div class="TPE_Group_GlowSpikes TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.spikes_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.spikes_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="200" data-saveto="glow.spikes_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.bombs" data-group="TPE_Group_GlowBombs">Bombs Glow</label>' + | |
'<div class="TPE_Group_GlowBombs TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.bombs_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.bombs_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="200" data-saveto="glow.bombs_radius"></label>' + | |
'</div>'); | |
$('#TPE_GlowOptions').append('<label title=""><input type="checkbox" data-saveto="glow.pups" data-group="TPE_Group_GlowPUPs">Power-Ups Glow</label>' + | |
'<div class="TPE_Group_GlowPUPs TPE_SubGroup">' + | |
' <label title=""><input type="color" data-saveto="glow.pups_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity:<input type="number" min="0" max="100" data-saveto="glow.pups_opacity"></label>' + | |
' <label title="">Radius:<input type="number" min="0" max="200" data-saveto="glow.pups_radius"></label>' + | |
'</div>'); | |
/****************************/ | |
/******** 4th Column ********/ | |
/****************************/ | |
$('#TPE_GameOptions').append('<div id="TPE_Options4_Outer" style="display:flex; flex-flow:column wrap; align-items:flex-start; justify-content:center; margin:10px 5px; width:340px;"></div>'); | |
//Walls... | |
$('#TPE_Options4_Outer').append('<div id="TPE_WallTileOptions" style="display:flex; flex-flow:column wrap; width:100%; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_WallTileOptions').append('<label title=""><input type="checkbox" data-saveto="walls.modify" data-group="TPE_Group_TintWalls">Modify Walls</label>' + | |
'<div class="TPE_Group_TintWalls TPE_SubGroup">' + | |
' <label title="">Tint: <input type="color" data-saveto="walls.color"></label>' + | |
' <label title="0=No Tint, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="walls.opacity"></label>' + | |
' <label title="Less than 100 is darker. Over 100 is brighter. Unchanged is 100.">Brightness: <input type="number" min="0" max="200" data-saveto="walls.brightness"></label>' + | |
' <label title="Less than 100 is less contrast. Over 100 is more contrast. Unchanged is 100.">Contrast: <input type="number" min="0" max="200" data-saveto="walls.contrast"></label>' + | |
' <label title="">Sepia: <input type="number" min="0" max="100" data-saveto="walls.sepia"></label>' + | |
' <div><label title=""><input type="checkbox" data-saveto="walls.shadow" data-group="TPE_Group_WallsShadow">Add Shadow</label>' + | |
' <div class="TPE_Group_WallsShadow TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="walls.shadow_color"></label>' + | |
' <label title="0=Transparent, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="walls.shadow_opacity"></label>' + | |
' <label title="">Size: <input type="number" min="0" max="20" data-saveto="walls.shadow_size"></label>' + | |
' <label title="">Blur: <input type="number" min="0" max="20" data-saveto="walls.shadow_blur"></label>' + | |
' <label title=""><input type="checkbox" data-saveto="walls.shadow_include_gates">Include Gates</label>' + | |
' </div></div>' + | |
'</div>'); | |
//Spikes... | |
$('#TPE_Options4_Outer').append('<div id="TPE_SpikeTileOptions" style="display:flex; flex-flow:column wrap; width:100%; margin-top:10px; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_SpikeTileOptions').append('<label title=""><input type="checkbox" data-saveto="spikes.modify" data-group="TPE_Group_TintSpikes">Modify Spikes</label>' + | |
'<div class="TPE_Group_TintSpikes TPE_SubGroup">' + | |
' <label title="">Tint: <input type="color" data-saveto="spikes.color"></label>' + | |
' <label title="0=No Tint, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="spikes.opacity"></label>' + | |
' <label title="Less than 100 is darker. Over 100 is brighter. Unchanged is 100.">Brightness: <input type="number" min="0" max="200" data-saveto="spikes.brightness"></label>' + | |
' <label title="Less than 100 is less contrast. Over 100 is more contrast. Unchanged is 100.">Contrast: <input type="number" min="0" max="200" data-saveto="spikes.contrast"></label>' + | |
' <label title="">Sepia: <input type="number" min="0" max="100" data-saveto="spikes.sepia"></label>' + | |
' <div><label title=""><input type="checkbox" data-saveto="spikes.shadow" data-group="TPE_Group_TintSpikesShadow">Add Shadow</label>' + | |
' <div class="TPE_Group_TintSpikesShadow TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="spikes.shadow_color"></label>' + | |
' <label title="0=No Tint, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="spikes.shadow_opacity"></label>' + | |
' <label title="0 is center. If the position value is low, the blur value can be set higher.">Size: <input type="number" min="0" max="5" data-saveto="spikes.shadow_size"></label>' + | |
' <label title="0 is no blur. If the blur value is high, the position value should be set lower.">Blur: <input type="number" min="0" max="3" data-saveto="spikes.shadow_blur"></label>' + | |
' </div></div>' + | |
'</div>'); | |
//Bombs... | |
$('#TPE_Options4_Outer').append('<div id="TPE_BombTileOptions" style="display:flex; flex-flow:column wrap; width:100%; margin-top:10px; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_BombTileOptions').append('<label title=""><input type="checkbox" data-saveto="bombs.modify" data-group="TPE_Group_TintBombs">Modify Bombs</label>' + | |
'<div class="TPE_Group_TintBombs TPE_SubGroup">' + | |
' <label title="">Tint: <input type="color" data-saveto="bombs.color"></label>' + | |
' <label title="0=No Tint, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="bombs.opacity"></label>' + | |
' <label title="Less than 100 is darker. Over 100 is brighter. Unchanged is 100.">Brightness: <input type="number" min="0" max="200" data-saveto="bombs.brightness"></label>' + | |
' <label title="Less than 100 is less contrast. Over 100 is more contrast. Unchanged is 100.">Contrast: <input type="number" min="0" max="200" data-saveto="bombs.contrast"></label>' + | |
' <label title="">Sepia: <input type="number" min="0" max="100" data-saveto="bombs.sepia"></label>' + | |
' <div><label title=""><input type="checkbox" data-saveto="bombs.shadow" data-group="TPE_Group_TintBombsShadow">Add Shadow</label>' + | |
' <div class="TPE_Group_TintBombsShadow TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="bombs.shadow_color"></label>' + | |
' <label title="0=No Tint, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="bombs.shadow_opacity"></label>' + | |
' <label title="0 is center. If the position value is low, the blur value can be set higher.">Size: <input type="number" min="0" max="5" data-saveto="bombs.shadow_size"></label>' + | |
' <label title="0 is no blur. If the blur value is high, the position value should be set lower.">Blur: <input type="number" min="0" max="3" data-saveto="bombs.shadow_blur"></label>' + | |
' </div></div>' + | |
'</div>'); | |
//PUPs... | |
$('#TPE_Options4_Outer').append('<div id="TPE_PUPTileOptions" style="display:flex; flex-flow:column wrap; width:100%; margin-top:10px; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448)"></div>'); | |
$('#TPE_PUPTileOptions').append('<label title=""><input type="checkbox" data-saveto="pups.shadow" data-group="TPE_Group_TintPUPsShadow">Add PUPs Shadow</label>' + | |
'<div class="TPE_Group_TintPUPsShadow TPE_SubGroup">' + | |
' <label title="">Color: <input type="color" data-saveto="pups.shadow_color"></label>' + | |
' <label title="0=No Tint, 100=Solid Color">Opacity: <input type="number" min="0" max="100" data-saveto="pups.shadow_opacity"></label>' + | |
' <label title="0 is center. If the position value is low, the blur value can be set higher.">Size: <input type="number" min="0" max="5" data-saveto="pups.shadow_size"></label>' + | |
' <label title="0 is no blur. If the blur value is high, the position value should be set lower.">Blur: <input type="number" min="0" max="3" data-saveto="pups.shadow_blur"></label>' + | |
'</div>'); | |
$('#TPE_Container_Balls').append('<div id="TPE_TilesEditor" style="display:flex; align-items:flex-start; justify-content:center; width:100%;"></div>'); | |
$('#TPE_TilesEditor').append('<div id="TPE_Editor1_Outer" style="display:flex; flex-flow:column wrap; align-items:flex-start; justify-content:center; margin:10px 5px; width:340px;"></div>'); | |
$('#TPE_TilesEditor').append('<div id="TPE_Editor2_Outer" style="display:flex; flex-flow:column wrap; align-items:flex-start; justify-content:center; margin:10px 5px; width:340px;"></div>'); | |
$('#TPE_TilesEditor').append('<div id="TPE_Editor3_Outer" style="display:flex; flex-flow:column wrap; align-items:flex-start; justify-content:center; margin:10px 5px;"></div>'); | |
/*** TILE EDITOR TAB ***/ | |
//Gates... | |
$('#TPE_Editor1_Outer').append('<div id="TPE_GateOptions" style="display:flex; flex-flow:column wrap; width:100%; margin-top:10px; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448);">Custom Gates</div>'); | |
$('#TPE_GateOptions').append(' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesNeutral" data-saveto="gates.neutral">Neutral</label>' + | |
' <div class="TPE_Group_GatesNeutral TPE_SubGroup">' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesNeutral_Fill" data-saveto="gates.neutral_fill">Fill</label>' + | |
' <div class="TPE_Group_GatesNeutral_Fill TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.neutral_fill_color"></label>' + | |
' <label title="Opacity">Opac:<input type="number" min="1" max="100" data-saveto="gates.neutral_fill_opacity"></label>' + | |
' <label title="Margin">Marg:<input type="number" min="0" max="20" data-saveto="gates.neutral_fill_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesNeutral_Border" data-saveto="gates.neutral_border">Border</label>' + | |
' <div class="TPE_Group_GatesNeutral_Border TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.neutral_border_color"></label>' + | |
' <label title="Line Width">Line:<input type="number" min="1" max="20" data-saveto="gates.neutral_border_linewidth"></label>' + | |
' <label title="Margin">Marg:<input type="number" min="0" max="20" data-saveto="gates.neutral_border_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesNeutral_Cross" data-saveto="gates.neutral_cross">Cross</label>' + | |
' <div class="TPE_Group_GatesNeutral_Cross TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.neutral_cross_color"></label>' + | |
' <label title="Opacity">O:<input type="number" min="1" max="100" data-saveto="gates.neutral_cross_opacity"></label>' + | |
' <label title="Line Width">W:<input type="number" min="1" max="20" data-saveto="gates.neutral_cross_linewidth"></label>' + | |
' <label title="Margin">M:<input type="number" min="0" max="20" data-saveto="gates.neutral_cross_margin"></label>' + | |
' </div></div>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesGreen" data-saveto="gates.green">Green</label>' + | |
' <div class="TPE_Group_GatesGreen TPE_SubGroup">' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesGreen_Fill" data-saveto="gates.green_fill">Fill</label>' + | |
' <div class="TPE_Group_GatesGreen_Fill TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.green_fill_color"></label>' + | |
' <label title="">Opac:<input type="number" min="1" max="100" data-saveto="gates.green_fill_opacity"></label>' + | |
' <label title="Margin">Marg:<input type="number" min="0" max="20" data-saveto="gates.green_fill_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesGreen_Border" data-saveto="gates.green_border">Border</label>' + | |
' <div class="TPE_Group_GatesGreen_Border TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.green_border_color"></label>' + | |
' <label title="Line Width">Line:<input type="number" min="1" max="20" data-saveto="gates.green_border_linewidth"></label>' + | |
' <label title="Margin">M:<input type="number" min="0" max="20" data-saveto="gates.green_border_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesGreen_Cross" data-saveto="gates.green_cross">Cross</label>' + | |
' <div class="TPE_Group_GatesGreen_Cross TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.green_cross_color"></label>' + | |
' <label title="Opacity">Opac:<input type="number" min="1" max="100" data-saveto="gates.green_cross_opacity"></label>' + | |
' <label title="Line Width">W:<input type="number" min="1" max="20" data-saveto="gates.green_cross_linewidth"></label>' + | |
' <label title="Margin">M:<input type="number" min="0" max="20" data-saveto="gates.green_cross_margin"></label>' + | |
' </div></div>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesRed" data-saveto="gates.red">Red</label>' + | |
' <div class="TPE_Group_GatesRed TPE_SubGroup">' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesRed_Fill" data-saveto="gates.red_fill">Fill</label>' + | |
' <div class="TPE_Group_GatesRed_Fill TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.red_fill_color"></label>' + | |
' <label title="Opacity">Opac:<input type="number" min="1" max="100" data-saveto="gates.red_fill_opacity"></label>' + | |
' <label title="Margin">Marg:<input type="number" min="0" max="20" data-saveto="gates.red_fill_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesRed_Border" data-saveto="gates.red_border">Border</label>' + | |
' <div class="TPE_Group_GatesRed_Border TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.red_border_color"></label>' + | |
' <label title="Line Width">Line:<input type="number" min="1" max="20" data-saveto="gates.red_border_linewidth"></label>' + | |
' <label title="Margin">Marg:<input type="number" min="0" max="20" data-saveto="gates.red_border_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesRed_Cross" data-saveto="gates.red_cross">Cross</label>' + | |
' <div class="TPE_Group_GatesRed_Cross TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.red_cross_color"></label>' + | |
' <label title="Opacity">Opac:<input type="number" min="1" max="100" data-saveto="gates.red_cross_opacity"></label>' + | |
' <label title="Line Width">W:<input type="number" min="1" max="20" data-saveto="gates.red_cross_linewidth"></label>' + | |
' <label title="Margin">M: <input type="number" min="0" max="20" data-saveto="gates.red_cross_margin"></label>' + | |
' </div></div>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesBlue" data-saveto="gates.blue">Blue</label>' + | |
' <div class="TPE_Group_GatesBlue TPE_SubGroup">' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesBlue_Fill" data-saveto="gates.blue_fill">Fill</label>' + | |
' <div class="TPE_Group_GatesBlue_Fill TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.blue_fill_color"></label>' + | |
' <label title="Opacity">Opac:<input type="number" min="1" max="100" data-saveto="gates.blue_fill_opacity"></label>' + | |
' <label title="">Marg:<input type="number" min="0" max="20" data-saveto="gates.blue_fill_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesBlue_Border" data-saveto="gates.blue_border">Border</label>' + | |
' <div class="TPE_Group_GatesBlue_Border TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.blue_border_color"></label>' + | |
' <label title="Line Width">Line:<input type="number" min="1" max="20" data-saveto="gates.blue_border_linewidth"></label>' + | |
' <label title="Margin">Marg:<input type="number" min="0" max="20" data-saveto="gates.blue_border_margin"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_GatesBlue_Cross" data-saveto="gates.blue_cross">Cross</label>' + | |
' <div class="TPE_Group_GatesBlue_Cross TPE_SubGroup">' + | |
' <label title="Color"><input type="color" data-saveto="gates.blue_cross_color"></label>' + | |
' <label title="Opacity">Opac:<input type="number" min="1" max="100" data-saveto="gates.blue_cross_opacity"></label>' + | |
' <label title="Line Width">W:<input type="number" min="1" max="20" data-saveto="gates.blue_cross_linewidth"></label>' + | |
' <label title="Margin">M:<input type="number" min="0" max="20" data-saveto="gates.blue_cross_margin"></label>' + | |
' </div></div>' + | |
' </div></div>'); | |
$('#TPE_GateOptions').append('<label><input type="checkbox" data-saveto="gates.drawFloorUnderneath" title="If this is checked a normal floor tile will be drawn under the gate.">Draw Floor Tile Underneath</label>'); | |
//Team Tiles... | |
$('#TPE_Editor2_Outer').append('<div id="TPE_TeamTileOptions" style="display:flex; flex-flow:column wrap; width:100%; margin-top:10px; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448);"></div>'); | |
$('#TPE_TeamTileOptions').append('<label><input type="checkbox" data-saveto="team.modify" data-group="TPE_Group_TeamTiles">Custom Team Tiles</label>' + | |
'<div class="TPE_Group_TeamTiles TPE_SubGroup">' + | |
' <label title="">Red: <input type="color" data-saveto="team.red_color"></label>' + | |
' <label title="">Blue: <input type="color" data-saveto="team.blue_color"></label>' + | |
' <label title="">Yellow: <input type="color" data-saveto="team.yellow_color"></label>' + | |
' <label title="Less than 100 is darker. Over 100 is brighter. Unchanged is 100.">Brightness: <input type="number" min="0" max="200" data-saveto="team.brightness"></label>' + | |
' <label title="Less than 100 is less contrast. Over 100 is more contrast. Unchanged is 100.">Contrast: <input type="number" min="0" max="200" data-saveto="team.contrast"></label>' + | |
' <label title="">Sepia: <input type="number" min="0" max="100" data-saveto="team.sepia"></label>' + | |
' <label title="">Margin: <input type="number" min="0" max="20" data-saveto="team.margin"></label>' + | |
' <label title="">Opacity: <input type="number" min="0" max="100" data-saveto="team.opacity"></label>' + | |
' <div><label title=""><input type="checkbox" data-saveto="team.gradient">Gradient</label></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_TeamTilesPattern" data-saveto="team.pattern">Pattern</label>' + | |
' <div class="TPE_Group_TeamTilesPattern TPE_SubGroup">' + | |
' <label title="">Red: <input type="color" data-saveto="team.pattern_red_color"></label>' + | |
' <label title="">Blue: <input type="color" data-saveto="team.pattern_blue_color"></label>' + | |
' <label title="">Yellow: <input type="color" data-saveto="team.pattern_yellow_color"></label>' + | |
' <label title="">Opacity: <input type="number" min="1" max="100" data-saveto="team.pattern_opacity"></label>' + | |
' <label title="">Size: <input type="number" min="2" max="40" data-saveto="team.pattern_size" title="Best values are: 2/4/5/8/10/20"></label>' + | |
' <label title="">Margin: <input type="number" min="1" max="40" data-saveto="team.pattern_margin"></label>' + | |
' <label title="">Blur: <input type="number" min="0" max="10" data-saveto="team.pattern_blur"></label>' + | |
' <label title=""><input type="checkbox" data-saveto="team.pattern_altsides">Alt Side</label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_TeamTilesBorder" data-saveto="team.border">Border</label>' + | |
' <div class="TPE_Group_TeamTilesBorder TPE_SubGroup">' + | |
' <label title="">Red: <input type="color" data-saveto="team.border_red_color"></label>' + | |
' <label title="">Blue: <input type="color" data-saveto="team.border_blue_color"></label>' + | |
' <label title="">Yellow: <input type="color" data-saveto="team.border_yellow_color"></label>' + | |
' <label title="">Opacity: <input type="number" min="1" max="100" data-saveto="team.border_opacity"></label>' + | |
' <label title="">Line Width: <input type="number" min="1" max="20" data-saveto="team.border_linewidth"></label>' + | |
' <label title="">Margin: <input type="number" min="0" max="20" data-saveto="team.border_size"></label>' + | |
' </div></div>' + | |
'</div>'); | |
$('#TPE_TeamTileOptions').append('<label><input type="checkbox" data-saveto="team.drawFloorUnderneath" title="If this is checked a normal floor tile will be drawn under the gate.">Draw Floor Tile Underneath</label>'); | |
//Endzone Tiles... | |
$('#TPE_Editor2_Outer').append('<div id="TPE_EZTileOptions" style="display:flex; flex-flow:column wrap; width:100%; margin-top:10px; padding:6px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448);"></div>'); | |
$('#TPE_EZTileOptions').append('<label><input type="checkbox" data-saveto="endzone.modify" data-group="TPE_Group_EndzoneTiles">Custom Endzone Tiles</label>' + | |
'<div class="TPE_Group_EndzoneTiles TPE_SubGroup">' + | |
' <label title="">Red: <input type="color" data-saveto="endzone.red_color"></label>' + | |
' <label title="">Blue: <input type="color" data-saveto="endzone.blue_color"></label>' + | |
' <label title="">Margin: <input type="number" min="0" max="20" data-saveto="endzone.margin"></label>' + | |
' <label title="">Opacity: <input type="number" min="0" max="100" data-saveto="endzone.opacity"></label>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_EndzoneTilesCheckered" data-saveto="endzone.checkered">Checkered</label>' + | |
' <div class="TPE_Group_EndzoneTilesCheckered TPE_SubGroup">' + | |
' <label title="">Alt Red: <input type="color" data-saveto="endzone.checkered_alt_red_color"></label>' + | |
' <label title="">Alt Blue: <input type="color" data-saveto="endzone.checkered_alt_blue_color"></label>' + | |
' <label title="">Size: <input type="number" min="2" max="40" data-saveto="endzone.checkered_size"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_EndzoneTilesStripes" data-saveto="endzone.stripes">Stripes</label>' + | |
' <div class="TPE_Group_EndzoneTilesStripes TPE_SubGroup">' + | |
' <label title="">Red: <input type="color" data-saveto="endzone.stripes_red_color"></label>' + | |
' <label title="">Blue: <input type="color" data-saveto="endzone.stripes_blue_color"></label>' + | |
' <label title="">Size: <input type="number" min="2" max="40" data-saveto="endzone.stripes_size"></label>' + | |
' </div></div>' + | |
' <div><label title=""><input type="checkbox" data-group="TPE_Group_EndzoneTilesBorder" data-saveto="endzone.border">Border</label>' + | |
' <div class="TPE_Group_EndzoneTilesBorder TPE_SubGroup">' + | |
' <label title="">Red: <input type="color" data-saveto="endzone.border_red_color"></label>' + | |
' <label title="">Blue: <input type="color" data-saveto="endzone.border_blue_color"></label>' + | |
' <label title="">Opacity: <input type="number" min="1" max="100" data-saveto="endzone.border_opacity"></label>' + | |
' <label title="">Line Width: <input type="number" min="1" max="20" data-saveto="endzone.border_linewidth"></label>' + | |
' <label title="">Margin: <input type="number" min="0" max="20" data-saveto="endzone.border_size"></label>' + | |
' <label title="">Repeat: <input type="number" min="1" max="20" data-saveto="endzone.border_count"></label>' + | |
' </div></div>' + | |
'</div>'); | |
$('#TPE_EZTileOptions').append('<label><input type="checkbox" data-saveto="endzone.drawFloorUnderneath" title="If this is checked a normal floor tile will be drawn under the gate.">Draw Floor Tile Underneath</label>'); | |
//Save options as set... | |
$('#TPE_Container').append('<div id="TPE_MySavedOptions" style="display:flex; position:relative; margin:15px 5px 0; padding:0 20px; flex-flow:row wrap; align-items:center; justify-content:center; background:#333; border:1px solid #444; border-radius:5px;"></div>'); | |
$('#TPE_MySavedOptions').append('<div id="TPE_MySavedOptionsButtons" style="position:relative"></div>'); | |
$('#TPE_MySavedOptionsButtons').append('<div id="TPE_SaveMyOptions" title="Save the current options as a new set" style="display:flex; justify-content:center; align-items:center; margin:2px 13px; width:38px; height:38px; opacity:0.6; text-align:center; font-size:32px; color:white; background:limegreen; border:1px dashed white; border-radius:10px; cursor:pointer">+</div>'); | |
/*******************/ | |
//Custom Ball Options... | |
$('#TPE_Editor3_Outer').append('<div id="TPE_Ball_Options" style="display:flex; align-items:flex-start; justify-content:center; width:100%;"></div>'); | |
//Red... | |
$('#TPE_Ball_Options').append('<div id="TPE_Red_Balls" style="position:relative; display:flex; flex-flow:column wrap; align-items:flex-start; margin:10px 5px; padding:6px; width:275px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448);"></div>'); | |
$('#TPE_Red_Balls').append('<label title=""><input type="checkbox" id="TPE_ModifyRed" data-saveto="redball.modify" data-group="TPE_Group_RedBall">Modify "Red" Balls</label>'); | |
$('#TPE_Red_Balls').append('<div id="TPE_Balls_Red" class="TPE_Group_RedBall" style="position:relative; display:flex; flex-flow:column wrap; align-items:flex-start; padding:4px 10px; width:100%; margin-left:6px;"></div>'); | |
$('#TPE_Balls_Red').append('<label title="">Ball Color: <input type="color" data-saveto="redball.color"></label>'); | |
$('#TPE_Balls_Red').append('<label title="Ball Radius (default is 19)">Ball Size: <input type="number" min="0" max="19" data-saveto="redball.size"></label>'); | |
$('#TPE_Balls_Red').append('<label title="0=Transparent, 100=Solid Color">Ball Opacity: <input type="number" min="0" max="100" data-saveto="redball.opacity"></label>'); | |
$('#TPE_Balls_Red').append('<div class="TPE_Divider2"></div>'); | |
$('#TPE_Balls_Red').append('<label title="Fill with a Radial Gradient"><input type="checkbox" data-saveto="redball.gradient" data-group="TPE_RedBall_Gradient_Group">Use Gradient</label>' + | |
'<div class="TPE_RedBall_Gradient_Group TPE_SubGroup">' + | |
' <label title="Outer Gradient Color">Outer Color: <input type="color" data-saveto="redball.gradient_color"></label>' + | |
' <label title="Gradient Start (Inner)">Gradient Start: <input type="number" min="0" max="40" data-saveto="redball.gradient_start"></label>' + | |
' <label title="Gradient Stop (Outer)">Gradient Stop: <input type="number" min="0" max="40" data-saveto="redball.gradient_stop"></label>' + | |
' <label title="Position of Gradient (Ball Center is 20)">Gradient Position: <input type="number" min="1" max="20" data-saveto="redball.gradient_position"></label>' + | |
'</div>'); | |
$('#TPE_Balls_Red').append('<div class="TPE_Divider2"></div>'); | |
$('#TPE_Balls_Red').append('<label title="Width of border (0 to disable)">Border Width: <input type="number" min="0" max="19" data-saveto="redball.border_width" data-group="TPE_RedBall_Border_Group"></label>' + | |
'<div class="TPE_RedBall_Border_Group TPE_SubGroup">' + | |
' <label title="Color of ball\'s outer border">Border Color: <input type="color" data-saveto="redball.border_color"></label>' + | |
' <label title=""># Segments: <input type="number" min="0" max="20" step="2" data-saveto="redball.border_segments" data-group="TPE_RedBall_BorderSegments_Group"></label>' + | |
' <label class="TPE_RedBall_BorderSegments_Group TPE_SubGroup" title="">Alt Border Color: <input type="color" data-saveto="redball.border_alt_color"></label>' + | |
'</div>'); | |
$('#TPE_Balls_Red').append('<div class="TPE_Divider2"></div>'); | |
$('#TPE_Balls_Red').append('<div style="display:flex; flex-flow:column wrap; align-items:flex-start; width:100%; padding:2px; border:1px dotted #444; border-radius:3px; font-size:11px;">' + | |
' <label title=""><input type="checkbox" data-saveto="redball.shapes_arc" data-group="TPE_RedBall_Shapes_Arc_Group" style="margin:1px; width:11px; height:11px;">Arc</label>' + | |
' <div class="TPE_RedBall_Shapes_Arc_Group TPE_SubGroup">' + | |
' <div><label title="">Color: <input type="color" data-saveto="redball.shapes_arc_color"></label>' + | |
' <label title="">Transparent: <input type="checkbox" data-saveto="redball.shapes_arc_transparent" style="width:11px; height:11px;"></label></div>' + | |
' <label title="">Line Width: <input type="number" min="1" max="19" data-saveto="redball.shapes_arc_width"></label>' + | |
' <label title="">Position: <input type="number" min="1" max="19" data-saveto="redball.shapes_arc_position"></label>' + | |
' <label title="">Size: <input type="number" min="1" max="18" data-saveto="redball.shapes_arc_size"></label>' + | |
' </div>' + | |
'<div class="TPE_Divider"></div>' + | |
' <label title=""><input type="checkbox" data-saveto="redball.shapes_star" data-group="TPE_RedBall_Shapes_Star_Group" style="margin:1px; width:11px; height:11px;">Shapes</label>' + | |
' <div class="TPE_RedBall_Shapes_Star_Group TPE_SubGroup">' + | |
' <div><label title="">Color: <input type="color" data-saveto="redball.shapes_star_color"></label>' + | |
' <label title="">Transparent: <input type="checkbox" data-saveto="redball.shapes_star_transparent" style="width:11px; height:11px;"></label></div>' + | |
' <div><label title="">Fill: <input type="checkbox" data-saveto="redball.shapes_star_fill" data-group="TPE_Group_RedBall_Shapes_Star_Fill" style="width:11px; height:11px;"></label>' + | |
' <label class="TPE_Group_RedBall_Shapes_Star_Fill" title="">Fill Color: <input type="color" data-saveto="redball.shapes_star_fill_color"></label></div>' + | |
' <label title="">Line Width: <input type="number" min="0" max="10" data-saveto="redball.shapes_star_width"></label>' + | |
' <label title="">Spikes: <input type="number" min="2" max="20" data-saveto="redball.shapes_star_spikes"></label>' + | |
' <div><label title="">Inner: <input type="number" min="0" max="20" data-saveto="redball.shapes_star_inner"></label>' + | |
' <label title="">Outer: <input type="number" min="1" max="20" data-saveto="redball.shapes_star_outer"></label></div>' + | |
' <div id="TPE_Presets_Shapes_RedBall" style="text-align:center; margin-top:5px;"></div>' + | |
' </div>' + | |
'<div class="TPE_Divider"></div>' + | |
' <label title=""><input type="checkbox" data-saveto="redball.shapes_overlay" data-group="TPE_RedBall_Shapes_Overlay_Group" style="margin:1px; width:11px; height:11px;">Overlays</label>' + | |
' <div class="TPE_RedBall_Shapes_Overlay_Group" style="text-align:center;">' + | |
' <div>' + | |
' <label title=""><input type="radio" name="TPE_RedBall_Shapes_Overlay_Type" data-saveto="redball.shapes_overlay_type" data-type="marble1">Marble#1</label>' + | |
' <label title=""><input type="radio" name="TPE_RedBall_Shapes_Overlay_Type" data-saveto="redball.shapes_overlay_type" data-type="marble2">Marble#2</label>' + | |
' <label title=""><input type="radio" name="TPE_RedBall_Shapes_Overlay_Type" data-saveto="redball.shapes_overlay_type" data-type="earth1">Earth#1</label>' + | |
' <label title=""><input type="radio" name="TPE_RedBall_Shapes_Overlay_Type" data-saveto="redball.shapes_overlay_type" data-type="earth2">Earth#2</label>' + | |
' </div>' + | |
' <label title=""><input type="radio" name="TPE_RedBall_Shapes_Overlay_Type" data-saveto="redball.shapes_overlay_type" data-type="custom">Custom (Base64)</label>' + | |
' <label title="Copy a Base64 Encoded string here (use https://www.base64-image.de/ to encode your image)"><input type="text" id="TPE_RedBall_Shapes_Overlay_Base64" data-saveto="redball.shapes_overlay_base64" style="margin:1px; width:220px; color:black;"></label>' + | |
' <label title="">Transparency: <input type="number" min="0" max="100" data-saveto="redball.shapes_overlay_transparency"></label>' + | |
' </div>' + | |
'</div'); | |
$('#TPE_Balls_Red').append('<div id="TPE_Presets_RedBall" style="position:relative; text-align:center; margin-top:5px; width:100%; border:1px solid #cc0000; border-radius:3px; padding:5px 0;" title="Red Ball Presets"></div>'); | |
$('#TPE_Balls_Red').append('<div id="TPE_RedBall_CopyValues" style="align-self:flex-end; font-size:9px; margin-top:5px; color:#aaa; border:1px solid #777; border-radius:3px; padding:0 5px; cursor:pointer;" title="Copy all Red values to Blue (except colors)">COPY >></div>'); | |
//Blue... | |
$('#TPE_Ball_Options').append('<div id="TPE_Blue_Balls" style="position:relative; display:flex; flex-flow:column wrap; align-items:flex-start; margin:10px 5px; padding:6px; width:275px; border:1px solid #777; border-radius:10px; background:linear-gradient(115deg, #111, #444448);"></div>'); | |
$('#TPE_Blue_Balls').append('<label title=""><input type="checkbox" id="TPE_ModifyBlue" data-saveto="blueball.modify" data-group="TPE_Group_BlueBall">Modify "Blue" Balls</label>'); | |
$('#TPE_Blue_Balls').append('<div id="TPE_Balls_Blue" class="TPE_Group_BlueBall" style="position:relative; display:flex; flex-flow:column wrap; align-items:flex-start; padding:4px 10px; width:100%; margin-left:6px;"></div>'); | |
$('#TPE_Balls_Blue').append('<label title="">Ball Color: <input type="color" data-saveto="blueball.color"></label>'); | |
$('#TPE_Balls_Blue').append('<label title="Ball Radius (default is 19)">Ball Size: <input type="number" min="0" max="19" data-saveto="blueball.size"></label>'); | |
$('#TPE_Balls_Blue').append('<label title="0=Transparent, 100=Solid Color">Ball Opacity: <input type="number" min="0" max="100" data-saveto="blueball.opacity"></label>'); | |
$('#TPE_Balls_Blue').append('<div class="TPE_Divider2"></div>'); | |
$('#TPE_Balls_Blue').append('<label title="Fill with a Radial Gradient"><input type="checkbox" data-saveto="blueball.gradient" data-group="TPE_BlueBall_Gradient_Group">Use Gradient</label>' + | |
'<div class="TPE_BlueBall_Gradient_Group TPE_SubGroup">' + | |
' <label title="Outer Gradient Color">Outer Color: <input type="color" data-saveto="blueball.gradient_color"></label>' + | |
' <label title="Gradient Start (Inner)">Gradient Start: <input type="number" min="0" max="40" data-saveto="blueball.gradient_start"></label>' + | |
' <label title="Gradient Stop (Outer)">Gradient Stop: <input type="number" min="0" max="40" data-saveto="blueball.gradient_stop"></label>' + | |
' <label title="Position of Gradient (Ball Center is 20)">Gradient Position: <input type="number" min="1" max="20" data-saveto="blueball.gradient_position"></label>' + | |
'</div>'); | |
$('#TPE_Balls_Blue').append('<div class="TPE_Divider2"></div>'); | |
$('#TPE_Balls_Blue').append('<label title="Width of border (0 to disable)">Border Width: <input type="number" min="0" max="19" data-saveto="blueball.border_width" data-group="TPE_BlueBall_Border_Group"></label>' + | |
'<div class="TPE_BlueBall_Border_Group TPE_SubGroup">' + | |
' <label title="Color of ball\'s outer border">Border Color: <input type="color" data-saveto="blueball.border_color"></label>' + | |
' <label title=""># Segments: <input type="number" min="0" max="20" step="2" data-saveto="blueball.border_segments" data-group="TPE_BlueBall_BorderSegments_Group"></label>' + | |
' <label class="TPE_BlueBall_BorderSegments_Group TPE_SubGroup" title="">Alt Border Color: <input type="color" data-saveto="blueball.border_alt_color"></label>' + | |
'</div>'); | |
$('#TPE_Balls_Blue').append('<div class="TPE_Divider2"></div>'); | |
$('#TPE_Balls_Blue').append('<div style="display:flex; flex-flow:column wrap; align-items:flex-start; width:100%; padding:2px; border:1px dotted #444; border-radius:3px; font-size:11px;">' + | |
' <label title=""><input type="checkbox" data-saveto="blueball.shapes_arc" data-group="TPE_BlueBall_Shapes_Arc_Group" style="margin:1px; width:11px; height:11px;">Arc</label>' + | |
' <div class="TPE_BlueBall_Shapes_Arc_Group TPE_SubGroup">' + | |
' <div><label title="">Color: <input type="color" data-saveto="blueball.shapes_arc_color"></label>' + | |
' <label title="">Transparent: <input type="checkbox" data-saveto="blueball.shapes_arc_transparent" style="width:11px; height:11px;"></label></div>' + | |
' <label title="">Line Width: <input type="number" min="1" max="19" data-saveto="blueball.shapes_arc_width"></label>' + | |
' <label title="">Position: <input type="number" min="1" max="19" data-saveto="blueball.shapes_arc_position"></label>' + | |
' <label title="">Size: <input type="number" min="1" max="18" data-saveto="blueball.shapes_arc_size"></label>' + | |
' </div>' + | |
'<div class="TPE_Divider"></div>' + | |
' <label title=""><input type="checkbox" data-saveto="blueball.shapes_star" data-group="TPE_BlueBall_Shapes_Star_Group" style="margin:1px; width:11px; height:11px;">Shapes</label>' + | |
' <div class="TPE_BlueBall_Shapes_Star_Group TPE_SubGroup">' + | |
' <div><label title="">Color: <input type="color" data-saveto="blueball.shapes_star_color"></label>' + | |
' <label title="">Transparent: <input type="checkbox" data-saveto="blueball.shapes_star_transparent" style="width:11px; height:11px;"></label></div>' + | |
' <div><label title="">Fill: <input type="checkbox" data-saveto="blueball.shapes_star_fill" data-group="TPE_Group_BlueBall_Shapes_Star_Fill" style="width:11px; height:11px;"></label>' + | |
' <label class="TPE_Group_BlueBall_Shapes_Star_Fill" title="">Fill Color: <input type="color" data-saveto="blueball.shapes_star_fill_color"></label></div>' + | |
' <label title="">Line Width: <input type="number" min="0" max="10" data-saveto="blueball.shapes_star_width"></label>' + | |
' <label title="">Spikes: <input type="number" min="2" max="20" data-saveto="blueball.shapes_star_spikes"></label>' + | |
' <label title="">Inner: <input type="number" min="0" max="20" data-saveto="blueball.shapes_star_inner"></label>' + | |
' <label title="">Outer: <input type="number" min="1" max="20" data-saveto="blueball.shapes_star_outer"></label>' + | |
' <div id="TPE_Presets_Shapes_BlueBall" style="text-align:center; margin-top:5px;"></div>' + | |
' </div>' + | |
'<div class="TPE_Divider"></div>' + | |
' <label title=""><input type="checkbox" data-saveto="blueball.shapes_overlay" data-group="TPE_BlueBall_Shapes_Overlay_Group" style="margin:1px; width:11px; height:11px;">Overlays</label>' + | |
' <div class="TPE_BlueBall_Shapes_Overlay_Group" style="text-align:center;">' + | |
' <div>' + | |
' <label title=""><input type="radio" name="TPE_BlueBall_Shapes_Overlay_Type" data-saveto="blueball.shapes_overlay_type" data-type="marble1">Marble#1</label>' + | |
' <label title=""><input type="radio" name="TPE_BlueBall_Shapes_Overlay_Type" data-saveto="blueball.shapes_overlay_type" data-type="marble2">Marble#2</label>' + | |
' <label title=""><input type="radio" name="TPE_BlueBall_Shapes_Overlay_Type" data-saveto="blueball.shapes_overlay_type" data-type="earth1">Earth#1</label>' + | |
' <label title=""><input type="radio" name="TPE_BlueBall_Shapes_Overlay_Type" data-saveto="blueball.shapes_overlay_type" data-type="earth2">Earth#2</label>' + | |
' </div>' + | |
' <label title=""><input type="radio" name="TPE_BlueBall_Shapes_Overlay_Type" data-saveto="blueball.shapes_overlay_type" data-type="custom">Custom (Base64)</label>' + | |
' <label title="Copy a Base64 Encoded string here (use https://www.base64-image.de/ to encode your image)"><input type="text" id="TPE_BlueBall_Shapes_Overlay_Base64" data-saveto="blueball.shapes_overlay_base64" style="margin:1px; width:220px; color:black;"></label>' + | |
' <label title="">Transparency: <input type="number" min="0" max="100" data-saveto="blueball.shapes_overlay_transparency"></label>' + | |
' </div>' + | |
'</div'); | |
$('#TPE_Balls_Blue').append('<div id="TPE_Presets_BlueBall" style="position:relative; text-align:center; margin-top:5px; width:100%; border:1px solid dodgerblue; border-radius:3px; padding:5px 0;" title="Blue Ball Presets"></div>'); | |
$('#TPE_Balls_Blue').append('<div id="TPE_BlueBall_CopyValues" style="align-self:flex-start; font-size:9px; margin-top:5px; color:#aaa; border:1px solid #777; border-radius:3px; padding:0 5px; cursor:pointer;" title="Copy all Blue values to Red (except colors)"><< COPY</div>'); | |
$('#TPE_Red_Balls').append('<div class="TPE_Group_RedBall" style="position:absolute; top:5px; right:5px;" title="Click to change background color"><canvas id="TPE_Red_Ball_Preview" width="40" height="40"></canvas></div>'); | |
$('#TPE_Blue_Balls').append('<div class="TPE_Group_BlueBall" style="position:absolute; top:5px; right:5px;" title="Click to change background color"><canvas id="TPE_Blue_Ball_Preview" width="40" height="40"></canvas></div>'); | |
loadPresets(); | |
//createAvailablePacksCanvases(); | |
loadCustomValues(); | |
loadOptionsValues(true); | |
setTimeout(updateAllPreviews, 500); | |
GM_addStyle('#TPE_Container label, #TPE_Container_Balls label { margin:1px 2px 0; font-weight:normal; }'); | |
GM_addStyle('#TPE_Container input[type="checkbox"], #TPE_Container_Balls input[type="checkbox"] { margin:4px 3px 3px 0; }'); | |
GM_addStyle('#TPE_Container input[type="radio"], #TPE_Container_Balls input[type="radio"] { margin:2px 1px 2px 5px; width:11px; height:11px; }'); | |
GM_addStyle('#TPE_Container input[type="number"], #TPE_Container_Balls input[type="number"] { color:black; width:44px; height:15px; margin:1px 2px 0 1px; font-size:11px; }'); | |
GM_addStyle('#TPE_Container input[type="color"], #TPE_Container_Balls input[type="color"] { margin:0px 2px 1px 1px; padding:0px 3px; height:16px; }'); | |
GM_addStyle('.TPE_MySavedPack { position:relative; margin:5px; padding:5px; color:black; background:#ccc; font-size:15px; font-weight:bold; border-radius:5px; cursor:pointer; }'); //border:1px solid #777; margin:5px; padding:0 12px 0 3px; | |
GM_addStyle('.TPE_DeleteSavedPack { display:none; position:absolute; width:15px; height:15px; top:0px; right:0px; color:white; background:red; opacity:0.7; font-size:11px; text-align:center; border-radius:50%; cursor:pointer; }'); | |
GM_addStyle('.TPE_MySavedPackLabel { position:absolute; bottom:6px; left:50px; background:#22bb22; padding:0 3px; border-radius:3px; font:11px Arial; color:white; }'); | |
GM_addStyle('.TPE_MySavedOptions { position:relative; color:black; background:#ccc; font-size:14px; font-weight:bold; border-radius:5px; cursor:pointer; border:1px solid #777; margin:5px; padding:1px 20px; }'); | |
GM_addStyle('.TPE_DeleteSavedOptions { display:none; position:absolute; width:12px; height:13px; top:0px; right:0px; color:white; background:red; opacity:0.5; font-size:9px; text-align:center; border-radius:30%; cursor:pointer; }'); | |
GM_addStyle('.TPE_Preset, .TPE_Shape_Preset, .TPE_FloorTile_Preset { display:inline-block; border:1px solid #777; border-radius:3px; margin:1px 2px; padding:1px 2px; min-width:12px; cursor:pointer; }'); | |
GM_addStyle('.TPE_Preset:hover, .TPE_Shape_Preset:hover, .TPE_FloorTile_Preset:hover { background:#444; border:1px solid #FFF; }'); | |
GM_addStyle('.TPE_SubGroup { margin-left:13px; }'); | |
GM_addStyle('.TPE_Divider { border-top:1px dashed #555; width:100%; margin-top:5px; }'); | |
GM_addStyle('.TPE_Divider2 { width:100%; margin-top:12px; margin-bottom:3px; }'); | |
GM_addStyle('.texture-packs .texture-choice .name { font-size:15px; }'); | |
GM_addStyle('.texture-packs .texture-choice .author { font-size:13px; }'); | |
/*-------------------------------------------------------------------------------*/ | |
// Bind events... | |
/*-------------------------------------------------------------------------------*/ | |
$('body').append('<input type="color" id="TPE_Ball_BGPicker" style="position:absolute; margin:-9999px;">'); | |
$('#TPE_Red_Ball_Preview, #TPE_Blue_Ball_Preview').on('click', function() { | |
$('#TPE_Ball_BGPicker').trigger('click'); | |
}); | |
$('#TPE_Ball_BGPicker').on('change', function() { | |
$('#TPE_Red_Ball_Preview, #TPE_Blue_Ball_Preview').css('background', $('#TPE_Ball_BGPicker').val()); | |
}); | |
var makePreviewCanvas = function() { | |
var tilesImg = new Image(); | |
var speedpadImg = new Image(); | |
var portalImg = new Image(); | |
var redBallImg, blueBallImg; | |
if (options.redball.modify) redBallImg = $('#TPE_Red_Ball_Preview')[0]; | |
if (options.blueball.modify) blueBallImg = $('#TPE_Blue_Ball_Preview')[0]; | |
$('#TP_PreviewerAll').remove(); | |
$('#TPE_FloorTiles_Preview_Container').append('<div id="TP_PreviewerAll" style="position:absolute; display:inline-block; top:60px; left:-100px; padding:20px 20px 18px 20px; text-align:center; background:#111; box-shadow:0px 0px 9px white; border:1px solid #666; border-radius:5px; z-index:9999;">Generating Preview...</div>'); | |
tilesImg.onload = function() { | |
let bg = createAllModsPreview(tilesImg).toDataURL('image/png'); | |
let bgColor = '#111'; | |
if (options.gamewallpaper.type === 'color') { | |
bgColor = options.gamewallpaper.color; | |
$('#TP_PreviewerAll').css('background', bgColor); | |
} else if (options.gamewallpaper.type === 'gradient') { | |
let gradienttype = 'ellipse'; | |
bgColor = 'rgba(0,0,0,0)'; | |
if ((options.gamewallpaper.gradient_type === 'circle') || (options.gamewallpaper.gradient_type === 'ellipse')) { | |
$('#TP_PreviewerAll').css('background', 'radial-gradient('+options.gamewallpaper.gradient_type+' farthest-corner at 600px 40px , '+options.gamewallpaper.color1+' 0%, '+options.gamewallpaper.color2+' 100%)'); //options.gamewallpaper.color1; | |
} else if (options.gamewallpaper.gradient_type === 'horizontal') { | |
$('#TP_PreviewerAll').css('background', 'linear-gradient(to right, ' + options.gamewallpaper.color1 + ', ' + options.gamewallpaper.color1 + ' 60%, ' + options.gamewallpaper.color2 + ')'); | |
} else if (options.gamewallpaper.gradient_type === 'vertical') { | |
$('#TP_PreviewerAll').css('background', 'linear-gradient(' + options.gamewallpaper.color1 + ', ' + options.gamewallpaper.color2 + ' 33%, ' + options.gamewallpaper.color2 + ')'); | |
} else if (options.gamewallpaper.gradient_type === 'team') { | |
$('#TP_PreviewerAll').css('background', 'linear-gradient(135deg, ' + options.gamewallpaper.color1 + ', ' + options.gamewallpaper.color2 + ')'); | |
} | |
} else if (options.gamewallpaper.type === 'image' && options.gamewallpaper.imagedata) { | |
bgColor = 'rgba(0,0,0,0)'; | |
$('#TP_PreviewerAll').css('background', 'url('+options.gamewallpaper.imagedata+')'); | |
} else if (options.gamewallpaper.type === 'none') { | |
bgColor = 'rgba(0,0,0,0)'; | |
$('#TP_PreviewerAll').css('background', '#000 url("/images/background.jpg") center center / cover no-repeat'); | |
} else { | |
bgColor = '#111'; | |
} | |
$('#TP_PreviewerAll').html('<span style="text-shadow:1px 1px 1px black">(Preview might not be 100% accurate)</span>').prepend('<canvas id="TTM_BG_Preview" width="640" height="440" style="background:'+bgColor+' url('+bg+');"></canvas>'); | |
animatePreview(tilesImg, speedpadImg, portalImg, redBallImg, blueBallImg); | |
}; | |
tilesImg.crossOrigin = "Anonymous"; | |
tilesImg.src = $('#tiles').val(); | |
speedpadImg.crossOrigin = 'Anonymous'; | |
speedpadImg.src = $('#speedpad').val(); | |
portalImg.crossOrigin = 'Anonymous'; | |
portalImg.src = $('#portal').val(); | |
}; | |
$('#TPE_FloorTiles_Preview_Container').hoverIntent(function() { | |
makePreviewCanvas(); | |
}, function() { | |
$('#TP_PreviewerAll').remove(); | |
}); | |
var preview_map = {"info":{"width":16,"height":11},"data":{"0_5":{"id":9.1,"x":0,"y":5,"tx":520,"ty":120},"0_6":{"id":9.1,"x":0,"y":6,"tx":520,"ty":120},"1_1":{"id":2,"x":1,"y":1,"tx":520,"ty":160},"1_2":{"id":2,"x":1,"y":2,"tx":520,"ty":160},"1_3":{"id":2,"x":1,"y":3,"tx":520,"ty":160},"1_4":{"id":2,"x":1,"y":4,"tx":520,"ty":160},"1_5":{"id":2,"x":1,"y":5,"tx":520,"ty":160},"1_6":{"id":2,"x":1,"y":6,"tx":520,"ty":160},"1_7":{"id":2,"x":1,"y":7,"tx":520,"ty":160},"1_8":{"id":2,"x":1,"y":8,"tx":520,"ty":160},"1_9":{"id":2,"x":1,"y":9,"tx":520,"ty":160},"1_10":{"id":2,"x":1,"y":10,"tx":520,"ty":160},"2_1":{"id":2,"x":2,"y":1,"tx":520,"ty":160},"2.2":{"id":2,"x":2,"y":2,"tx":520,"ty":160},"2_3":{"id":2,"x":2,"y":3,"tx":520,"ty":160},"2_4":{"id":2,"x":2,"y":4,"tx":520,"ty":160},"2_5":{"id":2,"x":2,"y":5,"tx":520,"ty":160},"2_6":{"id":2,"x":2,"y":6,"tx":520,"ty":160},"2_7":{"id":2,"x":2,"y":7,"tx":520,"ty":160},"2_8":{"id":2,"x":2,"y":8,"tx":520,"ty":160},"2.9":{"id":2,"x":2,"y":9,"tx":520,"ty":160},"2_10":{"id":2,"x":2,"y":10,"tx":520,"ty":160},"3_0":{"id":9.2,"x":3,"y":0,"tx":560,"ty":120},"3_1":{"id":2,"x":3,"y":1,"tx":520,"ty":160},"3_2":{"id":2,"x":3,"y":2,"tx":520,"ty":160},"3_3":{"id":2,"x":3,"y":3,"tx":520,"ty":160},"3_4":{"id":2,"x":3,"y":4,"tx":520,"ty":160},"3_5":{"id":2,"x":3,"y":5,"tx":520,"ty":160},"3_6":{"id":2,"x":3,"y":6,"tx":520,"ty":160},"3_7":{"id":2,"x":3,"y":7,"tx":520,"ty":160},"3_8":{"id":2,"x":3,"y":8,"tx":520,"ty":160},"3_9":{"id":2,"x":3,"y":9,"tx":520,"ty":160},"3_10":{"id":2,"x":3,"y":10,"tx":520,"ty":160},"4_0":{"id":9.2,"x":4,"y":0,"tx":560,"ty":120},"4_1":{"id":2,"x":4,"y":1,"tx":520,"ty":160},"4_2":{"id":2,"x":4,"y":2,"tx":520,"ty":160},"4_3":{"id":2,"x":4,"y":3,"tx":520,"ty":160},"4_4":{"id":2,"x":4,"y":4,"tx":520,"ty":160},"4_5":{"id":2,"x":4,"y":5,"tx":520,"ty":160},"4_6":{"id":2,"x":4,"y":6,"tx":520,"ty":160},"4_7":{"id":2,"x":4,"y":7,"tx":520,"ty":160},"4_8":{"id":2,"x":4,"y":8,"tx":520,"ty":160},"4_9":{"id":2,"x":4,"y":9,"tx":520,"ty":160},"4_10":{"id":2,"x":4,"y":10,"tx":520,"ty":160},"5_1":{"id":2,"x":5,"y":1,"tx":520,"ty":160},"5_2":{"id":2,"x":5,"y":2,"tx":520,"ty":160},"5_3":{"id":2,"x":5,"y":3,"tx":520,"ty":160},"5_4":{"id":2,"x":5,"y":4,"tx":520,"ty":160},"5_5":{"id":2,"x":5,"y":5,"tx":520,"ty":160},"5_6":{"id":2,"x":5,"y":6,"tx":520,"ty":160},"5_7":{"id":2,"x":5,"y":7,"tx":520,"ty":160},"5_8":{"id":2,"x":5,"y":8,"tx":520,"ty":160},"5_9":{"id":2,"x":5,"y":9,"tx":520,"ty":160},"5_10":{"id":2,"x":5,"y":10,"tx":520,"ty":160},"6_1":{"id":2,"x":6,"y":1,"tx":520,"ty":160},"6_2":{"id":2,"x":6,"y":2,"tx":520,"ty":160},"6_3":{"id":2,"x":6,"y":3,"tx":520,"ty":160},"6_4":{"id":2,"x":6,"y":4,"tx":520,"ty":160},"6.5":{"id":2,"x":6,"y":5,"tx":520,"ty":160},"6_5":{"id":7,"x":6,"y":5,"tx":480,"ty":0},"6.6":{"id":2,"x":6,"y":6,"tx":520,"ty":160},"6_6":{"id":7,"x":6,"y":6,"tx":480,"ty":0},"6_7":{"id":2,"x":6,"y":7,"tx":520,"ty":160},"6_8":{"id":2,"x":6,"y":8,"tx":520,"ty":160},"6_9":{"id":2,"x":6,"y":9,"tx":520,"ty":160},"6_10":{"id":2,"x":6,"y":10,"tx":520,"ty":160},"7_0":{"id":2,"x":7,"y":0,"tx":520,"ty":160},"7_1":{"id":2,"x":7,"y":1,"tx":520,"ty":160},"7_2":{"id":2,"x":7,"y":2,"tx":520,"ty":160},"7.3":{"id":2,"x":7,"y":3,"tx":520,"ty":160},"7_3":{"id":8,"x":7,"y":3,"tx":520,"ty":240},"7_4":{"id":2,"x":7,"y":4,"tx":520,"ty":160},"7_6":{"id":11,"x":7,"y":6,"tx":560,"ty":160},"7_7":{"id":11,"x":7,"y":7,"tx":560,"ty":160},"7_8":{"id":2,"x":7,"y":8,"tx":520,"ty":160},"7_9":{"id":2,"x":7,"y":9,"tx":520,"ty":160},"7_10":{"id":2,"x":7,"y":10,"tx":520,"ty":160},"8_0":{"id":2,"x":8,"y":0,"tx":520,"ty":160},"8_1":{"id":2,"x":8,"y":1,"tx":520,"ty":160},"8_2":{"id":9,"x":8,"y":2,"tx":480,"ty":120},"8_3":{"id":9,"x":8,"y":3,"tx":480,"ty":120},"8_4":{"id":9,"x":8,"y":4,"tx":480,"ty":120},"8_6":{"id":11,"x":8,"y":6,"tx":560,"ty":160},"8_7":{"id":11,"x":8,"y":7,"tx":560,"ty":160},"8_8":{"id":11,"x":8,"y":8,"tx":560,"ty":160},"8_9":{"id":2,"x":8,"y":9,"tx":520,"ty":160},"8_10":{"id":2,"x":8,"y":10,"tx":520,"ty":160},"9_0":{"id":2,"x":9,"y":0,"tx":520,"ty":160},"9_1":{"id":2,"x":9,"y":1,"tx":520,"ty":160},"9_2":{"id":12,"x":9,"y":2,"tx":600,"ty":160},"9_3":{"id":9,"x":9,"y":3,"tx":480,"ty":120},"9_4":{"id":9,"x":9,"y":4,"tx":480,"ty":120},"9_6":{"id":18,"x":9,"y":6,"tx":600,"ty":200},"9_7":{"id":11,"x":9,"y":7,"tx":560,"ty":160},"9_8":{"id":11,"x":9,"y":8,"tx":560,"ty":160},"9_9":{"id":11,"x":9,"y":9,"tx":560,"ty":160},"9_10":{"id":2,"x":9,"y":10,"tx":520,"ty":160},"10_0":{"id":2,"x":10,"y":0,"tx":520,"ty":160},"10_1":{"id":2,"x":10,"y":1,"tx":520,"ty":160},"10_2":{"id":12,"x":10,"y":2,"tx":600,"ty":160},"10_3":{"id":12,"x":10,"y":3,"tx":600,"ty":160},"10_4":{"id":9,"x":10,"y":4,"tx":480,"ty":120},"10_6":{"id":18,"x":10,"y":6,"tx":600,"ty":200},"10_7":{"id":18,"x":10,"y":7,"tx":600,"ty":200},"10_8":{"id":11,"x":10,"y":8,"tx":560,"ty":160},"10_9":{"id":11,"x":10,"y":9,"tx":560,"ty":160},"10_10":{"id":11,"x":10,"y":10,"tx":560,"ty":160},"11_0":{"id":2,"x":11,"y":0,"tx":520,"ty":160},"11_1":{"id":2,"x":11,"y":1,"tx":520,"ty":160},"11_2":{"id":2,"x":11,"y":2,"tx":520,"ty":160},"11_3":{"id":12,"x":11,"y":3,"tx":600,"ty":160},"11_4":{"id":12,"x":11,"y":4,"tx":600,"ty":160},"11_7":{"id":18,"x":11,"y":7,"tx":600,"ty":200},"11_8":{"id":18,"x":11,"y":8,"tx":600,"ty":200},"11_9":{"id":11,"x":11,"y":9,"tx":560,"ty":160},"11_10":{"id":11,"x":11,"y":10,"tx":560,"ty":160},"12_0":{"id":2,"x":12,"y":0,"tx":520,"ty":160},"12_1":{"id":2,"x":12,"y":1,"tx":520,"ty":160},"12_2":{"id":2,"x":12,"y":2,"tx":520,"ty":160},"12_3":{"id":2,"x":12,"y":3,"tx":520,"ty":160},"12_4":{"id":2,"x":12,"y":4,"tx":520,"ty":160},"12.5":{"id":2,"x":12,"y":5,"tx":520,"ty":160},"12_5":{"id":10,"x":12,"y":5,"tx":480,"ty":40},"12_7":{"id":18,"x":12,"y":7,"tx":600,"ty":200},"12_8":{"id":18,"x":12,"y":8,"tx":600,"ty":200},"12_9":{"id":18,"x":12,"y":9,"tx":600,"ty":200},"12_10":{"id":18,"x":12,"y":10,"tx":600,"ty":200},"13_0":{"id":2,"x":13,"y":0,"tx":520,"ty":160},"13_1":{"id":2,"x":13,"y":1,"tx":520,"ty":160},"13_2":{"id":2,"x":13,"y":2,"tx":520,"ty":160},"13_3":{"id":2,"x":13,"y":3,"tx":520,"ty":160},"13_4":{"id":2,"x":13,"y":4,"tx":520,"ty":160},"13_5":{"id":2,"x":13,"y":5,"tx":520,"ty":160},"13.6":{"id":2,"x":13,"y":6,"tx":520,"ty":160},"13_6":{"id":10,"x":13,"y":6,"tx":480,"ty":40},"13_8":{"id":18,"x":13,"y":8,"tx":600,"ty":200},"13_9":{"id":18,"x":13,"y":9,"tx":600,"ty":200},"13_10":{"id":18,"x":13,"y":10,"tx":600,"ty":200},"14.0":{"id":2,"x":14,"y":0,"tx":520,"ty":160},"14_0":{"id":7,"x":14,"y":0,"tx":480,"ty":0},"14.1":{"id":2,"x":14,"y":1,"tx":520,"ty":160},"14_2":{"id":2,"x":14,"y":2,"tx":520,"ty":160},"14_3":{"id":2,"x":14,"y":3,"tx":520,"ty":160},"14_4":{"id":2,"x":14,"y":4,"tx":520,"ty":160},"14_5":{"id":2,"x":14,"y":5,"tx":520,"ty":160},"14_6":{"id":2,"x":14,"y":6,"tx":520,"ty":160},"14_8":{"id":9.3,"x":14,"y":8,"tx":600,"ty":120},"14_9":{"id":9.3,"x":14,"y":9,"tx":600,"ty":120},"14_10":{"id":9.3,"x":14,"y":10,"tx":600,"ty":120},"15.0":{"id":2,"x":15,"y":0,"tx":520,"ty":160},"15.1":{"id":2,"x":15,"y":1,"tx":520,"ty":160},"15_1":{"id":7,"x":15,"y":1,"tx":480,"ty":0},"15_2":{"id":2,"x":15,"y":2,"tx":520,"ty":160},"15_3":{"id":23,"x":15,"y":3,"tx":520,"ty":200},"15_4":{"id":23,"x":15,"y":4,"tx":520,"ty":200},"15_5":{"id":23,"x":15,"y":5,"tx":520,"ty":200},"15_6":{"id":2,"x":15,"y":6,"tx":520,"ty":160},"15_8":{"id":2,"x":15,"y":8,"tx":520,"ty":160},"15_9":{"id":2,"x":15,"y":9,"tx":520,"ty":160},"15_10":{"id":2,"x":15,"y":10,"tx":520,"ty":160}}}; | |
var preview_pups = {"jukejuice":{"id":6.1,"x":14,"y":1,"tx":480,"ty":160}, "rollingbomb":{"id":6.2,"x":2,"y":2,"tx":480,"ty":200}, "tagpro":{"id":6.3,"x":15,"y":0,"tx":480,"ty":240}, "placeholder":{"id":6,"x":2,"y":9,"tx":480,"ty":320} }; | |
var preview_walls = {"0":{"q":0,"x":0,"y":0,"tx":0,"ty":280},"1":{"q":1,"x":0,"y":0,"tx":220,"ty":200},"2":{"q":2,"x":0,"y":0,"tx":220,"ty":220},"3":{"q":3,"x":0,"y":0,"tx":0,"ty":220},"4":{"q":0,"x":0,"y":1,"tx":0,"ty":200},"5":{"q":1,"x":0,"y":1,"tx":220,"ty":240},"6":{"q":2,"x":0,"y":1,"tx":300,"ty":340},"7":{"q":3,"x":0,"y":1,"tx":0,"ty":220},"8":{"q":0,"x":0,"y":2,"tx":0,"ty":200},"9":{"q":1,"x":0,"y":2,"tx":300,"ty":360},"10":{"q":2,"x":0,"y":2,"tx":460,"ty":220},"11":{"q":3,"x":0,"y":2,"tx":0,"ty":220},"12":{"q":0,"x":0,"y":3,"tx":0,"ty":200},"13":{"q":1,"x":0,"y":3,"tx":460,"ty":200},"14":{"q":2,"x":0,"y":3,"tx":460,"ty":220},"15":{"q":3,"x":0,"y":3,"tx":0,"ty":220},"16":{"q":0,"x":0,"y":4,"tx":0,"ty":200},"17":{"q":1,"x":0,"y":4,"tx":460,"ty":200},"18":{"q":2,"x":0,"y":4,"tx":460,"ty":300},"19":{"q":3,"x":0,"y":4,"tx":0,"ty":300},"20":{"q":0,"x":0,"y":7,"tx":0,"ty":280},"21":{"q":1,"x":0,"y":7,"tx":460,"ty":280},"22":{"q":2,"x":0,"y":7,"tx":460,"ty":220},"23":{"q":3,"x":0,"y":7,"tx":0,"ty":220},"24":{"q":0,"x":0,"y":8,"tx":0,"ty":200},"25":{"q":1,"x":0,"y":8,"tx":460,"ty":200},"26":{"q":2,"x":0,"y":8,"tx":460,"ty":220},"27":{"q":3,"x":0,"y":8,"tx":0,"ty":220},"28":{"q":0,"x":0,"y":9,"tx":0,"ty":200},"29":{"q":1,"x":0,"y":9,"tx":460,"ty":200},"30":{"q":2,"x":0,"y":9,"tx":60,"ty":340},"31":{"q":3,"x":0,"y":9,"tx":0,"ty":220},"32":{"q":0,"x":0,"y":10,"tx":0,"ty":200},"33":{"q":1,"x":0,"y":10,"tx":60,"ty":360},"34":{"q":2,"x":0,"y":10,"tx":220,"ty":220},"35":{"q":3,"x":0,"y":10,"tx":0,"ty":220},"36":{"q":0,"x":0,"y":11,"tx":0,"ty":200},"37":{"q":1,"x":0,"y":11,"tx":220,"ty":240},"38":{"q":2,"x":0,"y":11,"tx":340,"ty":420},"39":{"q":3,"x":0,"y":11,"tx":0,"ty":300},"40":{"q":0,"x":1,"y":0,"tx":240,"ty":200},"41":{"q":1,"x":1,"y":0,"tx":220,"ty":200},"42":{"q":2,"x":1,"y":0,"tx":340,"ty":300},"43":{"q":3,"x":1,"y":0,"tx":240,"ty":220},"44":{"q":0,"x":1,"y":1,"tx":240,"ty":400},"45":{"q":1,"x":1,"y":1,"tx":340,"ty":320},"46":{"q":3,"x":1,"y":1,"tx":320,"ty":340},"47":{"q":0,"x":1,"y":10,"tx":80,"ty":360},"48":{"q":2,"x":1,"y":10,"tx":100,"ty":380},"49":{"q":3,"x":1,"y":10,"tx":240,"ty":340},"50":{"q":0,"x":1,"y":11,"tx":240,"ty":240},"51":{"q":1,"x":1,"y":11,"tx":100,"ty":400},"52":{"q":2,"x":1,"y":11,"tx":340,"ty":420},"53":{"q":3,"x":1,"y":11,"tx":360,"ty":420},"54":{"q":0,"x":2,"y":0,"tx":240,"ty":200},"55":{"q":1,"x":2,"y":0,"tx":460,"ty":280},"56":{"q":2,"x":2,"y":0,"tx":460,"ty":300},"57":{"q":3,"x":2,"y":0,"tx":360,"ty":300},"58":{"q":0,"x":2,"y":11,"tx":120,"ty":400},"59":{"q":1,"x":2,"y":11,"tx":220,"ty":200},"60":{"q":2,"x":2,"y":11,"tx":340,"ty":420},"61":{"q":3,"x":2,"y":11,"tx":360,"ty":420},"62":{"q":0,"x":3,"y":11,"tx":240,"ty":200},"63":{"q":1,"x":3,"y":11,"tx":220,"ty":200},"64":{"q":2,"x":3,"y":11,"tx":340,"ty":420},"65":{"q":3,"x":3,"y":11,"tx":360,"ty":420},"66":{"q":0,"x":4,"y":11,"tx":240,"ty":200},"67":{"q":1,"x":4,"y":11,"tx":220,"ty":200},"68":{"q":2,"x":4,"y":11,"tx":340,"ty":420},"69":{"q":3,"x":4,"y":11,"tx":360,"ty":420},"70":{"q":0,"x":5,"y":0,"tx":0,"ty":280},"71":{"q":1,"x":5,"y":0,"tx":220,"ty":200},"72":{"q":2,"x":5,"y":0,"tx":340,"ty":420},"73":{"q":3,"x":5,"y":0,"tx":0,"ty":300},"74":{"q":0,"x":5,"y":11,"tx":240,"ty":200},"75":{"q":1,"x":5,"y":11,"tx":220,"ty":200},"76":{"q":2,"x":5,"y":11,"tx":340,"ty":420},"77":{"q":3,"x":5,"y":11,"tx":360,"ty":420},"78":{"q":0,"x":6,"y":0,"tx":240,"ty":200},"79":{"q":1,"x":6,"y":0,"tx":220,"ty":200},"80":{"q":2,"x":6,"y":0,"tx":380,"ty":420},"81":{"q":3,"x":6,"y":0,"tx":360,"ty":420},"82":{"q":0,"x":6,"y":11,"tx":240,"ty":200},"83":{"q":1,"x":6,"y":11,"tx":220,"ty":200},"84":{"q":2,"x":6,"y":11,"tx":340,"ty":420},"85":{"q":3,"x":6,"y":11,"tx":360,"ty":420},"86":{"q":0,"x":7,"y":0,"tx":280,"ty":200},"87":{"q":1,"x":7,"y":0,"tx":300,"ty":200},"88":{"q":3,"x":7,"y":0,"tx":400,"ty":420},"89":{"q":0,"x":7,"y":5,"tx":0,"ty":280},"90":{"q":1,"x":7,"y":5,"tx":220,"ty":200},"91":{"q":2,"x":7,"y":5,"tx":340,"ty":300},"92":{"q":3,"x":7,"y":5,"tx":0,"ty":220},"93":{"q":0,"x":7,"y":6,"tx":0,"ty":240},"94":{"q":1,"x":7,"y":6,"tx":340,"ty":320},"95":{"q":3,"x":7,"y":6,"tx":200,"ty":300},"96":{"q":0,"x":7,"y":11,"tx":240,"ty":200},"97":{"q":1,"x":7,"y":11,"tx":220,"ty":200},"98":{"q":2,"x":7,"y":11,"tx":340,"ty":420},"99":{"q":3,"x":7,"y":11,"tx":360,"ty":420},"100":{"q":0,"x":8,"y":5,"tx":240,"ty":200},"101":{"q":1,"x":8,"y":5,"tx":220,"ty":200},"102":{"q":2,"x":8,"y":5,"tx":340,"ty":420},"103":{"q":3,"x":8,"y":5,"tx":360,"ty":300},"104":{"q":0,"x":8,"y":11,"tx":240,"ty":200},"105":{"q":1,"x":8,"y":11,"tx":220,"ty":200},"106":{"q":2,"x":8,"y":11,"tx":340,"ty":420},"107":{"q":3,"x":8,"y":11,"tx":360,"ty":420},"108":{"q":0,"x":9,"y":5,"tx":240,"ty":200},"109":{"q":1,"x":9,"y":5,"tx":220,"ty":200},"110":{"q":2,"x":9,"y":5,"tx":340,"ty":420},"111":{"q":3,"x":9,"y":5,"tx":360,"ty":420},"112":{"q":0,"x":9,"y":11,"tx":240,"ty":200},"113":{"q":1,"x":9,"y":11,"tx":220,"ty":200},"114":{"q":2,"x":9,"y":11,"tx":340,"ty":420},"115":{"q":3,"x":9,"y":11,"tx":360,"ty":420},"116":{"q":0,"x":10,"y":5,"tx":240,"ty":200},"117":{"q":1,"x":10,"y":5,"tx":220,"ty":200},"118":{"q":2,"x":10,"y":5,"tx":380,"ty":300},"119":{"q":3,"x":10,"y":5,"tx":360,"ty":420},"120":{"q":0,"x":10,"y":11,"tx":240,"ty":200},"121":{"q":1,"x":10,"y":11,"tx":220,"ty":200},"122":{"q":2,"x":10,"y":11,"tx":340,"ty":420},"123":{"q":3,"x":10,"y":11,"tx":360,"ty":420},"124":{"q":0,"x":11,"y":5,"tx":240,"ty":200},"125":{"q":1,"x":11,"y":5,"tx":460,"ty":280},"126":{"q":2,"x":11,"y":5,"tx":300,"ty":380},"127":{"q":3,"x":11,"y":5,"tx":400,"ty":300},"128":{"q":0,"x":11,"y":6,"tx":400,"ty":320},"129":{"q":1,"x":11,"y":6,"tx":300,"ty":400},"130":{"q":2,"x":11,"y":6,"tx":100,"ty":300},"131":{"q":3,"x":11,"y":6,"tx":0,"ty":300},"132":{"q":0,"x":11,"y":11,"tx":240,"ty":200},"133":{"q":1,"x":11,"y":11,"tx":220,"ty":200},"134":{"q":2,"x":11,"y":11,"tx":340,"ty":420},"135":{"q":3,"x":11,"y":11,"tx":360,"ty":420},"136":{"q":0,"x":12,"y":6,"tx":320,"ty":400},"137":{"q":1,"x":12,"y":6,"tx":460,"ty":280},"138":{"q":2,"x":12,"y":6,"tx":300,"ty":380},"139":{"q":3,"x":12,"y":6,"tx":120,"ty":300},"140":{"q":0,"x":12,"y":7,"tx":120,"ty":320},"141":{"q":1,"x":12,"y":7,"tx":380,"ty":160},"142":{"q":2,"x":12,"y":7,"tx":60,"ty":420},"143":{"q":0,"x":12,"y":11,"tx":240,"ty":200},"144":{"q":1,"x":12,"y":11,"tx":220,"ty":200},"145":{"q":2,"x":12,"y":11,"tx":340,"ty":420},"146":{"q":3,"x":12,"y":11,"tx":360,"ty":420},"147":{"q":0,"x":13,"y":7,"tx":320,"ty":400},"148":{"q":1,"x":13,"y":7,"tx":220,"ty":200},"149":{"q":2,"x":13,"y":7,"tx":340,"ty":420},"150":{"q":3,"x":13,"y":7,"tx":80,"ty":420},"151":{"q":0,"x":13,"y":11,"tx":240,"ty":200},"152":{"q":1,"x":13,"y":11,"tx":220,"ty":200},"153":{"q":2,"x":13,"y":11,"tx":340,"ty":420},"154":{"q":3,"x":13,"y":11,"tx":360,"ty":420},"155":{"q":0,"x":14,"y":7,"tx":240,"ty":200},"156":{"q":1,"x":14,"y":7,"tx":220,"ty":200},"157":{"q":2,"x":14,"y":7,"tx":340,"ty":420},"158":{"q":3,"x":14,"y":7,"tx":360,"ty":420},"159":{"q":0,"x":14,"y":11,"tx":240,"ty":200},"160":{"q":1,"x":14,"y":11,"tx":220,"ty":200},"161":{"q":2,"x":14,"y":11,"tx":340,"ty":420},"162":{"q":3,"x":14,"y":11,"tx":360,"ty":420},"163":{"q":0,"x":15,"y":7,"tx":240,"ty":200},"164":{"q":1,"x":15,"y":7,"tx":220,"ty":200},"165":{"q":2,"x":15,"y":7,"tx":380,"ty":300},"166":{"q":3,"x":15,"y":7,"tx":360,"ty":420},"167":{"q":0,"x":15,"y":11,"tx":240,"ty":200},"168":{"q":1,"x":15,"y":11,"tx":140,"ty":400},"169":{"q":2,"x":15,"y":11,"tx":340,"ty":420},"170":{"q":3,"x":15,"y":11,"tx":360,"ty":420},"171":{"q":0,"x":16,"y":7,"tx":240,"ty":200},"172":{"q":1,"x":16,"y":7,"tx":460,"ty":280},"173":{"q":2,"x":16,"y":7,"tx":460,"ty":220},"174":{"q":3,"x":16,"y":7,"tx":400,"ty":300},"175":{"q":0,"x":16,"y":8,"tx":400,"ty":320},"176":{"q":1,"x":16,"y":8,"tx":460,"ty":200},"177":{"q":2,"x":16,"y":8,"tx":460,"ty":220},"178":{"q":3,"x":16,"y":8,"tx":0,"ty":220},"179":{"q":0,"x":16,"y":9,"tx":0,"ty":200},"180":{"q":1,"x":16,"y":9,"tx":460,"ty":200},"181":{"q":2,"x":16,"y":9,"tx":460,"ty":220},"182":{"q":3,"x":16,"y":9,"tx":0,"ty":220},"183":{"q":0,"x":16,"y":10,"tx":0,"ty":200},"184":{"q":1,"x":16,"y":10,"tx":460,"ty":200},"185":{"q":2,"x":16,"y":10,"tx":460,"ty":220},"186":{"q":3,"x":16,"y":10,"tx":160,"ty":380},"187":{"q":0,"x":16,"y":11,"tx":160,"ty":400},"188":{"q":1,"x":16,"y":11,"tx":460,"ty":200},"189":{"q":2,"x":16,"y":11,"tx":460,"ty":300},"190":{"q":3,"x":16,"y":11,"tx":360,"ty":420}}; | |
previewCanvas.width = preview_map.info.width * 40; | |
previewCanvas.height = preview_map.info.height * 40; | |
var createAllModsPreview = function(tilesImage) { | |
let mapWidth = previewCanvas.width; | |
let mapHeight = previewCanvas.height; | |
var tileCanvas = document.createElement('canvas'); | |
tileCanvas.width = 40; | |
tileCanvas.height = 40; | |
var tileCtx = tileCanvas.getContext('2d'); | |
var wallCanvas = document.createElement('canvas'); | |
wallCanvas.width = mapWidth; | |
wallCanvas.height = mapHeight; | |
var wallCtx = wallCanvas.getContext('2d'); | |
var previewCtx = previewCanvas.getContext("2d"); | |
previewCtx.clearRect(0, 0, previewCanvas.width, previewCanvas.height); | |
previewCtx.save(); | |
Object.keys(tileCache).forEach(k => delete tileCache[k]); | |
let tileBaseColor = options.floortiles.tint_color; | |
if (options.floortiles.random) tileBaseColor = Please.make_color({ | |
saturation: options.floortiles.random_saturation / 100, | |
value: options.floortiles.random_brightness / 100 | |
})[0]; | |
$.each(preview_map.data, function(key, value) { | |
let drawFloorUnderTeam = (options.team.drawFloorUnderneath && (value.id === 11 || value.id === 12 || value.id === 23)); | |
let drawFloorUnderEndzone = (options.endzone.drawFloorUnderneath && (value.id === 17 || value.id === 18)); | |
let drawFloorUnderGate = (options.gates.drawFloorUnderneath && (value.id === 9 || value.id === 9.1 || value.id === 9.2 || value.id === 9.3)); | |
if (!options.floortiles.nofloor && (value.id === 2 || drawFloorUnderGate || drawFloorUnderTeam || drawFloorUnderEndzone)) {//xxy | |
if (options.floortiles.modify && options.floortiles.plain) { | |
previewCtx.fillStyle = tileBaseColor; | |
previewCtx.fillRect(value.x*40, value.y*40, 40, 40); | |
} else { | |
if (options.floortiles.modify && options.floortiles.tint_opacity > 0) { | |
console.log('floor:',value.id); | |
tileCtx.clearRect(0, 0, 40, 40); | |
tileCtx.drawImage(tilesImage, 520,160,40,40, 0,0,40,40); | |
setTint(tileCanvas, tileBaseColor, options.floortiles.tint_opacity / 100); | |
previewCtx.drawImage(tileCanvas, 0,0,40,40, value.x*40,value.y*40,40,40); | |
} else { | |
previewCtx.drawImage(tilesImage, 520,160,40,40, (value.x*40),(value.y*40),40,40); | |
} | |
} | |
} | |
}); | |
var floorBackgroundImage = new Image(); | |
if (options.floortiles.image && options.floortiles.imagedata) { | |
let i = 0; | |
floorBackgroundImage.src = options.floortiles.imagedata; | |
} | |
let imageRatio = (floorBackgroundImage.width / floorBackgroundImage.height); | |
let mapRatio = (mapWidth / mapHeight); | |
let widthRatio = (imageRatio < mapRatio ? imageRatio : mapRatio); | |
let heightRatio = (imageRatio < mapRatio ? mapRatio : imageRatio); | |
if (options.floortiles.image && options.floortiles.image_floor && floorBackgroundImage.height) { | |
previewCtx.save(); | |
let filters = ''; | |
if (options.floortiles.image_blur > 0) filters += 'blur('+options.floortiles.image_blur+'px) '; | |
if (options.floortiles.image_brightness !== '100') filters += 'brightness('+options.floortiles.image_brightness+'%) '; | |
if (options.floortiles.image_contrast > '100') filters += 'contrast('+options.floortiles.image_contrast+'%) '; | |
if (options.floortiles.image_saturation > '100') filters += 'saturate('+options.floortiles.image_saturation+'%) '; | |
if (options.floortiles.image_opacity < 100) filters += 'opacity('+options.floortiles.image_opacity+'%) '; | |
if (options.floortiles.image_grayscale > 0) filters += 'grayscale('+options.floortiles.image_grayscale+'%) '; | |
if (options.floortiles.image_sepia > 0) filters += 'sepia('+options.floortiles.image_sepia+'%) '; | |
if (options.floortiles.image_huerotate > 0) filters += 'hue-rotate('+options.floortiles.image_huerotate+'deg) '; | |
if (filters) previewCtx.filter = filters; | |
previewCtx.drawImage(floorBackgroundImage, 0, 0, floorBackgroundImage.width, floorBackgroundImage.height, 0, 0, mapWidth*widthRatio, mapHeight*heightRatio); | |
previewCtx.restore(); | |
} | |
if (options.floortiles.gradient) addFloorGradient(previewCtx, mapWidth, mapHeight); | |
if (options.floortiles.checkered) addCheckered(previewCtx, mapWidth, mapHeight); | |
if (options.floortiles.hexagons) addHexagons(previewCtx, mapWidth, mapHeight); | |
if (options.floortiles.grids_diagonal) addDiagonalGrid(previewCtx, mapWidth, mapHeight); | |
if (options.floortiles.grids_square) addSquareGrid(previewCtx, mapWidth, mapHeight); | |
if (options.floortiles.specks) addRandoms(previewCtx, mapWidth, mapHeight); | |
//previewCtx.restore(); | |
if (options.shapes.circle) drawBaseShape(previewCtx, 'circle', options.shapes.circle_red_color, 100, 100); | |
if (options.shapes.cross) drawBaseShape(previewCtx, 'radial', options.shapes.cross_red_color, 100, 100); | |
if (options.shapes.octagon) drawBaseShape(previewCtx, 'octagon', options.shapes.octagon_red_color, 100, 100); | |
if (options.shapes.centerline) drawLine(previewCtx, 0, mapHeight/2, mapWidth, mapHeight/2, hexToRgbA(options.shapes.centerline_color, options.shapes.centerline_opacity / 100), +options.shapes.centerline_width, +options.shapes.centerline_dashsize); | |
$.each(preview_map.data, function(key, value) { | |
previewCtx.save(); | |
tileCtx.clearRect(0,0, 40,40); | |
if (value.id === 7) { | |
if (options.glow.spikes) addLightGlow(previewCtx, value.x*40+20, value.y*40+20, options.glow.spikes_radius, options.glow.spikes_color, options.glow.spikes_opacity/100); | |
if (options.spikes.modify) { | |
let filter = ''; | |
if (options.spikes.brightness !== '100') filter += 'brightness('+options.spikes.brightness+'%) '; | |
if (options.spikes.contrast !== '100') filter += 'contrast('+options.spikes.contrast+'%) '; | |
if (options.spikes.sepia > 0) filter += 'sepia('+options.spikes.sepia+'%) '; | |
if (options.spikes.shadow) filter += 'drop-shadow('+options.spikes.shadow_size+'px '+options.spikes.shadow_size+'px '+options.spikes.shadow_blur+'px '+hexToRgbA(options.spikes.shadow_color, options.spikes.shadow_opacity/100)+') '; | |
tileCtx.drawImage(tilesImage, value.tx,value.ty,40,40, 0,0,40,40); | |
if (options.spikes.opacity > 0) setTint(tileCanvas, options.spikes.color, options.spikes.opacity/100, false, 'destination-atop', filter); | |
if (filter) previewCtx.filter = filter; | |
previewCtx.drawImage(tileCanvas, 0,0,40,40, value.x*40,value.y*40,40,40); | |
} else { | |
previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
} | |
} else if (value.id === 9 || value.id === 9.1 || value.id === 9.2 || value.id === 9.3) { | |
if (options.walls.modify && options.walls.shadow && options.walls.shadow_include_gates) { | |
//if (options.walls.modify && options.walls.shadow && options.walls.shadow_include_gates) wallCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
//else previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
previewCtx.filter = 'drop-shadow('+options.walls.shadow_size+'px '+options.walls.shadow_size+'px '+options.walls.shadow_blur+'px '+hexToRgbA(options.walls.shadow_color, options.walls.shadow_opacity/100)+') '; | |
//previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
//previewCtx.filter = 'none'; | |
} | |
if ((value.id === 9 && options.gates.neutral) || (value.id === 9.1 && options.gates.green) || (value.id === 9.2 && options.gates.red) || (value.id === 9.3 && options.gates.blue)) { | |
drawCustomTile(previewCtx, value.id, value.x, value.y); | |
} else { | |
previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
} | |
} else if (value.id === 10) { | |
if (options.glow.bombs) addLightGlow(previewCtx, value.x*40+20, value.y*40+20, options.glow.bombs_radius, options.glow.bombs_color, options.glow.bombs_opacity/100); | |
if (options.bombs.modify) { | |
let filter = ''; | |
if (options.bombs.brightness !== '100') filter += 'brightness('+options.bombs.brightness+'%) '; | |
if (options.bombs.contrast !== '100') filter += 'contrast('+options.bombs.contrast+'%) '; | |
if (options.bombs.sepia > 0) filter += 'sepia('+options.bombs.sepia+'%) '; | |
if (options.bombs.shadow) filter += 'drop-shadow('+options.bombs.shadow_size+'px '+options.bombs.shadow_size+'px '+options.bombs.shadow_blur+'px '+hexToRgbA(options.bombs.shadow_color, options.bombs.shadow_opacity/100)+') '; | |
tileCtx.drawImage(tilesImage, value.tx,value.ty,40,40, 0,0,40,40); | |
if (options.bombs.opacity > 0) setTint(tileCanvas, options.bombs.color, options.bombs.opacity/100, false, 'destination-atop', filter); | |
if (filter) previewCtx.filter = filter; | |
previewCtx.drawImage(tileCanvas, 0,0,40,40, value.x*40,value.y*40,40,40); | |
} else { | |
previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
} | |
} else if (value.id === 11 || value.id === 12 || value.id === 23) { | |
if (options.team.modify) { | |
drawCustomTile(previewCtx, value.id, value.x, value.y); | |
} else { | |
previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
} | |
} else if (value.id === 17 || value.id === 18) { | |
if (options.endzone.modify) { | |
drawCustomTile(previewCtx, value.id, value.x, value.y); | |
} else { | |
previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
} | |
} else if (value.id > 2) { | |
previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
} | |
previewCtx.restore(); | |
}); | |
if (options.glow.boosts_yellow) { | |
addLightGlow(previewCtx, 460, 100, options.glow.boosts_yellow_radius, options.glow.boosts_yellow_color, options.glow.boosts_yellow_opacity/100); | |
} | |
//pups.. | |
$.each(preview_pups, function(key, value) { | |
if (options.glow.pups) addLightGlow(previewCtx, value.x*40+20, value.y*40+20, options.glow.pups_radius, options.glow.pups_color, options.glow.pups_opacity/100); | |
previewCtx.save(); | |
if (options.pups.shadow && key !== 'placeholder') previewCtx.filter = 'drop-shadow(' + options.pups.shadow_size+'px ' + options.pups.shadow_size+'px ' + options.pups.shadow_blur+'px ' + hexToRgbA(options.pups.shadow_color, options.pups.shadow_opacity/100) + ') '; | |
previewCtx.drawImage(tilesImage, value.tx,value.ty,40,40, value.x*40,value.y*40,40,40); | |
previewCtx.restore(); | |
}); | |
//walls... | |
//wallCtx.clearRect(0, 0, mapWidth, mapHeight); | |
$.each(preview_walls, function(key, value) { | |
if (value.q >= 0) { | |
var xo = 0, yo = 0; | |
if ((value.q === 1) || (value.q === 2)) xo = 20; | |
if ((value.q === 2) || (value.q === 3)) yo = 20; | |
wallCtx.drawImage(tilesImage, value.tx, value.ty, 20, 20, value.x*40+xo, value.y*40+yo, 20, 20); | |
} | |
}); | |
if (options.walls.modify) { | |
if (options.walls.opacity > 0) setTint(wallCanvas, options.walls.color, options.walls.opacity / 100, false); | |
let filters = ''; | |
if (options.walls.brightness !== '100') filters += 'brightness('+options.walls.brightness+'%) '; | |
if (options.walls.contrast !== '100') filters += 'contrast('+options.walls.contrast+'%) '; | |
if (options.walls.sepia > 0) filters += 'sepia('+options.walls.sepia+'%) '; | |
if (options.walls.shadow) filters += 'drop-shadow(' + options.walls.shadow_size+'px ' + options.walls.shadow_size+'px ' + options.walls.shadow_blur+'px ' + hexToRgbA(options.walls.shadow_color, options.walls.shadow_opacity/100) + ') '; | |
if (filters) previewCtx.filter = filters; | |
} | |
previewCtx.drawImage(wallCanvas, 0, 0); | |
previewCtx.filter = 'none'; | |
//draw a background image on the walls if present and ready... | |
if (options.floortiles.image && options.floortiles.image_walls && floorBackgroundImage.height) { | |
let filters = ''; | |
if (options.floortiles.image_walls_blur > 0) filters += 'blur('+options.floortiles.image_walls_blur+'px) '; | |
if (options.floortiles.image_walls_brightness !== '100') filters += 'brightness('+options.floortiles.image_walls_brightness+'%) '; | |
if (options.floortiles.image_walls_contrast > '100') filters += 'contrast('+options.floortiles.image_walls_contrast+'%) '; | |
if (options.floortiles.image_walls_saturation > '100') filters += 'saturate('+options.floortiles.image_walls_saturation+'%) '; | |
if (options.floortiles.image_walls_opacity < 100) filters += 'opacity('+options.floortiles.image_walls_opacity+'%) '; | |
if (options.floortiles.image_walls_grayscale > 0) filters += 'grayscale('+options.floortiles.image_walls_grayscale+'%) '; | |
if (options.floortiles.image_walls_sepia > 0) filters += 'sepia('+options.floortiles.image_walls_sepia+'%) '; | |
if (options.floortiles.image_walls_huerotate > 0) filters += 'hue-rotate('+options.floortiles.image_walls_huerotate+'deg) '; | |
if (filters) previewCtx.filter = filters; | |
wallCtx.globalCompositeOperation = 'source-in'; | |
wallCtx.drawImage(floorBackgroundImage, 0, 0, floorBackgroundImage.width, floorBackgroundImage.height, 0, 0, mapWidth*widthRatio, mapHeight*heightRatio); | |
previewCtx.drawImage(wallCanvas, 0, 0); | |
} | |
previewCtx.restore(); | |
tileCanvas = null; | |
wallCanvas = null; | |
return previewCanvas; | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
function createPreview(img, isThumbnail=false) { | |
let ctx = previewCanvas.getContext("2d"); | |
//floor, objects.. | |
$.each(preview_map.data, function(key, value) { | |
ctx.drawImage(img, value.tx, value.ty, 40, 40, value.x*40, value.y*40, 40, 40); | |
}); | |
//pups.. | |
$.each(preview_pups, function(key, value) { | |
ctx.drawImage(img, value.tx, value.ty, 40, 40, value.x*40, value.y*40, 40, 40); | |
}); | |
//walls... | |
$.each(preview_walls, function(key, value) { | |
if (value.q >= 0) { | |
var xoffset = 0, yoffset = 0; | |
if ((value.q === 1) || (value.q === 2)) xoffset = 20; | |
if ((value.q === 0) || (value.q === 1)) yoffset = -20; | |
ctx.drawImage(img, value.tx, value.ty, 20, 20, value.x*40+xoffset, value.y*40+yoffset+20, 20, 20); | |
} | |
}); | |
if (isThumbnail) { | |
let tempCanvas = document.createElement('canvas'); | |
tempCanvas.width = 200; | |
tempCanvas.height = 138; | |
let tempCtx = tempCanvas.getContext("2d"); | |
tempCtx.drawImage(previewCanvas, 0,0,640,440, 0,0,200,138); | |
return tempCanvas; | |
} else { | |
return previewCanvas; | |
} | |
}; | |
var animatePreview = function(tilesImg, speedpadImg, portalImg, redBallImg, blueBallImg) { | |
if (!$('#TTM_BG_Preview').length) return; | |
var bgCtx = document.getElementById('TTM_BG_Preview').getContext('2d'); | |
var drawPop = 0; | |
var popStartSize = 100; | |
var popStep = 10; | |
var extraAnimFramePos = 0; | |
var frameCount = 0; | |
var animObjects = { | |
rball: { p0:{x:840, y:-200}, p1:{x:40, y:40}, p2:{x:40, y:400}, p3:{x:540, y:390}, tx:560, ty:0, speed:0.003, t:0 }, | |
bball: { p0:{x:680, y:-160}, p1:{x:-40, y:130}, p2:{x:0, y:540}, p3:{x:405, y:270}, tx:600, ty:0, speed:0.003, t:0 }, | |
yflag: { p0:{x:120, y:94}, p1:{x:352, y:346}, p2:{x:352, y:346}, p3:{x:352, y:346}, tx:520, ty:40, speed:0.0015, t:0, offx:13, offy:-32 }, | |
}; | |
var animate = function() { | |
bgCtx.clearRect(0, 0, previewCanvas.width, previewCanvas.height); | |
bgCtx.fillStyle = 'rgba(255,128,0,0.1)'; | |
for (var key in animObjects) { | |
let value = animObjects[key]; | |
let draw = true; | |
var pt; | |
if (key === 'yflag') { | |
pt = { x:animObjects.bball.x + value.offx, y:animObjects.bball.y + value.offy }; | |
if ((value.speed < 0 && value.t < 0.5) || (value.speed > 0 && value.t > 0.5)) draw = false; | |
if (draw && pt.x > 370 && pt.y > 230) draw = false; | |
} else { | |
pt = calcBezierPoint(value.t, value.p0, value.p1, value.p2, value.p3); | |
value.x = pt.x; | |
value.y = pt.y; | |
if (key === 'rball') { | |
if (value.speed < 0) draw = false; | |
if (drawPop === 0 && pt.x+39 > value.p3.x && pt.y > 230 && value.speed < 0) drawPop = popStartSize; | |
} | |
} | |
if (draw) { | |
if (key === 'rball') { | |
bgCtx.save(); | |
bgCtx.translate(pt.x, pt.y); | |
bgCtx.rotate(200+(50*value.t)); | |
bgCtx.globalAlpha = ((100 - options.gameoptions.ball_transparency) / 100); | |
if (options.gameoptions.filters_brightness) bgCtx.filter = 'brightness('+options.gameoptions.filters_brightness_value+'%) '; | |
if (redBallImg) bgCtx.drawImage(redBallImg, 0,0,40,40, -20,-20,40,40); | |
else bgCtx.drawImage(tilesImg, value.tx,value.ty,40,40, -20,-20,40,40); | |
bgCtx.translate(-pt.x, -pt.y); | |
bgCtx.globalAlpha = 1; | |
bgCtx.restore(); | |
} else if (key === 'bball' && blueBallImg) { | |
bgCtx.globalAlpha = ((100 - options.gameoptions.ball_transparency) / 100); | |
bgCtx.drawImage(blueBallImg, 0,0,40,40, pt.x,pt.y,40,40); | |
bgCtx.globalAlpha = 1; | |
} else { | |
bgCtx.drawImage(tilesImg, value.tx,value.ty,40,40, pt.x,pt.y,40,40); | |
} | |
} | |
value.t += value.speed; | |
if (value.t > 1 || value.t < 0) value.speed *= -1; | |
} | |
if (drawPop > 0) { | |
bgCtx.beginPath(); | |
bgCtx.arc(540,390,popStartSize-drawPop, 0, Math.PI*2, false); | |
bgCtx.fill(); | |
drawPop-=popStep; | |
} else { | |
drawPop = 0; | |
} | |
if (speedpadImg) { | |
bgCtx.drawImage(speedpadImg, extraAnimFramePos,0,40,40, 440,80,40,40); | |
} | |
if (portalImg) { | |
bgCtx.drawImage(portalImg, extraAnimFramePos,0,40,40, 600,320,40,40); | |
bgCtx.drawImage(portalImg, extraAnimFramePos,0,40,40, 600,360,40,40); | |
bgCtx.drawImage(portalImg, extraAnimFramePos,0,40,40, 600,400,40,40); | |
} | |
if (frameCount % 8 === 0) extraAnimFramePos+=40; | |
if (extraAnimFramePos >= 160) extraAnimFramePos = 0; | |
frameCount++; | |
if ($('#TTM_BG_Preview').length) window.requestAnimationFrame(animate); | |
}; | |
if ($('#TTM_BG_Preview').length) window.requestAnimationFrame(animate); | |
}; | |
var calcBezierPoint = function(t, p0, p1, p2, p3) { | |
var data = [p0, p1, p2, p3]; | |
var at = 1 - t; | |
for (var i = 1; i < data.length; i++) { | |
for (var k = 0; k < data.length - i; k++) { | |
data[k] = { | |
x: data[k].x * at + data[k + 1].x * t, | |
y: data[k].y * at + data[k + 1].y * t | |
}; | |
} | |
} | |
return data[0]; | |
}; | |
/*-------------------------------------------------------------------------------*/ | |
$('.texture-choice').on('click', function() { | |
var currentTiles = $('#tiles').val(); | |
var clearableCounter = 0; | |
var clearable = setInterval(function() { | |
clearableCounter+=50; | |
if (clearableCounter > 2000) { | |
clearInterval(clearable); | |
} | |
if ($('#tiles').val() !== currentTiles) { | |
clearInterval(clearable); | |
updateFloorTilesPreview(); | |
} | |
}, 50); | |
}); | |
$('#TPE_DeleteAllOptions').on('click', function() { | |
if (!confirm('All saved options sets will be deleted and this page will reload\n\nOK to continue?\n\n')) return; | |
GM_deleteValue('myOptions'); | |
window.location.reload(); | |
}).hover(function() { | |
$(this).css('opacity', '1'); | |
}, function() { | |
$(this).css('opacity', '0.2'); | |
}); | |
$('.TPE_Import_Presets').on('click', function() { | |
var what = this.dataset.key; | |
var response = prompt('Enter JSON string to import ' + what + ' options from...'); | |
var optionsJSON = {}; | |
if (!response) return; | |
try { | |
if (what === 'all') { | |
optionsJSON = JSON.parse(response); | |
} else { | |
optionsJSON[what] = JSON.parse(response); | |
} | |
} catch(e) { | |
alert('An error has occurred. Data string must be in JSON format.\n\n'); | |
return; | |
} | |
options = $.extend(true, options, optionsJSON); | |
GM_setValue('options', options); | |
loadOptionsValues(false); | |
updateAllPreviews(); | |
}).hover(function() { | |
$(this).css('opacity', '1'); | |
}, function() { | |
$(this).css('opacity', '0.2'); | |
}); | |
$('.TPE_Export_Presets').on('click', function() { | |
checkOptions(); | |
var key = this.dataset.key; | |
var aux = document.createElement("input"); | |
var values = ''; | |
if (key === 'all') { | |
options.textures.tiles = $('#tiles').val(); | |
options.textures.speedpad = $('#speedpad').val(); | |
options.textures.speedpadRed = $('#speedpadRed').val(); | |
options.textures.speedpadBlue = $('#speedpadBlue').val(); | |
options.textures.portal = $('#portal').val(); | |
options.textures.splats = $('#splats').val(); | |
options.textures.gravityWell = $('#gravityWell').val(); | |
aux.setAttribute("value", JSON.stringify(options)); | |
} else if (this.dataset.keys) { | |
var keysArray = this.dataset.keys.split(','); | |
var newObject = {}; | |
for (var i in keysArray) { | |
if (options.hasOwnProperty(keysArray[i])) { | |
newObject = options[keysArray[i]]; | |
} | |
} | |
aux.setAttribute("value", JSON.stringify(newObject)); | |
} else { | |
aux.setAttribute("value", JSON.stringify(options[key])); | |
} | |
document.body.appendChild(aux); | |
aux.select(); | |
document.execCommand("copy"); | |
document.body.removeChild(aux); | |
alert('Done - ' + key + ' options have been saved in the clipboard as a JSON sting.\n\n'); | |
}).hover(function() { | |
$(this).css('opacity', '1'); | |
}, function() { | |
$(this).css('opacity', '0.2'); | |
}); | |
$('#TPE_SaveMyPack').on('click', function() { | |
var name = prompt('Texture pack name:'); | |
if (name) { | |
var myPacks = GM_getValue('myPacks', {}); | |
var currentPack = getCurrentPack(); | |
var isNewPack = true; | |
if (myPacks.hasOwnProperty(name)) { | |
if (!confirm('"'+name+'" already exists - OK to overwrite?\n\n')) return; | |
isNewPack = false; | |
delete myPacks[name]; | |
} | |
myPacks[name] = currentPack; | |
GM_setValue('myPacks', myPacks); | |
if (isNewPack) { | |
createNewPackIcon(name); | |
$.each($('#custom').find('input[type="text"]'), function() { | |
$('#TPE_MyPacks_OptGroup_'+this.id).after('<option value="'+myPacks[name][this.id]+'" data-name="'+name+'">'+name+'</option>'); | |
}); | |
} | |
$('#custom-textures-btn').trigger('click'); | |
} | |
}).hover(function() { | |
$(this).css('opacity', '1'); | |
}, function() { | |
$(this).css('opacity', '0.7'); | |
}); | |
$('#TPE_MySavedPacks').on('click', '.TPE_MySavedPack', function() { | |
var myPacks = GM_getValue('myPacks', {}); | |
var name = $(this).data('name'); | |
if (myPacks.hasOwnProperty(name)) { | |
$.each(myPacks[name], function(key, value) { | |
$('#'+key).val(value); | |
}); | |
$('#custom-textures-btn').trigger('click'); | |
} | |
}); | |
$('#TPE_MySavedPacks').on('mouseenter', '.TPE_MySavedPack', function() { | |
$(this).css('box-shadow', '0 0 15px #ccc'); | |
$(this).find('.TPE_DeleteSavedPack').show(); | |
}).on('mouseleave', '.TPE_MySavedPack', function() { | |
$(this).css('box-shadow', 'none'); | |
$(this).find('.TPE_DeleteSavedPack').hide(); | |
}); | |
$('#TPE_MySavedPacks').on('click', '.TPE_DeleteSavedPack', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
var myPacks = GM_getValue('myPacks', {}); | |
var name = $(this).parent().data('name'); | |
if (name && myPacks.hasOwnProperty(name)) { | |
if (!confirm('Delete saved pack "'+name+'?\n\n')) return; | |
delete myPacks[name]; | |
GM_setValue('myPacks', myPacks); | |
var $this = $(this).parent(); | |
$this.fadeOut(600, function() { $this.remove(); }); | |
$('#custom').find('select').find('option[data-name="'+name+'"]').remove(); | |
} | |
}); | |
$('#TPE_MySavedPacks').on('mouseenter', '.TPE_DeleteSavedPack', function() { | |
$(this).css('opacity', '1'); | |
}).on('mouseleave', '.TPE_DeleteSavedPack', function() { | |
$(this).css('opacity', '0.7'); | |
}); | |
$('.TPE_Packs').on('change', function() { | |
$(this).siblings('input[type="text"]').val($(this).val()); | |
}); | |
/*-------------------------------------------------------------------------------*/ | |
$('#TPE_SaveMyOptions').on('click', function() { | |
var saveTextures = confirm('Save the texture links too\n\n(Cancel for No)?\n\n'); | |
var name = prompt('Options save name:'); | |
if (name) { | |
var myOptions = GM_getValue('myOptions', {}); | |
var isNewOptions = true; | |
if (myOptions.hasOwnProperty(name)) { | |
if (!confirm('"'+name+'" already exists - OK to overwrite?\n\n')) return; | |
isNewOptions = false; | |
delete myOptions[name]; | |
} | |
myOptions[name] = options; | |
if (saveTextures) { | |
if (!myOptions[name].hasOwnProperty('textures')) myOptions[name].textures = {}; | |
myOptions[name].textures.tiles = $('#tiles').val(); | |
myOptions[name].textures.speedpad = $('#speedpad').val(); | |
myOptions[name].textures.speedpadRed = $('#speedpadRed').val(); | |
myOptions[name].textures.speedpadBlue = $('#speedpadBlue').val(); | |
myOptions[name].textures.portal = $('#portal').val(); | |
myOptions[name].textures.splats = $('#splats').val(); | |
myOptions[name].textures.gravityWell = $('#gravityWell').val(); | |
$('#custom-textures-btn').trigger('click'); | |
} else { | |
delete myOptions[name].textures; | |
} | |
GM_setValue('myOptions', myOptions); | |
if (isNewOptions) { | |
createNewOptionsIcon(name); | |
} | |
} | |
}).hover(function() { | |
$(this).css('opacity', '1'); | |
}, function() { | |
$(this).css('opacity', '0.7'); | |
}); | |
$('#TPE_MySavedOptions').on('click', '.TPE_MySavedOptions', function() { | |
var myOptions = GM_getValue('myOptions', {}); | |
var name = $(this).data('name'); | |
if (myOptions.hasOwnProperty(name)) { | |
options = $.extend(true, {}, defaultOptions, myOptions[name]); | |
GM_setValue('options', options); | |
loadOptionsValues(false); | |
updateAllPreviews(); | |
$('#TPE_MySavedOptions_Presets').prop('selectedIndex', 0); | |
} | |
}); | |
$('#TPE_MySavedOptions').on('mouseenter', '.TPE_MySavedOptions', function() { | |
$(this).css('box-shadow', '0 0 10px #aaa'); | |
$(this).find('.TPE_DeleteSavedOptions').show(); | |
}).on('mouseleave', '.TPE_MySavedOptions', function() { | |
$(this).css('box-shadow', 'none'); | |
$(this).find('.TPE_DeleteSavedOptions').hide(); | |
}); | |
$('#TPE_MySavedOptions').on('click', '.TPE_DeleteSavedOptions', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
var myOptions = GM_getValue('myOptions', {}); | |
var name = $(this).parent().data('name'); | |
if (name && myOptions.hasOwnProperty(name)) { | |
if (!confirm('Delete saved options "'+name+'?\n\n')) return; | |
delete myOptions[name]; | |
GM_setValue('myOptions', myOptions); | |
var $this = $(this).parent(); | |
$this.fadeOut(600, function() { $this.remove(); }); | |
} | |
}); | |
$('#TPE_MySavedOptions').on('mouseenter', '.TPE_DeleteSavedOptions', function() { | |
$(this).css('opacity', '1'); | |
}).on('mouseleave', '.TPE_DeleteSavedOptions', function() { | |
$(this).css('opacity', '0.5'); | |
}); | |
/*-------------------------------------------------------------------------------*/ | |
$('.tab-list li').on('click', function() { | |
$(this).parents('.tab-list').find('li').removeClass('active'); | |
$(this).parents('.tab-list').parent().find('.tab-pane').removeClass('active'); | |
$(this).addClass('active'); | |
$( $(this).data('target') ).addClass('active'); | |
}); | |
$('#TPE_Wallpaper').find('input[type="radio"]').on('click', function() { | |
$('#TPE_GameWallPaper_Color1').val(this.dataset.c1); | |
$('#TPE_GameWallPaper_Color2').val(this.dataset.c2); | |
options.gamewallpaper.color1 = this.dataset.c1; | |
options.gamewallpaper.color2 = this.dataset.c2; | |
GM_setValue('options', options); | |
}); | |
$('#TPE_TransparentBall').on('input', function() { | |
$('#TPE_TransparentBallValue').text(this.value); | |
saveValue(this); | |
}); | |
var hideshowGroups = function(that) { | |
var saveto = that.dataset.saveto; | |
var type = that.dataset.type; | |
var group = that.dataset.group; | |
var rgroup = that.dataset.rgroup; | |
if (type === 'custom') { | |
let index = saveto.split('.'); | |
$('input[data-saveto="'+index[0]+'.shapes_overlay_base64"]').fadeIn(); | |
} else { | |
//$('input[data-saveto="'+index[0]+'.shapes_overlay_base64"]').fadeOut(); | |
} | |
if (group) { | |
if ( $(that).is(':checked') || ($(that).val() > 0) ) $('#TPE_Container, #TPE_Container_Balls').find('.'+group).fadeIn(); | |
else $('#TPE_Container, #TPE_Container_Balls').find('.'+group).fadeOut(); | |
} | |
if (rgroup) { | |
if ( $(that).is(':checked') || ($(that).val() > 0) ) $('#TPE_Container, #TPE_Container_Balls').find('.'+rgroup).fadeOut(); | |
else $('#TPE_Container, #TPE_Container_Balls').find('.'+rgroup).fadeIn(); | |
} | |
}; | |
$('#TPE_Container, #TPE_Container_Balls').find('input[type="checkbox"], input[type="number"], input[type="radio"]').on('click', function() { | |
hideshowGroups(this); | |
saveValue(this); | |
updateAllPreviews(); | |
}); | |
$('#TPE_Container, #TPE_Container_Balls').find('input[type="color"], select').on('change', function() { | |
hideshowGroups(this); | |
saveValue(this); | |
if (this.id !== 'TPE_MySavedOptions_Presets') updateAllPreviews(); | |
}); | |
$('.TPE_Preset').on('click', function() { | |
loadPreset(this.dataset.preset, this.dataset.color); | |
}); | |
$('#TPE_MySavedOptions_Presets').on('change', function() { | |
loadPreset($('#TPE_MySavedOptions_Presets :selected').data('preset')); | |
}); | |
$('#TPE_RedBall_CopyValues').on('click', function() { | |
$('#TPE_Red_Balls').find('input').each(function(key, value) { | |
if (this.type !== 'color') { | |
let saveto = this.dataset.saveto.replace('red', 'blue'); | |
let that = $('#TPE_Blue_Balls').find('input[data-saveto="'+saveto+'"]'); | |
if (this.type === 'checkbox') { | |
that.prop('checked', this.checked); | |
} else if (this.type === 'radio') { | |
let value = $('input[name="TPE_RedBall_Shapes_Overlay_Type"]:checked', '.TPE_RedBall_Shapes_Overlay_Group').data('type'); | |
if (this.dataset.type === value) { | |
that = $('#TPE_Blue_Balls').find('input[data-type="'+value+'"]'); | |
that.prop('checked', this.checked); | |
} | |
} else { | |
that.val(this.value); | |
} | |
hideshowGroups(that[0]); | |
saveValue(that[0]); | |
} | |
}); | |
updateBallPreviews(); | |
}); | |
$('#TPE_BlueBall_CopyValues').on('click', function() { | |
$('#TPE_Blue_Balls').find('input').each(function(key, value) { | |
if (this.type !== 'color') { | |
let saveto = this.dataset.saveto.replace('blue', 'red'); | |
let that = $('#TPE_Red_Balls').find('input[data-saveto="'+saveto+'"]'); | |
if (this.type === 'checkbox') { | |
that.prop('checked', this.checked); | |
} else if (this.type === 'radio') { | |
let value = $('input[name="TPE_BlueBall_Shapes_Overlay_Type"]:checked', '.TPE_BlueBall_Shapes_Overlay_Group').data('type'); | |
if (this.dataset.type === value) { | |
that = $('#TPE_Red_Balls').find('input[data-type="'+value+'"]'); | |
that.prop('checked', this.checked); | |
} | |
} else { | |
that.val(this.value); | |
} | |
hideshowGroups(that[0]); | |
saveValue(that[0]); | |
} | |
}); | |
updateBallPreviews(); | |
}); | |
/*-------------------------------------------------------------------------------*/ | |
// Drag/Drop events... | |
$(document).on('dragover', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
$('#TPE_DropZone_Outer, #TPE_FloorImage_DropZone_Outer').css({border:'2px dotted yellow'}); | |
}).on('dragleave', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
$('#TPE_DropZone_Outer, #TPE_FloorImage_DropZone_Outer').css({border:'2px dashed silver'}); | |
}); | |
$('#TPE_DropZone_Outer, #TPE_FloorImage_DropZone_Outer').on('dragover', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
$(this).css({background:'lime', opacity:0.3}); | |
}).on('dragleave', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
$(this).css({background:'', opacity:1}); | |
}).on('drop', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
$(this).css({border:'2px dotted silver', background:'', opacity:1}); | |
if (this.id === 'TPE_DropZone_Outer') handleDrop(e, 'gamewallpaper'); | |
else if (this.id === 'TPE_FloorImage_DropZone_Outer') handleDrop(e, 'floortiles'); | |
}).on('dblclick', function(e) { | |
e.stopPropagation(); | |
e.preventDefault(); | |
let target = 'gamewallpaper'; | |
if (this.id === 'TPE_FloorImage_DropZone_Outer') target = 'floortiles'; | |
if ( (target === 'gamewallpaper' && $('#TPE_WP').val() === 'image') || (target === 'floortiles') ) { | |
if (!confirm('Remove Custom Wallpaper?')) return; | |
options[target].imagedata = ''; | |
GM_setValue('options', options); | |
if (this.id === 'TPE_DropZone_Outer') $('#TPE_DropZone').css({ 'background': '#000 url("/images/background.jpg") center center / cover no-repeat' }); | |
else if (this.id === 'TPE_FloorImage_DropZone_Outer') $('#TPE_FloorImage_DropZone').css({ 'background': 'none' }); | |
setTimeout(function() { | |
if (target === 'gamewallpaper') updateBGPreview(); | |
else if (target === 'floortiles') updateFloorImagePreview(); | |
}, 100); | |
} | |
}); | |
} //...not in a game | |
}); //tagpro.ready() | |
if (window.location.port) { | |
/*-------------------------------------------------------------------------------*/ | |
//This allows us to modifiy the tiles before they get drawn. It is based around code by snaps... | |
/** | |
* Executes `fn` when the relevant parts of the `tagpro` object have | |
* been initialized. | |
* @param {Function} fn - The function to execute. | |
*/ | |
var waitForInitialized = function (fn) { | |
if (!tagpro || !tagpro.tiles || !tagpro.tiles.draw || !tagpro.renderer) { | |
setTimeout(function() { | |
waitForInitialized(fn); | |
}, 10); | |
} else { | |
// Only override if we load early enough. | |
if (!tagpro.renderer.layers.backgroundDrawn) { | |
fn(); | |
} | |
} | |
}; | |
waitForInitialized(function() { | |
var stdDraw = tagpro.tiles.draw; | |
var prefix = "__tinted__"; | |
/** | |
* Creates the tinted texture for the tile of the given id and sets | |
* the relevant values such that the returned value will function in | |
* the original `tagpro.tiles.draw` function. | |
* @param {(number|string)} tileId - The original id of the tile to set information for. | |
* @return {string} - The new id to use for the tile. | |
**/ | |
var setTintedTexture = function(tileId, suffix, forceDrawTiles=false) { | |
var originalTileId = tileId; | |
suffix = suffix || ''; | |
tileId = prefix + originalTileId + suffix; | |
if (!tagpro.tiles[tileId] || !PIXI.utils.TextureCache[tileId] || forceDrawTiles) { | |
var tile = tagpro.tiles[originalTileId]; | |
tagpro.tiles[tileId] = tile; | |
var elt = document.createElement("canvas"); | |
elt.width = tile.size || 40; | |
elt.height = tile.size || 40; | |
var ctx = elt.getContext("2d"); | |
var spread = tile.spread || 0; | |
var sx = tile.x * 40 - spread; | |
var sy = tile.y * 40 - spread; | |
var tileSize = (tile.size || 40) + spread * 2; | |
let color = ''; | |
let opacity = 0; | |
let filter = ''; | |
if (options.spikes.modify && originalTileId === 7) { | |
if (options.spikes.opacity > 0) { | |
color = options.spikes.color; | |
opacity = options.spikes.opacity / 100; | |
} | |
if (options.spikes.brightness !== '100') filter += 'brightness('+options.spikes.brightness+'%) '; | |
if (options.spikes.contrast !== '100') filter += 'contrast('+options.spikes.contrast+'%) '; | |
if (options.spikes.sepia > 0) filter += 'sepia('+options.spikes.sepia+'%) '; | |
if (options.spikes.shadow) filter += 'drop-shadow('+options.spikes.shadow_size+'px '+options.spikes.shadow_size+'px '+options.spikes.shadow_blur+'px '+hexToRgbA(options.spikes.shadow_color, options.spikes.shadow_opacity/100)+') '; | |
ctx.drawImage(tagpro.tiles.image, sx, sy, tileSize, tileSize, 0, 0, tileSize, tileSize); | |
setTint(elt, color, opacity, false, 'destination-atop', filter); | |
} else if (options.bombs.modify && originalTileId === 10) { | |
if (options.bombs.opacity > 0) { | |
color = options.bombs.color; | |
opacity = options.bombs.opacity / 100; | |
} | |
if (options.bombs.brightness !== '100') filter += 'brightness('+options.bombs.brightness+'%) '; | |
if (options.bombs.contrast !== '100') filter += 'contrast('+options.bombs.contrast+'%) '; | |
if (options.bombs.sepia > 0) filter += 'sepia('+options.bombs.sepia+'%) '; | |
if (options.bombs.shadow) filter += 'drop-shadow('+options.bombs.shadow_size+'px '+options.bombs.shadow_size+'px '+options.bombs.shadow_blur+'px '+hexToRgbA(options.bombs.shadow_color, options.bombs.shadow_opacity/100)+') '; | |
ctx.drawImage(tagpro.tiles.image, sx, sy, tileSize, tileSize, 0, 0, tileSize, tileSize); | |
setTint(elt, color, opacity, false, 'destination-atop', filter); | |
} else if (options.pups.shadow && (originalTileId === 6.1 || originalTileId === 6.2 || originalTileId === 6.3 || originalTileId === 6.4)) { | |
filter += 'drop-shadow('+options.pups.shadow_size+'px '+options.pups.shadow_size+'px '+options.pups.shadow_blur+'px '+hexToRgbA(options.pups.shadow_color, options.pups.shadow_opacity/100)+') '; | |
ctx.drawImage(tagpro.tiles.image, sx, sy, tileSize, tileSize, 0, 0, tileSize, tileSize); | |
setTint(elt, color, opacity, false, 'destination-atop', filter); | |
} else if ((originalTileId === 9 || originalTileId === 9.1 || originalTileId === 9.2 || originalTileId === 9.3)) { | |
//drawCustomTile(ctx, originalTileId, 0, 0); | |
if ((originalTileId === 9 && options.gates.neutral) || (originalTileId === 9.1 && options.gates.green) || (originalTileId === 9.2 && options.gates.red) || (originalTileId === 9.3 && options.gates.blue)) { | |
drawCustomTile(ctx, originalTileId, 0, 0); | |
} else { | |
ctx.drawImage(tagpro.tiles.image, sx, sy, tileSize, tileSize, 0, 0, tileSize, tileSize); | |
} | |
} | |
PIXI.utils.TextureCache[tileId] = PIXI.Texture.fromCanvas(elt); | |
elt = null; | |
} | |
return tileId; | |
}; | |
//} | |
// Override `tagpro.tiles.draw`. | |
tagpro.tiles.draw = function() { | |
if (tagpro.tiles.draw.caller === tagpro.renderer.drawDynamicTile) { | |
let bombTile = ( options.bombs.modify && (typeof arguments[1] !== "object") && ([10, 10.1].indexOf(arguments[1]) !== -1) && arguments[2]); | |
let spikeTile = ( options.spikes.modify && (typeof arguments[1] !== "object") && ([7].indexOf(arguments[1]) !== -1) && arguments[2]); | |
let pupTile = ( options.pups.shadow && (typeof arguments[1] !== "object") && ([6.1, 6.2, 6.3, 6.4].indexOf(arguments[1]) !== -1) && arguments[2]); | |
let gateTile = ( (typeof arguments[1] !== "object") && ([9, 9.1, 9.2, 9.3].indexOf(arguments[1]) !== -1) && arguments[2]); | |
let suffix = ''; | |
if (bombTile || spikeTile || pupTile || gateTile) { | |
if (arguments[1] == '10') { | |
suffix = 'BOMB'; | |
} else if (arguments[1] == '10.1') { | |
suffix = 'BAMB'; | |
} else if (arguments[1] == '7') { | |
suffix = 'SPK'; | |
} else if (arguments[1] == '6.1') { | |
suffix = 'P_TP'; | |
} else if (arguments[1] == '6.2') { | |
suffix = 'P_RB'; | |
} else if (arguments[1] == '6.3') { | |
suffix = 'P_JJ'; | |
} else if (arguments[1] == '6.4') { | |
suffix = 'P_MS'; | |
} else if (arguments[1] == '9') { | |
suffix = 'G_N'; | |
} else if (arguments[1] == '9.1') { | |
suffix = 'G_G'; | |
} else if (arguments[1] == '9.2') { | |
suffix = 'G_R'; | |
} else if (arguments[1] == '9.3') { | |
suffix = 'G_B'; | |
} | |
arguments[1] = setTintedTexture(arguments[1], '_'+suffix, false); | |
} | |
} | |
return stdDraw.apply(null, arguments); | |
}; | |
}); //waitForInitialized() | |
} //if window.location.port | |
//----------------------------------------------- | |
//functions for drawing modified tiles & balls... | |
//----------------------------------------------- | |
function clearFloor(ctx, width, height) { | |
if (options.floortiles.plain) { | |
ctx.fillStyle = hexToRgbA(options.floortiles.tint_color, 1); | |
ctx.fillRect(0, 0, width, height); | |
} else { | |
if (options.floortiles.tint_opacity > 0) { | |
ctx.fillStyle = hexToRgbA(options.floortiles.tint_color, options.floortiles.tint_opacity / 100); | |
ctx.fillRect(0, 0, width, height); | |
} | |
} | |
} | |
function addFloorGradient(ctx, mapWidth, mapHeight) { | |
let gradient; | |
ctx.save(); | |
ctx.globalCompositeOperation = 'source-over'; //atop | |
if (options.floortiles.gradient_type === 'centerline') { | |
if (flagLocs.halfway.x) { | |
gradient = ctx.createLinearGradient(0, mapHeight/2, mapWidth, mapHeight/2); | |
} else { | |
gradient = ctx.createLinearGradient(mapWidth/2, 0, mapWidth/2, mapHeight); | |
} | |
} else if (options.floortiles.gradient_type === 'centercircle') { | |
gradient = ctx.createRadialGradient(mapWidth/2, mapHeight/2, 0, mapWidth/2, mapHeight/2, Math.max(mapWidth, mapHeight)); | |
} else if (options.floortiles.gradient_type === 'randomcircles' || options.floortiles.gradient_type === 'randomsquares') { | |
let color1 = hexToRgbA(options.floortiles.gradient_color1, options.floortiles.gradient_opacity1 / 100); | |
let color2 = hexToRgbA(options.floortiles.gradient_color2, options.floortiles.gradient_opacity2 / 100); | |
let count = Math.min(mapWidth, mapHeight) / 40; | |
ctx.filter = 'blur('+options.floortiles.gradient_repeats+'px)'; | |
for (let i=0; i<count; i++) { | |
let x = getRandomInt(0, mapWidth); | |
let y = getRandomInt(0, mapHeight); | |
let r = getRandomInt(200, 400); | |
if (options.floortiles.gradient_type === 'randomcircles') gradient = ctx.createRadialGradient(x, y, 0, x, y, r); | |
else gradient = ctx.createLinearGradient(x-r, y-r, x+r, y+r); | |
for (let j=0; j<3; j++) { | |
let rand = getRandomInt(0, 1); | |
let c = hexToRgbA(colorLuminance(rand === 1 ? options.floortiles.gradient_color1 : options.floortiles.gradient_color2, rand === 1 ? Math.random() : Math.random()*-1), (rand === 1 ? options.floortiles.gradient_opacity1 : options.floortiles.gradient_opacity2)/100); | |
gradient.addColorStop(j/3, c); | |
} | |
ctx.fillStyle = gradient; | |
ctx.beginPath(); | |
if (options.floortiles.gradient_type === 'randomcircles') { | |
ctx.arc(x, y, r, 0, 2*Math.PI); | |
//ctx.ellipse(x, y, radius*getRandomInt(1, 2), radius*getRandomInt(2, 5), getRandomInt(0, 359)*Math.PI/180, 0, 2*Math.PI); | |
ctx.fill(); | |
} else { | |
ctx.fillRect(x-r, y-r, x+r, y+r); | |
} | |
} | |
ctx.restore(); | |
return; | |
} else if (options.floortiles.gradient_type === 'flags') { | |
if (flagLocs.yellow.x && flagLocs.yellow.y) { | |
gradient = ctx.createLinearGradient(flagLocs.ezred.x, flagLocs.ezred.y, flagLocs.ezblue.x, flagLocs.ezblue.y); | |
} else if (flagLocs.red.x && flagLocs.blue.x) { | |
gradient = ctx.createLinearGradient(flagLocs.red.x+20, flagLocs.red.y+20, flagLocs.blue.x+20, flagLocs.blue.y+20); | |
} else { | |
gradient = ctx.createLinearGradient(0, 0, mapWidth, mapHeight); | |
} | |
} | |
let gradientRepeats = +options.floortiles.gradient_repeats; | |
let gradientInterval = 1 / gradientRepeats; | |
let i = gradientInterval; | |
let alt = true; | |
//console.log(' |gradientInterval:' + gradientInterval + ' |gradientRepeats:' + gradientRepeats + ' |options.floortiles.gradient_repeats:' + options.floortiles.gradient_repeats, mapWidth, mapHeight); | |
gradient.addColorStop(0, hexToRgbA(options.floortiles.gradient_color1, options.floortiles.gradient_opacity1 / 100)); | |
while (i < 1) { | |
if (alt) { | |
gradient.addColorStop(i, hexToRgbA(options.floortiles.gradient_color2, options.floortiles.gradient_opacity2 / 100)); | |
alt = false; | |
} else { | |
gradient.addColorStop(i, hexToRgbA(options.floortiles.gradient_color1, options.floortiles.gradient_opacity1 / 100)); | |
alt = true; | |
} | |
i += gradientInterval; | |
} | |
gradient.addColorStop(1, hexToRgbA(options.floortiles.gradient_color1, options.floortiles.gradient_opacity1 / 100)); | |
ctx.fillStyle = gradient; | |
ctx.fillRect(0, 0, mapWidth, mapHeight); | |
ctx.restore(); | |
} | |
function addHexagons(ctx, mapWidth, mapHeight) { | |
let size = options.floortiles.hexagons_size; //Math.max(mapWidth, mapHeight) / 8; | |
let pattern = document.createElement('canvas'); | |
pattern.width = 2 * size; | |
pattern.height = Math.sqrt(3) * size; | |
let pctx = pattern.getContext('2d'); | |
//ctx.save(); | |
//ctx.globalCompositeOperation = 'source-atop'; | |
if (options.floortiles.hexagons_blur > 0) { | |
pctx.filter = 'blur('+options.floortiles.hexagons_blur+'px)'; | |
} | |
let radius = size/2; | |
let radius3 = radius*3; | |
let a = pattern.width / 2; | |
let b = pattern.height / 2; | |
let margin = Math.ceil(Math.floor((pattern.width-pattern.height) / 2) / 2); | |
let s2r = radius + margin - options.floortiles.hexagons_margin; | |
//console.log('size:',size + ' |radius:',radius + ' |pattern.height:',pattern.height + ' |pattern.width:',pattern.width + ' |margin:',margin); | |
let lineWidth = options.floortiles.hexagons_linewidth; | |
let strokeColor = ''; //hexToRgbA('#ff00ff', options.floortiles.hexagons_opacity / 100); | |
let fillColor = ''; //hexToRgbA('#ff00ff', options.floortiles.hexagons_opacity / 100); | |
let radialColor = ''; //hexToRgbA('#ff00ff', options.floortiles.hexagons_opacity / 100); | |
let center = Math.sqrt(3)*radius / radius; | |
if (options.floortiles.hexagons_stroke) { | |
if (options.floortiles.hexagons_stroke_gradient > 0) { | |
let strokeOffset = s2r * options.floortiles.hexagons_stroke_gradient / 100; | |
//strokeColor = ctx.createRadialGradient(radius/2, radius/2, radius-lineWidth/2, radius/2, radius/2, radius+lineWidth/2); | |
strokeColor = ctx.createRadialGradient(strokeOffset, strokeOffset, radius-lineWidth/2, strokeOffset, strokeOffset, radius+lineWidth/2); | |
//strokeColor = ctx.createRadialGradient(center-offset, center-offset, s2r-lineWidth/2-offset, center-offset, center-offset, s2r+lineWidth/2+offset); | |
//strokeColor = ctx.createRadialGradient(center-offset, center-offset, 0, center-offset, center-offset, size); | |
//strokeColor = ctx.createLinearGradient(center-s2r, center-s2r, s2r, s2r); | |
strokeColor.addColorStop(0, hexToRgbA(options.floortiles.hexagons_stroke_color, options.floortiles.hexagons_stroke_opacity / 100)); | |
strokeColor.addColorStop(1, hexToRgbA(colorLuminance(options.floortiles.hexagons_stroke_color, -0.65), options.floortiles.hexagons_stroke_opacity / 100)); | |
} else { | |
strokeColor = hexToRgbA(options.floortiles.hexagons_stroke_color, options.floortiles.hexagons_stroke_opacity / 100); | |
} | |
} | |
if (options.floortiles.hexagons_fill) { | |
if (options.floortiles.hexagons_fill_gradient > 0) { | |
let fillOffset = s2r * options.floortiles.hexagons_fill_gradient / 100; | |
fillColor = ctx.createRadialGradient(center-fillOffset, center-fillOffset, 0, center-fillOffset, center-fillOffset, size); | |
fillColor.addColorStop(0, hexToRgbA(options.floortiles.hexagons_fill_color, options.floortiles.hexagons_fill_opacity / 100)); | |
fillColor.addColorStop(1, hexToRgbA(colorLuminance(options.floortiles.hexagons_fill_color, -0.75), options.floortiles.hexagons_fill_opacity / 100)); | |
} else { | |
fillColor = hexToRgbA(options.floortiles.hexagons_fill_color, options.floortiles.hexagons_fill_opacity / 100); | |
} | |
} | |
//create a seamless hexagon pattern for repeating | |
drawPolygon(pctx, radius, 0, s2r, 6, lineWidth, strokeColor, fillColor, radialColor, 30); //top left hexagon | |
drawPolygon(pctx, radius3, 0, s2r, 6, lineWidth, strokeColor, fillColor, radialColor, 30); //top right | |
drawPolygon(pctx, 0, b, s2r, 6, lineWidth, strokeColor, fillColor, radialColor, 30); //center left | |
drawPolygon(pctx, a, b, s2r, 6, lineWidth, strokeColor, fillColor, radialColor, 30); //center | |
drawPolygon(pctx, pattern.width, b, s2r, 6, lineWidth, strokeColor, fillColor, radialColor, 30); //center right | |
drawPolygon(pctx, radius, pattern.height, s2r, 6, lineWidth, strokeColor, fillColor, radialColor, 30); //bottom left | |
drawPolygon(pctx, radius3, pattern.height, s2r, 6, lineWidth, strokeColor, fillColor, radialColor, 30); //bottom right | |
let patt = ctx.createPattern(pattern, "repeat"); | |
ctx.fillStyle = patt; | |
ctx.fillRect(0, 0, mapWidth, mapHeight); | |
pattern = null; | |
//ctx.restore(); | |
} | |
function addCheckered(ctx, mapWidth, mapHeight) { | |
let pattern = document.createElement('canvas'); | |
let size = +options.floortiles.checkered_size; | |
let random = options.floortiles.checkered_random; | |
let blur = +options.floortiles.checkered_blur; | |
ctx.save(); | |
ctx.globalCompositeOperation = 'source-over'; //atop | |
if (blur > 0) ctx.filter = 'blur('+blur+'px)'; | |
if (size === 0) { | |
if (flagLocs.halfway.x) { | |
ctx.beginPath(); | |
ctx.fillStyle = hexToRgbA(options.floortiles.tint_color, options.floortiles.tint_opacity / 100); | |
ctx.fillRect(0, 0, flagLocs.halfway.x+20, mapHeight); | |
ctx.fillStyle = hexToRgbA(options.floortiles.checkered_altTintColor, options.floortiles.checkered_altTintOpacity / 100); | |
ctx.fillRect(flagLocs.halfway.x+20, 0, mapWidth, mapHeight); | |
ctx.closePath(); | |
} else { | |
ctx.beginPath(); | |
ctx.fillStyle = hexToRgbA(options.floortiles.tint_color, options.floortiles.tint_opacity / 100); | |
ctx.fillRect(0, 0, mapWidth, flagLocs.halfway.y+20); | |
ctx.fillStyle = hexToRgbA(options.floortiles.checkered_altTintColor, options.floortiles.checkered_altTintOpacity / 100); | |
ctx.fillRect(0, flagLocs.halfway.y+20, mapWidth, mapHeight); | |
ctx.closePath(); | |
} | |
} else if (random) { | |
ctx.beginPath(); | |
for (let i=0; i<mapWidth; i+=size) { | |
for (let j=0; j<mapHeight; j+=size) { | |
let rand = getRandomInt(0, 1); | |
let c; | |
if (options.floortiles.modify && options.floortiles.tint_opacity > 0) { | |
if (rand === 1) { | |
c = hexToRgbA(colorLuminance(options.floortiles.tint_color, Math.random()), options.floortiles.tint_opacity/100); | |
} else { | |
c = hexToRgbA(colorLuminance(options.floortiles.checkered_altTintColor, Math.random()*-1), options.floortiles.checkered_altTintOpacity/100); | |
} | |
} else { | |
if (rand === 1) { | |
c = hexToRgbA(colorLuminance(options.floortiles.checkered_altTintColor, Math.random()*1), options.floortiles.checkered_altTintOpacity/100); | |
} else { | |
c = hexToRgbA(colorLuminance(options.floortiles.checkered_altTintColor, Math.random()*-1), options.floortiles.checkered_altTintOpacity/100); | |
} | |
} | |
//let c = hexToRgbA(colorLuminance(rand === 1 ? options.floortiles.tint_color : options.floortiles.checkered_altTintColor, rand === 1 ? Math.random() : Math.random()*-1), (rand === 1 ? options.floortiles.tint_opacity/100 : options.floortiles.checkered_altTintOpacity/100)); | |
ctx.fillStyle = c; | |
ctx.fillRect(i, j, size, size); | |
} | |
} | |
ctx.closePath(); | |
} else { | |
pattern.width = 2 * size; | |
pattern.height = 2 * size; | |
let pctx = pattern.getContext('2d'); | |
pctx.beginPath(); | |
if (options.floortiles.modify && options.floortiles.tint_opacity > 0) { | |
pctx.fillStyle = hexToRgbA(options.floortiles.tint_color, options.floortiles.tint_opacity / 100); | |
pctx.fillRect(0, 0, size, size); | |
pctx.fillRect(size, size, size, size); | |
} | |
pctx.fillStyle = hexToRgbA(options.floortiles.checkered_altTintColor, options.floortiles.checkered_altTintOpacity / 100); | |
pctx.fillRect(size, 0, size, size); | |
pctx.fillRect(0, size, size, size); | |
pctx.closePath(); | |
let patt = ctx.createPattern(pattern, "repeat"); | |
ctx.fillStyle = patt; | |
ctx.fillRect(0, 0, mapWidth, mapHeight); | |
} | |
pattern = null; | |
ctx.restore(); | |
} | |
function addSquareGrid(ctx, mapWidth, mapHeight) { | |
let pattern = document.createElement('canvas'); | |
pattern.width = options.floortiles.grids_square_size; | |
pattern.height = options.floortiles.grids_square_size; | |
let pctx = pattern.getContext('2d'); | |
ctx.save(); | |
//if (options.ballglow.modify) ctx.globalCompositeOperation = 'destination-out'; | |
//else ctx.globalCompositeOperation = 'source-over'; | |
if (options.floortiles.grids_square_blur > 0) { | |
pctx.filter = 'blur('+options.floortiles.grids_square_blur+'px)'; | |
} | |
let margin = options.floortiles.grids_square_margin; | |
if (options.floortiles.grids_square_linewidth % 2 !== 0) pctx.translate(0.5, 0.5); //&& (margin % 2 !== 0)) | |
pctx.strokeStyle = hexToRgbA(options.floortiles.grids_square_color, options.floortiles.grids_square_opacity / 100); | |
if (options.floortiles.grids_square_dashed) pctx.setLineDash([options.floortiles.grids_square_dashed]); | |
pctx.lineWidth = options.floortiles.grids_square_linewidth; | |
pctx.beginPath(); | |
pctx.moveTo(margin, pattern.height-margin); | |
pctx.lineTo(margin, margin); | |
pctx.lineTo(pattern.width-margin, margin); | |
pctx.stroke(); | |
pctx.closePath(); | |
if (options.floortiles.grids_square_altSides) { | |
pctx.strokeStyle = hexToRgbA(options.floortiles.grids_square_altColor, options.floortiles.grids_square_opacity / 100); | |
pctx.beginPath(); | |
pctx.moveTo(pattern.width-margin, margin); | |
pctx.lineTo(pattern.width-margin, pattern.height-margin); | |
pctx.lineTo(margin, pattern.height-margin); | |
pctx.stroke(); | |
pctx.closePath(); | |
} | |
let patt = ctx.createPattern(pattern, "repeat"); | |
ctx.fillStyle = patt; | |
ctx.fillRect(0, 0, mapWidth, mapHeight); | |
pattern = null; | |
ctx.restore(); | |
} | |
function addDiagonalGrid(ctx, mapWidth, mapHeight) { | |
let pattern = document.createElement('canvas'); | |
pattern.width = options.floortiles.grids_diagonal_size; | |
pattern.height = options.floortiles.grids_diagonal_size; | |
let pctx = pattern.getContext('2d'); | |
ctx.save(); | |
//if (options.ballglow.modify) ctx.globalCompositeOperation = 'destination-out'; | |
//else ctx.globalCompositeOperation = 'source-over'; | |
if (options.floortiles.grids_diagonal_blur > 0) { | |
pctx.filter = 'blur('+options.floortiles.grids_diagonal_blur+'px)'; | |
} | |
//pctx.translate(0.5, 0.5); //if (options.shapes.centerline_width % 2 !== 0) | |
pctx.strokeStyle = hexToRgbA(options.floortiles.grids_diagonal_color, options.floortiles.grids_diagonal_opacity / 100); | |
if (options.floortiles.grids_diagonal_dashed) pctx.setLineDash([options.floortiles.grids_diagonal_dashed]); | |
pctx.lineWidth = options.floortiles.grids_diagonal_linewidth || 1; | |
pctx.beginPath(); | |
pctx.moveTo(0, 0); | |
pctx.lineTo(options.floortiles.grids_diagonal_size, options.floortiles.grids_diagonal_size); | |
pctx.moveTo(options.floortiles.grids_diagonal_size, 0); | |
pctx.lineTo(0, options.floortiles.grids_diagonal_size); | |
pctx.stroke(); | |
pctx.closePath(); | |
let patt = ctx.createPattern(pattern, "repeat"); | |
ctx.fillStyle = patt; | |
ctx.fillRect(0, 0, mapWidth, mapHeight); | |
pattern = null; | |
ctx.restore(); | |
} | |
function addRandoms(ctx, maxX=40, maxY=40) { | |
if (!ctx) return; | |
let count = +options.floortiles.specks_count; | |
let color = options.floortiles.specks_color; | |
let opacity = options.floortiles.specks_opacity; | |
let width = +options.floortiles.specks_width; | |
let length = +options.floortiles.specks_length; | |
let angle = +options.floortiles.specks_angle; | |
let a = angle * Math.PI / 180; | |
count = maxX/40 * maxY/40 * 0.5 * count; | |
//count = 200; | |
ctx.save(); | |
//ctx.globalCompositeOperation = 'source-atop'; | |
let xt=0, yt=0; | |
if (length !== 1 || width !== 1) { | |
if (length % 2 !== 0) xt = 0.5; | |
if (width % 2 !== 0) yt = 0.5; | |
} | |
ctx.translate(xt, yt); | |
if (opacity > 0) { | |
ctx.fillStyle = hexToRgbA(color, opacity/100); | |
ctx.strokeStyle = hexToRgbA(color, opacity/100); | |
} | |
ctx.lineWidth = width; | |
for (var i=0; i<count; i++) { | |
if (angle === 0) a = Math.random() * Math.PI * 2; | |
let sx = getRandomInt(1, maxX); | |
let sy = getRandomInt(1, maxY); | |
ctx.beginPath(); | |
if (length === 1 && width === 1) { | |
if (opacity <= 0) ctx.fillStyle = hexToRgbA(color, getRandomInt(0, -opacity)/100); //Math.random()); | |
ctx.fillRect(sx,sy,1,1); | |
} else { | |
if (opacity <= 0) ctx.strokeStyle = hexToRgbA(color, getRandomInt(0, -opacity)/100); | |
let dx = sx; | |
let dy = sy; | |
let d = length; | |
if (length < 0) d *= -Math.random(); | |
dx = sx + Math.cos(a) * d; | |
dy = sy + Math.sin(a) * d; | |
ctx.moveTo(sx, sy); | |
ctx.lineTo(dx, dy); | |
ctx.closePath(); | |
ctx.stroke(); | |
} | |
} | |
ctx.restore(); | |
} | |
function drawBaseCircle(ctx, linewidth, radius, color, opacity, useGradient, dashsize, x, y) { | |
ctx.save(); | |
ctx.globalCompositeOperation = 'source-over'; | |
ctx.lineWidth = linewidth; | |
if (dashsize > 0) ctx.setLineDash([dashsize]); | |
if (useGradient) { | |
let radialGradient = ctx.createRadialGradient(x, y, radius-linewidth/2, x, y, +radius+linewidth/2); | |
radialGradient.addColorStop(0, hexToRgbA(color, opacity)); | |
radialGradient.addColorStop(1, hexToRgbA(color, 0)); | |
ctx.strokeStyle = radialGradient; | |
} else { | |
ctx.strokeStyle = hexToRgbA(color, opacity); | |
} | |
ctx.beginPath(); | |
ctx.arc(x, y, radius, 0, 2*Math.PI); | |
ctx.closePath(); | |
ctx.stroke(); | |
ctx.restore(); | |
} | |
function drawLine(ctx, x1, y1, x2, y2, color, lineWidth, dashsize) { | |
let doTranslate = (options.shapes.centerline_width % 2 !== 0); | |
ctx.save(); | |
ctx.globalCompositeOperation = 'source-over'; //atop | |
ctx.strokeStyle = color; | |
ctx.lineWidth = lineWidth; | |
if (dashsize > 0) { | |
ctx.setLineDash([dashsize]); | |
if (doTranslate) ctx.translate(0.5, 0.5); | |
} | |
ctx.beginPath(); | |
ctx.moveTo(x1, y1); | |
ctx.lineTo(x2, y2); | |
ctx.stroke(); | |
ctx.closePath(); | |
if (dashsize > 0) { | |
if (doTranslate) ctx.translate(-0.5, -0.5); | |
ctx.setLineDash([]); | |
} | |
ctx.restore(); | |
} | |
function drawPolygon(ctx, x, y, radius, sides, lineWidth=1, strokeColor='#555555', fillColor='', radialColor='', rotateAngle=22.5) { | |
ctx.save(); | |
//ctx.globalCompositeOperation = 'source-atop'; | |
//console.log('drawPolygon():',x, y, radius, sides, lineWidth, strokeColor, fillColor, radialColor, rotateAngle); | |
ctx.translate(0.5, 0.5); | |
if (rotateAngle === null) { | |
if (sides < 3) return; | |
else if (sides === 3) rotateAngle = 30; | |
else if (sides === 4) rotateAngle = 45; | |
else if (sides === 5) rotateAngle = 54; | |
else if (sides === 6) rotateAngle = 60; | |
else if (sides === 8) rotateAngle = 22.5; | |
else rotateAngle = 0; | |
} | |
rotateAngle = rotateAngle * Math.PI / 180; | |
let a = (Math.PI * 2) / sides; | |
ctx.lineWidth = lineWidth; | |
ctx.translate(x, y); | |
ctx.rotate(rotateAngle); | |
ctx.moveTo(radius, 0); | |
if (strokeColor || fillColor) { | |
ctx.beginPath(); | |
for (let i=1; i<=sides; i++) { | |
ctx.lineTo(radius*Math.cos(a*i), radius*Math.sin(a*i)); | |
} | |
ctx.closePath(); | |
if (fillColor) { | |
ctx.fillStyle = fillColor; | |
ctx.fill(); | |
} | |
if (strokeColor) { | |
ctx.strokeStyle = strokeColor; | |
ctx.stroke(); | |
} | |
} | |
if (radialColor) { | |
ctx.beginPath(); | |
let x, y; | |
for (let i=1; i<=sides; i++) { | |
x = Math.cos(a*i); | |
y = Math.sin(a*i); | |
//console.log(radius*x, radius*y); | |
//ctx.lineTo((x>=0?50:-50), (y>=0?50:-50)); | |
ctx.lineTo(0, 0); | |
ctx.moveTo(radius*Math.cos(a*i), radius*Math.sin(a*i)); | |
} | |
//ctx.lineTo((x>=0?50:-50), (y>=0?50:-50)); | |
ctx.lineTo(0, 0); | |
ctx.closePath(); | |
ctx.strokeStyle = radialColor; | |
ctx.stroke(); | |
} | |
ctx.restore(); | |
} | |
function drawBaseShape(ctx, shape, color, x, y) { | |
ctx.save(); | |
ctx.globalCompositeOperation = 'source-over'; //atop | |
if (shape === 'circle') { | |
drawBaseCircle(ctx, options.shapes.circle_width, +options.shapes.circle_radius, color, options.shapes.circle_opacity/100, options.shapes.circle_gradient, 0, x, y); | |
/* | |
ctx.lineWidth = options.shapes.circle_width; | |
if (options.shapes.circle_gradient) { | |
let radialGradient = ctx.createRadialGradient(x, y, options.shapes.circle_radius-options.shapes.circle_width/2, x, y, +options.shapes.circle_radius+options.shapes.circle_width/2); | |
radialGradient.addColorStop(0.0, hexToRgbA(color, options.shapes.circle_opacity / 100)); | |
radialGradient.addColorStop(1, hexToRgbA(color, 0)); | |
ctx.strokeStyle = radialGradient; | |
} else { | |
ctx.strokeStyle = hexToRgbA(color, options.shapes.circle_opacity / 100); | |
} | |
ctx.beginPath(); | |
ctx.arc(x, y, +options.shapes.circle_radius, 0, 2*Math.PI); | |
ctx.closePath(); | |
ctx.stroke(); | |
*/ | |
} else if (shape === 'cross') { | |
let radius_inner = Number(options.shapes.cross_radius_inner); | |
let radius_outer = Number(options.shapes.cross_radius_outer) * 0.707; | |
let xpo = x + radius_outer; | |
let xmo = x - radius_outer; | |
let ypo = y + radius_outer; | |
let ymo = y - radius_outer; | |
let xpi = x + radius_inner; | |
let xmi = x - radius_inner; | |
let ypi = y + radius_inner; | |
let ymi = y - radius_inner; | |
ctx.strokeStyle = hexToRgbA(color, options.shapes.cross_opacity / 100); | |
ctx.lineWidth = options.shapes.cross_width; | |
ctx.beginPath(); | |
ctx.moveTo(xmo, ymo); | |
ctx.lineTo(xmi, ymi); | |
ctx.moveTo(xpo, ymo); | |
ctx.lineTo(xpi, ymi); | |
ctx.moveTo(xpo, ypo); | |
ctx.lineTo(xpi, ypi); | |
ctx.moveTo(xmo, ypo); | |
ctx.lineTo(xmi, ypi); | |
ctx.closePath(); | |
ctx.stroke(); | |
//ctx.save(); | |
//ctx.arc(x, y, radius_inner, 0, Math.PI*2); | |
//ctx.clip(); | |
//ctx.clearRect(x - radius_outer, y - radius_outer, xpo, y + radius_outer); | |
//ctx.restore(); | |
} else if (shape === 'radial') { | |
drawPolygon(ctx, x, y, options.shapes.cross_radius_outer, options.shapes.cross_radius_inner, options.shapes.cross_width, '', '', hexToRgbA(color, options.shapes.cross_opacity/100), null); | |
} else if (shape === 'octagon') { | |
//if (options.shapes.octagon_sides > 80) { | |
// drawBaseCircle(ctx, options.shapes.octagon_width, +options.shapes.octagon_radius, color, options.shapes.octagon_opacity/100, options.shapes.octagon_fillgradient, 0, x, y); | |
//} else { | |
let octagonRadius = options.shapes.octagon_radius; | |
let numberSides = options.shapes.octagon_sides; | |
let fillColor = ''; | |
if (options.shapes.octagon_fillopacity > 0) { | |
if (options.shapes.octagon_fillgradient) { | |
let c = options.shapes.octagon_radius ; | |
let gradient = ctx.createRadialGradient(0,0,0, 0,0,options.shapes.octagon_radius); | |
gradient.addColorStop(0, hexToRgbA(color, options.shapes.octagon_fillopacity / 100)); | |
gradient.addColorStop(1, hexToRgbA(color, 0)); | |
fillColor = gradient; | |
} else { | |
fillColor = hexToRgbA(color, options.shapes.octagon_fillopacity / 100); | |
} | |
} | |
drawPolygon(ctx, x, y, octagonRadius, numberSides, options.shapes.octagon_width, hexToRgbA(color, options.shapes.octagon_opacity / 100), fillColor, '', null); | |
//} | |
} | |
ctx.restore(); | |
} | |
function addPattern(ctx, color) { | |
if (!ctx) return; | |
let canvasWidth = ctx.canvas.width; | |
let canvasHeight = ctx.canvas.height; | |
let opacity = options.team.pattern_opacity / 100; | |
let size = options.team.pattern_size || 20; | |
let margin = (size - options.team.pattern_margin) || 1; | |
let blur = options.team.pattern_blur || 0; | |
let fill = options.team.pattern_altsides; | |
var pattern = document.createElement('canvas'); | |
pattern.width = size; | |
pattern.height = size; | |
var pctx = pattern.getContext('2d'); | |
pctx.lineWidth = 1; | |
//pctx.translate(-0.5, -0.5); | |
let filters = ''; | |
if (blur > 0) filters += 'blur('+blur+'px) '; | |
if (filters) pctx.filter = filters; | |
let p1 = size / 2 - margin / 2; | |
let p2 = size / 2 + margin / 2; | |
let width = margin; | |
pctx.beginPath(); | |
pctx.moveTo(p2, p1); | |
pctx.lineTo(p2, p2); | |
pctx.lineTo(p1, p2); | |
pctx.moveTo(p1, p2); | |
pctx.closePath(); | |
pctx.strokeStyle = hexToRgbA(color, opacity); | |
pctx.stroke(); | |
if (fill) { | |
pctx.beginPath(); | |
pctx.moveTo(p1, p2); | |
pctx.lineTo(p1, p1); | |
pctx.lineTo(p2, p1); | |
pctx.moveTo(p2, p1); | |
pctx.closePath(); | |
pctx.strokeStyle = hexToRgbA(colorLuminance(color, -0.35), opacity); | |
pctx.stroke(); | |
} | |
var patt = ctx.createPattern(pattern, "repeat"); | |
ctx.fillStyle = patt; | |
ctx.fillRect(0, 0, canvasWidth, canvasHeight); | |
pattern = null; | |
} | |
function drawCustomTile(ctx, tileId, x, y) { | |
if (!tileCache.hasOwnProperty(tileId)) { | |
let tempTileCanvas = document.createElement('canvas'); | |
tempTileCanvas.width = 40; | |
tempTileCanvas.height = 40; | |
let tempTileCtx = tempTileCanvas.getContext('2d'); | |
//ctx.save(); | |
if (tileId === 7) { | |
let color = ''; | |
let opacity = 0; | |
let filter = ''; | |
if (options.spikes.opacity > 0) { | |
color = options.spikes.color; | |
opacity = options.spikes.opacity / 100; | |
} | |
if (options.spikes.brightness !== '100') filter += 'brightness('+options.spikes.brightness+'%) '; | |
if (options.spikes.contrast !== '100') filter += 'contrast('+options.spikes.contrast+'%) '; | |
if (options.spikes.sepia > 0) filter += 'sepia('+options.spikes.sepia+'%) '; | |
if (options.spikes.shadow) filter += 'drop-shadow('+options.spikes.shadow_size+'px '+options.spikes.shadow_size+'px '+options.spikes.shadow_blur+'px '+hexToRgbA(options.spikes.shadow_color, options.spikes.shadow_opacity/100)+') '; | |
tempTileCtx.drawImage(tagpro.tiles.image, 480, 0, 40, 40, 0, 0, 40, 40); | |
setTint(tempTileCanvas, color, opacity, false, 'destination-atop', filter); | |
} else if (tileId === 11 || tileId === 12 || tileId === 23) { | |
let color; | |
if (tileId === 11) color = options.team.red_color; | |
else if (tileId === 12) color = options.team.blue_color; | |
else if (tileId === 23) color = options.team.yellow_color; | |
if (options.team.gradient) { | |
let gradientOffset = 16; | |
if (tileId === 12) gradientOffset = 24; | |
else if (tileId === 23) gradientOffset = 20; | |
let gradient = tempTileCtx.createRadialGradient(gradientOffset, gradientOffset, 0, gradientOffset, gradientOffset, 30); | |
gradient.addColorStop(0, color); | |
gradient.addColorStop(1, colorLuminance(color, -0.25)); | |
tempTileCtx.fillStyle = gradient; | |
} else { | |
tempTileCtx.fillStyle = color; | |
} | |
let filters = ''; | |
if (options.team.brightness !== '100') filters += 'brightness('+options.team.brightness+'%) '; | |
if (options.team.contrast !== '100') filters += 'contrast('+options.team.contrast+'%) '; | |
if (options.team.sepia > 0) filters += 'sepia('+options.team.sepia+'%) '; | |
if (options.team.opacity < 100) filters += 'opacity('+options.team.opacity+'%) '; | |
if (filters) tempTileCtx.filter = filters; | |
let margin = options.team.margin; | |
tempTileCtx.beginPath(); | |
tempTileCtx.fillRect(margin, margin, 40-margin*2, 40-margin*2); | |
if (options.team.pattern) { | |
let pcolor = options.team.pattern_red_color; | |
if (tileId === 12) pcolor = options.team.pattern_blue_color; | |
else if (tileId === 23) pcolor = options.team.pattern_yellow_color; | |
addPattern(tempTileCtx, pcolor); | |
} | |
if (options.team.border) { | |
let size = options.team.border_size; | |
let pattern = document.createElement('canvas'); | |
pattern.width = 40; //options.team.border_size; | |
pattern.height = 40; //options.team.border_size; | |
let pctx = pattern.getContext('2d'); | |
if (tileId === 11) pctx.strokeStyle = hexToRgbA(options.team.border_red_color, options.team.border_opacity/100); | |
else if (tileId === 12) pctx.strokeStyle = hexToRgbA(options.team.border_blue_color, options.team.border_opacity/100); | |
else if (tileId === 23) pctx.strokeStyle = hexToRgbA(options.team.border_yellow_color, options.team.border_opacity/100); | |
pctx.lineWidth = options.team.border_linewidth; //1; | |
//if ((size + margin + options.endzone.border_linewidth) % 2 !== 0) pctx.translate(0.5, 0.5); | |
pctx.beginPath(); | |
pctx.rect(size, size, 40-size*2, 40-size*2); | |
pctx.stroke(); | |
pctx.closePath(); | |
let patt = tempTileCtx.createPattern(pattern, "repeat"); | |
tempTileCtx.fillStyle = patt; | |
tempTileCtx.fillRect(margin, margin, 40-margin*2, 40-margin*2); | |
/* | |
pctx.beginPath(); | |
pctx.moveTo(margin, options.team.border_size-margin); | |
pctx.lineTo(margin, margin); | |
pctx.lineTo(options.team.border_size-margin, margin); | |
pctx.stroke(); | |
pctx.closePath(); | |
let patt = tempTileCtx.createPattern(pattern, "repeat"); | |
tempTileCtx.fillStyle = patt; | |
//tempTileCtx.fillRect(0, 0, 40, 40); | |
tempTileCtx.fillRect(margin, margin, 40-margin*2, 40-margin*2); | |
*/ | |
pattern = null; | |
} | |
} else if (tileId === 17 || tileId === 18) { | |
let color = tileId === 17 ? options.endzone.red_color : options.endzone.blue_color; | |
let margin = options.endzone.margin; | |
let pattern = document.createElement('canvas'); | |
let filters = ''; | |
if (options.endzone.opacity < 100) filters += 'opacity('+options.endzone.opacity+'%) '; | |
if (filters) tempTileCtx.filter = filters; | |
tempTileCtx.fillStyle = color; | |
//tempTileCtx.fillRect(x*40, y*40, 40, 40); | |
//tempTileCtx.fillRect(0, 0, 40, 40); | |
tempTileCtx.fillRect(margin, margin, 40-margin*2, 40-margin*2); | |
if (options.endzone.checkered) { //checkered | |
let size = options.endzone.checkered_size; | |
pattern.width = size*2; | |
pattern.height = size*2; | |
let pctx = pattern.getContext('2d'); | |
pctx.beginPath(); | |
pctx.fillStyle = (tileId === 17 ? options.endzone.checkered_alt_red_color : options.endzone.checkered_alt_blue_color); | |
pctx.fillRect(size, 0, size*2, size); | |
pctx.fillRect(0, size, size, size*2); | |
let patt = tempTileCtx.createPattern(pattern, "repeat"); | |
tempTileCtx.fillStyle = patt; | |
tempTileCtx.fillRect(margin, margin, 40-margin*2, 40-margin*2); | |
} | |
if (options.endzone.stripes) { //stripes | |
let size = options.endzone.stripes_size; | |
pattern.width = size; | |
pattern.height = size; | |
let pctx = pattern.getContext('2d'); | |
pctx.strokeStyle = (tileId === 17 ? options.endzone.stripes_red_color : options.endzone.stripes_blue_color); | |
pctx.lineWidth = 1; | |
//pctx.translate(0.5, 0.5); | |
pctx.beginPath(); | |
if (tileId === 17) { | |
pctx.moveTo(0, 0); | |
pctx.lineTo(size, size); | |
} else { | |
pctx.moveTo(0, size); | |
pctx.lineTo(size, 0); | |
} | |
pctx.closePath(); | |
pctx.stroke(); | |
let patt = tempTileCtx.createPattern(pattern, "repeat"); | |
tempTileCtx.fillStyle = patt; | |
tempTileCtx.fillRect(margin, margin, 40-margin*2, 40-margin*2); | |
} | |
if (options.endzone.border) { | |
let size = +options.endzone.border_size; | |
pattern.width = 40; | |
pattern.height = 40; | |
let pctx = pattern.getContext('2d'); | |
pctx.strokeStyle = hexToRgbA(tileId === 17 ? options.endzone.border_red_color : options.endzone.border_blue_color, options.endzone.border_opacity/100); | |
pctx.lineWidth = options.endzone.border_linewidth; | |
//if ((size + margin) % 2 === 0) pctx.translate(0.5, 0.5); | |
let qty = options.endzone.border_count; | |
if (qty > 1) size = 0; | |
let spacing = (40 - size) / qty / 2; | |
for (var i=0; i<qty; i++) { | |
let adj = i * spacing; | |
pctx.beginPath(); | |
pctx.rect(size+adj, size+adj, 40-(size+adj)*2, 40-(size+adj)*2); | |
pctx.stroke(); | |
pctx.closePath(); | |
} | |
let patt = tempTileCtx.createPattern(pattern, "repeat"); | |
tempTileCtx.fillStyle = patt; | |
tempTileCtx.fillRect(margin, margin, 40-margin*2, 40-margin*2); | |
} | |
pattern = null; | |
} else if (tileId == 9 || tileId == 9.1 || tileId == 9.2 || tileId == 9.3) { //Gates | |
let fillColor; | |
let fillOpacity = 1; | |
let fillMargin = 0; | |
let borderColor; | |
let borderLineWidth = 1; | |
let borderMargin = 0; | |
let crossColor; | |
let crossOpacity = 1; | |
let crossLineWidth = 1; | |
let crossMargin = 40; | |
if (tileId == 9) { | |
if (options.gates.neutral_fill) fillColor = options.gates.neutral_fill_color; | |
if (options.gates.neutral_fill_opacity < 100) fillOpacity = options.gates.neutral_fill_opacity / 100; | |
if (options.gates.neutral_fill_margin > 0) fillMargin = options.gates.neutral_fill_margin; | |
if (options.gates.neutral_border) borderColor = options.gates.neutral_border_color; | |
if (options.gates.neutral_border_linewidth > 1) borderLineWidth = options.gates.neutral_border_linewidth; | |
if (options.gates.neutral_border_margin > 0) borderMargin = options.gates.neutral_border_margin; | |
if (options.gates.neutral_cross) crossColor = options.gates.neutral_cross_color; | |
if (options.gates.neutral_cross_opacity < 100) crossOpacity = options.gates.neutral_cross_opacity / 100; | |
if (options.gates.neutral_cross_linewidth > 1) crossLineWidth = options.gates.neutral_cross_linewidth; | |
if (options.gates.neutral_cross_margin > 0) crossMargin = options.gates.neutral_cross_margin; | |
} else if (tileId == 9.1) { | |
if (options.gates.green_fill) fillColor = options.gates.green_fill_color; | |
if (options.gates.green_fill_opacity < 100) fillOpacity = options.gates.green_fill_opacity / 100; | |
if (options.gates.green_fill_margin > 0) fillMargin = options.gates.green_fill_margin; | |
if (options.gates.green_border) borderColor = options.gates.green_border_color; | |
if (options.gates.green_border_linewidth > 1) borderLineWidth = options.gates.green_border_linewidth; | |
if (options.gates.green_border_margin > 0) borderMargin = options.gates.green_border_margin; | |
if (options.gates.green_cross) crossColor = options.gates.green_cross_color; | |
if (options.gates.green_cross_opacity < 100) crossOpacity = options.gates.green_cross_opacity / 100; | |
if (options.gates.green_cross_linewidth > 1) crossLineWidth = options.gates.green_cross_linewidth; | |
if (options.gates.green_cross_margin > 0) crossMargin = options.gates.green_cross_margin; | |
} else if (tileId == 9.2) { | |
if (options.gates.red_fill) fillColor = options.gates.red_fill_color; | |
if (options.gates.red_fill_opacity < 100) fillOpacity = options.gates.red_fill_opacity / 100; | |
if (options.gates.red_fill_margin > 0) fillMargin = options.gates.red_fill_margin; | |
if (options.gates.red_border) borderColor = options.gates.red_border_color; | |
if (options.gates.red_border_linewidth > 1) borderLineWidth = options.gates.red_border_linewidth; | |
if (options.gates.red_border_margin > 0) borderMargin = options.gates.red_border_margin; | |
if (options.gates.red_cross) crossColor = options.gates.red_cross_color; | |
if (options.gates.red_cross_opacity < 100) crossOpacity = options.gates.red_cross_opacity / 100; | |
if (options.gates.red_cross_linewidth > 1) crossLineWidth = options.gates.red_cross_linewidth; | |
if (options.gates.red_cross_margin > 0) crossMargin = options.gates.red_cross_margin; | |
} else if (tileId == 9.3) { | |
if (options.gates.blue_fill) fillColor = options.gates.blue_fill_color; | |
if (options.gates.blue_fill_opacity < 100) fillOpacity = options.gates.blue_fill_opacity / 100; | |
if (options.gates.blue_fill_margin > 0) fillMargin = options.gates.blue_fill_margin; | |
if (options.gates.blue_border) borderColor = options.gates.blue_border_color; | |
if (options.gates.blue_border_linewidth > 1) borderLineWidth = options.gates.blue_border_linewidth; | |
if (options.gates.blue_border_margin > 0) borderMargin = options.gates.blue_border_margin; | |
if (options.gates.blue_cross) crossColor = options.gates.blue_cross_color; | |
if (options.gates.blue_cross_opacity < 100) crossOpacity = options.gates.blue_cross_opacity / 100; | |
if (options.gates.blue_cross_linewidth > 1) crossLineWidth = options.gates.blue_cross_linewidth; | |
if (options.gates.blue_cross_margin > 0) crossMargin = options.gates.blue_cross_margin; | |
} | |
if (fillColor) { | |
tempTileCtx.beginPath(); | |
tempTileCtx.fillStyle = hexToRgbA(fillColor, fillOpacity); | |
tempTileCtx.fillRect(fillMargin, fillMargin, 40-fillMargin*2, 40-fillMargin*2); | |
tempTileCtx.closePath(); | |
} | |
if (crossColor) { | |
tempTileCtx.beginPath(); | |
tempTileCtx.strokeStyle = hexToRgbA(crossColor, crossOpacity); | |
tempTileCtx.lineWidth = crossLineWidth; | |
tempTileCtx.moveTo(crossMargin, crossMargin); | |
tempTileCtx.lineTo(40-crossMargin, 40-crossMargin); | |
tempTileCtx.moveTo(crossMargin, 40-crossMargin); | |
tempTileCtx.lineTo(40-crossMargin, crossMargin); | |
tempTileCtx.stroke(); | |
tempTileCtx.closePath(); | |
} | |
if (borderColor) { | |
tempTileCtx.beginPath(); | |
tempTileCtx.strokeStyle = borderColor; | |
tempTileCtx.lineWidth = borderLineWidth; | |
tempTileCtx.rect(borderMargin, borderMargin, 40-borderMargin*2, 40-borderMargin*2); | |
tempTileCtx.stroke(); | |
tempTileCtx.closePath(); | |
} | |
} | |
tileCache[tileId] = tempTileCanvas; | |
//ctx.restore(); | |
} | |
ctx.drawImage(tileCache[tileId], x*40, y*40); | |
} | |
function addLightGlow(ctx, x, y, radius, color, startOpacity, globalCompositeOperation='source-over') { | |
ctx.save(); | |
ctx.globalCompositeOperation = globalCompositeOperation; | |
var radialGradient = ctx.createRadialGradient(x, y, 0, x, y, radius); | |
radialGradient.addColorStop(0, hexToRgbA(color, startOpacity)); | |
radialGradient.addColorStop(0.2, hexToRgbA(color, startOpacity*0.85)); | |
radialGradient.addColorStop(0.7, hexToRgbA(color, startOpacity*0.5)); | |
radialGradient.addColorStop(0.9, hexToRgbA(color, startOpacity*0.15)); | |
radialGradient.addColorStop(1, hexToRgbA(color, 0)); | |
ctx.fillStyle = radialGradient; | |
ctx.beginPath(); | |
ctx.arc(x, y, radius, 0, 2 * Math.PI); | |
//ctx.ellipse(x, y, radius*getRandomInt(1, 2), radius*getRandomInt(2, 5), getRandomInt(0, 359)*Math.PI/180, 0, 2*Math.PI); | |
ctx.fill(); | |
ctx.restore(); | |
} | |
/***************/ | |
function drawBall(ctx, tileId) { | |
if (!ctx || !tileId) return; | |
var deferred = new $.Deferred(); | |
let ballSize = Number(options[tileId].size); | |
let ballColor = options[tileId].color; | |
let ballOpacity = options[tileId].opacity / 100; | |
let ballUseGradient = options[tileId].gradient; | |
let ballGradientColor = options[tileId].gradient_color; | |
let ballGradientStart = Number(options[tileId].gradient_start) || 5; | |
let ballGradientStop = Number(options[tileId].gradient_stop) || 25; | |
let ballGradientPosition = Number(options[tileId].gradient_position) || 20; | |
let ballBorderWidth = Number(options[tileId].border_width) || 0; | |
let ballBorderColor = options[tileId].border_color; | |
let ballBorderSegments = Number(options[tileId].border_segments) || 0; | |
let ballBorderAltColor = options[tileId].border_alt_color; | |
if (ballBorderWidth) { | |
if ((ballBorderWidth >= 1) && (ballSize === 19)) ballSize = 18; | |
} | |
if (ballOpacity > 0) { | |
ballColor = hexToRgbA(ballColor, ballOpacity); | |
ballGradientColor = hexToRgbA(ballGradientColor, ballOpacity); | |
} | |
if (ballUseGradient) { | |
let gradient = ctx.createRadialGradient(ballGradientPosition,ballGradientPosition,ballGradientStart, ballGradientPosition,ballGradientPosition,ballGradientStop); | |
gradient.addColorStop(0, ballColor); | |
gradient.addColorStop(1, ballGradientColor); | |
ctx.fillStyle = gradient; | |
} else { | |
ctx.fillStyle = ballColor; | |
} | |
ctx.save(); | |
ctx.beginPath(); | |
ctx.arc(ctx.canvas.width/2, ctx.canvas.width/2, ballSize, 0, Math.PI*2); | |
ctx.closePath(); | |
ctx.fill(); | |
ctx.restore(); | |
deferred.resolve(null); | |
return deferred.promise(); | |
} | |
function drawBorder(ctx, tileId) { | |
if (!ctx || !tileId || options[tileId].shapes_border === '0') return; | |
var deferred = new $.Deferred(); | |
let ballBorderWidth = Number(options[tileId].border_width) || 0; | |
let ballBorderColor = options[tileId].border_color; | |
let ballBorderSegments = Number(options[tileId].border_segments) || 0; | |
let ballBorderAltColor = options[tileId].border_alt_color; | |
if (ballBorderWidth < 1) return; | |
ctx.lineWidth = ballBorderWidth; | |
if (ballBorderSegments === 0) ballBorderSegments = 1; | |
if ((ballBorderSegments > 1) && (ballBorderSegments % 2)) ballBorderSegments++; | |
let percent = 100 / ballBorderSegments; | |
let endAngle = Math.PI * 2; | |
let lastAngle = 0; | |
for (var i=0; i<ballBorderSegments; i++) { | |
let color = i % 2 === 0 ? ballBorderColor : ballBorderAltColor; | |
let currentSegment = endAngle * (percent/100); | |
let currentAngle = currentSegment + lastAngle; | |
ctx.beginPath(); | |
ctx.arc(20, 20, (18 - ballBorderWidth / 2 + 0.5), lastAngle, currentAngle, false); | |
ctx.strokeStyle = color; | |
ctx.stroke(); | |
ctx.closePath(); | |
lastAngle = lastAngle + currentSegment; | |
} | |
deferred.resolve(null); | |
return deferred.promise(); | |
} | |
function drawArc(ctx, tileId) { | |
if (!ctx || !tileId || !options[tileId].shapes_arc) return; | |
let color = options[tileId].shapes_arc_color || 'white'; | |
let linewidth = Number(options[tileId].shapes_arc_width) || 2; | |
let position = Number(options[tileId].shapes_arc_position) || 14; | |
let size = Number(options[tileId].shapes_arc_size) || 4; | |
var x = 10 * (Math.PI*2/180) * size; | |
if (options[tileId].shapes_arc_transparent) ctx.globalCompositeOperation = "destination-out"; | |
ctx.strokeStyle = color; | |
ctx.lineWidth = linewidth; | |
ctx.beginPath(); | |
ctx.arc(ctx.canvas.width/2, ctx.canvas.height/2, position, 0, x); | |
ctx.stroke(); | |
ctx.closePath(); | |
if (options[tileId].shapes_arc_transparent) ctx.globalCompositeOperation = "source-over"; | |
} | |
function drawStar(ctx, tileId) { | |
if (!ctx || !tileId || !options[tileId].shapes_star) return; | |
let cx = ctx.canvas.width/2; | |
let cy = ctx.canvas.height/2; | |
let color = options[tileId].shapes_star_color || 'white'; | |
let transparent = options[tileId].shapes_star_transparent || false; | |
let linewidth = Number(options[tileId].shapes_star_width >= 0 ? options[tileId].shapes_star_width : 2); | |
let spikes = Number(options[tileId].shapes_star_spikes) || 4; | |
let innerRadius = Number(options[tileId].shapes_star_inner >= 0 ? options[tileId].shapes_star_inner : 5); | |
let outerRadius = Number(options[tileId].shapes_star_outer >= 0 ? options[tileId].shapes_star_outer : 12); | |
let fill = options[tileId].shapes_star_fill || false; | |
let fillColor = options[tileId].shapes_star_fill_color || 'white'; | |
let rot = Math.PI/2*3; | |
let x = cx; | |
let y = cy; | |
let step = Math.PI/spikes; | |
if (options[tileId].shapes_star_transparent) ctx.globalCompositeOperation = "destination-out"; | |
ctx.beginPath(); | |
ctx.moveTo(cx,cy-outerRadius); | |
for(i=0; i<spikes; i++){ | |
x = cx+Math.cos(rot)*outerRadius; | |
y = cy+Math.sin(rot)*outerRadius; | |
ctx.lineTo(x,y); | |
rot += step; | |
x = cx+Math.cos(rot)*innerRadius; | |
y = cy+Math.sin(rot)*innerRadius; | |
ctx.lineTo(x,y); | |
rot += step; | |
} | |
ctx.lineTo(cx,cy-outerRadius); | |
ctx.closePath(); | |
ctx.lineWidth = linewidth; | |
ctx.strokeStyle = color; | |
if (linewidth) ctx.stroke(); | |
if (fill) { | |
ctx.fillStyle = fillColor; | |
ctx.fill(); | |
} | |
ctx.closePath(); | |
if (options[tileId].shapes_star_transparent) ctx.globalCompositeOperation = "source-over"; | |
} | |
function drawBall2(ctx, tileId) { | |
var d = new $.Deferred(); | |
var p = d.promise(); | |
p | |
.then(drawBall(ctx, tileId)) | |
.then(drawOverlay(ctx, tileId)) | |
.then(drawBorder(ctx, tileId)) | |
.then(drawArc(ctx, tileId)) | |
.then(drawStar(ctx, tileId)); | |
d.resolve(null); | |
} | |
function drawOverlay(ctx, tileId) { | |
if (!ctx || !tileId || !options[tileId].shapes_overlay) return; | |
var deferred = new $.Deferred(); | |
let alpha = ((100 - Number(options[tileId].shapes_overlay_transparency) || 0) / 100); | |
let type = options[tileId].shapes_overlay_type; | |
if (!type) return; | |
var overlays = {}; | |
overlays.marble1 = {alpha:0.10, imagedata:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAD15JREFUeNqUWdmrJFf9/5ylTq29d9/bt+/cmXFmkntdIRhiVHABDeRB8uibby74EkSEIMQNUSRPQoTog3+AIORFfFKDYIbE7TqiydzMOMvd+i7dXd21V53Fh0wVCf6i+RU0VHef5nzr+/1+lvNtYozBu7nOzs4AAKPRCPv7+2S5XOLk5IQxxpgxht26dYsyxsjOzg4opSZJEl1VlXJdV/V6PdVut3H58mWzWq1AKUUQBO9qX/6/FhweHoJzjvX1dbzxxhtksVgwy7K44ziW7/siSRJBKbWEEOT1118nYRii3W6bKIqMbdtVt9stkyQpPc+rwjCUo9FIbW5umjiOAeB/BvpfAzw4OMCFCxfw5z//mdy4cYNFUSSEEC4AWyklJpMJn0wmnFLKOp0OHMdBFEXIsgyz2QxFUSjP82S/35ej0ag0xhQAsqIoylarpUajkUnTFJ7nvWMM5J1KfHx8jI2NDbzyyitsuVzaZVm6cRy7lFJxenoq9vb2WKvVohcuXCA7OzvkypUrmM1miKIIxhjkeY7FYmHCMDRRFGlKqep0OmWv1yv7/X7W6/Wy4XBYbG1tqTzP4TjOuw/w4OAAZVmSNE1Zmqa+lNIH4BhjhDGGx3FMX3vtNXL37l2cnZ0Rzjmeeuop7Ozs4F//+hc8z4PjOJBSgjFmpJSIosisViudZZkkhJSO4+SDwSAZj8fJeDxWruuaTqfzv0t89+5dMMaIMYa5rht4ntcqisLTWnPOObMsi0gpSVmWqKoKQgjcv38fL730ErTWmM1mWCwWeP/734+1tTXkeU6UUnBdl/i+T6SUtCxLprW2iqJgR0dHJMuyeDKZKAD/EST7zne+07zZ29sDAEIpZcaYYLFYtLIs87vdrmi324wxRgEQIQSCIIAQAr7vw3VdlGWJ4XAISil++ctfwhiDjY0NJEnSrCOEEAAEAFVKUWMM01oTrTUopdJxHEMIgRDiPzN4584dPPzww7hx4wYTQgRJkrT29/f9+XxuBUFAr169Si5dugTLsqCUgud5cF0Xa2trWF9fx+HhISaTCXq9Hh555BFwzjGfz2GMAWMMAJDnOdI0RZZlxBhDKaWWbdt+EASglCJN03g8Hsu3AocYY7C/v4+trS3s7e2xk5OToKqqNufcr6rKCsOQnp6ekqIosLm5iWvXrmEymdQZgTEGRVEgTVNoreF5HqbTKY6OjtButxHHMbIsw3K5RBRFaLfbKIoCRVEgCAIjhNCWZVW+7ye9Xm81GAzia9euqTiOEQTBmyWeTqeYTqeEUupkWdbe29sLsiwThBDqOA5pt9uglOL09BSHh4dYLBaQUiJNUyRJAkIIPM+DEAJKKViWBUoptNYoyxJSSnDO4TgOtNaI4xh5nmO1WpEkSYjneZQxRhljRgghlVLSdV1YlgV+584dbG9v4/r168zzPHd9fd05PT3lN27coP1+n/R6PSil4Ps+3vOe92C1WuHk5ATz+Ry9Xg+cc5RlCUIIOOdQSqGqKhBCQAiBZVkoigJKKRhjUJYlPM8DYwynp6cAQLrdLrVtm+d57mitXSll6XmeTNMU3Pd9/POf/yRKKVGWpet5nvjQhz7Elssl2dvbg+u6uHz5Ms7Pz5EkCWzbxmAwgFIKACClRJIkyPMcRVFguVyCEIJOpwPLstDtdmHbNtI0RRzHEELAsixUVQXf9+F5HqSUxLIs5jiO4Jy7Usrs5ORE+b5v2HPPPYeyLHlVVUFRFL4xxrZtm3a7XTKfz7FarfDhD38Yg8EAaZpitVqhLEu02230ej0IIcAYA2MMWmsopeA4DgghWCwWdSmxXC6htQYhBIwxGGNACIGUEpZlod/vo9VqEcuyNABFCClHo5FmX/jCF4jrunan0wm01l5RFLyqKiqEQLfbxWw2QxiGsG0bvV4Pnuc1TS6EgG3bTX8FQQDbtmFZFnq9HiilMMaAcw5jDCilzW/LskSWZYjjGJRSDIdDIqWs+1URQso0TRX74he/SDqdjuu6buD7vk0IYWVZ1uQKy7IaIOR5DkIIHMdBVVVIkgRKKUgpQQhp1gNAt9ttkN5ut2HbNgBAKYUkSRDHMbTWcF0Xg8EA7Xa7yS5jTGdZVgIoebfbZb7vW1VVcQB0MBjUfYEoitDr9VBVVaOv8/kcVVVBaw2tNYwxzX2NUiklfN9HbSCyLAMhBA8IGa1W623IbrVaUErVmaaHh4dcSmltbW0xblkW293dFb7v883NTcI5JzVxWpYFQgiUUlgsFiiKAlVVIY7jhvf6/T4sy2rKVRO5MQa2baPT6SAIgua7MAxRlmWjPufn56CUQgiBqqrI0dERmU6nfDwei3a7zfjt27fZvXv3LMdxmOM4ZG1trXla13WbxlZKoSxLcM4hhMD5+TmWyyUAYDAYQGuNJEngui445wjDEEVRYDQaodPpoNfrYTAYYLlcoqoqnJ+f4/XXX0er1Wo8wPHxMZIkIZ1OhyVJYlFKGc+yjBJCyMnJCSzLghACvV7vTZl50G9KKXS73YbPaskKwxBKqbetC8MQ3W4XQggURYHDw0Ocnp6+DVBaa+zu7uLk5ARaa/zjH/9AGIbgnGM4HNZtQzY3NymvqorkeU6KosDBwQGEEHjooYcwHA7BGGs4zXEc+L6Po6MjhGGIIAga3uOcY21trdHbOI6bEtaqUbsfKSWm0ynSNMVwOMTp6WkDFN/3EUURjo+P8ZnPfIZcuHCB8CRJUBRFk73pdIr5fI6trS089NBDCIKgUYkgCNDpdNBqtbCxsYH9/X288cYbWCwWsCyr2STLMmitsVqtMJ/PkWUZLMuC1hphGEJrjdFohCAI4DhOQ0MnJyc4Pj7GeDzGxz72sTft1lNPPSWqqnK73a7odDrUGEOWyyWOjo6QJAmMMbAsC5ZlNfeDwQDj8RiTyQTr6+swxmC5XMJ1XVy4cAFCiAbdy+USSZIgTdMGHIPBoAEPAMRxjDAMsVgs4HkePv/5z+tHHnmk3N/fTzkhRBNCjOd5MMbAGAPXdQEA5+fnOD8/x2QywdWrV9HtdkEpbTR2fX0dg8EAFy9exL1793B0dNRwYB1cfUkp4TgObNsGIaQ5txhj4DgOhBAYj8d44okn8OlPfxo3b940t2/f1lwIoXzfr2zbVv1+nxljyAPP1gDh8PAQeZ4jCAKMRiOsra3Btm0opaCUQhAE2N7exsbGBo6PjxGGIVqtFsqyhDEGrVYLRVE0fMg5x8bGBhzHQZqmcF0XGxsbePTRR/G+973P/P73v1d//etfqw9+8IOKvPjii5wQ0rly5Upvc3PTJYTQB8BBFEUIw7Bp/IODAxBCsLa2ho2NDUwmE7RaLVBKUVUVqqpCWZZYrVaI47gBSFVVyLIMRVGAMYbhcIjBYADbtptjw9raGpIkMX/5y1/03bt3s0996lOL8Xi8JC+++CI5OztrPfroo/2LFy/6UkrOGCN1z9XkXJYlwjDEbDbDarVCnucAgF6vh+FwiHa7Dd/3Gy8IoFGg2hQAAOe8IfOiKJqHCcMQYRiafr8vP/rRjyaLxWJ+7969iAshcHBwUNm2XW5tbTlCCKa1JlJKaK0bp+L7PobDIa5evQqtNfI8b4Ktqgqz2Qzz+bzxgbUS2bYNxhiqqoJS6m1GtqYfIQQmkwk++clPGs/z1O9+97vyj3/8Y/WJT3wC/MknnzS7u7vVn/70p2Jtba38+Mc/zrXWJM/zB2ccNMpS39ejixo0UkqUZdk4ldqV1A6mVqOaDd7qcjqdDrrdLgCYv//97/pXv/pV+corrxSPPfZY9fjjjxv+29/+FoPBQB0cHGS/+c1v3LIsxWOPPUY556Q2AXVQtUkF0AT2VudcZ6v+7K1G4q1XbSwYYwjDENevX8err75qXn75ZXnz5s3y2rVr2Qc+8AF17949cKUUvvSlL5lnnnmmBJD94Q9/EFEUsY985COk3W6TesOagmqaeeurppH69FavY4w1/VibWQBwHAer1QrXr1/H7u4uXnvtNXNwcKAYY2Wv18suXbpUfu5znzO3bt0C/+xnP4tf/OIX8H1fSSkzzrm9u7trnZ2d0YcffphubW2RTqeDuicJIY1k1Tpc62td1tpcaK0RBAE8z0NZlo3hmM1meOmll/Dyyy/j4sWLZjQa6aqqZJqmeZqm2dWrV9XBwQGuXbv25rn45OQEzz77rHn22WcL27aTsizZ3t4emc1m1t7eHi3LktR9uFqtwBhrxL/VajVmdjqdNlRSZ36xWIAxhvX19eY7ALh16xYAmDzPdb/fr3zfTxeLRTKZTIqvfvWr5vbt22+fzXz729/Gd7/7Xfzwhz/khJAgDMOWbdu+UspK05R6nkdmsxnOzs6wtbWFTqeD4XDYkHAcx4iiqOlVpRT6/T4IIbh161bjJ7MsqznQzGYzHUVRtb29nbRarWh3dzf+9a9/LW/evInt7e3/HB5973vfA6WUOI7D8jwP5vN5qygKfzQaWQDo3bt3CSEEly9fRrvdxmAwAOe82bjOKmMMcRyjqqoG6X/7299wcnJSn6/Nzs6O9jyvevXVV5PhcBiNx+O41WqpJ554wjz++OPvPN36/ve/D8dxCCGE3b9/P5jNZq3NzU0vSRIexzF773vfSxhjhHPeyFlZlgDQILkeW9QH+7ovV6uVsSzLSClVFEWy2+2md+7cicIwjC9evKiee+45867ng88//zyZz+fs8PDQJ4T4WmtnMpmIK1eu8Ol0Sh3HIZZlIU1Twhhr7Jrv+w3ihRBYLpcmDEMAMEmS6CiK5KVLl8o8z/MoihKlVDKdTtXPf/7z/zMQ+o6jV87Nt771LbmzsxO3Wq1QSrnM8zyez+ep1rrUWsssy3RVVdoYYzjnxvd9wzk3WmujlDJKKc0Y00IIyTkv0zRNDw8P4zt37izH43E4HA7jH/zgB5Jz/o6D8ncM8Ctf+Qqef/55fO1rX1Pb29vZeDxeHh0dze/fv790HGellEqSJMm01qVt29J1Xck5l8YYKaWUSimplCqNMRkhJKmqaiWlXHLO54vFYnl2dpY9/fTT6pvf/CZ+9rOf/f9HwPX1ox/9CN1uF1/+8pfxzDPPEK01m0wmPEkSK8syMRwOxWAwsCilRGtNHng9Y1mWEUJUeZ6XcRyXRVFU8/lczudz9dOf/tQAwI9//GM8/fTT/3V/8m7/hnjhhRcQRRG+8Y1v4Cc/+QmJogh5nrPRaMRGoxGTUtIHcz88mFJpACrPc5VlmSqKAl//+tdNXZ0XXnjhXe377wEAmdQzpQDntgMAAAAASUVORK5CYII='}; //by Professor Tag | |
overlays.marble2 = {alpha:0.35, imagedata:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAQAAAAm93DmAAAALHRFWHRDcmVhdGlvbiBUaW1lAFNhdCAyMSBKYW4gMjAxNyAyMDoyOToxNyArMTIwMNKOm6MAAAAHdElNRQfhARUHIANCqY8HAAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGPC/xhBQAABgBJREFUeNq9Vk1v3FQUvfNsj2ccz0dC0ybQNhBahFSgalggNl0BCqJIbFAl/gQif4EdGzaIDf+BVStV6g4hQRetqETpoqhVU5SEZNIZj2c843keD+cem6ZV6QcSwtZ4/J7fO+/ce8+974n8x1flaR+vtmsr1cU07IVx4Ekr+XmwE9d25jY34n8N+GNQX3NWTSOUXLqSiitD/P+G56IE0unKrcb1LybPCXjVMadHa00/kzlApZKJL1O5J7dlTxI5LPOAthIk5op38/PZMwGjdvdc1hpLKCPA9DC1DsB9uSs7AB+D3zxYj8VBf7gbXvw0eSpgctyuW6+PqZ5EmKijfbT2pCMDtIVtH285niF41i98sPdEwNmp3lnX9ADjw6whPJeB4RRsBO0tvHl4s3gu4tfH90B8m17+5M4Bhjl4vXdczrZNCJMMGKWcbHBX8LO4Z3zm6K9LDU9PFqQljjd6/9tD/wA4a3vrfTMB1I7cFzVaYVICpeCcEMpBrwv+Hn8e3uFPL/3om+BvHLcMhSPnFr0tgO0gGAYchupRmJzTyJjtOls5HaFcEgQn0UVDuy7fP8LQnJaWkaMwYQnTHLi7i3uECVYmhJuhP2MwBL7U2wAq4qipjJe/PPkQ4L3AWSuaR+Q1eZmQMc3OAFSwdGCgBshllNV09XGKUQn6MzHvfu08ADRrGIPOjKAL7HQwMMZvxCirFlUwFYIX0sjBXX08wr8rXsO8cQC4mhLMcpjQ+QF01+P6Gh7lpBljCDDGrSLv4ZnLjMtDs6+UgLP2UkNlvIXp2jHC5w7WTOCfbQRpSiFbmuiCXYr+PYAN6MM+Fppg1kSc5e88AmYrAMVAH7lbmGIokXnKZoSAjNinHpswHDmZDgGZUakOZkOtpn60MHkxpzlHpIqhPYCryhoIji1FM+U0BVK4wtMq80GZRUXcsewydZiHfRgRkl9K76gO1cAagJuQkk+4KcEtA5MSRMNTpRYstWCbBLThhG6WEjLl577sImObWKiGqSk1MAYnQbhcxt5wIYeMCzdNGwSsB2r3PgEq9JplBkQQuQc4/ZqVAhHWGF2gcMCYDKtsiQwKhnAmJmrU7mO4LXPSlxcAlmNwlV4c8EsAzg7fKoRVDU4wIiPksFLkciKNKUXSQHeFEtayqrmQYnoTg1wAjtFWB0wAk7FkSLl8BS1NSjcm4FZfdahTpwzCPvkZTOoha2oMxzx6FijyCN+TUl5quMUiMywy0+SMCJglKTPVlzch4wEdHLMKtlmzHQTLI58Y3CLmboUyqZJXTnVqtmR96tD/sw8gi467cgd+1Hip+5ckYDi0xA7BqwvGES1xyMxlIAy4FZKCVdsErN+NZJMF/QYmaHWJy5hOCefhv4NdbwdvLTlE83ViwKdXStuTIHf/IGCr58QZZRyie8jdxGf5dCiZnPAq9kVZQc30uaccBgHDqu0xLEjc7Q1bVpu52yEhtOIV5d+hZH2KQAURyLIcw4IqJezJcgKJWeWIOoHV4MadB1vA3jX7uvFTOrbCLC0qtWBSwOwxBM+YYNg8wa9LM12MUD+DYdz89UE9fCvpXtNCUOd6eqnxmisuvBaAo1aWkYRUwIu4LU8PCufjp8D+T+enD+8p152oDiYt3CnMGkAqTZ4YIiwicEQhJxegqxij9VBr4JiLI97bG7ce2aQ+nAYXRnYe+ZzKS+CkAVnCHbK0hnibYx3y8U0LbJ9CmVFAyJ6Be+mxffmdXvXSKN8F/ROsjAF4aAQ1xiEWUVUacK8COAK3nH6tw46T9tWLXyWPAYqc2ez84OXHIYkWvNTkxJwSFrQWoL+gFP2UvvOQ+4Es2MOXP+scoLgPn23eu/FLfGw99XxE0eMG5JdZm1NUfrkva5EoNi6TNC+cevJhqTiS7J8btgwLWUIf5TBUWBhmHN7hNqFLVHfNxY+ffpzTa9cZnTZrrj8BSJ2cPBZcB8ZqxPWc2BSbZFeO3Dzz7ANncW0H2dr+qm2E5ZGuUKEhIBK2e/RWev3t5z0SH1w3252VYNk28ma/hvPq2I9qvWj7983zsfx/118iMqLtndczlgAAAABJRU5ErkJggg=='}; | |
overlays.earth1 = {alpha:0.30, imagedata:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAB3RJTUUH4QEVFzkMVTCY/gAAAAlwSFlzAAALEwAACxMBAJqcGAAAAARnQU1BAACxjwv8YQUAAASiSURBVHja1VhpTxRBEC0QdBcQBOT24PK+NUZRE4/EaPy3fvCrH4wXKsSgJAqIGEHlEgSP9QCsR79m22F6tmfVRCt5WZjp7npdXVePyD8uG4qcV68oU3wvMK5bcUpRzbGf/zbBrKJOcVHRpFhSLChWPON3Kxo5p0OxnUQX/jTBjKJTUa5oVtSQbJuiQjHhWfu4GEtb2aTYpmhVzCu+/AmCsMJWjp1RTCteKHZSeU7xKmZeDeeWeE6iXfFN8T5JeZkkSw2tk6OlDtKKtxR9ijOKUmd8CS0E5Y0ecpBPiru0IuYvF0vwA39rqQy/Q7RmJ99tdMidFeObUDqmGFSc5glYgd/edtaG/zbwdNb5ciGCwsXPc5ejikXFBTGOb63cwF8Qvy7GT3vEBEVUx4BDzsoiN7VUDMFWKgbg1JN8jqPsouXO81mv4oeiks/t+rDMd1p7lmu5ZHI+5SFBAkJvabEBEoAPIVV0k4hFq+R90BWM71fs4DogNx+gOzjNfCFJNy0s0VJbnGc4pmxkLiyHgEK0NpDom0C9qRK1WzV20RrDtGIhHbBqjuPnUugM8sE4KSWx1hTjoSvoWKO7SyPIhT2S972NgfMeiolUZIL9JLoUMtESLJeEZElBmbosJhemERC5T4LXxORJRP8c3zXyXSLBdinsG6gizSnJQXC8lTQAAu21mJPoIjnkWWSGjxKTqC3BQ2JqbLR9quWYHRxTjKDe3hFzrIvEPIktctNoOqYkph2zQVJFKw6TJHZ9jpOR9SekOFnhmtFEDII3+Xcfx8W2bLbQo53aozjK/5slf5wIhJYiCb4UU4995IFlD7kKlyCOsZxWzNDc2Pkd/r9MSya2RjEyW+TGIDUuQbsDpI4rYnq9x2IcF10GWny4QTadjoJXAp/Ytm2NoLsQ0skJxVUx0WfLEqI8J/72Pk5S30HE1OpLQreyUQyLZSIDQRTRixQAP3qqGFE857OmAGUIwvGUBDeTC+aOWoK2n4sT3MhssyC0II59kotVJCjDmsvcUBX1fJLkogCrI+euZg9LMCv+SMViT2T9cX0mcTSlvtZeJF85cKvbRowkjD/MMbj3zFkffJcwATuZ9rzDvBuKZxIeEPBrXw+wl4CsNsaWIDK6r9ThGMsTFMKKAyQa0gBAp69ktvEX6eyjSxAy6pkEZz0SoLhawrsjX5uGDa64XFyCY+K/SOMG11VA6a5AckmCDeI01u7ZLkGwH0yYfEzMcccJrNwm4TIT8wwpDXl2SBxXKY0MQu30BQTGtnveNcaslSQNkf+R91Ac4Hu/FILoonj5QEyLFCeZmGdIC+dSkINEm9591L3uE0rcrpFI70l8Mo2WOfhMR0pykM2SD6haroFPIetKoy/q7L0XfuUmYVSTKUcJ/LJO0gvWhL/hyoqjfSSeXJyUFkAQPtHijIOP2g8+B4q0nhWsi666V/JlNBVBCJLlOK2EmjtC6+Jm1/4b5CCIZHwlS7wLhSRWBMwYf+EjOJqTki5qXfkqJtf1iz8Y1yT04m7vFnYOrFidkhhcZpT4ETqpJHRgjMDB0anUkyxSkK3ZaBxyJIW2H4U/9VeF/0J+AgBDBp2zseZgAAAAAElFTkSuQmCC'}; | |
overlays.earth2 = {alpha:0.52, imagedata:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAB3RJTUUH4QEVFzEWYIvrjAAAAAlwSFlzAAAHgQAAB4EB3flQ2AAAAARnQU1BAACxjwv8YQUAAAZzSURBVHja3ZhbSFVpFMfXd9K0PF6orDTMvGFNZYqVlYphRIFPFQkR3R4i6ALdHroQ9FD0VBQRURC9dAGxoCKqBwvDCoMcNZxuXtLKppzK0SxpdK9Z/+3ee845Hs/ZO8/AMAsWHPfefvu31/37iP7joobxvzGi8aJxom7RSNEw417f7Nmze9PS0rqjoqI6t2zZ8kdubm7Xz7wkzOHz4aKTDY0a8qHw8LDp06dHrVmzxr1o0aLEy5cvc3Fx8deKioq3crtVKdUXagviuVTRdAMyqIwfP54PHDjAmzdvdonQu3fveNKkSVjnL9FXoi0CysHWcdl4V7Rooeg0O3AAW7p0KYu1iJnp+vXrGq4bcKYXfhEtkPvu4QJOFM2ngXjzKyNGjKCdO3dqu3bt0sS1fO3aNbp165aaMWOGamlpocWLFw/lpVgDcmIggEAxmCSaRUHCoL+/nzo7O+no0aNKfvPr169Ve3u7bsHHjx+TJEmg/8f7cwWyTtz91t8DQ/0zvio3GJwpcCmsht9nz55lTdN4yZIlKiUlxW6MIxafCOTvdgARc/nkIMNnzZql1dbW2onnQILMrhLIr54XfRcFcI4TuMjISD5//vxw6qkpeGeOuNtrLS9AKQcoJTF2VkNCzJs3j+/fv0+VlZVBy4VNQeKk+AUU8vC1a9emmX9PnTqVd+zY4fViMT/t3r2bN27cqDU1NdGjR4/UnDlz1Pbt24frXk/JEBbLg54LT46Pj9frnLQovnHjBh07dkwlJydbkG63m6Vt0YYNG1RSUpLuir6+PhbAUFkQYnarwYBv3rwhAN25c4fS09N1gIMHD1ov7+7uVlLvaP78+VacwJK9vb0M0BBCegOKSRF3Ud++faNt27bBghbA+vXrXUVFRVpCQoIO0Nra6rVSZmammjt3Lp8+fVoLIaBbmKI9LRhv3ikpKfF68vv377xp0yZ19epVlBM+d+7coNWkjWEd/vLlSyitGO8JiJGJJPjZ10I/fvyghoYGFiuphw8fAtKybmNjow6UmppKFy9edNXX14eQb4DJBNSbtoxESsYk6wmJOb558yasqM6cOcOjR4+24MrKynjBggX07NkzzsjIUNKDlYRCKOqhKbqLzXTGsEkAEP3niehoJb2VP3z4YLpOffz4EYWZ9u/frxITE9lMpgkTJqjPnz+zZLoaOXJkKAAjPAGH7Bx79uxRsNTYsWN1yEOHDtHJkyd1KIGhffv29Uv2o/y42tralEzOjDFLkori4uKGY9HwgGCmYNhEZguAysvLw1ilqqqqMLXQkSNHSFyvYL3CwkKXxKgm97SOjg6XjFqqp6cHFqUVK1YQ3B8REeGY0tpDUIBhdPXq1er58+ccGxuLOqlqamowYrG8UOEDXr58qVs3JycHHxGGmoiEuXTpEh0/flzJhEMoRYjncePG2bUqJu+BaUZcUkRGUAYSJAZiUiYXlCNeuHChnmTiSn1wRR0dM2aMBYCYlM0TizVdkoA8c+ZMHdgmYLe01koTELNfghPTYziVfQaJO3nKlCkoQSxuVr5xJ9ake/fuMSbrU6dOMWppQUGBnd7dLoA1JiCGhGlOAIcSqaO8detW/feJEydQI5VkvHb48GGnA8VvAthsxmDHcAFlxGckk5QmjPoqJiaGMf1AkEjZ2dm8cuVKJ1kNpoFCLQthU93zs3BSpLm0tBRFWwEO17q6uhRibtWqVfzp0ye9VTqQr8LUrbOZV37GzQ8ePOArV67QhQsXEIsBrYMkkj7O69ats2NF3b2+gCgzxWRzY15dXc35+fnYydn+IMlwfvHiRbBSg/JSYZ4+WIErF3Cj0e7LZMzSv8s2HellR/mbhnzklefRiG9mway2DnlQThB3TiUrKyvQ7T9FWzwvDDK1MSja2nZKwWZ0D/yW7OVly5aRZCu9f/9e3y7gumcIyH0uLy/Xu48psocm42+/206/sWAcRwTduGOYRTuTWCS0QRkQrOclm7W9e/equ3fvKsNyLEmFAcNrzdu3b2uy8cc12xt3E9LW0UcgaW5u1vc3snfG6YPXB8CyT58+1ZDdUo7qnR59eFoym5yfI1oiWcuYyJcvX275ta6uDpM72p82atSoWn+WswVoQCImcdpga0NvRzBESMlBMv7qG3OOAQ1IxweYAcTRAaaj+DJ2/MkU5Ah4CEErbaN/6QjYH2zAQ3TRXlG4r1O0w+j3/z/5GxmCsmaKCpgSAAAAAElFTkSuQmCC'}; | |
overlays.custom = {alpha:0.50, imagedata:options[tileId].shapes_overlay_base64}; | |
if (!overlays.hasOwnProperty(type)) return; | |
//var ballSize = Number(options[tileId].Size)*2; | |
//var offset = (40 - ballSize) / 2; | |
var img = new Image(); | |
img.onload = function() { | |
var overlay = document.createElement("canvas"); | |
overlay.width = 40; | |
overlay.height = 40; | |
var overlayCtx = overlay.getContext("2d"); | |
overlayCtx.globalAlpha = alpha; | |
overlayCtx.drawImage(img, 0, 0); | |
ctx.globalCompositeOperation = "source-atop"; | |
ctx.drawImage(overlay, 0, 0); | |
ctx.globalCompositeOperation = "source-over"; | |
overlay = null; | |
deferred.resolve(null); | |
return deferred.promise(); | |
}; | |
img.src = overlays[type].imagedata; | |
} | |
/* Helper functions... */ | |
function hexToRgb(hex) { | |
return (hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (m, r, g, b) => '#' + r + r + g + g + b + b) | |
.substring(1).match(/.{2}/g) | |
.map(x => parseInt(x, 16)) ); | |
} | |
function hexToRgbA(hex, alpha=1){ | |
if (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) { | |
var c = hex.substring(1).split(''); | |
if (c.length === 3) c = [c[0], c[0], c[1], c[1], c[2], c[2]]; | |
c = '0x' + c.join(''); | |
if (!$.isNumeric(alpha) || (alpha < 0) || (alpha > 1)) alpha = 1; | |
return 'rgba(' + [(c>>16)&255, (c>>8)&255, c&255].join(', ') + ', ' + alpha + ')'; | |
} | |
} | |
function rgbToHex(r, g, b) { | |
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); | |
} | |
function colorLuminance(hex, lum) { | |
hex = String(hex).replace(/[^0-9a-f]/gi, ''); | |
if (hex.length < 6) { | |
hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]; | |
} | |
lum = lum || 0; | |
var rgb = "#", c, i; | |
for (i = 0; i < 3; i++) { | |
c = parseInt(hex.substr(i*2,2), 16); | |
c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16); | |
rgb += ("00"+c).substr(c.length); | |
} | |
return rgb; | |
} | |
function randColor() { | |
var color = (function lol(m, s, c) { | |
return s[m.floor(m.random() * s.length)] + | |
(c && lol(m, s, c - 1)); | |
})(Math, '23', 4); | |
return '#' + color; | |
} | |
/** | |
* Set tint of a given canvas element. | |
* @param {HTMLElement} image - Canvas element holding the image to tint. | |
* @param {string} [color="#000000"] - Color string to tint the tiles, like "#FF0000". | |
* @param {number} [opacity="0.01"] - How much to preserve the original image. | |
**/ | |
function setTint(image, color, opacity, desaturate=false, globalCompositeOperation="destination-atop", filter='') { | |
if (desaturate) { | |
let ctx = image.getContext("2d"); | |
let buffer = ctx.getImageData(0, 0, image.width, image.height); | |
let ca = hexToRgb(color); | |
let gray; | |
for (i=0; i<buffer.data.length; i+=4) { | |
if (buffer.data[i + 3]) { //only tint if the alpha > 0 | |
gray = ( Math.max(buffer.data[i], buffer.data[i+1], buffer.data[i+2]) + Math.min(buffer.data[i], buffer.data[i+1], buffer.data[i+2]) ) / 2; //simple desaturation | |
//gray = Math.max(buffer.data[i], buffer.data[i+1], buffer.data[i+2]); //simple decomposition | |
//gray = (0.3 * buffer.data[i] + 0.59 * buffer.data[i + 1] + 0.11 * buffer.data[i + 2]); //simple brightness | |
//if (c.r) buffer.data[i] = buffer.data[i] + c.r; /// add R | |
//if (c.g) buffer.data[i + 1] = buffer.data[i + 1] + c.g; /// add G | |
//if (c.b) buffer.data[i + 2] = buffer.data[i + 2] + c.b; /// add B | |
if (ca[0]) buffer.data[i] = gray + ca[0]; /// add R | |
if (ca[1]) buffer.data[i + 1] = gray + ca[1]; /// add G | |
if (ca[2]) buffer.data[i + 2] = gray + ca[2]; /// add B | |
} | |
} | |
ctx.putImageData(buffer, 0, 0); | |
} else { | |
// Adapted from: http://stackoverflow.com/a/4231508/1698058 | |
let imageCtx = image.getContext("2d"); | |
let tint; | |
imageCtx.save(); | |
if (color && opacity) { | |
tint = document.createElement("canvas"); | |
tint.width = image.width; | |
tint.height = image.height; | |
let tintCtx = tint.getContext("2d"); | |
tintCtx.fillStyle = hexToRgbA(color || "#000000", opacity); | |
tintCtx.fillRect(0, 0, tint.width, tint.height); | |
tintCtx.globalCompositeOperation = globalCompositeOperation; //destination-atop | |
tintCtx.drawImage(image, 0, 0); | |
} | |
if (filter) imageCtx.filter = filter; | |
if (color && opacity) { | |
imageCtx.drawImage(tint, 0, 0); | |
tint = null; | |
} else { | |
imageCtx.drawImage(image, 0, 0); | |
} | |
imageCtx.restore(); | |
} | |
} | |
function roundedRect(ctx, x, y, width, height, radius, stroke, fill) { | |
ctx.save(); | |
ctx.beginPath(); | |
ctx.moveTo(x+radius,y); | |
ctx.arcTo(x+width,y,x+width,y+radius,radius); | |
ctx.arcTo(x+width,y+height,x+width-radius,y+height,radius); | |
ctx.arcTo(x,y+height,x,y+height-radius,radius); | |
ctx.arcTo(x,y,x+radius,y,radius); | |
if (stroke) ctx.stroke(); | |
if (fill) ctx.fill(); | |
ctx.restore(); | |
} | |
function getRandomInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment