{ "name" : "ShipIt", // Set the name of the stadium "width" : 400, // width and height only constrain the camera scrolling. "height" : 250, "spawnDistance" : 250, // Set how far from the ball the teams will spawn "bg" : { "type" : "grass", "width" : 350, "height" : 200, "kickOffRadius" : 65, "cornerRadius" : 0 }, // Set the background. This is only visual, it doesnt' affect the physics at all. // The list of vertexes: "vertexes" : [ // Left side of the ball area: { "x" : -350, "y" : 200, "trait" : "ballArea" }, // Index 0 - Bottom corner. { "x" : -350, "y" : -65, "trait" : "ballArea" }, // Index 1 - Bottom goal post. { "x" : -350, "y" : -135, "trait" : "ballArea" }, // Index 2 - Top goal post. { "x" : -350, "y" : -200, "trait" : "ballArea" }, // Index 3 - Top corner. // Right side of the ball area: { "x" : 350, "y" : 200, "trait" : "ballArea" }, // Index 4 - Bottom corner. { "x" : 350, "y" : -65, "trait" : "ballArea" }, // Index 5 - Bottom goal post. { "x" : 350, "y" : -135, "trait" : "ballArea" }, // Index 6 - Top goal post. { "x" : 350, "y" : -200, "trait" : "ballArea" }, // Index 7 - Top corner. // Vertexes involved on the kickoff barrier: { "x" : 0, "y" : 250, "trait" : "kickOffBarrier" }, // Index 8 - Bottom center. { "x" : 0, "y" : 65, "trait" : "kickOffBarrier" }, // Index 9 - Bottom of the kickoff circle. { "x" : 0, "y" : -65, "trait" : "kickOffBarrier" }, // Index 10 - Top of the kickoff circle. { "x" : 0, "y" : -250, "trait" : "kickOffBarrier" }, // Index 11 - Top center. { "x" : 350, "y" : 65, "trait" : "ballArea" }, // Index 12 - Bottom goal post. { "x" : 350, "y" : 135, "trait" : "ballArea" }, // Index 13 - Top goal post. { "x" : -350, "y" : 65, "trait" : "ballArea" }, // Index 14 - Bottom goal post. { "x" : -350, "y" : 135, "trait" : "ballArea" } // Index 15 - Top goal post. ], // The list of segments: "segments" : [ // Left side ball area walls: { "v0" : 0, "v1" : 15, "trait" : "ballArea" }, // Connects bottom corner to bottom goal post. { "v0" : 14, "v1" : 1, "trait" : "ballArea" }, // Connects top corner to top goal post. { "v0" : 2, "v1" : 3, "trait" : "ballArea" }, // Connects top corner to top goal post. // Right side ball area walls: { "v0" : 4, "v1" : 13, "trait" : "ballArea" }, // Connects bottom corner to bottom goal post. { "v0" : 12, "v1" : 5, "trait" : "ballArea" }, // Connects top corner to top goal post. { "v0" : 6, "v1" : 7, "trait" : "ballArea" }, // Connects top corner to top goal post. // Goal nets: { "v0" : 1, "v1" : 2, "trait" : "goalNet" }, // Connects left bottom to left top post. { "v0" : 6, "v1" : 5, "trait" : "goalNet" }, // Connects right bottom to right top post. { "v0" : 12, "v1" : 13, "trait" : "goalNet" }, // Connects left bottom to left top post. { "v0" : 15, "v1" : 14, "trait" : "goalNet" }, // Connects right bottom to right top post. // Kickoff barriers: { "v0" : 8, "v1" : 9, "trait" : "kickOffBarrier" }, // Connects bottom center to kickoff circle bottom. { "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : 180 }, // Connects Kickoff circle top and bottom, curve = 180 makes half a circle. { "v0" : 9, "v1" : 10, "trait" : "kickOffBarrier", "curve" : -180 }, // Connects Kickoff circle top and bottom again, curve = -180 makes the other half. { "v0" : 10, "v1" : 11, "trait" : "kickOffBarrier" }, // Connects kickoff circle top to top center. // Top and bottom ball area walls: { "v0" : 3, "v1" : 7, "trait" : "ballArea" }, // Connects left top corner to right top corner. { "v0" : 0, "v1" : 4, "trait" : "ballArea" }, // Connects left bottom corner to right bottom corner. { "v0" : 5, "v1" : 12, "trait" : "ballArea" }, // Connects bottom corner to bottom goal post. { "v0" : 1, "v1" : 14, "trait" : "ballArea" } // Connects top corner to top goal post. ], // List of goals: "goals" : [ { "p0" : [-350, -65], "p1" : [-350, -135], "team" : "red" }, { "p0" : [350, -65], "p1" : [350, -135], "team" : "blue" }, { "p0" : [-350, 65], "p1" : [-350, 135], "team" : "blue" }, { "p0" : [350, 65], "p1" : [350, 135], "team" : "red" } ], // List of discs: "discs" : [ // Left posts: { "pos" : [-350, -65], "trait" : "goalPost", "color" : "FF0000" }, { "pos" : [-350, -135], "trait" : "goalPost", "color" : "FF0000" }, // Right posts: { "pos" : [ 350, -65], "trait" : "goalPost", "color" : "0000FF" }, { "pos" : [ 350, -135], "trait" : "goalPost", "color" : "0000FF" }, { "pos" : [ 350, 65], "trait" : "goalPost", "color" : "FF0000" }, { "pos" : [ 350, 135], "trait" : "goalPost", "color" : "FF0000" }, { "pos" : [ -350, 65], "trait" : "goalPost", "color" : "0000FF" }, { "pos" : [ -350, 135], "trait" : "goalPost", "color" : "0000FF" } ], // List of planes: "planes" : [ // Player bounds: { "normal" : [ 0, 1], "dist" : -250, "bCoef" : 0.1 }, // Top wall. { "normal" : [ 0,-1], "dist" : -250, "bCoef" : 0.1 }, // Bottom wall. { "normal" : [ 1, 0], "dist" : -400, "bCoef" : 0.1 }, // Left wall. { "normal" : [-1, 0], "dist" : -400, "bCoef" : 0.1 } // Right wall. ], // List of traits: "traits" : { "ballArea" : { "vis" : false, "bCoef" : 1, "cMask" : ["ball"] }, "goalPost" : { "radius" : 6, "invMass" : 0, "bCoef" : 0.5 }, "goalNet" : { "vis" : true, "bCoef" : 0.1, "cMask" : ["ball"], "curve" : 150 }, "kickOffBarrier" : { "vis" : false, "bCoef" : 0.1, "cGroup" : [ ], "cMask" : [ ] }, "goalDisc" : { "radius" : 10, "invMass" : 1000, "bCoef" : 1, "cGroup" : ["ball"], "cMask" : ["ball", "red", "blue"] } } }