// TENNIS RULES: // 1) Kick-off must be straight (no choice, really, I added barrier). // 2) Only allowed to kick ball twice. If you kick twice and ball is still on your side, must push ball onto other side without kicking. // 3) NO pushing of the ball (AKA push to wall for a dubshot). Only for a a miniscule of a second. // 4) If you bump into ball once (like failed kick), ignore it, if you do it twice, must push ball to other side without kicking. // //by Ghost { "name" : "Clay Tennis", "width" : 420, "height" : 200, "spawnDistance" : 335, "bg" : { "type" : "hockey", "width" : 370, "height" : 170, "kickOffRadius" : 0, "cornerRadius" : 0 }, "vertexes" : [ { "x" : 0, "y" : -170, "trait" : "net" }, // 0 top net { "x" : 0, "y" : 170, "trait" : "net" }, // 1 bottom net { "x" : -370, "y" : -170, "trait" : "court" }, // 2 top left point { "x" : 370, "y" : -170, "trait" : "court" }, // 3 top right point { "x" : 370, "y" : 170, "trait" : "court" }, // 4 bottom right point { "x" : -370, "y" : 170, "trait" : "court" }, // 5 bottom left point { "x" : -370, "y" : -127.5, "trait" : "court" }, // 6 top left under-corner { "x" : 370, "y" : -127.5, "trait" : "court" }, // 7 top right under-corner { "x" : 370, "y" : 127.5, "trait" : "court" }, // 8 bottom right over-corner { "x" : -370, "y" : 127.5, "trait" : "court" }, // 9 bottom left over-corner { "x" : -210, "y" : -127.5, "trait" : "court" }, // 10 top left inner-corner { "x" : 210, "y" : -127.5, "trait" : "court" }, // 11 top right inner-corner { "x" : 210, "y" : 127.5, "trait" : "court" }, // 12 bottom right inner-corner { "x" : -210, "y" : 127.5, "trait" : "court" }, // 13 bottom left inner-corner { "x" : -210, "y" : 0, "trait" : "court" }, // 14 left mid center point { "x" : 210, "y" : 0, "trait" : "court" }, // 15 right mid center point { "x" : -370, "y" : 0, "trait" : "court" }, // 16 left center point { "x" : 370, "y" : 0, "trait" : "court" }, // 17 right center point { "x" : -350, "y" : 0, "trait" : "court" }, // 18 left inner center point { "x" : 350, "y" : 0, "trait" : "court" }, // 19 right inner center point { "x" : -335, "y" : -15, "trait" : "RedkickOffBarrier" }, // 20 top left kick-off curved barrier point { "x" : -335, "y" : 15, "trait" : "RedkickOffBarrier" }, // 21 bottom left kick-off curved barrier point { "x" : 0, "y" : -15, "trait" : "RedkickOffBarrier" }, // 22 top center kick-off barrier point { "x" : 0, "y" : 15, "trait" : "RedkickOffBarrier" }, // 23 bottom center kick-off barrier point { "x" : 335, "y" : -15, "trait" : "BluekickOffBarrier" }, // 24 top left kick-off curved barrier point { "x" : 335, "y" : 15, "trait" : "BluekickOffBarrier" } // 25 bottom left kick-off curved barrier point ], "segments" : [ { "v0" : 0, "v1" : 1, "trait" : "net" }, // Center vertical divider. Added another down there, read notes. { "v0" : 2, "v1" : 3, "trait" : "court" }, // Top court line. { "v0" : 3, "v1" : 4, "trait" : "court" }, // Right court line. { "v0" : 4, "v1" : 5, "trait" : "court" }, // Bottom court line. { "v0" : 5, "v1" : 2, "trait" : "court" }, // Left court line. { "v0" : 6, "v1" : 7, "trait" : "court" }, // Top inner horizontal line. { "v0" : 8, "v1" : 9, "trait" : "court" }, // Bottom inner horizontal line. { "v0" : 10, "v1" : 13, "trait" : "court" }, // Left inner vertical line. { "v0" : 11, "v1" : 12, "trait" : "court" }, // Right inner vertical line. { "v0" : 14, "v1" : 15, "trait" : "court" }, // Center horizontal line. { "v0" : 16, "v1" : 18, "trait" : "court" }, // Left half marker. { "v0" : 17, "v1" : 19, "trait" : "court" }, // Right half marker. { "v0" : 0, "v1" : 1, "trait" : "net" }, // net NOTES - added another for net to be on top of other lines visually { "v0" : 20, "v1" : 21, "trait" : "RedkickOffBarrier", "curve" : -190 }, // Left curve barrier. { "v0" : 20, "v1" : 22, "trait" : "RedkickOffBarrier" }, // Top left passer barrier. { "v0" : 21, "v1" : 23, "trait" : "RedkickOffBarrier" }, // Bottom left passer barrier. { "v0" : 6, "v1" : 10, "trait" : "BluekickOffBarrier" }, // Top left receive barrier. { "v0" : 10, "v1" : 13, "trait" : "BluekickOffBarrier" }, // Middle left receive barrier. { "v0" : 13, "v1" : 9, "trait" : "BluekickOffBarrier" }, // Bottom left receive barrier. { "v0" : 24, "v1" : 25, "trait" : "BluekickOffBarrier", "curve" : 190 }, // Right curve barrier. { "v0" : 24, "v1" : 22, "trait" : "BluekickOffBarrier" }, // Top right passer barrier. { "v0" : 25, "v1" : 23, "trait" : "BluekickOffBarrier" }, // Bottom right passer barrier. { "v0" : 7, "v1" : 11, "trait" : "RedkickOffBarrier" }, // Top right receive barrier. { "v0" : 11, "v1" : 12, "trait" : "RedkickOffBarrier" }, // Middle right receive barrier. { "v0" : 12, "v1" : 8, "trait" : "RedkickOffBarrier" } // Bottom right receive barrier. ], "goals" : [ { "p0" : [-375, 200], "p1" : [-370,-200], "team" : "red" }, { "p0" : [375, 200], "p1" : [370,-200], "team" : "blue" } ], "discs" : [ { "pos" : [ 0, -170], "trait" : "netPost" }, // Top post. { "pos" : [ 0, 170], "trait" : "netPost" } // Bottom post. ], "planes" : [ { "normal" : [0, 1], "dist" : -170, "trait" : "ballArea" }, { "normal" : [0,-1], "dist" : -170, "trait" : "ballArea" }, { "normal" : [ 1,0], "dist" : -470, "bCoef" : 0.1, "cMask" : ["ball"] }, { "normal" : [-1,0], "dist" : -470, "bCoef" : 0.1, "cMask" : ["ball"] }, { "normal" : [ 0, 1], "dist" : -200, "bCoef" : 0.1 }, { "normal" : [ 0,-1], "dist" : -200, "bCoef" : 0.1 }, { "normal" : [ 1, 0], "dist" : -420, "bCoef" : 0.1, "cMask" : ["blue", "red"] }, { "normal" : [-1, 0], "dist" : -420, "bCoef" : 0.1, "cMask" : ["blue", "red"] } ], "traits" : { "ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] }, "netPost" : { "radius" : 4, "invMass" : 0, "cMask" : [""], "color" : "FFFF00" }, "court" : { "vis" : true, "cMask" : [""], "color" : "FFFFFF" }, "net" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["red", "blue"], "color" : "000000" }, "BluekickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["blueKO"], "cMask" : ["red", "blue"] }, "RedkickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : ["redKO"], "cMask" : ["red", "blue"] } } }