diff --git a/favicon.ico b/favicon.ico
index f713b1e2..a1d02ee9 100644
Binary files a/favicon.ico and b/favicon.ico differ
diff --git a/favicon.png b/favicon.png
index 313b9c9a..1126c270 100644
Binary files a/favicon.png and b/favicon.png differ
diff --git a/fireboywatergirl2/Untitled.jpeg b/fireboywatergirl2/Untitled.jpeg
new file mode 100644
index 00000000..cfba264d
Binary files /dev/null and b/fireboywatergirl2/Untitled.jpeg differ
diff --git a/fireboywatergirl2/assets/383ad09b92c7446b9113cccc29630517-512x512.jpeg b/fireboywatergirl2/assets/383ad09b92c7446b9113cccc29630517-512x512.jpeg
new file mode 100644
index 00000000..7fdbec33
Binary files /dev/null and b/fireboywatergirl2/assets/383ad09b92c7446b9113cccc29630517-512x512.jpeg differ
diff --git a/fireboywatergirl2/assets/atlasses/CharAssets.json b/fireboywatergirl2/assets/atlasses/CharAssets.json
new file mode 100644
index 00000000..380af0be
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/CharAssets.json
@@ -0,0 +1,1923 @@
+{"frames": [
+
+{
+ "filename": "_default0000",
+ "frame": {"x":2008,"y":0,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "death_smoke0000",
+ "frame": {"x":116,"y":1341,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0001",
+ "frame": {"x":222,"y":1341,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0002",
+ "frame": {"x":1203,"y":1413,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0003",
+ "frame": {"x":1309,"y":1413,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0004",
+ "frame": {"x":1415,"y":1413,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0005",
+ "frame": {"x":1521,"y":1413,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0006",
+ "frame": {"x":1627,"y":1413,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0007",
+ "frame": {"x":1733,"y":1413,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0008",
+ "frame": {"x":1839,"y":1413,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0009",
+ "frame": {"x":518,"y":1430,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0010",
+ "frame": {"x":116,"y":1452,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0011",
+ "frame": {"x":222,"y":1452,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0012",
+ "frame": {"x":0,"y":1457,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0013",
+ "frame": {"x":969,"y":1457,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0014",
+ "frame": {"x":1075,"y":1457,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0015",
+ "frame": {"x":624,"y":1460,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0016",
+ "frame": {"x":730,"y":1460,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0017",
+ "frame": {"x":836,"y":1460,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0018",
+ "frame": {"x":328,"y":1462,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0019",
+ "frame": {"x":1181,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0020",
+ "frame": {"x":1287,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0021",
+ "frame": {"x":1393,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0022",
+ "frame": {"x":1499,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0023",
+ "frame": {"x":1605,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0024",
+ "frame": {"x":1711,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0025",
+ "frame": {"x":1817,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0026",
+ "frame": {"x":1923,"y":1524,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0027",
+ "frame": {"x":434,"y":1541,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0028",
+ "frame": {"x":106,"y":1563,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0029",
+ "frame": {"x":212,"y":1563,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0030",
+ "frame": {"x":0,"y":1568,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0031",
+ "frame": {"x":942,"y":1568,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0032",
+ "frame": {"x":1048,"y":1568,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0033",
+ "frame": {"x":540,"y":1571,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0034",
+ "frame": {"x":646,"y":1571,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0035",
+ "frame": {"x":752,"y":1571,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0036",
+ "frame": {"x":318,"y":1573,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0037",
+ "frame": {"x":1154,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0038",
+ "frame": {"x":1260,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0039",
+ "frame": {"x":1366,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0040",
+ "frame": {"x":1472,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0041",
+ "frame": {"x":1578,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0042",
+ "frame": {"x":1684,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0043",
+ "frame": {"x":1790,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "death_smoke0044",
+ "frame": {"x":1896,"y":1635,"w":102,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":107},
+ "sourceSize": {"w":102,"h":107}
+}
+,{
+ "filename": "diamond_fb0000",
+ "frame": {"x":1086,"y":1339,"w":113,"h":114},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":114},
+ "sourceSize": {"w":113,"h":114}
+}
+,{
+ "filename": "diamond_fbwg0000",
+ "frame": {"x":0,"y":1341,"w":112,"h":112},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":112,"h":112},
+ "sourceSize": {"w":112,"h":112}
+}
+,{
+ "filename": "diamond_silver0000",
+ "frame": {"x":848,"y":1339,"w":117,"h":117},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":117,"h":117},
+ "sourceSize": {"w":117,"h":117}
+}
+,{
+ "filename": "diamond_wg0000",
+ "frame": {"x":969,"y":1339,"w":113,"h":114},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":114},
+ "sourceSize": {"w":113,"h":114}
+}
+,{
+ "filename": "fire_glow0000",
+ "frame": {"x":1944,"y":1266,"w":94,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":94,"h":104},
+ "sourceSize": {"w":94,"h":104}
+}
+,{
+ "filename": "fire_head_falling0000",
+ "frame": {"x":1340,"y":800,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_falling0001",
+ "frame": {"x":1474,"y":800,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_falling0002",
+ "frame": {"x":1608,"y":800,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_falling0003",
+ "frame": {"x":1742,"y":800,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_falling0004",
+ "frame": {"x":1876,"y":800,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0000",
+ "frame": {"x":0,"y":862,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0001",
+ "frame": {"x":134,"y":862,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0002",
+ "frame": {"x":268,"y":862,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0003",
+ "frame": {"x":402,"y":862,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0004",
+ "frame": {"x":536,"y":862,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0005",
+ "frame": {"x":670,"y":862,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0006",
+ "frame": {"x":804,"y":892,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0007",
+ "frame": {"x":938,"y":892,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0008",
+ "frame": {"x":1072,"y":892,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0009",
+ "frame": {"x":1206,"y":892,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0010",
+ "frame": {"x":1340,"y":966,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0011",
+ "frame": {"x":1474,"y":966,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0012",
+ "frame": {"x":1608,"y":966,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0013",
+ "frame": {"x":1742,"y":966,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0014",
+ "frame": {"x":1876,"y":966,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0015",
+ "frame": {"x":0,"y":1028,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0016",
+ "frame": {"x":134,"y":1028,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0017",
+ "frame": {"x":268,"y":1028,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_idle0018",
+ "frame": {"x":402,"y":1028,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "fire_head_jumping0000",
+ "frame": {"x":536,"y":1028,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0001",
+ "frame": {"x":696,"y":1058,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0002",
+ "frame": {"x":856,"y":1058,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0003",
+ "frame": {"x":1016,"y":1058,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0004",
+ "frame": {"x":1176,"y":1058,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0005",
+ "frame": {"x":1336,"y":1132,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0006",
+ "frame": {"x":1496,"y":1132,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0007",
+ "frame": {"x":1656,"y":1132,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0008",
+ "frame": {"x":1816,"y":1132,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0009",
+ "frame": {"x":536,"y":1162,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_jumping0010",
+ "frame": {"x":696,"y":1192,"w":156,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":156,"h":130},
+ "sourceSize": {"w":156,"h":130}
+}
+,{
+ "filename": "fire_head_rising0000",
+ "frame": {"x":408,"y":1194,"w":106,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":106,"h":130},
+ "sourceSize": {"w":106,"h":130}
+}
+,{
+ "filename": "fire_head_rising0001",
+ "frame": {"x":518,"y":1296,"w":106,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":106,"h":130},
+ "sourceSize": {"w":106,"h":130}
+}
+,{
+ "filename": "fire_head_rising0002",
+ "frame": {"x":628,"y":1326,"w":106,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":106,"h":130},
+ "sourceSize": {"w":106,"h":130}
+}
+,{
+ "filename": "fire_head_rising0003",
+ "frame": {"x":738,"y":1326,"w":106,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":106,"h":130},
+ "sourceSize": {"w":106,"h":130}
+}
+,{
+ "filename": "fire_head_rising0004",
+ "frame": {"x":408,"y":1328,"w":106,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":106,"h":130},
+ "sourceSize": {"w":106,"h":130}
+}
+,{
+ "filename": "fire_ice_legs0000",
+ "frame": {"x":664,"y":1896,"w":72,"h":88},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":72,"h":88},
+ "sourceSize": {"w":72,"h":88}
+}
+,{
+ "filename": "fire_ice_legs0001",
+ "frame": {"x":148,"y":1898,"w":72,"h":88},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":72,"h":88},
+ "sourceSize": {"w":72,"h":88}
+}
+,{
+ "filename": "fire_ice_legs0002",
+ "frame": {"x":224,"y":1898,"w":72,"h":88},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":72,"h":88},
+ "sourceSize": {"w":72,"h":88}
+}
+,{
+ "filename": "fire_legs_idle0000",
+ "frame": {"x":134,"y":354,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0000",
+ "frame": {"x":1024,"y":208,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0001",
+ "frame": {"x":1158,"y":208,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0002",
+ "frame": {"x":1292,"y":208,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0003",
+ "frame": {"x":1426,"y":292,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0004",
+ "frame": {"x":1560,"y":292,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0005",
+ "frame": {"x":1694,"y":292,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0006",
+ "frame": {"x":1828,"y":292,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_legs_running0007",
+ "frame": {"x":0,"y":354,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "fire_stairs0000",
+ "frame": {"x":1962,"y":292,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0001",
+ "frame": {"x":328,"y":1341,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0002",
+ "frame": {"x":858,"y":1571,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0003",
+ "frame": {"x":424,"y":1652,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0004",
+ "frame": {"x":106,"y":1674,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0005",
+ "frame": {"x":181,"y":1674,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0006",
+ "frame": {"x":858,"y":1678,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0007",
+ "frame": {"x":0,"y":1679,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0008",
+ "frame": {"x":933,"y":1679,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0009",
+ "frame": {"x":1008,"y":1679,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0010",
+ "frame": {"x":499,"y":1682,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0011",
+ "frame": {"x":574,"y":1682,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0012",
+ "frame": {"x":649,"y":1682,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0013",
+ "frame": {"x":724,"y":1682,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0014",
+ "frame": {"x":256,"y":1684,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0015",
+ "frame": {"x":331,"y":1684,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0016",
+ "frame": {"x":1083,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0017",
+ "frame": {"x":1158,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0018",
+ "frame": {"x":1233,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0019",
+ "frame": {"x":1308,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0020",
+ "frame": {"x":1383,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0021",
+ "frame": {"x":1458,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0022",
+ "frame": {"x":1533,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0023",
+ "frame": {"x":1608,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0024",
+ "frame": {"x":1683,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0025",
+ "frame": {"x":1758,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0026",
+ "frame": {"x":1833,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0027",
+ "frame": {"x":1908,"y":1746,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0028",
+ "frame": {"x":406,"y":1759,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "fire_stairs0029",
+ "frame": {"x":75,"y":1781,"w":71,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":71,"h":103},
+ "sourceSize": {"w":71,"h":103}
+}
+,{
+ "filename": "water_glow0000",
+ "frame": {"x":1945,"y":1374,"w":94,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":94,"h":104},
+ "sourceSize": {"w":94,"h":104}
+}
+,{
+ "filename": "water_head_falling0000",
+ "frame": {"x":0,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0001",
+ "frame": {"x":134,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0002",
+ "frame": {"x":268,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0003",
+ "frame": {"x":402,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0004",
+ "frame": {"x":536,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0005",
+ "frame": {"x":670,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0006",
+ "frame": {"x":804,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0007",
+ "frame": {"x":938,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0008",
+ "frame": {"x":1072,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0009",
+ "frame": {"x":1206,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_falling0010",
+ "frame": {"x":1340,"y":0,"w":130,"h":204},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":204},
+ "sourceSize": {"w":130,"h":204}
+}
+,{
+ "filename": "water_head_idle0000",
+ "frame": {"x":1340,"y":468,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0001",
+ "frame": {"x":1474,"y":468,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0002",
+ "frame": {"x":1608,"y":468,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0003",
+ "frame": {"x":1742,"y":468,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0004",
+ "frame": {"x":1876,"y":468,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0005",
+ "frame": {"x":0,"y":530,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0006",
+ "frame": {"x":134,"y":530,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0007",
+ "frame": {"x":268,"y":530,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0008",
+ "frame": {"x":402,"y":530,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0009",
+ "frame": {"x":536,"y":530,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0010",
+ "frame": {"x":670,"y":530,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0011",
+ "frame": {"x":804,"y":560,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0012",
+ "frame": {"x":938,"y":560,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0013",
+ "frame": {"x":1072,"y":560,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0014",
+ "frame": {"x":1206,"y":560,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0015",
+ "frame": {"x":1340,"y":634,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0016",
+ "frame": {"x":1474,"y":634,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0017",
+ "frame": {"x":1608,"y":634,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0018",
+ "frame": {"x":1742,"y":634,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0019",
+ "frame": {"x":1876,"y":634,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0020",
+ "frame": {"x":0,"y":696,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0021",
+ "frame": {"x":134,"y":696,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0022",
+ "frame": {"x":268,"y":696,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0023",
+ "frame": {"x":402,"y":696,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0024",
+ "frame": {"x":536,"y":696,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0025",
+ "frame": {"x":670,"y":696,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0026",
+ "frame": {"x":804,"y":726,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0027",
+ "frame": {"x":938,"y":726,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0028",
+ "frame": {"x":1072,"y":726,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_idle0029",
+ "frame": {"x":1206,"y":726,"w":130,"h":162},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":162},
+ "sourceSize": {"w":130,"h":162}
+}
+,{
+ "filename": "water_head_jumping0000",
+ "frame": {"x":1474,"y":0,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0001",
+ "frame": {"x":1652,"y":0,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0002",
+ "frame": {"x":1830,"y":0,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0003",
+ "frame": {"x":1474,"y":146,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0004",
+ "frame": {"x":1652,"y":146,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0005",
+ "frame": {"x":1830,"y":146,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0006",
+ "frame": {"x":0,"y":208,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0007",
+ "frame": {"x":178,"y":208,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0008",
+ "frame": {"x":356,"y":208,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0009",
+ "frame": {"x":534,"y":208,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_jumping0010",
+ "frame": {"x":712,"y":208,"w":174,"h":142},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":174,"h":142},
+ "sourceSize": {"w":174,"h":142}
+}
+,{
+ "filename": "water_head_rising0000",
+ "frame": {"x":856,"y":1192,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0001",
+ "frame": {"x":992,"y":1192,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0002",
+ "frame": {"x":1128,"y":1192,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0003",
+ "frame": {"x":0,"y":1194,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0004",
+ "frame": {"x":136,"y":1194,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0005",
+ "frame": {"x":272,"y":1194,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0006",
+ "frame": {"x":1264,"y":1266,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0007",
+ "frame": {"x":1400,"y":1266,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0008",
+ "frame": {"x":1536,"y":1266,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0009",
+ "frame": {"x":1672,"y":1266,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_head_rising0010",
+ "frame": {"x":1808,"y":1266,"w":132,"h":143},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":132,"h":143},
+ "sourceSize": {"w":132,"h":143}
+}
+,{
+ "filename": "water_ice_legs0000",
+ "frame": {"x":1976,"y":1132,"w":66,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":110},
+ "sourceSize": {"w":66,"h":110}
+}
+,{
+ "filename": "water_ice_legs0001",
+ "frame": {"x":150,"y":1781,"w":66,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":110},
+ "sourceSize": {"w":66,"h":110}
+}
+,{
+ "filename": "water_ice_legs0002",
+ "frame": {"x":799,"y":1785,"w":66,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":66,"h":110},
+ "sourceSize": {"w":66,"h":110}
+}
+,{
+ "filename": "water_legs_idle0000",
+ "frame": {"x":890,"y":208,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0000",
+ "frame": {"x":268,"y":354,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0001",
+ "frame": {"x":402,"y":354,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0002",
+ "frame": {"x":536,"y":354,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0003",
+ "frame": {"x":670,"y":354,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0004",
+ "frame": {"x":804,"y":384,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0005",
+ "frame": {"x":938,"y":384,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0006",
+ "frame": {"x":1072,"y":384,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_legs_running0007",
+ "frame": {"x":1206,"y":384,"w":130,"h":172},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":172},
+ "sourceSize": {"w":130,"h":172}
+}
+,{
+ "filename": "water_stairs0000",
+ "frame": {"x":0,"y":1786,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0001",
+ "frame": {"x":869,"y":1786,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0002",
+ "frame": {"x":943,"y":1786,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0003",
+ "frame": {"x":481,"y":1789,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0004",
+ "frame": {"x":555,"y":1789,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0005",
+ "frame": {"x":629,"y":1789,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0006",
+ "frame": {"x":703,"y":1789,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0007",
+ "frame": {"x":220,"y":1791,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0008",
+ "frame": {"x":294,"y":1791,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0009",
+ "frame": {"x":1017,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0010",
+ "frame": {"x":1091,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0011",
+ "frame": {"x":1165,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0012",
+ "frame": {"x":1239,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0013",
+ "frame": {"x":1313,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0014",
+ "frame": {"x":1387,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0015",
+ "frame": {"x":1461,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0016",
+ "frame": {"x":1535,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0017",
+ "frame": {"x":1609,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0018",
+ "frame": {"x":1683,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0019",
+ "frame": {"x":1757,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0020",
+ "frame": {"x":1831,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0021",
+ "frame": {"x":1905,"y":1853,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0022",
+ "frame": {"x":368,"y":1866,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0023",
+ "frame": {"x":74,"y":1888,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0024",
+ "frame": {"x":0,"y":1893,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0025",
+ "frame": {"x":869,"y":1893,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0026",
+ "frame": {"x":943,"y":1893,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0027",
+ "frame": {"x":442,"y":1896,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0028",
+ "frame": {"x":516,"y":1896,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}
+,{
+ "filename": "water_stairs0029",
+ "frame": {"x":590,"y":1896,"w":70,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":70,"h":103},
+ "sourceSize": {"w":70,"h":103}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "CharAssets.png",
+ "format": "RGBA8888",
+ "size": {"w":2048,"h":2048},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/CharAssets.png b/fireboywatergirl2/assets/atlasses/CharAssets.png
new file mode 100644
index 00000000..a9ffd160
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/CharAssets.png differ
diff --git a/fireboywatergirl2/assets/atlasses/GroundAssets.json b/fireboywatergirl2/assets/atlasses/GroundAssets.json
new file mode 100644
index 00000000..3ed6f9b2
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/GroundAssets.json
@@ -0,0 +1,2755 @@
+{"frames": [
+
+{
+ "filename": "BeamDust0000",
+ "frame": {"x":0,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0001",
+ "frame": {"x":58,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0002",
+ "frame": {"x":116,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0003",
+ "frame": {"x":174,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0004",
+ "frame": {"x":232,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0005",
+ "frame": {"x":290,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0006",
+ "frame": {"x":348,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0007",
+ "frame": {"x":406,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0008",
+ "frame": {"x":464,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0009",
+ "frame": {"x":522,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0010",
+ "frame": {"x":580,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0011",
+ "frame": {"x":638,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0012",
+ "frame": {"x":696,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0013",
+ "frame": {"x":754,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0014",
+ "frame": {"x":812,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0015",
+ "frame": {"x":870,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0016",
+ "frame": {"x":928,"y":0,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0017",
+ "frame": {"x":0,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0018",
+ "frame": {"x":58,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0019",
+ "frame": {"x":116,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0020",
+ "frame": {"x":174,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0021",
+ "frame": {"x":232,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0022",
+ "frame": {"x":290,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0023",
+ "frame": {"x":348,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0024",
+ "frame": {"x":406,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0025",
+ "frame": {"x":464,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0026",
+ "frame": {"x":522,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0027",
+ "frame": {"x":580,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0028",
+ "frame": {"x":638,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0029",
+ "frame": {"x":696,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0030",
+ "frame": {"x":754,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0031",
+ "frame": {"x":812,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0032",
+ "frame": {"x":870,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0033",
+ "frame": {"x":928,"y":57,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0034",
+ "frame": {"x":0,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0035",
+ "frame": {"x":58,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0036",
+ "frame": {"x":116,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0037",
+ "frame": {"x":174,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0038",
+ "frame": {"x":232,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0039",
+ "frame": {"x":290,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0040",
+ "frame": {"x":348,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0041",
+ "frame": {"x":406,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0042",
+ "frame": {"x":464,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0043",
+ "frame": {"x":522,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0044",
+ "frame": {"x":580,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0045",
+ "frame": {"x":638,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0046",
+ "frame": {"x":696,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0047",
+ "frame": {"x":754,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0048",
+ "frame": {"x":812,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0049",
+ "frame": {"x":870,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0050",
+ "frame": {"x":928,"y":114,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0051",
+ "frame": {"x":0,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0052",
+ "frame": {"x":58,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0053",
+ "frame": {"x":116,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0054",
+ "frame": {"x":174,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0055",
+ "frame": {"x":232,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0056",
+ "frame": {"x":290,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0057",
+ "frame": {"x":348,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0058",
+ "frame": {"x":406,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamDust0059",
+ "frame": {"x":464,"y":171,"w":54,"h":53},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":54,"h":53},
+ "sourceSize": {"w":54,"h":53}
+}
+,{
+ "filename": "BeamGradient0000",
+ "frame": {"x":522,"y":171,"w":10,"h":20},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":10,"h":20},
+ "sourceSize": {"w":10,"h":20}
+}
+,{
+ "filename": "BlackBox0000",
+ "frame": {"x":536,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0001",
+ "frame": {"x":590,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0002",
+ "frame": {"x":644,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0003",
+ "frame": {"x":698,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0004",
+ "frame": {"x":752,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0005",
+ "frame": {"x":806,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0006",
+ "frame": {"x":860,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0007",
+ "frame": {"x":914,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0008",
+ "frame": {"x":968,"y":171,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0009",
+ "frame": {"x":0,"y":228,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0010",
+ "frame": {"x":54,"y":228,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0011",
+ "frame": {"x":108,"y":228,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0012",
+ "frame": {"x":162,"y":228,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0013",
+ "frame": {"x":216,"y":228,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBox0014",
+ "frame": {"x":270,"y":228,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "BlackBoxLeft0000",
+ "frame": {"x":324,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0001",
+ "frame": {"x":378,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0002",
+ "frame": {"x":432,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0003",
+ "frame": {"x":486,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0004",
+ "frame": {"x":540,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0005",
+ "frame": {"x":594,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0006",
+ "frame": {"x":648,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0007",
+ "frame": {"x":702,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0008",
+ "frame": {"x":756,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0009",
+ "frame": {"x":810,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0010",
+ "frame": {"x":864,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0011",
+ "frame": {"x":918,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0012",
+ "frame": {"x":972,"y":228,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0013",
+ "frame": {"x":0,"y":282,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxLeft0014",
+ "frame": {"x":54,"y":282,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "BlackBoxRight0000",
+ "frame": {"x":108,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0001",
+ "frame": {"x":162,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0002",
+ "frame": {"x":216,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0003",
+ "frame": {"x":270,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0004",
+ "frame": {"x":324,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0005",
+ "frame": {"x":378,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0006",
+ "frame": {"x":432,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0007",
+ "frame": {"x":486,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0008",
+ "frame": {"x":540,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0009",
+ "frame": {"x":594,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0010",
+ "frame": {"x":648,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0011",
+ "frame": {"x":702,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0012",
+ "frame": {"x":756,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0013",
+ "frame": {"x":810,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "BlackBoxRight0014",
+ "frame": {"x":864,"y":282,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "DarkDisk0000",
+ "frame": {"x":0,"y":329,"w":301,"h":300},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":301,"h":300},
+ "sourceSize": {"w":301,"h":300}
+}
+,{
+ "filename": "Dust0000",
+ "frame": {"x":305,"y":329,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0001",
+ "frame": {"x":422,"y":329,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0002",
+ "frame": {"x":539,"y":329,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0003",
+ "frame": {"x":656,"y":329,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0004",
+ "frame": {"x":773,"y":329,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0005",
+ "frame": {"x":890,"y":329,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0006",
+ "frame": {"x":0,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0007",
+ "frame": {"x":117,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0008",
+ "frame": {"x":234,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0009",
+ "frame": {"x":351,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0010",
+ "frame": {"x":468,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0011",
+ "frame": {"x":585,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0012",
+ "frame": {"x":702,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0013",
+ "frame": {"x":819,"y":633,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0014",
+ "frame": {"x":0,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0015",
+ "frame": {"x":117,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0016",
+ "frame": {"x":234,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0017",
+ "frame": {"x":351,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0018",
+ "frame": {"x":468,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0019",
+ "frame": {"x":585,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0020",
+ "frame": {"x":702,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0021",
+ "frame": {"x":819,"y":736,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0022",
+ "frame": {"x":0,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0023",
+ "frame": {"x":117,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0024",
+ "frame": {"x":234,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0025",
+ "frame": {"x":351,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0026",
+ "frame": {"x":468,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0027",
+ "frame": {"x":585,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0028",
+ "frame": {"x":702,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0029",
+ "frame": {"x":819,"y":839,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0030",
+ "frame": {"x":0,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0031",
+ "frame": {"x":117,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0032",
+ "frame": {"x":234,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0033",
+ "frame": {"x":351,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0034",
+ "frame": {"x":468,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0035",
+ "frame": {"x":585,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0036",
+ "frame": {"x":702,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0037",
+ "frame": {"x":819,"y":942,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0038",
+ "frame": {"x":0,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0039",
+ "frame": {"x":117,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0040",
+ "frame": {"x":234,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0041",
+ "frame": {"x":351,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0042",
+ "frame": {"x":468,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0043",
+ "frame": {"x":585,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0044",
+ "frame": {"x":702,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0045",
+ "frame": {"x":819,"y":1045,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0046",
+ "frame": {"x":0,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0047",
+ "frame": {"x":117,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0048",
+ "frame": {"x":234,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0049",
+ "frame": {"x":351,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0050",
+ "frame": {"x":468,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0051",
+ "frame": {"x":585,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0052",
+ "frame": {"x":702,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0053",
+ "frame": {"x":819,"y":1148,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0054",
+ "frame": {"x":0,"y":1251,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0055",
+ "frame": {"x":117,"y":1251,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0056",
+ "frame": {"x":234,"y":1251,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0057",
+ "frame": {"x":351,"y":1251,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0058",
+ "frame": {"x":468,"y":1251,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "Dust0059",
+ "frame": {"x":585,"y":1251,"w":113,"h":99},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":99},
+ "sourceSize": {"w":113,"h":99}
+}
+,{
+ "filename": "FireBox0000",
+ "frame": {"x":702,"y":1251,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0001",
+ "frame": {"x":756,"y":1251,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0002",
+ "frame": {"x":810,"y":1251,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0003",
+ "frame": {"x":864,"y":1251,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0004",
+ "frame": {"x":918,"y":1251,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0005",
+ "frame": {"x":972,"y":1251,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0006",
+ "frame": {"x":0,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0007",
+ "frame": {"x":54,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0008",
+ "frame": {"x":108,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0009",
+ "frame": {"x":162,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0010",
+ "frame": {"x":216,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0011",
+ "frame": {"x":270,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0012",
+ "frame": {"x":324,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0013",
+ "frame": {"x":378,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBox0014",
+ "frame": {"x":432,"y":1354,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "FireBoxLeft0000",
+ "frame": {"x":486,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0001",
+ "frame": {"x":540,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0002",
+ "frame": {"x":594,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0003",
+ "frame": {"x":648,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0004",
+ "frame": {"x":702,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0005",
+ "frame": {"x":756,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0006",
+ "frame": {"x":810,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0007",
+ "frame": {"x":864,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0008",
+ "frame": {"x":918,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0009",
+ "frame": {"x":972,"y":1354,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0010",
+ "frame": {"x":0,"y":1408,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0011",
+ "frame": {"x":54,"y":1408,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0012",
+ "frame": {"x":108,"y":1408,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0013",
+ "frame": {"x":162,"y":1408,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxLeft0014",
+ "frame": {"x":216,"y":1408,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "FireBoxRight0000",
+ "frame": {"x":270,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0001",
+ "frame": {"x":324,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0002",
+ "frame": {"x":378,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0003",
+ "frame": {"x":432,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0004",
+ "frame": {"x":486,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0005",
+ "frame": {"x":540,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0006",
+ "frame": {"x":594,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0007",
+ "frame": {"x":648,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0008",
+ "frame": {"x":702,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0009",
+ "frame": {"x":756,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0010",
+ "frame": {"x":810,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0011",
+ "frame": {"x":864,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0012",
+ "frame": {"x":918,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0013",
+ "frame": {"x":972,"y":1408,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FireBoxRight0014",
+ "frame": {"x":0,"y":1456,"w":50,"h":44},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":44},
+ "sourceSize": {"w":50,"h":44}
+}
+,{
+ "filename": "FreezeEffect0000",
+ "frame": {"x":54,"y":1456,"w":98,"h":100},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":98,"h":100},
+ "sourceSize": {"w":98,"h":100}
+}
+,{
+ "filename": "GreenBox0000",
+ "frame": {"x":156,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0001",
+ "frame": {"x":210,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0002",
+ "frame": {"x":264,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0003",
+ "frame": {"x":318,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0004",
+ "frame": {"x":372,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0005",
+ "frame": {"x":426,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0006",
+ "frame": {"x":480,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0007",
+ "frame": {"x":534,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0008",
+ "frame": {"x":588,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0009",
+ "frame": {"x":642,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0010",
+ "frame": {"x":696,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0011",
+ "frame": {"x":750,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0012",
+ "frame": {"x":804,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0013",
+ "frame": {"x":858,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBox0014",
+ "frame": {"x":912,"y":1456,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "GreenBoxLeft0000",
+ "frame": {"x":966,"y":1456,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0001",
+ "frame": {"x":0,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0002",
+ "frame": {"x":54,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0003",
+ "frame": {"x":108,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0004",
+ "frame": {"x":162,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0005",
+ "frame": {"x":216,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0006",
+ "frame": {"x":270,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0007",
+ "frame": {"x":324,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0008",
+ "frame": {"x":378,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0009",
+ "frame": {"x":432,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0010",
+ "frame": {"x":486,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0011",
+ "frame": {"x":540,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0012",
+ "frame": {"x":594,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0013",
+ "frame": {"x":648,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxLeft0014",
+ "frame": {"x":702,"y":1560,"w":50,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":42},
+ "sourceSize": {"w":50,"h":42}
+}
+,{
+ "filename": "GreenBoxRight0000",
+ "frame": {"x":756,"y":1560,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0001",
+ "frame": {"x":810,"y":1560,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0002",
+ "frame": {"x":864,"y":1560,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0003",
+ "frame": {"x":918,"y":1560,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0004",
+ "frame": {"x":972,"y":1560,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0005",
+ "frame": {"x":0,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0006",
+ "frame": {"x":54,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0007",
+ "frame": {"x":108,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0008",
+ "frame": {"x":162,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0009",
+ "frame": {"x":216,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0010",
+ "frame": {"x":270,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0011",
+ "frame": {"x":324,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0012",
+ "frame": {"x":378,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0013",
+ "frame": {"x":432,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "GreenBoxRight0014",
+ "frame": {"x":486,"y":1607,"w":50,"h":43},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":43},
+ "sourceSize": {"w":50,"h":43}
+}
+,{
+ "filename": "IceBox0000",
+ "frame": {"x":540,"y":1607,"w":46,"h":46},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":46},
+ "sourceSize": {"w":46,"h":46}
+}
+,{
+ "filename": "IceBoxLeft0000",
+ "frame": {"x":590,"y":1607,"w":46,"h":46},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":46},
+ "sourceSize": {"w":46,"h":46}
+}
+,{
+ "filename": "IceBoxRight0000",
+ "frame": {"x":640,"y":1607,"w":46,"h":46},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":46},
+ "sourceSize": {"w":46,"h":46}
+}
+,{
+ "filename": "MaskBox00000",
+ "frame": {"x":690,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox00001",
+ "frame": {"x":728,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox00002",
+ "frame": {"x":766,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox00003",
+ "frame": {"x":804,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox10000",
+ "frame": {"x":842,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox20000",
+ "frame": {"x":880,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox30000",
+ "frame": {"x":918,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox40000",
+ "frame": {"x":956,"y":1607,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "MaskBox50000",
+ "frame": {"x":0,"y":1657,"w":35,"h":35},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":35,"h":35},
+ "sourceSize": {"w":35,"h":35}
+}
+,{
+ "filename": "MaskBox60000",
+ "frame": {"x":39,"y":1657,"w":35,"h":35},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":35,"h":35},
+ "sourceSize": {"w":35,"h":35}
+}
+,{
+ "filename": "MaskBox70000",
+ "frame": {"x":78,"y":1657,"w":35,"h":35},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":35,"h":35},
+ "sourceSize": {"w":35,"h":35}
+}
+,{
+ "filename": "MaskBox80000",
+ "frame": {"x":117,"y":1657,"w":36,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":36,"h":34},
+ "sourceSize": {"w":36,"h":34}
+}
+,{
+ "filename": "MaskBox90000",
+ "frame": {"x":157,"y":1657,"w":35,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":35,"h":34},
+ "sourceSize": {"w":35,"h":34}
+}
+,{
+ "filename": "SnowFlat0000",
+ "frame": {"x":196,"y":1657,"w":60,"h":60},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":60,"h":60},
+ "sourceSize": {"w":60,"h":60}
+}
+,{
+ "filename": "SnowSlope0000",
+ "frame": {"x":260,"y":1657,"w":50,"h":51},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":51},
+ "sourceSize": {"w":50,"h":51}
+}
+,{
+ "filename": "SnowSlope0001",
+ "frame": {"x":314,"y":1657,"w":50,"h":51},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":51},
+ "sourceSize": {"w":50,"h":51}
+}
+,{
+ "filename": "WaterBox0000",
+ "frame": {"x":368,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0001",
+ "frame": {"x":418,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0002",
+ "frame": {"x":468,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0003",
+ "frame": {"x":518,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0004",
+ "frame": {"x":568,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0005",
+ "frame": {"x":618,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0006",
+ "frame": {"x":668,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0007",
+ "frame": {"x":718,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0008",
+ "frame": {"x":768,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0009",
+ "frame": {"x":818,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0010",
+ "frame": {"x":868,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0011",
+ "frame": {"x":918,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0012",
+ "frame": {"x":968,"y":1657,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0013",
+ "frame": {"x":0,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBox0014",
+ "frame": {"x":50,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0000",
+ "frame": {"x":100,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0001",
+ "frame": {"x":150,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0002",
+ "frame": {"x":200,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0003",
+ "frame": {"x":250,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0004",
+ "frame": {"x":300,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0005",
+ "frame": {"x":350,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0006",
+ "frame": {"x":400,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0007",
+ "frame": {"x":450,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0008",
+ "frame": {"x":500,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0009",
+ "frame": {"x":550,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0010",
+ "frame": {"x":600,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0011",
+ "frame": {"x":650,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0012",
+ "frame": {"x":700,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0013",
+ "frame": {"x":750,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxLeft0014",
+ "frame": {"x":800,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0000",
+ "frame": {"x":850,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0001",
+ "frame": {"x":900,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0002",
+ "frame": {"x":950,"y":1721,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0003",
+ "frame": {"x":0,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0004",
+ "frame": {"x":50,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0005",
+ "frame": {"x":100,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0006",
+ "frame": {"x":150,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0007",
+ "frame": {"x":200,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0008",
+ "frame": {"x":250,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0009",
+ "frame": {"x":300,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0010",
+ "frame": {"x":350,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0011",
+ "frame": {"x":400,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0012",
+ "frame": {"x":450,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0013",
+ "frame": {"x":500,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "WaterBoxRight0014",
+ "frame": {"x":550,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "_default0000",
+ "frame": {"x":600,"y":1772,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "frost0000",
+ "frame": {"x":638,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0001",
+ "frame": {"x":688,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0002",
+ "frame": {"x":738,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0003",
+ "frame": {"x":788,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0004",
+ "frame": {"x":838,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0005",
+ "frame": {"x":888,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0006",
+ "frame": {"x":938,"y":1772,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0007",
+ "frame": {"x":0,"y":1823,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0008",
+ "frame": {"x":50,"y":1823,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "frost0009",
+ "frame": {"x":100,"y":1823,"w":46,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":47},
+ "sourceSize": {"w":46,"h":47}
+}
+,{
+ "filename": "vapor0000",
+ "frame": {"x":150,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0001",
+ "frame": {"x":235,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0002",
+ "frame": {"x":320,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0003",
+ "frame": {"x":405,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0004",
+ "frame": {"x":490,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0005",
+ "frame": {"x":575,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0006",
+ "frame": {"x":660,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0007",
+ "frame": {"x":745,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0008",
+ "frame": {"x":830,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}
+,{
+ "filename": "vapor0009",
+ "frame": {"x":915,"y":1823,"w":81,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":81,"h":86},
+ "sourceSize": {"w":81,"h":86}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "GroundAssets.png",
+ "format": "RGBA8888",
+ "size": {"w":1024,"h":2048},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/GroundAssets.png b/fireboywatergirl2/assets/atlasses/GroundAssets.png
new file mode 100644
index 00000000..cfe894e9
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/GroundAssets.png differ
diff --git a/fireboywatergirl2/assets/atlasses/MechAssets.json b/fireboywatergirl2/assets/atlasses/MechAssets.json
new file mode 100644
index 00000000..b29d99ce
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/MechAssets.json
@@ -0,0 +1,1315 @@
+{"frames": [
+
+{
+ "filename": "BackgroundCover0000",
+ "frame": {"x":0,"y":0,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32}
+}
+,{
+ "filename": "BarCapLeft0000",
+ "frame": {"x":1696,"y":0,"w":46,"h":48},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":48},
+ "sourceSize": {"w":46,"h":48}
+}
+,{
+ "filename": "BarCapRight0000",
+ "frame": {"x":1746,"y":0,"w":48,"h":46},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":48,"h":46},
+ "sourceSize": {"w":48,"h":46}
+}
+,{
+ "filename": "BarCenter0000",
+ "frame": {"x":1798,"y":0,"w":108,"h":48},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":48},
+ "sourceSize": {"w":108,"h":48}
+}
+,{
+ "filename": "BoxMirror0000",
+ "frame": {"x":764,"y":0,"w":68,"h":69},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":68,"h":69},
+ "sourceSize": {"w":68,"h":69}
+}
+,{
+ "filename": "SliderDot0000",
+ "frame": {"x":1433,"y":1058,"w":33,"h":33},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":33,"h":33},
+ "sourceSize": {"w":33,"h":33}
+}
+,{
+ "filename": "SliderTrack0000",
+ "frame": {"x":1470,"y":1058,"w":218,"h":19},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":218,"h":19},
+ "sourceSize": {"w":218,"h":19}
+}
+,{
+ "filename": "WindowCenter0000",
+ "frame": {"x":264,"y":1802,"w":108,"h":46},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":46},
+ "sourceSize": {"w":108,"h":46}
+}
+,{
+ "filename": "WindowLeft0000",
+ "frame": {"x":376,"y":1802,"w":46,"h":48},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":48},
+ "sourceSize": {"w":46,"h":48}
+}
+,{
+ "filename": "WindowRight0000",
+ "frame": {"x":426,"y":1802,"w":46,"h":46},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":46},
+ "sourceSize": {"w":46,"h":46}
+}
+,{
+ "filename": "_default0000",
+ "frame": {"x":836,"y":0,"w":34,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":34,"h":34},
+ "sourceSize": {"w":34,"h":34}
+}
+,{
+ "filename": "ball0000",
+ "frame": {"x":36,"y":0,"w":40,"h":40},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":40,"h":40},
+ "sourceSize": {"w":40,"h":40}
+}
+,{
+ "filename": "beamer0000",
+ "frame": {"x":422,"y":0,"w":110,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":110},
+ "sourceSize": {"w":110,"h":110}
+}
+,{
+ "filename": "beamer_light_off0000",
+ "frame": {"x":536,"y":0,"w":110,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":110},
+ "sourceSize": {"w":110,"h":110}
+}
+,{
+ "filename": "beamer_light_on0000",
+ "frame": {"x":650,"y":0,"w":110,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":110},
+ "sourceSize": {"w":110,"h":110}
+}
+,{
+ "filename": "hanging_anchor0000",
+ "frame": {"x":389,"y":860,"w":38,"h":35},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":38,"h":35},
+ "sourceSize": {"w":38,"h":35}
+}
+,{
+ "filename": "hanging_base0000",
+ "frame": {"x":431,"y":860,"w":32,"h":28},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":28},
+ "sourceSize": {"w":32,"h":28}
+}
+,{
+ "filename": "hanging_platform0000",
+ "frame": {"x":467,"y":860,"w":142,"h":22},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":142,"h":22},
+ "sourceSize": {"w":142,"h":22}
+}
+,{
+ "filename": "infinitemirror0000",
+ "frame": {"x":125,"y":1058,"w":130,"h":130},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":130},
+ "sourceSize": {"w":130,"h":130}
+}
+,{
+ "filename": "infinitemirror_light_off0000",
+ "frame": {"x":259,"y":1058,"w":250,"h":250},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":250,"h":250},
+ "sourceSize": {"w":250,"h":250}
+}
+,{
+ "filename": "lever_base0000",
+ "frame": {"x":874,"y":0,"w":110,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":110},
+ "sourceSize": {"w":110,"h":110}
+}
+,{
+ "filename": "lever_base_light_off0000",
+ "frame": {"x":988,"y":0,"w":108,"h":108},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":108},
+ "sourceSize": {"w":108,"h":108}
+}
+,{
+ "filename": "lever_base_light_on0000",
+ "frame": {"x":1100,"y":0,"w":108,"h":108},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":108},
+ "sourceSize": {"w":108,"h":108}
+}
+,{
+ "filename": "lever_stick0000",
+ "frame": {"x":1212,"y":0,"w":108,"h":108},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":108},
+ "sourceSize": {"w":108,"h":108}
+}
+,{
+ "filename": "lever_stick_light_off0000",
+ "frame": {"x":1324,"y":0,"w":108,"h":108},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":108},
+ "sourceSize": {"w":108,"h":108}
+}
+,{
+ "filename": "lever_stick_light_on0000",
+ "frame": {"x":1436,"y":0,"w":106,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":106,"h":164},
+ "sourceSize": {"w":106,"h":164}
+}
+,{
+ "filename": "lightpusher_base0000",
+ "frame": {"x":80,"y":0,"w":110,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":110},
+ "sourceSize": {"w":110,"h":110}
+}
+,{
+ "filename": "lightpusher_light_off0000",
+ "frame": {"x":194,"y":0,"w":110,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":110},
+ "sourceSize": {"w":110,"h":110}
+}
+,{
+ "filename": "lightpusher_light_on0000",
+ "frame": {"x":308,"y":0,"w":110,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":110},
+ "sourceSize": {"w":110,"h":110}
+}
+,{
+ "filename": "moving_platform_light_off0000",
+ "frame": {"x":1910,"y":0,"w":138,"h":26},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":138,"h":26},
+ "sourceSize": {"w":138,"h":26}
+}
+,{
+ "filename": "moving_platform_light_on0000",
+ "frame": {"x":0,"y":168,"w":142,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":142,"h":34},
+ "sourceSize": {"w":142,"h":34}
+}
+,{
+ "filename": "movingbox0000",
+ "frame": {"x":1546,"y":0,"w":74,"h":76},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":74,"h":76},
+ "sourceSize": {"w":74,"h":76}
+}
+,{
+ "filename": "movingbox20000",
+ "frame": {"x":1624,"y":0,"w":68,"h":69},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":68,"h":69},
+ "sourceSize": {"w":68,"h":69}
+}
+,{
+ "filename": "portal0000",
+ "frame": {"x":146,"y":168,"w":82,"h":166},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":166},
+ "sourceSize": {"w":82,"h":166}
+}
+,{
+ "filename": "portal_center0000",
+ "frame": {"x":232,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0001",
+ "frame": {"x":318,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0002",
+ "frame": {"x":404,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0003",
+ "frame": {"x":490,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0004",
+ "frame": {"x":576,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0005",
+ "frame": {"x":662,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0006",
+ "frame": {"x":748,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0007",
+ "frame": {"x":834,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0008",
+ "frame": {"x":920,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0009",
+ "frame": {"x":1006,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0010",
+ "frame": {"x":1092,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0011",
+ "frame": {"x":1178,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0012",
+ "frame": {"x":1264,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0013",
+ "frame": {"x":1350,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0014",
+ "frame": {"x":1436,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0015",
+ "frame": {"x":1522,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0016",
+ "frame": {"x":1608,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0017",
+ "frame": {"x":1694,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0018",
+ "frame": {"x":1780,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0019",
+ "frame": {"x":1866,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0020",
+ "frame": {"x":1952,"y":168,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0021",
+ "frame": {"x":0,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0022",
+ "frame": {"x":86,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0023",
+ "frame": {"x":172,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0024",
+ "frame": {"x":258,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0025",
+ "frame": {"x":344,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0026",
+ "frame": {"x":430,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0027",
+ "frame": {"x":516,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0028",
+ "frame": {"x":602,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0029",
+ "frame": {"x":688,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0030",
+ "frame": {"x":774,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0031",
+ "frame": {"x":860,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0032",
+ "frame": {"x":946,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0033",
+ "frame": {"x":1032,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0034",
+ "frame": {"x":1118,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0035",
+ "frame": {"x":1204,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0036",
+ "frame": {"x":1290,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0037",
+ "frame": {"x":1376,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0038",
+ "frame": {"x":1462,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_center0039",
+ "frame": {"x":1548,"y":338,"w":82,"h":164},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":164},
+ "sourceSize": {"w":82,"h":164}
+}
+,{
+ "filename": "portal_glow0000",
+ "frame": {"x":1634,"y":338,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0001",
+ "frame": {"x":1790,"y":338,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0002",
+ "frame": {"x":0,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0003",
+ "frame": {"x":156,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0004",
+ "frame": {"x":312,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0005",
+ "frame": {"x":468,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0006",
+ "frame": {"x":624,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0007",
+ "frame": {"x":780,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0008",
+ "frame": {"x":936,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0009",
+ "frame": {"x":1092,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0010",
+ "frame": {"x":1248,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0011",
+ "frame": {"x":1404,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0012",
+ "frame": {"x":1560,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0013",
+ "frame": {"x":1716,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0014",
+ "frame": {"x":1872,"y":512,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0015",
+ "frame": {"x":0,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0016",
+ "frame": {"x":156,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0017",
+ "frame": {"x":312,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0018",
+ "frame": {"x":468,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0019",
+ "frame": {"x":624,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0020",
+ "frame": {"x":780,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0021",
+ "frame": {"x":936,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0022",
+ "frame": {"x":1092,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0023",
+ "frame": {"x":1248,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0024",
+ "frame": {"x":1404,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0025",
+ "frame": {"x":1560,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0026",
+ "frame": {"x":1716,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0027",
+ "frame": {"x":1872,"y":686,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0028",
+ "frame": {"x":0,"y":860,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_glow0029",
+ "frame": {"x":156,"y":860,"w":152,"h":170},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":152,"h":170},
+ "sourceSize": {"w":152,"h":170}
+}
+,{
+ "filename": "portal_light_off0000",
+ "frame": {"x":312,"y":860,"w":29,"h":187},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":29,"h":187},
+ "sourceSize": {"w":29,"h":187}
+}
+,{
+ "filename": "portal_light_on0000",
+ "frame": {"x":345,"y":860,"w":40,"h":194},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":40,"h":194},
+ "sourceSize": {"w":40,"h":194}
+}
+,{
+ "filename": "pulley_anchor0000",
+ "frame": {"x":613,"y":860,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "pulley_base0000",
+ "frame": {"x":667,"y":860,"w":104,"h":158},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":158},
+ "sourceSize": {"w":104,"h":158}
+}
+,{
+ "filename": "pulley_platform0000",
+ "frame": {"x":775,"y":860,"w":102,"h":22},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":22},
+ "sourceSize": {"w":102,"h":22}
+}
+,{
+ "filename": "pulley_rope0000",
+ "frame": {"x":881,"y":860,"w":82,"h":19},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":82,"h":19},
+ "sourceSize": {"w":82,"h":19}
+}
+,{
+ "filename": "pusher_block0000",
+ "frame": {"x":967,"y":860,"w":110,"h":86},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":86},
+ "sourceSize": {"w":110,"h":86}
+}
+,{
+ "filename": "pusher_block_light0000",
+ "frame": {"x":1081,"y":860,"w":64,"h":62},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":64,"h":62},
+ "sourceSize": {"w":64,"h":62}
+}
+,{
+ "filename": "pusher_block_silver0000",
+ "frame": {"x":1149,"y":860,"w":110,"h":87},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":110,"h":87},
+ "sourceSize": {"w":110,"h":87}
+}
+,{
+ "filename": "roman_bar0000",
+ "frame": {"x":1753,"y":860,"w":116,"h":30},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":116,"h":30},
+ "sourceSize": {"w":116,"h":30}
+}
+,{
+ "filename": "roman_base0000",
+ "frame": {"x":1873,"y":860,"w":138,"h":194},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":138,"h":194},
+ "sourceSize": {"w":138,"h":194}
+}
+,{
+ "filename": "roman_center0000",
+ "frame": {"x":0,"y":1058,"w":44,"h":42},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":44,"h":42},
+ "sourceSize": {"w":44,"h":42}
+}
+,{
+ "filename": "roman_end0000",
+ "frame": {"x":48,"y":1058,"w":73,"h":30},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":73,"h":30},
+ "sourceSize": {"w":73,"h":30}
+}
+,{
+ "filename": "rotmirror0000",
+ "frame": {"x":513,"y":1058,"w":250,"h":250},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":250,"h":250},
+ "sourceSize": {"w":250,"h":250}
+}
+,{
+ "filename": "rotmirror_circle0000",
+ "frame": {"x":767,"y":1058,"w":154,"h":154},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":154,"h":154},
+ "sourceSize": {"w":154,"h":154}
+}
+,{
+ "filename": "rotmirror_light_off0000",
+ "frame": {"x":925,"y":1058,"w":250,"h":250},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":250,"h":250},
+ "sourceSize": {"w":250,"h":250}
+}
+,{
+ "filename": "rotmirror_light_on0000",
+ "frame": {"x":1179,"y":1058,"w":250,"h":250},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":250,"h":250},
+ "sourceSize": {"w":250,"h":250}
+}
+,{
+ "filename": "slider_light_off0000",
+ "frame": {"x":1692,"y":1058,"w":20,"h":20},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":20,"h":20},
+ "sourceSize": {"w":20,"h":20}
+}
+,{
+ "filename": "slider_light_on0000",
+ "frame": {"x":1716,"y":1058,"w":55,"h":57},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":55,"h":57},
+ "sourceSize": {"w":55,"h":57}
+}
+,{
+ "filename": "timed_pusher_base0000",
+ "frame": {"x":1263,"y":860,"w":124,"h":152},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":124,"h":152},
+ "sourceSize": {"w":124,"h":152}
+}
+,{
+ "filename": "timed_pusher_base_old0000",
+ "frame": {"x":1391,"y":860,"w":124,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":124,"h":124},
+ "sourceSize": {"w":124,"h":124}
+}
+,{
+ "filename": "timed_pusher_light_off0000",
+ "frame": {"x":1519,"y":860,"w":108,"h":108},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":108},
+ "sourceSize": {"w":108,"h":108}
+}
+,{
+ "filename": "timed_pusher_light_on0000",
+ "frame": {"x":1631,"y":860,"w":118,"h":148},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":148},
+ "sourceSize": {"w":118,"h":148}
+}
+,{
+ "filename": "wind_base0000",
+ "frame": {"x":1775,"y":1058,"w":118,"h":80},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":80},
+ "sourceSize": {"w":118,"h":80}
+}
+,{
+ "filename": "wind_base0001",
+ "frame": {"x":1897,"y":1058,"w":118,"h":80},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":80},
+ "sourceSize": {"w":118,"h":80}
+}
+,{
+ "filename": "wind_base0002",
+ "frame": {"x":0,"y":1312,"w":118,"h":80},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":80},
+ "sourceSize": {"w":118,"h":80}
+}
+,{
+ "filename": "wind_base0003",
+ "frame": {"x":122,"y":1312,"w":118,"h":80},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":80},
+ "sourceSize": {"w":118,"h":80}
+}
+,{
+ "filename": "wind_base_light_off0000",
+ "frame": {"x":244,"y":1312,"w":32,"h":34},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":34},
+ "sourceSize": {"w":32,"h":34}
+}
+,{
+ "filename": "wind_base_light_on0000",
+ "frame": {"x":280,"y":1312,"w":46,"h":48},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":46,"h":48},
+ "sourceSize": {"w":46,"h":48}
+}
+,{
+ "filename": "wind_effect0000",
+ "frame": {"x":330,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0001",
+ "frame": {"x":462,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0002",
+ "frame": {"x":594,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0003",
+ "frame": {"x":726,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0004",
+ "frame": {"x":858,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0005",
+ "frame": {"x":990,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0006",
+ "frame": {"x":1122,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0007",
+ "frame": {"x":1254,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0008",
+ "frame": {"x":1386,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0009",
+ "frame": {"x":1518,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0010",
+ "frame": {"x":1650,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0011",
+ "frame": {"x":1782,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0012",
+ "frame": {"x":1914,"y":1312,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0013",
+ "frame": {"x":0,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0014",
+ "frame": {"x":132,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0015",
+ "frame": {"x":264,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0016",
+ "frame": {"x":396,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0017",
+ "frame": {"x":528,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0018",
+ "frame": {"x":660,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0019",
+ "frame": {"x":792,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0020",
+ "frame": {"x":924,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0021",
+ "frame": {"x":1056,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0022",
+ "frame": {"x":1188,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0023",
+ "frame": {"x":1320,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0024",
+ "frame": {"x":1452,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0025",
+ "frame": {"x":1584,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0026",
+ "frame": {"x":1716,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0027",
+ "frame": {"x":1848,"y":1557,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0028",
+ "frame": {"x":0,"y":1802,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}
+,{
+ "filename": "wind_effect0029",
+ "frame": {"x":132,"y":1802,"w":128,"h":241},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":241},
+ "sourceSize": {"w":128,"h":241}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "MechAssets.png",
+ "format": "RGBA8888",
+ "size": {"w":2048,"h":2048},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/MechAssets.png b/fireboywatergirl2/assets/atlasses/MechAssets.png
new file mode 100644
index 00000000..ded17b3b
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/MechAssets.png differ
diff --git a/fireboywatergirl2/assets/atlasses/MenuAssets.json b/fireboywatergirl2/assets/atlasses/MenuAssets.json
new file mode 100644
index 00000000..c1507870
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/MenuAssets.json
@@ -0,0 +1,499 @@
+{"frames": [
+
+{
+ "filename": "AppStoreText0000",
+ "frame": {"x":246,"y":593,"w":279,"h":48},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":279,"h":48},
+ "sourceSize": {"w":279,"h":48}
+}
+,{
+ "filename": "BackButton0000",
+ "frame": {"x":928,"y":0,"w":79,"h":123},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":79,"h":123},
+ "sourceSize": {"w":79,"h":123}
+}
+,{
+ "filename": "BackButton0001",
+ "frame": {"x":928,"y":127,"w":79,"h":123},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":79,"h":123},
+ "sourceSize": {"w":79,"h":123}
+}
+,{
+ "filename": "BackButtonFull0000",
+ "frame": {"x":512,"y":0,"w":259,"h":98},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":259,"h":98},
+ "sourceSize": {"w":259,"h":98}
+}
+,{
+ "filename": "BackButtonFull0001",
+ "frame": {"x":512,"y":102,"w":259,"h":98},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":259,"h":98},
+ "sourceSize": {"w":259,"h":98}
+}
+,{
+ "filename": "Diamond0000",
+ "frame": {"x":907,"y":725,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "Diamond0001",
+ "frame": {"x":117,"y":749,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "Diamond0002",
+ "frame": {"x":0,"y":751,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "Diamond0003",
+ "frame": {"x":225,"y":758,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "DiamondDark0000",
+ "frame": {"x":475,"y":707,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "DiamondDark0001",
+ "frame": {"x":583,"y":725,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "DiamondDark0002",
+ "frame": {"x":691,"y":725,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "DiamondDark0003",
+ "frame": {"x":799,"y":725,"w":104,"h":104},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":104,"h":104},
+ "sourceSize": {"w":104,"h":104}
+}
+,{
+ "filename": "DiamondDark_Bkg_Mask0000",
+ "frame": {"x":845,"y":487,"w":120,"h":120},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":120,"h":120},
+ "sourceSize": {"w":120,"h":120}
+}
+,{
+ "filename": "DiamondPuzzle0000",
+ "frame": {"x":529,"y":593,"w":118,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":110},
+ "sourceSize": {"w":118,"h":110}
+}
+,{
+ "filename": "DiamondPuzzle0001",
+ "frame": {"x":651,"y":611,"w":118,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":110},
+ "sourceSize": {"w":118,"h":110}
+}
+,{
+ "filename": "DiamondPuzzle0002",
+ "frame": {"x":773,"y":611,"w":118,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":110},
+ "sourceSize": {"w":118,"h":110}
+}
+,{
+ "filename": "DiamondPuzzle0003",
+ "frame": {"x":895,"y":611,"w":118,"h":110},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":110},
+ "sourceSize": {"w":118,"h":110}
+}
+,{
+ "filename": "DiamondPuzzle_Bkg_Mask0000",
+ "frame": {"x":124,"y":514,"w":118,"h":118},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":118,"h":118},
+ "sourceSize": {"w":118,"h":118}
+}
+,{
+ "filename": "DiamondSpeed0000",
+ "frame": {"x":651,"y":833,"w":101,"h":101},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":101,"h":101},
+ "sourceSize": {"w":101,"h":101}
+}
+,{
+ "filename": "DiamondSpeed0001",
+ "frame": {"x":756,"y":833,"w":101,"h":101},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":101,"h":101},
+ "sourceSize": {"w":101,"h":101}
+}
+,{
+ "filename": "DiamondSpeed0002",
+ "frame": {"x":861,"y":833,"w":101,"h":101},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":101,"h":101},
+ "sourceSize": {"w":101,"h":101}
+}
+,{
+ "filename": "DiamondSpeed0003",
+ "frame": {"x":108,"y":857,"w":101,"h":101},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":101,"h":101},
+ "sourceSize": {"w":101,"h":101}
+}
+,{
+ "filename": "DiamondSpeed_Bkg_Mask0000",
+ "frame": {"x":0,"y":514,"w":120,"h":120},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":120,"h":120},
+ "sourceSize": {"w":120,"h":120}
+}
+,{
+ "filename": "Diamond_Bkg_Mask0000",
+ "frame": {"x":721,"y":487,"w":120,"h":120},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":120,"h":120},
+ "sourceSize": {"w":120,"h":120}
+}
+,{
+ "filename": "FxButton0000",
+ "frame": {"x":124,"y":636,"w":113,"h":109},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":109},
+ "sourceSize": {"w":113,"h":109}
+}
+,{
+ "filename": "FxButton0001",
+ "frame": {"x":0,"y":638,"w":113,"h":109},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":109},
+ "sourceSize": {"w":113,"h":109}
+}
+,{
+ "filename": "GoldLock0000",
+ "frame": {"x":0,"y":859,"w":91,"h":87},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":91,"h":87},
+ "sourceSize": {"w":91,"h":87}
+}
+,{
+ "filename": "Lock0000",
+ "frame": {"x":333,"y":864,"w":91,"h":87},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":91,"h":87},
+ "sourceSize": {"w":91,"h":87}
+}
+,{
+ "filename": "MusicButton0000",
+ "frame": {"x":241,"y":645,"w":113,"h":109},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":109},
+ "sourceSize": {"w":113,"h":109}
+}
+,{
+ "filename": "MusicButton0001",
+ "frame": {"x":358,"y":645,"w":113,"h":109},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":113,"h":109},
+ "sourceSize": {"w":113,"h":109}
+}
+,{
+ "filename": "MuteButton0000",
+ "frame": {"x":459,"y":121,"w":49,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":49,"h":47},
+ "sourceSize": {"w":49,"h":47}
+}
+,{
+ "filename": "MuteButton0001",
+ "frame": {"x":953,"y":368,"w":49,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":49,"h":47},
+ "sourceSize": {"w":49,"h":47}
+}
+,{
+ "filename": "Navy0000",
+ "frame": {"x":213,"y":866,"w":72,"h":69},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":72,"h":69},
+ "sourceSize": {"w":72,"h":69}
+}
+,{
+ "filename": "NewSign0000",
+ "frame": {"x":246,"y":514,"w":143,"h":56},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":143,"h":56},
+ "sourceSize": {"w":143,"h":56}
+}
+,{
+ "filename": "SettingsButton0000",
+ "frame": {"x":918,"y":262,"w":102,"h":102},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":102},
+ "sourceSize": {"w":102,"h":102}
+}
+,{
+ "filename": "SettingsButton0001",
+ "frame": {"x":333,"y":758,"w":102,"h":102},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":102},
+ "sourceSize": {"w":102,"h":102}
+}
+,{
+ "filename": "SettingsButton0002",
+ "frame": {"x":439,"y":815,"w":102,"h":102},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":102},
+ "sourceSize": {"w":102,"h":102}
+}
+,{
+ "filename": "SettingsButton0003",
+ "frame": {"x":545,"y":833,"w":102,"h":102},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":102,"h":102},
+ "sourceSize": {"w":102,"h":102}
+}
+,{
+ "filename": "StoneButton0000",
+ "frame": {"x":0,"y":0,"w":252,"h":117},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":252,"h":117},
+ "sourceSize": {"w":252,"h":117}
+}
+,{
+ "filename": "StoneButton0001",
+ "frame": {"x":256,"y":0,"w":252,"h":117},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":252,"h":117},
+ "sourceSize": {"w":252,"h":117}
+}
+,{
+ "filename": "ToggleControlButtonDual0000",
+ "frame": {"x":775,"y":0,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleControlButtonDual0001",
+ "frame": {"x":0,"y":121,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleControlButtonSingle0000",
+ "frame": {"x":153,"y":121,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleControlButtonSingle0001",
+ "frame": {"x":306,"y":121,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0000",
+ "frame": {"x":775,"y":131,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0001",
+ "frame": {"x":459,"y":204,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0002",
+ "frame": {"x":612,"y":204,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0003",
+ "frame": {"x":0,"y":252,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0004",
+ "frame": {"x":153,"y":252,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0005",
+ "frame": {"x":306,"y":252,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0006",
+ "frame": {"x":765,"y":262,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0007",
+ "frame": {"x":459,"y":335,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0008",
+ "frame": {"x":612,"y":335,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0009",
+ "frame": {"x":0,"y":383,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0010",
+ "frame": {"x":153,"y":383,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "ToggleSingleScreen0011",
+ "frame": {"x":306,"y":383,"w":149,"h":127},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":149,"h":127},
+ "sourceSize": {"w":149,"h":127}
+}
+,{
+ "filename": "UnlockButton0000",
+ "frame": {"x":765,"y":393,"w":184,"h":90},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":184,"h":90},
+ "sourceSize": {"w":184,"h":90}
+}
+,{
+ "filename": "VibrateButton0000",
+ "frame": {"x":459,"y":466,"w":127,"h":123},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":127,"h":123},
+ "sourceSize": {"w":127,"h":123}
+}
+,{
+ "filename": "VibrateButton0001",
+ "frame": {"x":590,"y":466,"w":127,"h":123},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":127,"h":123},
+ "sourceSize": {"w":127,"h":123}
+}
+,{
+ "filename": "_default0000",
+ "frame": {"x":953,"y":419,"w":32,"h":33},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":33},
+ "sourceSize": {"w":32,"h":33}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "MenuAssets.png",
+ "format": "RGBA8888",
+ "size": {"w":1024,"h":1024},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/MenuAssets.png b/fireboywatergirl2/assets/atlasses/MenuAssets.png
new file mode 100644
index 00000000..f9180bd8
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/MenuAssets.png differ
diff --git a/fireboywatergirl2/assets/atlasses/MenuBackgrounds.json b/fireboywatergirl2/assets/atlasses/MenuBackgrounds.json
new file mode 100644
index 00000000..bd1d28ca
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/MenuBackgrounds.json
@@ -0,0 +1,51 @@
+{"frames": [
+
+{
+ "filename": "HolderTexture0000",
+ "frame": {"x":0,"y":0,"w":256,"h":399},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":256,"h":399},
+ "sourceSize": {"w":256,"h":399}
+}
+,{
+ "filename": "Loading0000",
+ "frame": {"x":260,"y":0,"w":469,"h":103},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":469,"h":103},
+ "sourceSize": {"w":469,"h":103}
+}
+,{
+ "filename": "SimpleBackground0000",
+ "frame": {"x":733,"y":0,"w":256,"h":317},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":256,"h":317},
+ "sourceSize": {"w":256,"h":317}
+}
+,{
+ "filename": "SliderHolder0000",
+ "frame": {"x":0,"y":403,"w":800,"h":395},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":800,"h":395},
+ "sourceSize": {"w":800,"h":395}
+}
+,{
+ "filename": "_default0000",
+ "frame": {"x":804,"y":403,"w":32,"h":33},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":33},
+ "sourceSize": {"w":32,"h":33}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "MenuBackgrounds.png",
+ "format": "RGBA8888",
+ "size": {"w":1024,"h":1024},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/MenuBackgrounds.png b/fireboywatergirl2/assets/atlasses/MenuBackgrounds.png
new file mode 100644
index 00000000..bd61572f
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/MenuBackgrounds.png differ
diff --git a/fireboywatergirl2/assets/atlasses/PopupAssets.json b/fireboywatergirl2/assets/atlasses/PopupAssets.json
new file mode 100644
index 00000000..661d6ed2
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/PopupAssets.json
@@ -0,0 +1,899 @@
+{"frames": [
+
+{
+ "filename": "Clock0000",
+ "frame": {"x":0,"y":0,"w":218,"h":75},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":218,"h":75},
+ "sourceSize": {"w":218,"h":75}
+}
+,{
+ "filename": "Confetti0000",
+ "frame": {"x":222,"y":0,"w":30,"h":28},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":28},
+ "sourceSize": {"w":30,"h":28}
+}
+,{
+ "filename": "Confetti0001",
+ "frame": {"x":256,"y":0,"w":30,"h":28},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":28},
+ "sourceSize": {"w":30,"h":28}
+}
+,{
+ "filename": "Confetti0002",
+ "frame": {"x":290,"y":0,"w":30,"h":28},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":28},
+ "sourceSize": {"w":30,"h":28}
+}
+,{
+ "filename": "Confetti0003",
+ "frame": {"x":324,"y":0,"w":30,"h":28},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":30,"h":28},
+ "sourceSize": {"w":30,"h":28}
+}
+,{
+ "filename": "CrossIcon0000",
+ "frame": {"x":1122,"y":205,"w":61,"h":61},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":61,"h":61},
+ "sourceSize": {"w":61,"h":61}
+}
+,{
+ "filename": "CursorToggle0000",
+ "frame": {"x":358,"y":0,"w":196,"h":90},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":196,"h":90},
+ "sourceSize": {"w":196,"h":90}
+}
+,{
+ "filename": "DeviceItemRenderer0000",
+ "frame": {"x":558,"y":0,"w":554,"h":111},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":554,"h":111},
+ "sourceSize": {"w":554,"h":111}
+}
+,{
+ "filename": "DiamondsIcon0000",
+ "frame": {"x":1187,"y":205,"w":93,"h":73},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":93,"h":73},
+ "sourceSize": {"w":93,"h":73}
+}
+,{
+ "filename": "FingerRingJump0000",
+ "frame": {"x":1116,"y":0,"w":200,"h":201},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":200,"h":201},
+ "sourceSize": {"w":200,"h":201}
+}
+,{
+ "filename": "FingerRingLeft0000",
+ "frame": {"x":1320,"y":0,"w":200,"h":201},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":200,"h":201},
+ "sourceSize": {"w":200,"h":201}
+}
+,{
+ "filename": "FingerRingRight0000",
+ "frame": {"x":1524,"y":0,"w":200,"h":200},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":200,"h":200},
+ "sourceSize": {"w":200,"h":200}
+}
+,{
+ "filename": "FinishIcon0000",
+ "frame": {"x":1284,"y":205,"w":93,"h":107},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":93,"h":107},
+ "sourceSize": {"w":93,"h":107}
+}
+,{
+ "filename": "FinishStone0000",
+ "frame": {"x":1381,"y":205,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0001",
+ "frame": {"x":1513,"y":205,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0002",
+ "frame": {"x":1645,"y":205,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0003",
+ "frame": {"x":1777,"y":205,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0004",
+ "frame": {"x":1909,"y":205,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0005",
+ "frame": {"x":0,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0006",
+ "frame": {"x":132,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0007",
+ "frame": {"x":264,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0008",
+ "frame": {"x":396,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0009",
+ "frame": {"x":528,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0010",
+ "frame": {"x":660,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0011",
+ "frame": {"x":792,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0012",
+ "frame": {"x":924,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0013",
+ "frame": {"x":1056,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0014",
+ "frame": {"x":1188,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0015",
+ "frame": {"x":1320,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0016",
+ "frame": {"x":1452,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0017",
+ "frame": {"x":1584,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0018",
+ "frame": {"x":1716,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0019",
+ "frame": {"x":1848,"y":851,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0020",
+ "frame": {"x":0,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStone0021",
+ "frame": {"x":132,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0000",
+ "frame": {"x":264,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0001",
+ "frame": {"x":396,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0002",
+ "frame": {"x":528,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0003",
+ "frame": {"x":660,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0004",
+ "frame": {"x":792,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0005",
+ "frame": {"x":924,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0006",
+ "frame": {"x":1056,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0007",
+ "frame": {"x":1188,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0008",
+ "frame": {"x":1320,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0009",
+ "frame": {"x":1452,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0010",
+ "frame": {"x":1584,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0011",
+ "frame": {"x":1716,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0012",
+ "frame": {"x":1848,"y":983,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0013",
+ "frame": {"x":0,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0014",
+ "frame": {"x":132,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0015",
+ "frame": {"x":264,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0016",
+ "frame": {"x":396,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0017",
+ "frame": {"x":528,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0018",
+ "frame": {"x":660,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0019",
+ "frame": {"x":792,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0020",
+ "frame": {"x":924,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneDark0021",
+ "frame": {"x":1056,"y":1115,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStonePuzzle0000",
+ "frame": {"x":1188,"y":1115,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0001",
+ "frame": {"x":1326,"y":1115,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0002",
+ "frame": {"x":1464,"y":1115,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0003",
+ "frame": {"x":1602,"y":1115,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0004",
+ "frame": {"x":1740,"y":1115,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0005",
+ "frame": {"x":1878,"y":1115,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0006",
+ "frame": {"x":0,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0007",
+ "frame": {"x":138,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0008",
+ "frame": {"x":276,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0009",
+ "frame": {"x":414,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0010",
+ "frame": {"x":552,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0011",
+ "frame": {"x":690,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0012",
+ "frame": {"x":828,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0013",
+ "frame": {"x":966,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0014",
+ "frame": {"x":1104,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0015",
+ "frame": {"x":1242,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0016",
+ "frame": {"x":1380,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0017",
+ "frame": {"x":1518,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0018",
+ "frame": {"x":1656,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0019",
+ "frame": {"x":1794,"y":1247,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0020",
+ "frame": {"x":0,"y":1375,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStonePuzzle0021",
+ "frame": {"x":138,"y":1375,"w":134,"h":124},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":134,"h":124},
+ "sourceSize": {"w":134,"h":124}
+}
+,{
+ "filename": "FinishStoneSpeed0000",
+ "frame": {"x":276,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0001",
+ "frame": {"x":408,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0002",
+ "frame": {"x":540,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0003",
+ "frame": {"x":672,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0004",
+ "frame": {"x":804,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0005",
+ "frame": {"x":936,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0006",
+ "frame": {"x":1068,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0007",
+ "frame": {"x":1200,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0008",
+ "frame": {"x":1332,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0009",
+ "frame": {"x":1464,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0010",
+ "frame": {"x":1596,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0011",
+ "frame": {"x":1728,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0012",
+ "frame": {"x":1860,"y":1375,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0013",
+ "frame": {"x":0,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0014",
+ "frame": {"x":132,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0015",
+ "frame": {"x":264,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0016",
+ "frame": {"x":396,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0017",
+ "frame": {"x":528,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0018",
+ "frame": {"x":660,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0019",
+ "frame": {"x":792,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0020",
+ "frame": {"x":924,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "FinishStoneSpeed0021",
+ "frame": {"x":1056,"y":1507,"w":128,"h":128},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128},
+ "sourceSize": {"w":128,"h":128}
+}
+,{
+ "filename": "MuteButton0000",
+ "frame": {"x":1728,"y":0,"w":49,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":49,"h":47},
+ "sourceSize": {"w":49,"h":47}
+}
+,{
+ "filename": "MuteButton0001",
+ "frame": {"x":1781,"y":0,"w":49,"h":47},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":49,"h":47},
+ "sourceSize": {"w":49,"h":47}
+}
+,{
+ "filename": "PauseButton0000",
+ "frame": {"x":1834,"y":0,"w":48,"h":48},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48},
+ "sourceSize": {"w":48,"h":48}
+}
+,{
+ "filename": "PopupBackground0000",
+ "frame": {"x":0,"y":205,"w":1082,"h":642},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":1082,"h":642},
+ "sourceSize": {"w":1082,"h":642}
+}
+,{
+ "filename": "SilverIcon0000",
+ "frame": {"x":1188,"y":1507,"w":93,"h":73},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":93,"h":73},
+ "sourceSize": {"w":93,"h":73}
+}
+,{
+ "filename": "TickIcon0000",
+ "frame": {"x":1285,"y":1507,"w":69,"h":69},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":69,"h":69},
+ "sourceSize": {"w":69,"h":69}
+}
+,{
+ "filename": "TimeIcon0000",
+ "frame": {"x":1358,"y":1507,"w":93,"h":73},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":93,"h":73},
+ "sourceSize": {"w":93,"h":73}
+}
+,{
+ "filename": "_default0000",
+ "frame": {"x":1086,"y":205,"w":32,"h":33},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":33},
+ "sourceSize": {"w":32,"h":33}
+}
+,{
+ "filename": "popupArrow0000",
+ "frame": {"x":1455,"y":1507,"w":130,"h":92},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":92},
+ "sourceSize": {"w":130,"h":92}
+}
+,{
+ "filename": "popupArrow0001",
+ "frame": {"x":1589,"y":1507,"w":130,"h":92},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":130,"h":92},
+ "sourceSize": {"w":130,"h":92}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "PopupAssets.png",
+ "format": "RGBA8888",
+ "size": {"w":2048,"h":2048},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/PopupAssets.png b/fireboywatergirl2/assets/atlasses/PopupAssets.png
new file mode 100644
index 00000000..317f3b31
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/PopupAssets.png differ
diff --git a/fireboywatergirl2/assets/atlasses/PreloaderAssets.json b/fireboywatergirl2/assets/atlasses/PreloaderAssets.json
new file mode 100644
index 00000000..027b7ec9
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/PreloaderAssets.json
@@ -0,0 +1,35 @@
+{"frames": [
+
+{
+ "filename": "LoaderBar0000",
+ "frame": {"x":0,"y":0,"w":200,"h":20},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":200,"h":20},
+ "sourceSize": {"w":200,"h":20}
+}
+,{
+ "filename": "LoaderHolder0000",
+ "frame": {"x":204,"y":0,"w":222,"h":40},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":222,"h":40},
+ "sourceSize": {"w":222,"h":40}
+}
+,{
+ "filename": "LoaderTitle0000",
+ "frame": {"x":0,"y":44,"w":497,"h":73},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":497,"h":73},
+ "sourceSize": {"w":497,"h":73}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "PreloaderAssets.png",
+ "format": "RGBA8888",
+ "size": {"w":512,"h":128},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/PreloaderAssets.png b/fireboywatergirl2/assets/atlasses/PreloaderAssets.png
new file mode 100644
index 00000000..df1f02c5
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/PreloaderAssets.png differ
diff --git a/fireboywatergirl2/assets/atlasses/Temples/light/TempleAssets.json b/fireboywatergirl2/assets/atlasses/Temples/light/TempleAssets.json
new file mode 100644
index 00000000..ffd7e9a4
--- /dev/null
+++ b/fireboywatergirl2/assets/atlasses/Temples/light/TempleAssets.json
@@ -0,0 +1,499 @@
+{"frames": [
+
+{
+ "filename": "BackGround0000",
+ "frame": {"x":0,"y":516,"w":512,"h":512},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":512,"h":512},
+ "sourceSize": {"w":512,"h":512}
+}
+,{
+ "filename": "Clock0000",
+ "frame": {"x":0,"y":1032,"w":268,"h":100},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":268,"h":100},
+ "sourceSize": {"w":268,"h":100}
+}
+,{
+ "filename": "Diamond1_Bkg_Empty0000",
+ "frame": {"x":334,"y":1892,"w":108,"h":111},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":108,"h":111},
+ "sourceSize": {"w":108,"h":111}
+}
+,{
+ "filename": "FinishBoy0000",
+ "frame": {"x":776,"y":0,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0001",
+ "frame": {"x":776,"y":142,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0002",
+ "frame": {"x":776,"y":284,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0003",
+ "frame": {"x":776,"y":426,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0004",
+ "frame": {"x":776,"y":568,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0005",
+ "frame": {"x":776,"y":710,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0006",
+ "frame": {"x":776,"y":852,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0007",
+ "frame": {"x":776,"y":994,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0008",
+ "frame": {"x":272,"y":1032,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0009",
+ "frame": {"x":439,"y":1040,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0010",
+ "frame": {"x":606,"y":1040,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0011",
+ "frame": {"x":0,"y":1136,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0012",
+ "frame": {"x":773,"y":1136,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0013",
+ "frame": {"x":167,"y":1174,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0014",
+ "frame": {"x":334,"y":1182,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0015",
+ "frame": {"x":501,"y":1182,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0016",
+ "frame": {"x":0,"y":1278,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0017",
+ "frame": {"x":668,"y":1278,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0018",
+ "frame": {"x":835,"y":1278,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0019",
+ "frame": {"x":167,"y":1316,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0020",
+ "frame": {"x":334,"y":1324,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishBoy0021",
+ "frame": {"x":501,"y":1324,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0000",
+ "frame": {"x":0,"y":1420,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0001",
+ "frame": {"x":668,"y":1420,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0002",
+ "frame": {"x":835,"y":1420,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0003",
+ "frame": {"x":167,"y":1458,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0004",
+ "frame": {"x":334,"y":1466,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0005",
+ "frame": {"x":501,"y":1466,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0006",
+ "frame": {"x":0,"y":1562,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0007",
+ "frame": {"x":668,"y":1562,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0008",
+ "frame": {"x":835,"y":1562,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0009",
+ "frame": {"x":167,"y":1600,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0010",
+ "frame": {"x":334,"y":1608,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0011",
+ "frame": {"x":501,"y":1608,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0012",
+ "frame": {"x":0,"y":1704,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0013",
+ "frame": {"x":668,"y":1704,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0014",
+ "frame": {"x":835,"y":1704,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0015",
+ "frame": {"x":167,"y":1742,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0016",
+ "frame": {"x":334,"y":1750,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0017",
+ "frame": {"x":501,"y":1750,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0018",
+ "frame": {"x":0,"y":1846,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0019",
+ "frame": {"x":668,"y":1846,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0020",
+ "frame": {"x":835,"y":1846,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "FinishGirl0021",
+ "frame": {"x":167,"y":1884,"w":163,"h":138},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":163,"h":138},
+ "sourceSize": {"w":163,"h":138}
+}
+,{
+ "filename": "ForeGround0000",
+ "frame": {"x":516,"y":0,"w":256,"h":256},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":256,"h":256},
+ "sourceSize": {"w":256,"h":256}
+}
+,{
+ "filename": "Icon0000",
+ "frame": {"x":516,"y":260,"w":256,"h":256},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":256,"h":256},
+ "sourceSize": {"w":256,"h":256}
+}
+,{
+ "filename": "Icon0001",
+ "frame": {"x":516,"y":520,"w":256,"h":256},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":256,"h":256},
+ "sourceSize": {"w":256,"h":256}
+}
+,{
+ "filename": "Icon0002",
+ "frame": {"x":516,"y":780,"w":256,"h":256},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":256,"h":256},
+ "sourceSize": {"w":256,"h":256}
+}
+,{
+ "filename": "MenuBackground0000",
+ "frame": {"x":0,"y":0,"w":512,"h":512},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":512,"h":512},
+ "sourceSize": {"w":512,"h":512}
+}
+,{
+ "filename": "decor_A0000",
+ "frame": {"x":943,"y":182,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "decor_O_10000",
+ "frame": {"x":943,"y":236,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "decor_O_20000",
+ "frame": {"x":943,"y":290,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "decor_O_20001",
+ "frame": {"x":943,"y":344,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "decor_T_10000",
+ "frame": {"x":446,"y":1892,"w":88,"h":88},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":88,"h":88},
+ "sourceSize": {"w":88,"h":88}
+}
+,{
+ "filename": "decor_T_20000",
+ "frame": {"x":668,"y":1182,"w":88,"h":88},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":88,"h":88},
+ "sourceSize": {"w":88,"h":88}
+}
+,{
+ "filename": "decor_T_30000",
+ "frame": {"x":943,"y":0,"w":60,"h":60},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":60,"h":60},
+ "sourceSize": {"w":60,"h":60}
+}
+,{
+ "filename": "decor_V0000",
+ "frame": {"x":943,"y":128,"w":50,"h":50},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":50,"h":50},
+ "sourceSize": {"w":50,"h":50}
+}
+,{
+ "filename": "decor_X0000",
+ "frame": {"x":943,"y":64,"w":60,"h":60},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":60,"h":60},
+ "sourceSize": {"w":60,"h":60}
+}],
+"meta": {
+ "app": "Adobe Flash CS6",
+ "version": "12.0.0.481",
+ "image": "TempleAssets.png",
+ "format": "RGBA8888",
+ "size": {"w":1024,"h":2048},
+ "scale": "1"
+}
+}
diff --git a/fireboywatergirl2/assets/atlasses/Temples/light/TempleAssets.png b/fireboywatergirl2/assets/atlasses/Temples/light/TempleAssets.png
new file mode 100644
index 00000000..ef3cbe97
Binary files /dev/null and b/fireboywatergirl2/assets/atlasses/Temples/light/TempleAssets.png differ
diff --git a/fireboywatergirl2/assets/audio/CharToggle1.mp3 b/fireboywatergirl2/assets/audio/CharToggle1.mp3
new file mode 100644
index 00000000..8163ed56
Binary files /dev/null and b/fireboywatergirl2/assets/audio/CharToggle1.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/CharToggle2.mp3 b/fireboywatergirl2/assets/audio/CharToggle2.mp3
new file mode 100644
index 00000000..8ac7856d
Binary files /dev/null and b/fireboywatergirl2/assets/audio/CharToggle2.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Clock.mp3 b/fireboywatergirl2/assets/audio/Clock.mp3
new file mode 100644
index 00000000..66f4661e
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Clock.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Death.mp3 b/fireboywatergirl2/assets/audio/Death.mp3
new file mode 100644
index 00000000..206d21ad
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Death.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Diamond.mp3 b/fireboywatergirl2/assets/audio/Diamond.mp3
new file mode 100644
index 00000000..c61e773e
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Diamond.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Door.mp3 b/fireboywatergirl2/assets/audio/Door.mp3
new file mode 100644
index 00000000..6b3920ff
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Door.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/EndDiamond.mp3 b/fireboywatergirl2/assets/audio/EndDiamond.mp3
new file mode 100644
index 00000000..9c3f2d24
Binary files /dev/null and b/fireboywatergirl2/assets/audio/EndDiamond.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/EndFail.mp3 b/fireboywatergirl2/assets/audio/EndFail.mp3
new file mode 100644
index 00000000..9f5f2e23
Binary files /dev/null and b/fireboywatergirl2/assets/audio/EndFail.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/EndPass.mp3 b/fireboywatergirl2/assets/audio/EndPass.mp3
new file mode 100644
index 00000000..9f5f2e23
Binary files /dev/null and b/fireboywatergirl2/assets/audio/EndPass.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Freeze.mp3 b/fireboywatergirl2/assets/audio/Freeze.mp3
new file mode 100644
index 00000000..6b44e29f
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Freeze.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/IceSteps_fb.mp3 b/fireboywatergirl2/assets/audio/IceSteps_fb.mp3
new file mode 100644
index 00000000..fb52f101
Binary files /dev/null and b/fireboywatergirl2/assets/audio/IceSteps_fb.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/IceSteps_wg.mp3 b/fireboywatergirl2/assets/audio/IceSteps_wg.mp3
new file mode 100644
index 00000000..87a79f5d
Binary files /dev/null and b/fireboywatergirl2/assets/audio/IceSteps_wg.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Jump_fb.mp3 b/fireboywatergirl2/assets/audio/Jump_fb.mp3
new file mode 100644
index 00000000..a1f2a2c5
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Jump_fb.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Jump_wg.mp3 b/fireboywatergirl2/assets/audio/Jump_wg.mp3
new file mode 100644
index 00000000..5613337b
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Jump_wg.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/LevelMusic.mp3 b/fireboywatergirl2/assets/audio/LevelMusic.mp3
new file mode 100644
index 00000000..c2fb05b7
Binary files /dev/null and b/fireboywatergirl2/assets/audio/LevelMusic.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/LevelMusicFinish.mp3 b/fireboywatergirl2/assets/audio/LevelMusicFinish.mp3
new file mode 100644
index 00000000..2b5fb08c
Binary files /dev/null and b/fireboywatergirl2/assets/audio/LevelMusicFinish.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/LevelMusicFinish_speed.mp3 b/fireboywatergirl2/assets/audio/LevelMusicFinish_speed.mp3
new file mode 100644
index 00000000..74147f49
Binary files /dev/null and b/fireboywatergirl2/assets/audio/LevelMusicFinish_speed.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/LevelMusicOver.mp3 b/fireboywatergirl2/assets/audio/LevelMusicOver.mp3
new file mode 100644
index 00000000..67178821
Binary files /dev/null and b/fireboywatergirl2/assets/audio/LevelMusicOver.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/LevelMusic_dark.mp3 b/fireboywatergirl2/assets/audio/LevelMusic_dark.mp3
new file mode 100644
index 00000000..5d37bb2f
Binary files /dev/null and b/fireboywatergirl2/assets/audio/LevelMusic_dark.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/LevelMusic_speed.mp3 b/fireboywatergirl2/assets/audio/LevelMusic_speed.mp3
new file mode 100644
index 00000000..88091290
Binary files /dev/null and b/fireboywatergirl2/assets/audio/LevelMusic_speed.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Lever.mp3 b/fireboywatergirl2/assets/audio/Lever.mp3
new file mode 100644
index 00000000..76650254
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Lever.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/LightPusher.mp3 b/fireboywatergirl2/assets/audio/LightPusher.mp3
new file mode 100644
index 00000000..c85ba313
Binary files /dev/null and b/fireboywatergirl2/assets/audio/LightPusher.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Melt.mp3 b/fireboywatergirl2/assets/audio/Melt.mp3
new file mode 100644
index 00000000..33ac6f64
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Melt.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/MenuMusic.mp3 b/fireboywatergirl2/assets/audio/MenuMusic.mp3
new file mode 100644
index 00000000..a7987c77
Binary files /dev/null and b/fireboywatergirl2/assets/audio/MenuMusic.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Platform.mp3 b/fireboywatergirl2/assets/audio/Platform.mp3
new file mode 100644
index 00000000..535ff474
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Platform.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/PortalClose.mp3 b/fireboywatergirl2/assets/audio/PortalClose.mp3
new file mode 100644
index 00000000..d4f60b0f
Binary files /dev/null and b/fireboywatergirl2/assets/audio/PortalClose.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/PortalLoop.mp3 b/fireboywatergirl2/assets/audio/PortalLoop.mp3
new file mode 100644
index 00000000..3a8c26de
Binary files /dev/null and b/fireboywatergirl2/assets/audio/PortalLoop.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/PortalOpen.mp3 b/fireboywatergirl2/assets/audio/PortalOpen.mp3
new file mode 100644
index 00000000..cf9961f6
Binary files /dev/null and b/fireboywatergirl2/assets/audio/PortalOpen.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/PortalTransport.mp3 b/fireboywatergirl2/assets/audio/PortalTransport.mp3
new file mode 100644
index 00000000..5c18f42a
Binary files /dev/null and b/fireboywatergirl2/assets/audio/PortalTransport.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Pusher.mp3 b/fireboywatergirl2/assets/audio/Pusher.mp3
new file mode 100644
index 00000000..c7200f39
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Pusher.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Slider.mp3 b/fireboywatergirl2/assets/audio/Slider.mp3
new file mode 100644
index 00000000..81b03a70
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Slider.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/WaterSteps.mp3 b/fireboywatergirl2/assets/audio/WaterSteps.mp3
new file mode 100644
index 00000000..e82d56ae
Binary files /dev/null and b/fireboywatergirl2/assets/audio/WaterSteps.mp3 differ
diff --git a/fireboywatergirl2/assets/audio/Wind.mp3 b/fireboywatergirl2/assets/audio/Wind.mp3
new file mode 100644
index 00000000..84543b9f
Binary files /dev/null and b/fireboywatergirl2/assets/audio/Wind.mp3 differ
diff --git a/fireboywatergirl2/assets/fonts/fbwg_font_cyrillic.fnt b/fireboywatergirl2/assets/fonts/fbwg_font_cyrillic.fnt
new file mode 100644
index 00000000..142c3163
--- /dev/null
+++ b/fireboywatergirl2/assets/fonts/fbwg_font_cyrillic.fnt
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fireboywatergirl2/assets/fonts/fbwg_font_cyrillic.png b/fireboywatergirl2/assets/fonts/fbwg_font_cyrillic.png
new file mode 100644
index 00000000..15e54888
Binary files /dev/null and b/fireboywatergirl2/assets/fonts/fbwg_font_cyrillic.png differ
diff --git a/fireboywatergirl2/assets/fonts/font.fnt b/fireboywatergirl2/assets/fonts/font.fnt
new file mode 100644
index 00000000..0297157a
--- /dev/null
+++ b/fireboywatergirl2/assets/fonts/font.fnt
@@ -0,0 +1,446 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fireboywatergirl2/assets/fonts/font.png b/fireboywatergirl2/assets/fonts/font.png
new file mode 100644
index 00000000..597e9db9
Binary files /dev/null and b/fireboywatergirl2/assets/fonts/font.png differ
diff --git a/fireboywatergirl2/assets/images/Beam.png b/fireboywatergirl2/assets/images/Beam.png
new file mode 100644
index 00000000..1a2206ef
Binary files /dev/null and b/fireboywatergirl2/assets/images/Beam.png differ
diff --git a/fireboywatergirl2/assets/images/GameNameLight.png b/fireboywatergirl2/assets/images/GameNameLight.png
new file mode 100644
index 00000000..3084b2af
Binary files /dev/null and b/fireboywatergirl2/assets/images/GameNameLight.png differ
diff --git a/fireboywatergirl2/assets/images/TOASTER-MINI-new.png b/fireboywatergirl2/assets/images/TOASTER-MINI-new.png
new file mode 100644
index 00000000..3f7f79f4
Binary files /dev/null and b/fireboywatergirl2/assets/images/TOASTER-MINI-new.png differ
diff --git a/fireboywatergirl2/assets/images/TempleHallLight.jpg b/fireboywatergirl2/assets/images/TempleHallLight.jpg
new file mode 100644
index 00000000..6eaaff38
Binary files /dev/null and b/fireboywatergirl2/assets/images/TempleHallLight.jpg differ
diff --git a/fireboywatergirl2/assets/images/stores/android.png b/fireboywatergirl2/assets/images/stores/android.png
new file mode 100644
index 00000000..a9f30e48
Binary files /dev/null and b/fireboywatergirl2/assets/images/stores/android.png differ
diff --git a/fireboywatergirl2/assets/images/stores/ios.png b/fireboywatergirl2/assets/images/stores/ios.png
new file mode 100644
index 00000000..caf2845d
Binary files /dev/null and b/fireboywatergirl2/assets/images/stores/ios.png differ
diff --git a/fireboywatergirl2/assets/images/stores/microsoft.png b/fireboywatergirl2/assets/images/stores/microsoft.png
new file mode 100644
index 00000000..a345d334
Binary files /dev/null and b/fireboywatergirl2/assets/images/stores/microsoft.png differ
diff --git a/fireboywatergirl2/assets/images/stores/steam.png b/fireboywatergirl2/assets/images/stores/steam.png
new file mode 100644
index 00000000..b0c82317
Binary files /dev/null and b/fireboywatergirl2/assets/images/stores/steam.png differ
diff --git a/fireboywatergirl2/assets/json/contracted.json b/fireboywatergirl2/assets/json/contracted.json
new file mode 100644
index 00000000..b55f8e59
--- /dev/null
+++ b/fireboywatergirl2/assets/json/contracted.json
@@ -0,0 +1,48 @@
+[
+ "coolmathgames.com",
+ "games.co.uk",
+ "gamesgames.com",
+ "gioco.it",
+ "gry.pl",
+ "jetztspielen.de",
+ "jeux.fr",
+ "juegos.com",
+ "ojogos.com.br",
+ "ojogos.pt",
+ "ourgames.ru",
+ "permainan.co.id",
+ "spela.se",
+ "spelletjes.nl",
+ "flashgames.ru",
+ "games.co.id",
+ "giochi.it",
+ "jeu.fr",
+ "mousebreaker.com",
+ "spel.nl",
+ "spel.se",
+ "spielen.com",
+ "zapjuegos.com",
+ "girlsgogames.co.id",
+ "girlsgogames.co.uk",
+ "girlsgogames.com",
+ "girlsgogames.com.br",
+ "girlsgogames.de",
+ "girlsgogames.fr",
+ "girlsgogames.it",
+ "girlsgogames.nl",
+ "girlsgogames.pl",
+ "girlsgogames.ru",
+ "girlsgogames.se",
+ "juegosdechicas.com",
+ "a10.com",
+ "game-game.com.ua",
+ "sgames.org",
+ "yayoye.ru",
+ "bipgaming.com",
+ "multiplayergameserver.com",
+ "playcell.com",
+ "spiele.rtl2.de",
+ "rtl2spiele.de",
+ "msn.com",
+ "yiv.com"
+]
diff --git a/fireboywatergirl2/assets/json/domains.json b/fireboywatergirl2/assets/json/domains.json
new file mode 100644
index 00000000..92ed5e8e
--- /dev/null
+++ b/fireboywatergirl2/assets/json/domains.json
@@ -0,0 +1,137 @@
+{
+ "ac": " com gov mil net org ",
+ "ae": " ac co gov mil name net org pro sch ",
+ "af": " com edu gov net org ",
+ "al": " com edu gov mil net org ",
+ "ao": " co ed gv it og pb ",
+ "ar": " com edu gob gov int mil net org tur ",
+ "at": " ac co gv or ",
+ "au": " asn com csiro edu gov id net org ",
+ "ba": " co com edu gov mil net org rs unbi unmo unsa untz unze ",
+ "bb": " biz co com edu gov info net org store tv ",
+ "bh": " biz cc com edu gov info net org ",
+ "bn": " com edu gov net org ",
+ "bo": " com edu gob gov int mil net org tv ",
+ "br": " adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",
+ "bs": " com edu gov net org ",
+ "bz": " du et om ov rg ",
+ "ca": " ab bc mb nb nf nl ns nt nu on pe qc sk yk ",
+ "ck": " biz co edu gen gov info net org ",
+ "cn": " ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",
+ "co": " com edu gov mil net nom org ",
+ "com": " gcm-corp ",
+ "cr": " ac c co ed fi go or sa ",
+ "cy": " ac biz com ekloges gov ltd name net org parliament press pro tm ",
+ "do": " art com edu gob gov mil net org sld web ",
+ "dz": " art asso com edu gov net org pol ",
+ "ec": " com edu fin gov info med mil net org pro ",
+ "eg": " com edu eun gov mil name net org sci ",
+ "er": " com edu gov ind mil net org rochest w ",
+ "es": " com edu gob nom org ",
+ "et": " biz com edu gov info name net org ",
+ "fj": " ac biz com info mil name net org pro ",
+ "fk": " ac co gov net nom org ",
+ "fr": " asso com f gouv nom prd presse tm ",
+ "gg": " co net org ",
+ "gh": " com edu gov mil org ",
+ "gn": " ac com gov net org ",
+ "gr": " com edu gov mil net org ",
+ "gt": " com edu gob ind mil net org ",
+ "gu": " com edu gov net org ",
+ "hk": " com edu gov idv net org ",
+ "hu": " 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",
+ "id": " ac co go mil net or sch web ",
+ "il": " ac co gov idf k12 muni net org ",
+ "in": " ac co edu ernet firm gen gov i ind mil net nic org res ",
+ "iq": " com edu gov i mil net org ",
+ "ir": " ac co dnssec gov i id net org sch ",
+ "it": " edu gov ",
+ "je": " co net org ",
+ "jo": " com edu gov mil name net org sch ",
+ "jp": " ac ad co ed go gr lg ne or ",
+ "ke": " ac co go info me mobi ne or sc ",
+ "kh": " com edu gov mil net org per ",
+ "ki": " biz com de edu gov info mob net org tel ",
+ "km": " asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",
+ "kn": " edu gov net org ",
+ "kr": " ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",
+ "kw": " com edu gov net org ",
+ "ky": " com edu gov net org ",
+ "kz": " com edu gov mil net org ",
+ "lb": " com edu gov net org ",
+ "lk": " assn com edu gov grp hotel int ltd net ngo org sch soc web ",
+ "lr": " com edu gov net org ",
+ "lv": " asn com conf edu gov id mil net org ",
+ "ly": " com edu gov id med net org plc sch ",
+ "ma": " ac co gov m net org press ",
+ "mc": " asso tm ",
+ "me": " ac co edu gov its net org priv ",
+ "mg": " com edu gov mil nom org prd tm ",
+ "mk": " com edu gov inf name net org pro ",
+ "ml": " com edu gov net org presse ",
+ "mn": " edu gov org ",
+ "mo": " com edu gov net org ",
+ "mt": " com edu gov net org ",
+ "mv": " aero biz com coop edu gov info int mil museum name net org pro ",
+ "mw": " ac co com coop edu gov int museum net org ",
+ "mx": " com edu gob net org ",
+ "my": " com edu gov mil name net org sch ",
+ "nf": " arts com firm info net other per rec store web ",
+ "ng": " biz com edu gov mil mobi name net org sch ",
+ "ni": " ac co com edu gob mil net nom org ",
+ "np": " com edu gov mil net org ",
+ "nr": " biz com edu gov info net org ",
+ "om": " ac biz co com edu gov med mil museum net org pro sch ",
+ "pe": " com edu gob mil net nom org sld ",
+ "ph": " com edu gov i mil net ngo org ",
+ "pk": " biz com edu fam gob gok gon gop gos gov net org web ",
+ "pl": " art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",
+ "pr": " ac biz com edu est gov info isla name net org pro prof ",
+ "ps": " com edu gov net org plo sec ",
+ "pw": " belau co ed go ne or ",
+ "ro": " arts com firm info nom nt org rec store tm www ",
+ "rs": " ac co edu gov in org ",
+ "sb": " com edu gov net org ",
+ "sc": " com edu gov net org ",
+ "sh": " co com edu gov net nom org ",
+ "sl": " com edu gov net org ",
+ "st": " co com consulado edu embaixada gov mil net org principe saotome store ",
+ "sv": " com edu gob org red ",
+ "sz": " ac co org ",
+ "tr": " av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",
+ "tt": " aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",
+ "tw": " club com ebiz edu game gov idv mil net org ",
+ "mu": " ac co com gov net or org ",
+ "mz": " ac co edu gov org ",
+ "na": " co com ",
+ "nz": " ac co cri geek gen govt health iwi maori mil net org parliament school ",
+ "pa": " abo ac com edu gob ing med net nom org sld ",
+ "pt": " com edu gov int net nome org publ ",
+ "py": " com edu gov mil net org ",
+ "qa": " com edu gov mil net org ",
+ "re": " asso com nom ",
+ "ru": " ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",
+ "rw": " ac co com edu gouv gov int mil net ",
+ "sa": " com edu gov med net org pub sch ",
+ "sd": " com edu gov info med net org tv ",
+ "se": " a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",
+ "sg": " com edu gov idn net org per ",
+ "sn": " art com edu gouv org perso univ ",
+ "sy": " com edu gov mil net news org ",
+ "th": " ac co go in mi net or ",
+ "tj": " ac biz co com edu go gov info int mil name net nic org test web ",
+ "tn": " agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",
+ "tz": " ac co go ne or ",
+ "ua": " biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",
+ "ug": " ac co go ne or org sc ",
+ "uk": " ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",
+ "us": " dni fed isa kids nsn ",
+ "uy": " com edu gub mil net org ",
+ "ve": " co com edu gob info mil net org web ",
+ "vi": " co com k12 net org ",
+ "vn": " ac biz com edu gov health info int name net org pro ",
+ "ye": " co com gov ltd me net org plc ",
+ "yu": " ac co edu gov org ",
+ "za": " ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",
+ "zm": " ac co com edu gov net org sch "
+}
\ No newline at end of file
diff --git a/fireboywatergirl2/assets/json/internal.json b/fireboywatergirl2/assets/json/internal.json
new file mode 100644
index 00000000..2fd6bcef
--- /dev/null
+++ b/fireboywatergirl2/assets/json/internal.json
@@ -0,0 +1,67 @@
+[
+ "hellokids.com",
+ "yepi.com",
+ "spele.nl",
+ "funnygames.nl",
+ "oyungemisi.com",
+ "spele.be",
+ "spielspiele.de",
+ "acceptatie.gmbl.nl",
+ "Zigiz.com",
+ "Gembly.com",
+ "Keygames.com",
+ "Jouerjouer.com",
+ "Spiels.at",
+ "Spiels.ch",
+ "Hryhry.net",
+ "Pelaaleikkia.com",
+ "Waznygry.pl",
+ "Nyckelspel.se",
+ "Minigioco.it",
+ "1001igry.ru",
+ "Clavejuegos.com",
+ "Kilitoyun.com",
+ "Jogojogar.com",
+ "Starbie.co.uk",
+ "games.co.za",
+ "spelletjesoverzicht.nl",
+ "Cadajogo.com",
+ "CadaJogo.com.br",
+ "CadaJeugo.es",
+ "Funny-Games.co.uk",
+ "FunnyGames.at",
+ "FunnyGames.be",
+ "FunnyGames.biz",
+ "FunnyGames.ch",
+ "Funnygames.cn",
+ "FunnyGames.co.id",
+ "FunnyGames.com.br",
+ "FunnyGames.com.co",
+ "FunnyGames.com.mx",
+ "FunnyGames.com.tr",
+ "FunnyGames.dk",
+ "FunnyGames.es",
+ "FunnyGames.eu",
+ "FunnyGames.fi",
+ "FunnyGames.fr",
+ "FunnyGames.gr",
+ "FunnyGames.hu",
+ "FunnyGames.ie",
+ "FunnyGames.in",
+ "FunnyGames.ir",
+ "FunnyGames.it",
+ "FunnyGames.jp",
+ "FunnyGames.kr",
+ "FunnyGames.lt",
+ "FunnyGames.no",
+ "FunnyGames.org",
+ "FunnyGames.ph",
+ "FunnyGames.pk",
+ "FunnyGames.pl",
+ "FunnyGames.pt",
+ "FunnyGames.ro",
+ "FunnyGames.ru",
+ "FunnyGames.se",
+ "FunnyGames.us",
+ "bgames.com"
+]
diff --git a/fireboywatergirl2/assets/json/sitelock.json b/fireboywatergirl2/assets/json/sitelock.json
new file mode 100644
index 00000000..a7d817e3
--- /dev/null
+++ b/fireboywatergirl2/assets/json/sitelock.json
@@ -0,0 +1,50 @@
+{
+ "minijuegos": [
+ "miniplay.com",
+ "minijuegos.com",
+ "minijuegos.es",
+ "minijuegosgratis.com",
+ "minigiochi.com",
+ "minijogos.com.br",
+ "minijuegos.mx",
+ "minijuegos.com.mx"
+ ],
+ "kongregate": [
+ "kongregate.com"
+ ],
+ "newgrounds": [
+ "newgrounds.com"
+ ],
+ "admeen": [
+ "1001hry.cz",
+ "1001jeux.fr",
+ "1001jogos.pt",
+ "1001pelit.com",
+ "1001spiele.de",
+ "elkspel.nl",
+ "gamesxl.com",
+ "giochixl.it",
+ "grajteraz.pl",
+ "igrixl.ru",
+ "isladejuegos.es",
+ "jatekokxl.hu",
+ "paixnidiaxl.gr",
+ "spelo.se",
+ "spillespill.no",
+ "spilxl.dk",
+ "1001games.fr",
+ "1001giochi.it",
+ "1001spiele.at",
+ "gierkionline.pl",
+ "jetztspielen.ws",
+ "juegosjuegos.ws",
+ "speltuin.nl",
+ "1001games.co.uk",
+ "1001jogos.com.br",
+ "isladejuegos.co.ve",
+ "isladejuegos.com.ar",
+ "isladejuegos.com.co",
+ "isladejuegos.com.mx",
+ "isladejuegos.com.pe"
+ ]
+}
diff --git a/fireboywatergirl2/assets/json/special.json b/fireboywatergirl2/assets/json/special.json
new file mode 100644
index 00000000..be5a7a54
--- /dev/null
+++ b/fireboywatergirl2/assets/json/special.json
@@ -0,0 +1,61 @@
+[
+ "coolgames.com",
+ "stickgames.com",
+ "supergames.com",
+ "wordgames.com",
+ "girlgames.com",
+ "girlsocool.com",
+ "dressup.com",
+ "dressupgal.com",
+ "dressuppink.com",
+ "cookinggames.com",
+ "1001oyun.com",
+ "123paixnidia.gr",
+ "123pelit.com",
+ "12hry.cz",
+ "gamesfreak.net",
+ "gameskeren.com",
+ "grajwgry.pl",
+ "hrajhry.sk",
+ "jeuxjeuxjeux.ch",
+ "jeuxjeuxjeux.fr",
+ "joaca.ro",
+ "megajatek.hu",
+ "megaspel.se",
+ "moiteigri.com",
+ "paisdelosjuegos.cl",
+ "paisdelosjuegos.co.ve",
+ "paisdelosjuegos.com.ar",
+ "paisdelosjuegos.com.co",
+ "paisdelosjuegos.com.do",
+ "paisdelosjuegos.com.ec",
+ "paisdelosjuegos.com.mx",
+ "paisdelosjuegos.com.pe",
+ "paisdelosjuegos.com.uy",
+ "paisdelosjuegos.cr",
+ "paisdelosjuegos.es",
+ "poki.at",
+ "poki.be",
+ "poki.by",
+ "poki.cn",
+ "poki.co.il",
+ "poki.com",
+ "poki.com.br",
+ "poki.cz",
+ "poki.de",
+ "poki.dk",
+ "poki.gr",
+ "poki.it",
+ "poki.jp",
+ "poki.nl",
+ "poki.no",
+ "poki.pl",
+ "poki.pt",
+ "poki.ro",
+ "spielyeti.ch",
+ "spili.dk",
+ "spillegratis.com",
+ "superigri.ru",
+ "tocadosjogos.com",
+ "trochoi.net"
+]
diff --git a/fireboywatergirl2/assets/styles/main.css b/fireboywatergirl2/assets/styles/main.css
new file mode 100644
index 00000000..1f6681b2
--- /dev/null
+++ b/fireboywatergirl2/assets/styles/main.css
@@ -0,0 +1,7 @@
+/*body{
+ margin: 0px
+}*/
+
+body {
+ overflow: hidden;
+}
\ No newline at end of file
diff --git a/fireboywatergirl2/assets/tilemaps/tilesets/Chars.json b/fireboywatergirl2/assets/tilemaps/tilesets/Chars.json
new file mode 100644
index 00000000..6bfca1eb
--- /dev/null
+++ b/fireboywatergirl2/assets/tilemaps/tilesets/Chars.json
@@ -0,0 +1,117 @@
+{ "columns":8,
+ "image":"Chars.png",
+ "imageheight":64,
+ "imagewidth":512,
+ "margin":0,
+ "name":"Chars",
+ "spacing":0,
+ "tilecount":8,
+ "tileheight":64,
+ "tileproperties":
+ {
+ "0":
+ {
+ "char":"fb"
+ },
+ "1":
+ {
+ "char":"wg"
+ },
+ "2":
+ {
+ "char":"fb"
+ },
+ "3":
+ {
+ "char":"wg"
+ },
+ "4":
+ {
+ "char":"fb"
+ },
+ "5":
+ {
+ "char":"wg"
+ },
+ "6":
+ {
+ "char":"silver"
+ },
+ "7":
+ {
+ "char":"fbwg"
+ }
+ },
+ "tilepropertytypes":
+ {
+ "0":
+ {
+ "char":"string"
+ },
+ "1":
+ {
+ "char":"string"
+ },
+ "2":
+ {
+ "char":"string"
+ },
+ "3":
+ {
+ "char":"string"
+ },
+ "4":
+ {
+ "char":"string"
+ },
+ "5":
+ {
+ "char":"string"
+ },
+ "6":
+ {
+ "char":"string"
+ },
+ "7":
+ {
+ "char":"string"
+ }
+ },
+ "tiles":
+ {
+ "0":
+ {
+ "type":"char"
+ },
+ "1":
+ {
+ "type":"char"
+ },
+ "2":
+ {
+ "type":"door"
+ },
+ "3":
+ {
+ "type":"door"
+ },
+ "4":
+ {
+ "type":"diamond"
+ },
+ "5":
+ {
+ "type":"diamond"
+ },
+ "6":
+ {
+ "type":"diamond"
+ },
+ "7":
+ {
+ "type":"diamond"
+ }
+ },
+ "tilewidth":64,
+ "type":"tileset"
+}
\ No newline at end of file
diff --git a/fireboywatergirl2/assets/tilemaps/tilesets/Ground.json b/fireboywatergirl2/assets/tilemaps/tilesets/Ground.json
new file mode 100644
index 00000000..7c6b5946
--- /dev/null
+++ b/fireboywatergirl2/assets/tilemaps/tilesets/Ground.json
@@ -0,0 +1,201 @@
+{ "columns":15,
+ "image":"Ground.png",
+ "imageheight":32,
+ "imagewidth":480,
+ "margin":0,
+ "name":"Ground",
+ "spacing":0,
+ "tilecount":15,
+ "tileheight":32,
+ "tileproperties":
+ {
+ "0":
+ {
+ "type":0
+ },
+ "1":
+ {
+ "type":1
+ },
+ "10":
+ {
+ "type":-1
+ },
+ "11":
+ {
+ "type":11
+ },
+ "12":
+ {
+ "type":12
+ },
+ "13":
+ {
+ "type":10
+ },
+ "14":
+ {
+ "type":55
+ },
+ "2":
+ {
+ "type":2
+ },
+ "3":
+ {
+ "type":3
+ },
+ "4":
+ {
+ "type":4
+ },
+ "5":
+ {
+ "type":5
+ },
+ "6":
+ {
+ "type":6
+ },
+ "7":
+ {
+ "type":7
+ },
+ "8":
+ {
+ "type":8
+ },
+ "9":
+ {
+ "type":9
+ }
+ },
+ "tilepropertytypes":
+ {
+ "0":
+ {
+ "type":"int"
+ },
+ "1":
+ {
+ "type":"int"
+ },
+ "10":
+ {
+ "type":"int"
+ },
+ "11":
+ {
+ "type":"int"
+ },
+ "12":
+ {
+ "type":"int"
+ },
+ "13":
+ {
+ "type":"int"
+ },
+ "14":
+ {
+ "type":"int"
+ },
+ "2":
+ {
+ "type":"int"
+ },
+ "3":
+ {
+ "type":"int"
+ },
+ "4":
+ {
+ "type":"int"
+ },
+ "5":
+ {
+ "type":"int"
+ },
+ "6":
+ {
+ "type":"int"
+ },
+ "7":
+ {
+ "type":"int"
+ },
+ "8":
+ {
+ "type":"int"
+ },
+ "9":
+ {
+ "type":"int"
+ }
+ },
+ "tiles":
+ {
+ "0":
+ {
+ "type":"0"
+ },
+ "1":
+ {
+ "type":"1"
+ },
+ "10":
+ {
+ "type":"-1"
+ },
+ "11":
+ {
+ "type":"11"
+ },
+ "12":
+ {
+ "type":"12"
+ },
+ "13":
+ {
+ "type":"10"
+ },
+ "14":
+ {
+ "type":"55"
+ },
+ "2":
+ {
+ "type":"2"
+ },
+ "3":
+ {
+ "type":"3"
+ },
+ "4":
+ {
+ "type":"4"
+ },
+ "5":
+ {
+ "type":"5"
+ },
+ "6":
+ {
+ "type":"6"
+ },
+ "7":
+ {
+ "type":"7"
+ },
+ "8":
+ {
+ "type":"8"
+ },
+ "9":
+ {
+ "type":"9"
+ }
+ },
+ "tilewidth":32,
+ "type":"tileset"
+}
\ No newline at end of file
diff --git a/fireboywatergirl2/assets/tilemaps/tilesets/LargeObjects.json b/fireboywatergirl2/assets/tilemaps/tilesets/LargeObjects.json
new file mode 100644
index 00000000..4d67081a
--- /dev/null
+++ b/fireboywatergirl2/assets/tilemaps/tilesets/LargeObjects.json
@@ -0,0 +1,67 @@
+{ "columns":3,
+ "image":"LargeObjects.png",
+ "imageheight":96,
+ "imagewidth":192,
+ "margin":0,
+ "name":"LargeObjects",
+ "spacing":0,
+ "tilecount":3,
+ "tileheight":96,
+ "tileproperties":
+ {
+ "0":
+ {
+ "group":0,
+ "inverted":false,
+ "portalId":0
+ },
+ "1":
+ {
+ "group":0,
+ "inverted":true,
+ "portalId":0
+ },
+ "2":
+ {
+ "group":0,
+ "length":10
+ }
+ },
+ "tilepropertytypes":
+ {
+ "0":
+ {
+ "group":"int",
+ "inverted":"bool",
+ "portalId":"int"
+ },
+ "1":
+ {
+ "group":"int",
+ "inverted":"bool",
+ "portalId":"int"
+ },
+ "2":
+ {
+ "group":"int",
+ "length":"float"
+ }
+ },
+ "tiles":
+ {
+ "0":
+ {
+ "type":"portal"
+ },
+ "1":
+ {
+ "type":"portal"
+ },
+ "2":
+ {
+ "type":"wind"
+ }
+ },
+ "tilewidth":64,
+ "type":"tileset"
+}
\ No newline at end of file
diff --git a/fireboywatergirl2/assets/tilemaps/tilesets/Objects.json b/fireboywatergirl2/assets/tilemaps/tilesets/Objects.json
new file mode 100644
index 00000000..e95099f3
--- /dev/null
+++ b/fireboywatergirl2/assets/tilemaps/tilesets/Objects.json
@@ -0,0 +1,163 @@
+{ "columns":4,
+ "image":"Objects.png",
+ "imageheight":256,
+ "imagewidth":256,
+ "margin":0,
+ "name":"Objects",
+ "spacing":0,
+ "tilecount":16,
+ "tileheight":64,
+ "tileproperties":
+ {
+ "0":
+ {
+ "group":0
+ },
+ "1":
+ {
+ "group":0,
+ "onis":1,
+ "startPos":-1
+ },
+ "11":
+ {
+ "group":0
+ },
+ "14":
+ {
+ "group":0,
+ "time":2000
+ },
+ "15":
+ {
+ "group":0,
+ "length":10
+ },
+ "2":
+ {
+ "group":0,
+ "onis":-1,
+ "startPos":1
+ },
+ "5":
+ {
+ "color":"yellow",
+ "group":0
+ },
+ "6":
+ {
+ "dir":1,
+ "group":0
+ },
+ "7":
+ {
+ "color":"yellow",
+ "group":0
+ }
+ },
+ "tilepropertytypes":
+ {
+ "0":
+ {
+ "group":"int"
+ },
+ "1":
+ {
+ "group":"int",
+ "onis":"int",
+ "startPos":"int"
+ },
+ "11":
+ {
+ "group":"int"
+ },
+ "14":
+ {
+ "group":"int",
+ "time":"int"
+ },
+ "15":
+ {
+ "group":"int",
+ "length":"int"
+ },
+ "2":
+ {
+ "group":"int",
+ "onis":"int",
+ "startPos":"int"
+ },
+ "5":
+ {
+ "color":"string",
+ "group":"int"
+ },
+ "6":
+ {
+ "dir":"int",
+ "group":"int"
+ },
+ "7":
+ {
+ "color":"string",
+ "group":"int"
+ }
+ },
+ "tiles":
+ {
+ "0":
+ {
+ "type":"pusher"
+ },
+ "1":
+ {
+ "type":"lever"
+ },
+ "10":
+ {
+ "type":"ball"
+ },
+ "11":
+ {
+ "type":"infinitemirror"
+ },
+ "12":
+ {
+ "type":"boxmirror"
+ },
+ "13":
+ {
+ "type":"boxheavy"
+ },
+ "14":
+ {
+ "type":"timedpusher"
+ },
+ "15":
+ {
+ "type":"wind"
+ },
+ "2":
+ {
+ "type":"lever"
+ },
+ "4":
+ {
+ "type":"box"
+ },
+ "5":
+ {
+ "type":"beamer"
+ },
+ "6":
+ {
+ "type":"rotmirror"
+ },
+ "7":
+ {
+ "type":"lightpusher"
+ }
+ },
+ "tilewidth":64,
+ "type":"tileset"
+}
\ No newline at end of file
diff --git a/fireboywatergirl2/bower_components/requirejs/require.js b/fireboywatergirl2/bower_components/requirejs/require.js
new file mode 100644
index 00000000..23ddb4ee
--- /dev/null
+++ b/fireboywatergirl2/bower_components/requirejs/require.js
@@ -0,0 +1,2142 @@
+/** vim: et:ts=4:sw=4:sts=4
+ * @license RequireJS 2.2.0 Copyright jQuery Foundation and other contributors.
+ * Released under MIT license, http://github.com/requirejs/requirejs/LICENSE
+ */
+//Not using strict: uneven strict support in browsers, #392, and causes
+//problems with requirejs.exec()/transpiler plugins that may not be strict.
+/*jslint regexp: true, nomen: true, sloppy: true */
+/*global window, navigator, document, importScripts, setTimeout, opera */
+
+var requirejs, require, define;
+(function (global) {
+ var req, s, head, baseElement, dataMain, src,
+ interactiveScript, currentlyAddingScript, mainScript, subPath,
+ version = '2.2.0',
+ commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,
+ cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,
+ jsSuffixRegExp = /\.js$/,
+ currDirRegExp = /^\.\//,
+ op = Object.prototype,
+ ostring = op.toString,
+ hasOwn = op.hasOwnProperty,
+ isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document),
+ isWebWorker = !isBrowser && typeof importScripts !== 'undefined',
+ //PS3 indicates loaded and complete, but need to wait for complete
+ //specifically. Sequence is 'loading', 'loaded', execution,
+ // then 'complete'. The UA check is unfortunate, but not sure how
+ //to feature test w/o causing perf issues.
+ readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ?
+ /^complete$/ : /^(complete|loaded)$/,
+ defContextName = '_',
+ //Oh the tragedy, detecting opera. See the usage of isOpera for reason.
+ isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]',
+ contexts = {},
+ cfg = {},
+ globalDefQueue = [],
+ useInteractive = false;
+
+ //Could match something like ')//comment', do not lose the prefix to comment.
+ function commentReplace(match, multi, multiText, singlePrefix) {
+ return singlePrefix || '';
+ }
+
+ function isFunction(it) {
+ return ostring.call(it) === '[object Function]';
+ }
+
+ function isArray(it) {
+ return ostring.call(it) === '[object Array]';
+ }
+
+ /**
+ * Helper function for iterating over an array. If the func returns
+ * a true value, it will break out of the loop.
+ */
+ function each(ary, func) {
+ if (ary) {
+ var i;
+ for (i = 0; i < ary.length; i += 1) {
+ if (ary[i] && func(ary[i], i, ary)) {
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Helper function for iterating over an array backwards. If the func
+ * returns a true value, it will break out of the loop.
+ */
+ function eachReverse(ary, func) {
+ if (ary) {
+ var i;
+ for (i = ary.length - 1; i > -1; i -= 1) {
+ if (ary[i] && func(ary[i], i, ary)) {
+ break;
+ }
+ }
+ }
+ }
+
+ function hasProp(obj, prop) {
+ return hasOwn.call(obj, prop);
+ }
+
+ function getOwn(obj, prop) {
+ return hasProp(obj, prop) && obj[prop];
+ }
+
+ /**
+ * Cycles over properties in an object and calls a function for each
+ * property value. If the function returns a truthy value, then the
+ * iteration is stopped.
+ */
+ function eachProp(obj, func) {
+ var prop;
+ for (prop in obj) {
+ if (hasProp(obj, prop)) {
+ if (func(obj[prop], prop)) {
+ break;
+ }
+ }
+ }
+ }
+
+ /**
+ * Simple function to mix in properties from source into target,
+ * but only if target does not already have a property of the same name.
+ */
+ function mixin(target, source, force, deepStringMixin) {
+ if (source) {
+ eachProp(source, function (value, prop) {
+ if (force || !hasProp(target, prop)) {
+ if (deepStringMixin && typeof value === 'object' && value &&
+ !isArray(value) && !isFunction(value) &&
+ !(value instanceof RegExp)) {
+
+ if (!target[prop]) {
+ target[prop] = {};
+ }
+ mixin(target[prop], value, force, deepStringMixin);
+ } else {
+ target[prop] = value;
+ }
+ }
+ });
+ }
+ return target;
+ }
+
+ //Similar to Function.prototype.bind, but the 'this' object is specified
+ //first, since it is easier to read/figure out what 'this' will be.
+ function bind(obj, fn) {
+ return function () {
+ return fn.apply(obj, arguments);
+ };
+ }
+
+ function scripts() {
+ return document.getElementsByTagName('script');
+ }
+
+ function defaultOnError(err) {
+ throw err;
+ }
+
+ //Allow getting a global that is expressed in
+ //dot notation, like 'a.b.c'.
+ function getGlobal(value) {
+ if (!value) {
+ return value;
+ }
+ var g = global;
+ each(value.split('.'), function (part) {
+ g = g[part];
+ });
+ return g;
+ }
+
+ /**
+ * Constructs an error with a pointer to an URL with more information.
+ * @param {String} id the error ID that maps to an ID on a web page.
+ * @param {String} message human readable error.
+ * @param {Error} [err] the original error, if there is one.
+ *
+ * @returns {Error}
+ */
+ function makeError(id, msg, err, requireModules) {
+ var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + id);
+ e.requireType = id;
+ e.requireModules = requireModules;
+ if (err) {
+ e.originalError = err;
+ }
+ return e;
+ }
+
+ if (typeof define !== 'undefined') {
+ //If a define is already in play via another AMD loader,
+ //do not overwrite.
+ return;
+ }
+
+ if (typeof requirejs !== 'undefined') {
+ if (isFunction(requirejs)) {
+ //Do not overwrite an existing requirejs instance.
+ return;
+ }
+ cfg = requirejs;
+ requirejs = undefined;
+ }
+
+ //Allow for a require config object
+ if (typeof require !== 'undefined' && !isFunction(require)) {
+ //assume it is a config object.
+ cfg = require;
+ require = undefined;
+ }
+
+ function newContext(contextName) {
+ var inCheckLoaded, Module, context, handlers,
+ checkLoadedTimeoutId,
+ config = {
+ //Defaults. Do not set a default for map
+ //config to speed up normalize(), which
+ //will run faster if there is no default.
+ waitSeconds: 7,
+ baseUrl: './',
+ paths: {},
+ bundles: {},
+ pkgs: {},
+ shim: {},
+ config: {}
+ },
+ registry = {},
+ //registry of just enabled modules, to speed
+ //cycle breaking code when lots of modules
+ //are registered, but not activated.
+ enabledRegistry = {},
+ undefEvents = {},
+ defQueue = [],
+ defined = {},
+ urlFetched = {},
+ bundlesMap = {},
+ requireCounter = 1,
+ unnormalizedCounter = 1;
+
+ /**
+ * Trims the . and .. from an array of path segments.
+ * It will keep a leading path segment if a .. will become
+ * the first path segment, to help with module name lookups,
+ * which act like paths, but can be remapped. But the end result,
+ * all paths that use this function should look normalized.
+ * NOTE: this method MODIFIES the input array.
+ * @param {Array} ary the array of path segments.
+ */
+ function trimDots(ary) {
+ var i, part;
+ for (i = 0; i < ary.length; i++) {
+ part = ary[i];
+ if (part === '.') {
+ ary.splice(i, 1);
+ i -= 1;
+ } else if (part === '..') {
+ // If at the start, or previous value is still ..,
+ // keep them so that when converted to a path it may
+ // still work when converted to a path, even though
+ // as an ID it is less than ideal. In larger point
+ // releases, may be better to just kick out an error.
+ if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') {
+ continue;
+ } else if (i > 0) {
+ ary.splice(i - 1, 2);
+ i -= 2;
+ }
+ }
+ }
+ }
+
+ /**
+ * Given a relative module name, like ./something, normalize it to
+ * a real name that can be mapped to a path.
+ * @param {String} name the relative name
+ * @param {String} baseName a real name that the name arg is relative
+ * to.
+ * @param {Boolean} applyMap apply the map config to the value. Should
+ * only be done if this normalization is for a dependency ID.
+ * @returns {String} normalized name
+ */
+ function normalize(name, baseName, applyMap) {
+ var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex,
+ foundMap, foundI, foundStarMap, starI, normalizedBaseParts,
+ baseParts = (baseName && baseName.split('/')),
+ map = config.map,
+ starMap = map && map['*'];
+
+ //Adjust any relative paths.
+ if (name) {
+ name = name.split('/');
+ lastIndex = name.length - 1;
+
+ // If wanting node ID compatibility, strip .js from end
+ // of IDs. Have to do this here, and not in nameToUrl
+ // because node allows either .js or non .js to map
+ // to same file.
+ if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {
+ name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');
+ }
+
+ // Starts with a '.' so need the baseName
+ if (name[0].charAt(0) === '.' && baseParts) {
+ //Convert baseName to array, and lop off the last part,
+ //so that . matches that 'directory' and not name of the baseName's
+ //module. For instance, baseName of 'one/two/three', maps to
+ //'one/two/three.js', but we want the directory, 'one/two' for
+ //this normalization.
+ normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);
+ name = normalizedBaseParts.concat(name);
+ }
+
+ trimDots(name);
+ name = name.join('/');
+ }
+
+ //Apply map config if available.
+ if (applyMap && map && (baseParts || starMap)) {
+ nameParts = name.split('/');
+
+ outerLoop: for (i = nameParts.length; i > 0; i -= 1) {
+ nameSegment = nameParts.slice(0, i).join('/');
+
+ if (baseParts) {
+ //Find the longest baseName segment match in the config.
+ //So, do joins on the biggest to smallest lengths of baseParts.
+ for (j = baseParts.length; j > 0; j -= 1) {
+ mapValue = getOwn(map, baseParts.slice(0, j).join('/'));
+
+ //baseName segment has config, find if it has one for
+ //this name.
+ if (mapValue) {
+ mapValue = getOwn(mapValue, nameSegment);
+ if (mapValue) {
+ //Match, update name to the new value.
+ foundMap = mapValue;
+ foundI = i;
+ break outerLoop;
+ }
+ }
+ }
+ }
+
+ //Check for a star map match, but just hold on to it,
+ //if there is a shorter segment match later in a matching
+ //config, then favor over this star map.
+ if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {
+ foundStarMap = getOwn(starMap, nameSegment);
+ starI = i;
+ }
+ }
+
+ if (!foundMap && foundStarMap) {
+ foundMap = foundStarMap;
+ foundI = starI;
+ }
+
+ if (foundMap) {
+ nameParts.splice(0, foundI, foundMap);
+ name = nameParts.join('/');
+ }
+ }
+
+ // If the name points to a package's name, use
+ // the package main instead.
+ pkgMain = getOwn(config.pkgs, name);
+
+ return pkgMain ? pkgMain : name;
+ }
+
+ function removeScript(name) {
+ if (isBrowser) {
+ each(scripts(), function (scriptNode) {
+ if (scriptNode.getAttribute('data-requiremodule') === name &&
+ scriptNode.getAttribute('data-requirecontext') === context.contextName) {
+ scriptNode.parentNode.removeChild(scriptNode);
+ return true;
+ }
+ });
+ }
+ }
+
+ function hasPathFallback(id) {
+ var pathConfig = getOwn(config.paths, id);
+ if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {
+ //Pop off the first array value, since it failed, and
+ //retry
+ pathConfig.shift();
+ context.require.undef(id);
+
+ //Custom require that does not do map translation, since
+ //ID is "absolute", already mapped/resolved.
+ context.makeRequire(null, {
+ skipMap: true
+ })([id]);
+
+ return true;
+ }
+ }
+
+ //Turns a plugin!resource to [plugin, resource]
+ //with the plugin being undefined if the name
+ //did not have a plugin prefix.
+ function splitPrefix(name) {
+ var prefix,
+ index = name ? name.indexOf('!') : -1;
+ if (index > -1) {
+ prefix = name.substring(0, index);
+ name = name.substring(index + 1, name.length);
+ }
+ return [prefix, name];
+ }
+
+ /**
+ * Creates a module mapping that includes plugin prefix, module
+ * name, and path. If parentModuleMap is provided it will
+ * also normalize the name via require.normalize()
+ *
+ * @param {String} name the module name
+ * @param {String} [parentModuleMap] parent module map
+ * for the module name, used to resolve relative names.
+ * @param {Boolean} isNormalized: is the ID already normalized.
+ * This is true if this call is done for a define() module ID.
+ * @param {Boolean} applyMap: apply the map config to the ID.
+ * Should only be true if this map is for a dependency.
+ *
+ * @returns {Object}
+ */
+ function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
+ var url, pluginModule, suffix, nameParts,
+ prefix = null,
+ parentName = parentModuleMap ? parentModuleMap.name : null,
+ originalName = name,
+ isDefine = true,
+ normalizedName = '';
+
+ //If no name, then it means it is a require call, generate an
+ //internal name.
+ if (!name) {
+ isDefine = false;
+ name = '_@r' + (requireCounter += 1);
+ }
+
+ nameParts = splitPrefix(name);
+ prefix = nameParts[0];
+ name = nameParts[1];
+
+ if (prefix) {
+ prefix = normalize(prefix, parentName, applyMap);
+ pluginModule = getOwn(defined, prefix);
+ }
+
+ //Account for relative paths if there is a base name.
+ if (name) {
+ if (prefix) {
+ if (pluginModule && pluginModule.normalize) {
+ //Plugin is loaded, use its normalize method.
+ normalizedName = pluginModule.normalize(name, function (name) {
+ return normalize(name, parentName, applyMap);
+ });
+ } else {
+ // If nested plugin references, then do not try to
+ // normalize, as it will not normalize correctly. This
+ // places a restriction on resourceIds, and the longer
+ // term solution is not to normalize until plugins are
+ // loaded and all normalizations to allow for async
+ // loading of a loader plugin. But for now, fixes the
+ // common uses. Details in #1131
+ normalizedName = name.indexOf('!') === -1 ?
+ normalize(name, parentName, applyMap) :
+ name;
+ }
+ } else {
+ //A regular module.
+ normalizedName = normalize(name, parentName, applyMap);
+
+ //Normalized name may be a plugin ID due to map config
+ //application in normalize. The map config values must
+ //already be normalized, so do not need to redo that part.
+ nameParts = splitPrefix(normalizedName);
+ prefix = nameParts[0];
+ normalizedName = nameParts[1];
+ isNormalized = true;
+
+ url = context.nameToUrl(normalizedName);
+ }
+ }
+
+ //If the id is a plugin id that cannot be determined if it needs
+ //normalization, stamp it with a unique ID so two matching relative
+ //ids that may conflict can be separate.
+ suffix = prefix && !pluginModule && !isNormalized ?
+ '_unnormalized' + (unnormalizedCounter += 1) :
+ '';
+
+ return {
+ prefix: prefix,
+ name: normalizedName,
+ parentMap: parentModuleMap,
+ unnormalized: !!suffix,
+ url: url,
+ originalName: originalName,
+ isDefine: isDefine,
+ id: (prefix ?
+ prefix + '!' + normalizedName :
+ normalizedName) + suffix
+ };
+ }
+
+ function getModule(depMap) {
+ var id = depMap.id,
+ mod = getOwn(registry, id);
+
+ if (!mod) {
+ mod = registry[id] = new context.Module(depMap);
+ }
+
+ return mod;
+ }
+
+ function on(depMap, name, fn) {
+ var id = depMap.id,
+ mod = getOwn(registry, id);
+
+ if (hasProp(defined, id) &&
+ (!mod || mod.defineEmitComplete)) {
+ if (name === 'defined') {
+ fn(defined[id]);
+ }
+ } else {
+ mod = getModule(depMap);
+ if (mod.error && name === 'error') {
+ fn(mod.error);
+ } else {
+ mod.on(name, fn);
+ }
+ }
+ }
+
+ function onError(err, errback) {
+ var ids = err.requireModules,
+ notified = false;
+
+ if (errback) {
+ errback(err);
+ } else {
+ each(ids, function (id) {
+ var mod = getOwn(registry, id);
+ if (mod) {
+ //Set error on module, so it skips timeout checks.
+ mod.error = err;
+ if (mod.events.error) {
+ notified = true;
+ mod.emit('error', err);
+ }
+ }
+ });
+
+ if (!notified) {
+ req.onError(err);
+ }
+ }
+ }
+
+ /**
+ * Internal method to transfer globalQueue items to this context's
+ * defQueue.
+ */
+ function takeGlobalQueue() {
+ //Push all the globalDefQueue items into the context's defQueue
+ if (globalDefQueue.length) {
+ each(globalDefQueue, function(queueItem) {
+ var id = queueItem[0];
+ if (typeof id === 'string') {
+ context.defQueueMap[id] = true;
+ }
+ defQueue.push(queueItem);
+ });
+ globalDefQueue = [];
+ }
+ }
+
+ handlers = {
+ 'require': function (mod) {
+ if (mod.require) {
+ return mod.require;
+ } else {
+ return (mod.require = context.makeRequire(mod.map));
+ }
+ },
+ 'exports': function (mod) {
+ mod.usingExports = true;
+ if (mod.map.isDefine) {
+ if (mod.exports) {
+ return (defined[mod.map.id] = mod.exports);
+ } else {
+ return (mod.exports = defined[mod.map.id] = {});
+ }
+ }
+ },
+ 'module': function (mod) {
+ if (mod.module) {
+ return mod.module;
+ } else {
+ return (mod.module = {
+ id: mod.map.id,
+ uri: mod.map.url,
+ config: function () {
+ return getOwn(config.config, mod.map.id) || {};
+ },
+ exports: mod.exports || (mod.exports = {})
+ });
+ }
+ }
+ };
+
+ function cleanRegistry(id) {
+ //Clean up machinery used for waiting modules.
+ delete registry[id];
+ delete enabledRegistry[id];
+ }
+
+ function breakCycle(mod, traced, processed) {
+ var id = mod.map.id;
+
+ if (mod.error) {
+ mod.emit('error', mod.error);
+ } else {
+ traced[id] = true;
+ each(mod.depMaps, function (depMap, i) {
+ var depId = depMap.id,
+ dep = getOwn(registry, depId);
+
+ //Only force things that have not completed
+ //being defined, so still in the registry,
+ //and only if it has not been matched up
+ //in the module already.
+ if (dep && !mod.depMatched[i] && !processed[depId]) {
+ if (getOwn(traced, depId)) {
+ mod.defineDep(i, defined[depId]);
+ mod.check(); //pass false?
+ } else {
+ breakCycle(dep, traced, processed);
+ }
+ }
+ });
+ processed[id] = true;
+ }
+ }
+
+ function checkLoaded() {
+ var err, usingPathFallback,
+ waitInterval = config.waitSeconds * 1000,
+ //It is possible to disable the wait interval by using waitSeconds of 0.
+ expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
+ noLoads = [],
+ reqCalls = [],
+ stillLoading = false,
+ needCycleCheck = true;
+
+ //Do not bother if this call was a result of a cycle break.
+ if (inCheckLoaded) {
+ return;
+ }
+
+ inCheckLoaded = true;
+
+ //Figure out the state of all the modules.
+ eachProp(enabledRegistry, function (mod) {
+ var map = mod.map,
+ modId = map.id;
+
+ //Skip things that are not enabled or in error state.
+ if (!mod.enabled) {
+ return;
+ }
+
+ if (!map.isDefine) {
+ reqCalls.push(mod);
+ }
+
+ if (!mod.error) {
+ //If the module should be executed, and it has not
+ //been inited and time is up, remember it.
+ if (!mod.inited && expired) {
+ if (hasPathFallback(modId)) {
+ usingPathFallback = true;
+ stillLoading = true;
+ } else {
+ noLoads.push(modId);
+ removeScript(modId);
+ }
+ } else if (!mod.inited && mod.fetched && map.isDefine) {
+ stillLoading = true;
+ if (!map.prefix) {
+ //No reason to keep looking for unfinished
+ //loading. If the only stillLoading is a
+ //plugin resource though, keep going,
+ //because it may be that a plugin resource
+ //is waiting on a non-plugin cycle.
+ return (needCycleCheck = false);
+ }
+ }
+ }
+ });
+
+ if (expired && noLoads.length) {
+ //If wait time expired, throw error of unloaded modules.
+ err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads);
+ err.contextName = context.contextName;
+ return onError(err);
+ }
+
+ //Not expired, check for a cycle.
+ if (needCycleCheck) {
+ each(reqCalls, function (mod) {
+ breakCycle(mod, {}, {});
+ });
+ }
+
+ //If still waiting on loads, and the waiting load is something
+ //other than a plugin resource, or there are still outstanding
+ //scripts, then just try back later.
+ if ((!expired || usingPathFallback) && stillLoading) {
+ //Something is still waiting to load. Wait for it, but only
+ //if a timeout is not already in effect.
+ if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {
+ checkLoadedTimeoutId = setTimeout(function () {
+ checkLoadedTimeoutId = 0;
+ checkLoaded();
+ }, 50);
+ }
+ }
+
+ inCheckLoaded = false;
+ }
+
+ Module = function (map) {
+ this.events = getOwn(undefEvents, map.id) || {};
+ this.map = map;
+ this.shim = getOwn(config.shim, map.id);
+ this.depExports = [];
+ this.depMaps = [];
+ this.depMatched = [];
+ this.pluginMaps = {};
+ this.depCount = 0;
+
+ /* this.exports this.factory
+ this.depMaps = [],
+ this.enabled, this.fetched
+ */
+ };
+
+ Module.prototype = {
+ init: function (depMaps, factory, errback, options) {
+ options = options || {};
+
+ //Do not do more inits if already done. Can happen if there
+ //are multiple define calls for the same module. That is not
+ //a normal, common case, but it is also not unexpected.
+ if (this.inited) {
+ return;
+ }
+
+ this.factory = factory;
+
+ if (errback) {
+ //Register for errors on this module.
+ this.on('error', errback);
+ } else if (this.events.error) {
+ //If no errback already, but there are error listeners
+ //on this module, set up an errback to pass to the deps.
+ errback = bind(this, function (err) {
+ this.emit('error', err);
+ });
+ }
+
+ //Do a copy of the dependency array, so that
+ //source inputs are not modified. For example
+ //"shim" deps are passed in here directly, and
+ //doing a direct modification of the depMaps array
+ //would affect that config.
+ this.depMaps = depMaps && depMaps.slice(0);
+
+ this.errback = errback;
+
+ //Indicate this module has be initialized
+ this.inited = true;
+
+ this.ignore = options.ignore;
+
+ //Could have option to init this module in enabled mode,
+ //or could have been previously marked as enabled. However,
+ //the dependencies are not known until init is called. So
+ //if enabled previously, now trigger dependencies as enabled.
+ if (options.enabled || this.enabled) {
+ //Enable this module and dependencies.
+ //Will call this.check()
+ this.enable();
+ } else {
+ this.check();
+ }
+ },
+
+ defineDep: function (i, depExports) {
+ //Because of cycles, defined callback for a given
+ //export can be called more than once.
+ if (!this.depMatched[i]) {
+ this.depMatched[i] = true;
+ this.depCount -= 1;
+ this.depExports[i] = depExports;
+ }
+ },
+
+ fetch: function () {
+ if (this.fetched) {
+ return;
+ }
+ this.fetched = true;
+
+ context.startTime = (new Date()).getTime();
+
+ var map = this.map;
+
+ //If the manager is for a plugin managed resource,
+ //ask the plugin to load it now.
+ if (this.shim) {
+ context.makeRequire(this.map, {
+ enableBuildCallback: true
+ })(this.shim.deps || [], bind(this, function () {
+ return map.prefix ? this.callPlugin() : this.load();
+ }));
+ } else {
+ //Regular dependency.
+ return map.prefix ? this.callPlugin() : this.load();
+ }
+ },
+
+ load: function () {
+ var url = this.map.url;
+
+ //Regular dependency.
+ if (!urlFetched[url]) {
+ urlFetched[url] = true;
+ context.load(this.map.id, url);
+ }
+ },
+
+ /**
+ * Checks if the module is ready to define itself, and if so,
+ * define it.
+ */
+ check: function () {
+ if (!this.enabled || this.enabling) {
+ return;
+ }
+
+ var err, cjsModule,
+ id = this.map.id,
+ depExports = this.depExports,
+ exports = this.exports,
+ factory = this.factory;
+
+ if (!this.inited) {
+ // Only fetch if not already in the defQueue.
+ if (!hasProp(context.defQueueMap, id)) {
+ this.fetch();
+ }
+ } else if (this.error) {
+ this.emit('error', this.error);
+ } else if (!this.defining) {
+ //The factory could trigger another require call
+ //that would result in checking this module to
+ //define itself again. If already in the process
+ //of doing that, skip this work.
+ this.defining = true;
+
+ if (this.depCount < 1 && !this.defined) {
+ if (isFunction(factory)) {
+ //If there is an error listener, favor passing
+ //to that instead of throwing an error. However,
+ //only do it for define()'d modules. require
+ //errbacks should not be called for failures in
+ //their callbacks (#699). However if a global
+ //onError is set, use that.
+ if ((this.events.error && this.map.isDefine) ||
+ req.onError !== defaultOnError) {
+ try {
+ exports = context.execCb(id, factory, depExports, exports);
+ } catch (e) {
+ err = e;
+ }
+ } else {
+ exports = context.execCb(id, factory, depExports, exports);
+ }
+
+ // Favor return value over exports. If node/cjs in play,
+ // then will not have a return value anyway. Favor
+ // module.exports assignment over exports object.
+ if (this.map.isDefine && exports === undefined) {
+ cjsModule = this.module;
+ if (cjsModule) {
+ exports = cjsModule.exports;
+ } else if (this.usingExports) {
+ //exports already set the defined value.
+ exports = this.exports;
+ }
+ }
+
+ if (err) {
+ err.requireMap = this.map;
+ err.requireModules = this.map.isDefine ? [this.map.id] : null;
+ err.requireType = this.map.isDefine ? 'define' : 'require';
+ return onError((this.error = err));
+ }
+
+ } else {
+ //Just a literal value
+ exports = factory;
+ }
+
+ this.exports = exports;
+
+ if (this.map.isDefine && !this.ignore) {
+ defined[id] = exports;
+
+ if (req.onResourceLoad) {
+ var resLoadMaps = [];
+ each(this.depMaps, function (depMap) {
+ resLoadMaps.push(depMap.normalizedMap || depMap);
+ });
+ req.onResourceLoad(context, this.map, resLoadMaps);
+ }
+ }
+
+ //Clean up
+ cleanRegistry(id);
+
+ this.defined = true;
+ }
+
+ //Finished the define stage. Allow calling check again
+ //to allow define notifications below in the case of a
+ //cycle.
+ this.defining = false;
+
+ if (this.defined && !this.defineEmitted) {
+ this.defineEmitted = true;
+ this.emit('defined', this.exports);
+ this.defineEmitComplete = true;
+ }
+
+ }
+ },
+
+ callPlugin: function () {
+ var map = this.map,
+ id = map.id,
+ //Map already normalized the prefix.
+ pluginMap = makeModuleMap(map.prefix);
+
+ //Mark this as a dependency for this plugin, so it
+ //can be traced for cycles.
+ this.depMaps.push(pluginMap);
+
+ on(pluginMap, 'defined', bind(this, function (plugin) {
+ var load, normalizedMap, normalizedMod,
+ bundleId = getOwn(bundlesMap, this.map.id),
+ name = this.map.name,
+ parentName = this.map.parentMap ? this.map.parentMap.name : null,
+ localRequire = context.makeRequire(map.parentMap, {
+ enableBuildCallback: true
+ });
+
+ //If current map is not normalized, wait for that
+ //normalized name to load instead of continuing.
+ if (this.map.unnormalized) {
+ //Normalize the ID if the plugin allows it.
+ if (plugin.normalize) {
+ name = plugin.normalize(name, function (name) {
+ return normalize(name, parentName, true);
+ }) || '';
+ }
+
+ //prefix and name should already be normalized, no need
+ //for applying map config again either.
+ normalizedMap = makeModuleMap(map.prefix + '!' + name,
+ this.map.parentMap);
+ on(normalizedMap,
+ 'defined', bind(this, function (value) {
+ this.map.normalizedMap = normalizedMap;
+ this.init([], function () { return value; }, null, {
+ enabled: true,
+ ignore: true
+ });
+ }));
+
+ normalizedMod = getOwn(registry, normalizedMap.id);
+ if (normalizedMod) {
+ //Mark this as a dependency for this plugin, so it
+ //can be traced for cycles.
+ this.depMaps.push(normalizedMap);
+
+ if (this.events.error) {
+ normalizedMod.on('error', bind(this, function (err) {
+ this.emit('error', err);
+ }));
+ }
+ normalizedMod.enable();
+ }
+
+ return;
+ }
+
+ //If a paths config, then just load that file instead to
+ //resolve the plugin, as it is built into that paths layer.
+ if (bundleId) {
+ this.map.url = context.nameToUrl(bundleId);
+ this.load();
+ return;
+ }
+
+ load = bind(this, function (value) {
+ this.init([], function () { return value; }, null, {
+ enabled: true
+ });
+ });
+
+ load.error = bind(this, function (err) {
+ this.inited = true;
+ this.error = err;
+ err.requireModules = [id];
+
+ //Remove temp unnormalized modules for this module,
+ //since they will never be resolved otherwise now.
+ eachProp(registry, function (mod) {
+ if (mod.map.id.indexOf(id + '_unnormalized') === 0) {
+ cleanRegistry(mod.map.id);
+ }
+ });
+
+ onError(err);
+ });
+
+ //Allow plugins to load other code without having to know the
+ //context or how to 'complete' the load.
+ load.fromText = bind(this, function (text, textAlt) {
+ /*jslint evil: true */
+ var moduleName = map.name,
+ moduleMap = makeModuleMap(moduleName),
+ hasInteractive = useInteractive;
+
+ //As of 2.1.0, support just passing the text, to reinforce
+ //fromText only being called once per resource. Still
+ //support old style of passing moduleName but discard
+ //that moduleName in favor of the internal ref.
+ if (textAlt) {
+ text = textAlt;
+ }
+
+ //Turn off interactive script matching for IE for any define
+ //calls in the text, then turn it back on at the end.
+ if (hasInteractive) {
+ useInteractive = false;
+ }
+
+ //Prime the system by creating a module instance for
+ //it.
+ getModule(moduleMap);
+
+ //Transfer any config to this other module.
+ if (hasProp(config.config, id)) {
+ config.config[moduleName] = config.config[id];
+ }
+
+ try {
+ req.exec(text);
+ } catch (e) {
+ return onError(makeError('fromtexteval',
+ 'fromText eval for ' + id +
+ ' failed: ' + e,
+ e,
+ [id]));
+ }
+
+ if (hasInteractive) {
+ useInteractive = true;
+ }
+
+ //Mark this as a dependency for the plugin
+ //resource
+ this.depMaps.push(moduleMap);
+
+ //Support anonymous modules.
+ context.completeLoad(moduleName);
+
+ //Bind the value of that module to the value for this
+ //resource ID.
+ localRequire([moduleName], load);
+ });
+
+ //Use parentName here since the plugin's name is not reliable,
+ //could be some weird string with no path that actually wants to
+ //reference the parentName's path.
+ plugin.load(map.name, localRequire, load, config);
+ }));
+
+ context.enable(pluginMap, this);
+ this.pluginMaps[pluginMap.id] = pluginMap;
+ },
+
+ enable: function () {
+ enabledRegistry[this.map.id] = this;
+ this.enabled = true;
+
+ //Set flag mentioning that the module is enabling,
+ //so that immediate calls to the defined callbacks
+ //for dependencies do not trigger inadvertent load
+ //with the depCount still being zero.
+ this.enabling = true;
+
+ //Enable each dependency
+ each(this.depMaps, bind(this, function (depMap, i) {
+ var id, mod, handler;
+
+ if (typeof depMap === 'string') {
+ //Dependency needs to be converted to a depMap
+ //and wired up to this module.
+ depMap = makeModuleMap(depMap,
+ (this.map.isDefine ? this.map : this.map.parentMap),
+ false,
+ !this.skipMap);
+ this.depMaps[i] = depMap;
+
+ handler = getOwn(handlers, depMap.id);
+
+ if (handler) {
+ this.depExports[i] = handler(this);
+ return;
+ }
+
+ this.depCount += 1;
+
+ on(depMap, 'defined', bind(this, function (depExports) {
+ if (this.undefed) {
+ return;
+ }
+ this.defineDep(i, depExports);
+ this.check();
+ }));
+
+ if (this.errback) {
+ on(depMap, 'error', bind(this, this.errback));
+ } else if (this.events.error) {
+ // No direct errback on this module, but something
+ // else is listening for errors, so be sure to
+ // propagate the error correctly.
+ on(depMap, 'error', bind(this, function(err) {
+ this.emit('error', err);
+ }));
+ }
+ }
+
+ id = depMap.id;
+ mod = registry[id];
+
+ //Skip special modules like 'require', 'exports', 'module'
+ //Also, don't call enable if it is already enabled,
+ //important in circular dependency cases.
+ if (!hasProp(handlers, id) && mod && !mod.enabled) {
+ context.enable(depMap, this);
+ }
+ }));
+
+ //Enable each plugin that is used in
+ //a dependency
+ eachProp(this.pluginMaps, bind(this, function (pluginMap) {
+ var mod = getOwn(registry, pluginMap.id);
+ if (mod && !mod.enabled) {
+ context.enable(pluginMap, this);
+ }
+ }));
+
+ this.enabling = false;
+
+ this.check();
+ },
+
+ on: function (name, cb) {
+ var cbs = this.events[name];
+ if (!cbs) {
+ cbs = this.events[name] = [];
+ }
+ cbs.push(cb);
+ },
+
+ emit: function (name, evt) {
+ each(this.events[name], function (cb) {
+ cb(evt);
+ });
+ if (name === 'error') {
+ //Now that the error handler was triggered, remove
+ //the listeners, since this broken Module instance
+ //can stay around for a while in the registry.
+ delete this.events[name];
+ }
+ }
+ };
+
+ function callGetModule(args) {
+ //Skip modules already defined.
+ if (!hasProp(defined, args[0])) {
+ getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);
+ }
+ }
+
+ function removeListener(node, func, name, ieName) {
+ //Favor detachEvent because of IE9
+ //issue, see attachEvent/addEventListener comment elsewhere
+ //in this file.
+ if (node.detachEvent && !isOpera) {
+ //Probably IE. If not it will throw an error, which will be
+ //useful to know.
+ if (ieName) {
+ node.detachEvent(ieName, func);
+ }
+ } else {
+ node.removeEventListener(name, func, false);
+ }
+ }
+
+ /**
+ * Given an event from a script node, get the requirejs info from it,
+ * and then removes the event listeners on the node.
+ * @param {Event} evt
+ * @returns {Object}
+ */
+ function getScriptData(evt) {
+ //Using currentTarget instead of target for Firefox 2.0's sake. Not
+ //all old browsers will be supported, but this one was easy enough
+ //to support and still makes sense.
+ var node = evt.currentTarget || evt.srcElement;
+
+ //Remove the listeners once here.
+ removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange');
+ removeListener(node, context.onScriptError, 'error');
+
+ return {
+ node: node,
+ id: node && node.getAttribute('data-requiremodule')
+ };
+ }
+
+ function intakeDefines() {
+ var args;
+
+ //Any defined modules in the global queue, intake them now.
+ takeGlobalQueue();
+
+ //Make sure any remaining defQueue items get properly processed.
+ while (defQueue.length) {
+ args = defQueue.shift();
+ if (args[0] === null) {
+ return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' +
+ args[args.length - 1]));
+ } else {
+ //args are id, deps, factory. Should be normalized by the
+ //define() function.
+ callGetModule(args);
+ }
+ }
+ context.defQueueMap = {};
+ }
+
+ context = {
+ config: config,
+ contextName: contextName,
+ registry: registry,
+ defined: defined,
+ urlFetched: urlFetched,
+ defQueue: defQueue,
+ defQueueMap: {},
+ Module: Module,
+ makeModuleMap: makeModuleMap,
+ nextTick: req.nextTick,
+ onError: onError,
+
+ /**
+ * Set a configuration for the context.
+ * @param {Object} cfg config object to integrate.
+ */
+ configure: function (cfg) {
+ //Make sure the baseUrl ends in a slash.
+ if (cfg.baseUrl) {
+ if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
+ cfg.baseUrl += '/';
+ }
+ }
+
+ // Convert old style urlArgs string to a function.
+ if (typeof cfg.urlArgs === 'string') {
+ var urlArgs = cfg.urlArgs;
+ cfg.urlArgs = function(id, url) {
+ return (url.indexOf('?') === -1 ? '?' : '&') + urlArgs;
+ };
+ }
+
+ //Save off the paths since they require special processing,
+ //they are additive.
+ var shim = config.shim,
+ objs = {
+ paths: true,
+ bundles: true,
+ config: true,
+ map: true
+ };
+
+ eachProp(cfg, function (value, prop) {
+ if (objs[prop]) {
+ if (!config[prop]) {
+ config[prop] = {};
+ }
+ mixin(config[prop], value, true, true);
+ } else {
+ config[prop] = value;
+ }
+ });
+
+ //Reverse map the bundles
+ if (cfg.bundles) {
+ eachProp(cfg.bundles, function (value, prop) {
+ each(value, function (v) {
+ if (v !== prop) {
+ bundlesMap[v] = prop;
+ }
+ });
+ });
+ }
+
+ //Merge shim
+ if (cfg.shim) {
+ eachProp(cfg.shim, function (value, id) {
+ //Normalize the structure
+ if (isArray(value)) {
+ value = {
+ deps: value
+ };
+ }
+ if ((value.exports || value.init) && !value.exportsFn) {
+ value.exportsFn = context.makeShimExports(value);
+ }
+ shim[id] = value;
+ });
+ config.shim = shim;
+ }
+
+ //Adjust packages if necessary.
+ if (cfg.packages) {
+ each(cfg.packages, function (pkgObj) {
+ var location, name;
+
+ pkgObj = typeof pkgObj === 'string' ? {name: pkgObj} : pkgObj;
+
+ name = pkgObj.name;
+ location = pkgObj.location;
+ if (location) {
+ config.paths[name] = pkgObj.location;
+ }
+
+ //Save pointer to main module ID for pkg name.
+ //Remove leading dot in main, so main paths are normalized,
+ //and remove any trailing .js, since different package
+ //envs have different conventions: some use a module name,
+ //some use a file name.
+ config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main')
+ .replace(currDirRegExp, '')
+ .replace(jsSuffixRegExp, '');
+ });
+ }
+
+ //If there are any "waiting to execute" modules in the registry,
+ //update the maps for them, since their info, like URLs to load,
+ //may have changed.
+ eachProp(registry, function (mod, id) {
+ //If module already has init called, since it is too
+ //late to modify them, and ignore unnormalized ones
+ //since they are transient.
+ if (!mod.inited && !mod.map.unnormalized) {
+ mod.map = makeModuleMap(id, null, true);
+ }
+ });
+
+ //If a deps array or a config callback is specified, then call
+ //require with those args. This is useful when require is defined as a
+ //config object before require.js is loaded.
+ if (cfg.deps || cfg.callback) {
+ context.require(cfg.deps || [], cfg.callback);
+ }
+ },
+
+ makeShimExports: function (value) {
+ function fn() {
+ var ret;
+ if (value.init) {
+ ret = value.init.apply(global, arguments);
+ }
+ return ret || (value.exports && getGlobal(value.exports));
+ }
+ return fn;
+ },
+
+ makeRequire: function (relMap, options) {
+ options = options || {};
+
+ function localRequire(deps, callback, errback) {
+ var id, map, requireMod;
+
+ if (options.enableBuildCallback && callback && isFunction(callback)) {
+ callback.__requireJsBuild = true;
+ }
+
+ if (typeof deps === 'string') {
+ if (isFunction(callback)) {
+ //Invalid call
+ return onError(makeError('requireargs', 'Invalid require call'), errback);
+ }
+
+ //If require|exports|module are requested, get the
+ //value for them from the special handlers. Caveat:
+ //this only works while module is being defined.
+ if (relMap && hasProp(handlers, deps)) {
+ return handlers[deps](registry[relMap.id]);
+ }
+
+ //Synchronous access to one module. If require.get is
+ //available (as in the Node adapter), prefer that.
+ if (req.get) {
+ return req.get(context, deps, relMap, localRequire);
+ }
+
+ //Normalize module name, if it contains . or ..
+ map = makeModuleMap(deps, relMap, false, true);
+ id = map.id;
+
+ if (!hasProp(defined, id)) {
+ return onError(makeError('notloaded', 'Module name "' +
+ id +
+ '" has not been loaded yet for context: ' +
+ contextName +
+ (relMap ? '' : '. Use require([])')));
+ }
+ return defined[id];
+ }
+
+ //Grab defines waiting in the global queue.
+ intakeDefines();
+
+ //Mark all the dependencies as needing to be loaded.
+ context.nextTick(function () {
+ //Some defines could have been added since the
+ //require call, collect them.
+ intakeDefines();
+
+ requireMod = getModule(makeModuleMap(null, relMap));
+
+ //Store if map config should be applied to this require
+ //call for dependencies.
+ requireMod.skipMap = options.skipMap;
+
+ requireMod.init(deps, callback, errback, {
+ enabled: true
+ });
+
+ checkLoaded();
+ });
+
+ return localRequire;
+ }
+
+ mixin(localRequire, {
+ isBrowser: isBrowser,
+
+ /**
+ * Converts a module name + .extension into an URL path.
+ * *Requires* the use of a module name. It does not support using
+ * plain URLs like nameToUrl.
+ */
+ toUrl: function (moduleNamePlusExt) {
+ var ext,
+ index = moduleNamePlusExt.lastIndexOf('.'),
+ segment = moduleNamePlusExt.split('/')[0],
+ isRelative = segment === '.' || segment === '..';
+
+ //Have a file extension alias, and it is not the
+ //dots from a relative path.
+ if (index !== -1 && (!isRelative || index > 1)) {
+ ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);
+ moduleNamePlusExt = moduleNamePlusExt.substring(0, index);
+ }
+
+ return context.nameToUrl(normalize(moduleNamePlusExt,
+ relMap && relMap.id, true), ext, true);
+ },
+
+ defined: function (id) {
+ return hasProp(defined, makeModuleMap(id, relMap, false, true).id);
+ },
+
+ specified: function (id) {
+ id = makeModuleMap(id, relMap, false, true).id;
+ return hasProp(defined, id) || hasProp(registry, id);
+ }
+ });
+
+ //Only allow undef on top level require calls
+ if (!relMap) {
+ localRequire.undef = function (id) {
+ //Bind any waiting define() calls to this context,
+ //fix for #408
+ takeGlobalQueue();
+
+ var map = makeModuleMap(id, relMap, true),
+ mod = getOwn(registry, id);
+
+ mod.undefed = true;
+ removeScript(id);
+
+ delete defined[id];
+ delete urlFetched[map.url];
+ delete undefEvents[id];
+
+ //Clean queued defines too. Go backwards
+ //in array so that the splices do not
+ //mess up the iteration.
+ eachReverse(defQueue, function(args, i) {
+ if (args[0] === id) {
+ defQueue.splice(i, 1);
+ }
+ });
+ delete context.defQueueMap[id];
+
+ if (mod) {
+ //Hold on to listeners in case the
+ //module will be attempted to be reloaded
+ //using a different config.
+ if (mod.events.defined) {
+ undefEvents[id] = mod.events;
+ }
+
+ cleanRegistry(id);
+ }
+ };
+ }
+
+ return localRequire;
+ },
+
+ /**
+ * Called to enable a module if it is still in the registry
+ * awaiting enablement. A second arg, parent, the parent module,
+ * is passed in for context, when this method is overridden by
+ * the optimizer. Not shown here to keep code compact.
+ */
+ enable: function (depMap) {
+ var mod = getOwn(registry, depMap.id);
+ if (mod) {
+ getModule(depMap).enable();
+ }
+ },
+
+ /**
+ * Internal method used by environment adapters to complete a load event.
+ * A load event could be a script load or just a load pass from a synchronous
+ * load call.
+ * @param {String} moduleName the name of the module to potentially complete.
+ */
+ completeLoad: function (moduleName) {
+ var found, args, mod,
+ shim = getOwn(config.shim, moduleName) || {},
+ shExports = shim.exports;
+
+ takeGlobalQueue();
+
+ while (defQueue.length) {
+ args = defQueue.shift();
+ if (args[0] === null) {
+ args[0] = moduleName;
+ //If already found an anonymous module and bound it
+ //to this name, then this is some other anon module
+ //waiting for its completeLoad to fire.
+ if (found) {
+ break;
+ }
+ found = true;
+ } else if (args[0] === moduleName) {
+ //Found matching define call for this script!
+ found = true;
+ }
+
+ callGetModule(args);
+ }
+ context.defQueueMap = {};
+
+ //Do this after the cycle of callGetModule in case the result
+ //of those calls/init calls changes the registry.
+ mod = getOwn(registry, moduleName);
+
+ if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {
+ if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {
+ if (hasPathFallback(moduleName)) {
+ return;
+ } else {
+ return onError(makeError('nodefine',
+ 'No define call for ' + moduleName,
+ null,
+ [moduleName]));
+ }
+ } else {
+ //A script that does not call define(), so just simulate
+ //the call for it.
+ callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);
+ }
+ }
+
+ checkLoaded();
+ },
+
+ /**
+ * Converts a module name to a file path. Supports cases where
+ * moduleName may actually be just an URL.
+ * Note that it **does not** call normalize on the moduleName,
+ * it is assumed to have already been normalized. This is an
+ * internal API, not a public one. Use toUrl for the public API.
+ */
+ nameToUrl: function (moduleName, ext, skipExt) {
+ var paths, syms, i, parentModule, url,
+ parentPath, bundleId,
+ pkgMain = getOwn(config.pkgs, moduleName);
+
+ if (pkgMain) {
+ moduleName = pkgMain;
+ }
+
+ bundleId = getOwn(bundlesMap, moduleName);
+
+ if (bundleId) {
+ return context.nameToUrl(bundleId, ext, skipExt);
+ }
+
+ //If a colon is in the URL, it indicates a protocol is used and it is just
+ //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)
+ //or ends with .js, then assume the user meant to use an url and not a module id.
+ //The slash is important for protocol-less URLs as well as full paths.
+ if (req.jsExtRegExp.test(moduleName)) {
+ //Just a plain path, not module name lookup, so just return it.
+ //Add extension if it is included. This is a bit wonky, only non-.js things pass
+ //an extension, this method probably needs to be reworked.
+ url = moduleName + (ext || '');
+ } else {
+ //A module that needs to be converted to a path.
+ paths = config.paths;
+
+ syms = moduleName.split('/');
+ //For each module name segment, see if there is a path
+ //registered for it. Start with most specific name
+ //and work up from it.
+ for (i = syms.length; i > 0; i -= 1) {
+ parentModule = syms.slice(0, i).join('/');
+
+ parentPath = getOwn(paths, parentModule);
+ if (parentPath) {
+ //If an array, it means there are a few choices,
+ //Choose the one that is desired
+ if (isArray(parentPath)) {
+ parentPath = parentPath[0];
+ }
+ syms.splice(0, i, parentPath);
+ break;
+ }
+ }
+
+ //Join the path parts together, then figure out if baseUrl is needed.
+ url = syms.join('/');
+ url += (ext || (/^data\:|^blob\:|\?/.test(url) || skipExt ? '' : '.js'));
+ url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
+ }
+
+ return config.urlArgs && !/^blob\:/.test(url) ?
+ url + config.urlArgs(moduleName, url) : url;
+ },
+
+ //Delegates to req.load. Broken out as a separate function to
+ //allow overriding in the optimizer.
+ load: function (id, url) {
+ req.load(context, id, url);
+ },
+
+ /**
+ * Executes a module callback function. Broken out as a separate function
+ * solely to allow the build system to sequence the files in the built
+ * layer in the right sequence.
+ *
+ * @private
+ */
+ execCb: function (name, callback, args, exports) {
+ return callback.apply(exports, args);
+ },
+
+ /**
+ * callback for script loads, used to check status of loading.
+ *
+ * @param {Event} evt the event from the browser for the script
+ * that was loaded.
+ */
+ onScriptLoad: function (evt) {
+ //Using currentTarget instead of target for Firefox 2.0's sake. Not
+ //all old browsers will be supported, but this one was easy enough
+ //to support and still makes sense.
+ if (evt.type === 'load' ||
+ (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {
+ //Reset interactive script so a script node is not held onto for
+ //to long.
+ interactiveScript = null;
+
+ //Pull out the name of the module and the context.
+ var data = getScriptData(evt);
+ context.completeLoad(data.id);
+ }
+ },
+
+ /**
+ * Callback for script errors.
+ */
+ onScriptError: function (evt) {
+ var data = getScriptData(evt);
+ if (!hasPathFallback(data.id)) {
+ var parents = [];
+ eachProp(registry, function(value, key) {
+ if (key.indexOf('_@r') !== 0) {
+ each(value.depMaps, function(depMap) {
+ if (depMap.id === data.id) {
+ parents.push(key);
+ return true;
+ }
+ });
+ }
+ });
+ return onError(makeError('scripterror', 'Script error for "' + data.id +
+ (parents.length ?
+ '", needed by: ' + parents.join(', ') :
+ '"'), evt, [data.id]));
+ }
+ }
+ };
+
+ context.require = context.makeRequire();
+ return context;
+ }
+
+ /**
+ * Main entry point.
+ *
+ * If the only argument to require is a string, then the module that
+ * is represented by that string is fetched for the appropriate context.
+ *
+ * If the first argument is an array, then it will be treated as an array
+ * of dependency string names to fetch. An optional function callback can
+ * be specified to execute when all of those dependencies are available.
+ *
+ * Make a local req variable to help Caja compliance (it assumes things
+ * on a require that are not standardized), and to give a short
+ * name for minification/local scope use.
+ */
+ req = requirejs = function (deps, callback, errback, optional) {
+
+ //Find the right context, use default
+ var context, config,
+ contextName = defContextName;
+
+ // Determine if have config object in the call.
+ if (!isArray(deps) && typeof deps !== 'string') {
+ // deps is a config object
+ config = deps;
+ if (isArray(callback)) {
+ // Adjust args if there are dependencies
+ deps = callback;
+ callback = errback;
+ errback = optional;
+ } else {
+ deps = [];
+ }
+ }
+
+ if (config && config.context) {
+ contextName = config.context;
+ }
+
+ context = getOwn(contexts, contextName);
+ if (!context) {
+ context = contexts[contextName] = req.s.newContext(contextName);
+ }
+
+ if (config) {
+ context.configure(config);
+ }
+
+ return context.require(deps, callback, errback);
+ };
+
+ /**
+ * Support require.config() to make it easier to cooperate with other
+ * AMD loaders on globally agreed names.
+ */
+ req.config = function (config) {
+ return req(config);
+ };
+
+ /**
+ * Execute something after the current tick
+ * of the event loop. Override for other envs
+ * that have a better solution than setTimeout.
+ * @param {Function} fn function to execute later.
+ */
+ req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
+ setTimeout(fn, 4);
+ } : function (fn) { fn(); };
+
+ /**
+ * Export require as a global, but only if it does not already exist.
+ */
+ if (!require) {
+ require = req;
+ }
+
+ req.version = version;
+
+ //Used to filter out dependencies that are already paths.
+ req.jsExtRegExp = /^\/|:|\?|\.js$/;
+ req.isBrowser = isBrowser;
+ s = req.s = {
+ contexts: contexts,
+ newContext: newContext
+ };
+
+ //Create default context.
+ req({});
+
+ //Exports some context-sensitive methods on global require.
+ each([
+ 'toUrl',
+ 'undef',
+ 'defined',
+ 'specified'
+ ], function (prop) {
+ //Reference from contexts instead of early binding to default context,
+ //so that during builds, the latest instance of the default context
+ //with its config gets used.
+ req[prop] = function () {
+ var ctx = contexts[defContextName];
+ return ctx.require[prop].apply(ctx, arguments);
+ };
+ });
+
+ if (isBrowser) {
+ head = s.head = document.getElementsByTagName('head')[0];
+ //If BASE tag is in play, using appendChild is a problem for IE6.
+ //When that browser dies, this can be removed. Details in this jQuery bug:
+ //http://dev.jquery.com/ticket/2709
+ baseElement = document.getElementsByTagName('base')[0];
+ if (baseElement) {
+ head = s.head = baseElement.parentNode;
+ }
+ }
+
+ /**
+ * Any errors that require explicitly generates will be passed to this
+ * function. Intercept/override it if you want custom error handling.
+ * @param {Error} err the error object.
+ */
+ req.onError = defaultOnError;
+
+ /**
+ * Creates the node for the load command. Only used in browser envs.
+ */
+ req.createNode = function (config, moduleName, url) {
+ var node = config.xhtml ?
+ document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') :
+ document.createElement('script');
+ node.type = config.scriptType || 'text/javascript';
+ node.charset = 'utf-8';
+ node.async = true;
+ return node;
+ };
+
+ /**
+ * Does the request to load a module for the browser case.
+ * Make this a separate function to allow other environments
+ * to override it.
+ *
+ * @param {Object} context the require context to find state.
+ * @param {String} moduleName the name of the module.
+ * @param {Object} url the URL to the module.
+ */
+ req.load = function (context, moduleName, url) {
+ var config = (context && context.config) || {},
+ node;
+ if (isBrowser) {
+ //In the browser so use a script tag
+ node = req.createNode(config, moduleName, url);
+
+ node.setAttribute('data-requirecontext', context.contextName);
+ node.setAttribute('data-requiremodule', moduleName);
+
+ //Set up load listener. Test attachEvent first because IE9 has
+ //a subtle issue in its addEventListener and script onload firings
+ //that do not match the behavior of all other browsers with
+ //addEventListener support, which fire the onload event for a
+ //script right after the script execution. See:
+ //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution
+ //UNFORTUNATELY Opera implements attachEvent but does not follow the script
+ //script execution mode.
+ if (node.attachEvent &&
+ //Check if node.attachEvent is artificially added by custom script or
+ //natively supported by browser
+ //read https://github.com/requirejs/requirejs/issues/187
+ //if we can NOT find [native code] then it must NOT natively supported.
+ //in IE8, node.attachEvent does not have toString()
+ //Note the test for "[native code" with no closing brace, see:
+ //https://github.com/requirejs/requirejs/issues/273
+ !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
+ !isOpera) {
+ //Probably IE. IE (at least 6-8) do not fire
+ //script onload right after executing the script, so
+ //we cannot tie the anonymous define call to a name.
+ //However, IE reports the script as being in 'interactive'
+ //readyState at the time of the define call.
+ useInteractive = true;
+
+ node.attachEvent('onreadystatechange', context.onScriptLoad);
+ //It would be great to add an error handler here to catch
+ //404s in IE9+. However, onreadystatechange will fire before
+ //the error handler, so that does not help. If addEventListener
+ //is used, then IE will fire error before load, but we cannot
+ //use that pathway given the connect.microsoft.com issue
+ //mentioned above about not doing the 'script execute,
+ //then fire the script load event listener before execute
+ //next script' that other browsers do.
+ //Best hope: IE10 fixes the issues,
+ //and then destroys all installs of IE 6-9.
+ //node.attachEvent('onerror', context.onScriptError);
+ } else {
+ node.addEventListener('load', context.onScriptLoad, false);
+ node.addEventListener('error', context.onScriptError, false);
+ }
+ node.src = url;
+
+ //Calling onNodeCreated after all properties on the node have been
+ //set, but before it is placed in the DOM.
+ if (config.onNodeCreated) {
+ config.onNodeCreated(node, config, moduleName, url);
+ }
+
+ //For some cache cases in IE 6-8, the script executes before the end
+ //of the appendChild execution, so to tie an anonymous define
+ //call to the module name (which is stored on the node), hold on
+ //to a reference to this node, but clear after the DOM insertion.
+ currentlyAddingScript = node;
+ if (baseElement) {
+ head.insertBefore(node, baseElement);
+ } else {
+ head.appendChild(node);
+ }
+ currentlyAddingScript = null;
+
+ return node;
+ } else if (isWebWorker) {
+ try {
+ //In a web worker, use importScripts. This is not a very
+ //efficient use of importScripts, importScripts will block until
+ //its script is downloaded and evaluated. However, if web workers
+ //are in play, the expectation is that a build has been done so
+ //that only one script needs to be loaded anyway. This may need
+ //to be reevaluated if other use cases become common.
+
+ // Post a task to the event loop to work around a bug in WebKit
+ // where the worker gets garbage-collected after calling
+ // importScripts(): https://webkit.org/b/153317
+ setTimeout(function() {}, 0);
+ importScripts(url);
+
+ //Account for anonymous modules
+ context.completeLoad(moduleName);
+ } catch (e) {
+ context.onError(makeError('importscripts',
+ 'importScripts failed for ' +
+ moduleName + ' at ' + url,
+ e,
+ [moduleName]));
+ }
+ }
+ };
+
+ function getInteractiveScript() {
+ if (interactiveScript && interactiveScript.readyState === 'interactive') {
+ return interactiveScript;
+ }
+
+ eachReverse(scripts(), function (script) {
+ if (script.readyState === 'interactive') {
+ return (interactiveScript = script);
+ }
+ });
+ return interactiveScript;
+ }
+
+ //Look for a data-main script attribute, which could also adjust the baseUrl.
+ if (isBrowser && !cfg.skipDataMain) {
+ //Figure out baseUrl. Get it from the script tag with require.js in it.
+ eachReverse(scripts(), function (script) {
+ //Set the 'head' where we can append children by
+ //using the script's parent.
+ if (!head) {
+ head = script.parentNode;
+ }
+
+ //Look for a data-main attribute to set main script for the page
+ //to load. If it is there, the path to data main becomes the
+ //baseUrl, if it is not already set.
+ dataMain = script.getAttribute('data-main');
+ if (dataMain) {
+ //Preserve dataMain in case it is a path (i.e. contains '?')
+ mainScript = dataMain;
+
+ //Set final baseUrl if there is not already an explicit one,
+ //but only do so if the data-main value is not a loader plugin
+ //module ID.
+ if (!cfg.baseUrl && mainScript.indexOf('!') === -1) {
+ //Pull off the directory of data-main for use as the
+ //baseUrl.
+ src = mainScript.split('/');
+ mainScript = src.pop();
+ subPath = src.length ? src.join('/') + '/' : './';
+
+ cfg.baseUrl = subPath;
+ }
+
+ //Strip off any trailing .js since mainScript is now
+ //like a module name.
+ mainScript = mainScript.replace(jsSuffixRegExp, '');
+
+ //If mainScript is still a path, fall back to dataMain
+ if (req.jsExtRegExp.test(mainScript)) {
+ mainScript = dataMain;
+ }
+
+ //Put the data-main script in the files to load.
+ cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript];
+
+ return true;
+ }
+ });
+ }
+
+ /**
+ * The function that handles definitions of modules. Differs from
+ * require() in that a string for the module should be the first argument,
+ * and the function to execute after dependencies are loaded should
+ * return a value to define the module corresponding to the first argument's
+ * name.
+ */
+ define = function (name, deps, callback) {
+ var node, context;
+
+ //Allow for anonymous modules
+ if (typeof name !== 'string') {
+ //Adjust args appropriately
+ callback = deps;
+ deps = name;
+ name = null;
+ }
+
+ //This module may not have dependencies
+ if (!isArray(deps)) {
+ callback = deps;
+ deps = null;
+ }
+
+ //If no name, and callback is a function, then figure out if it a
+ //CommonJS thing with dependencies.
+ if (!deps && isFunction(callback)) {
+ deps = [];
+ //Remove comments from the callback string,
+ //look for require calls, and pull them into the dependencies,
+ //but only if there are function args.
+ if (callback.length) {
+ callback
+ .toString()
+ .replace(commentRegExp, commentReplace)
+ .replace(cjsRequireRegExp, function (match, dep) {
+ deps.push(dep);
+ });
+
+ //May be a CommonJS thing even without require calls, but still
+ //could use exports, and module. Avoid doing exports and module
+ //work though if it just needs require.
+ //REQUIRES the function to expect the CommonJS variables in the
+ //order listed below.
+ deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps);
+ }
+ }
+
+ //If in IE 6-8 and hit an anonymous define() call, do the interactive
+ //work.
+ if (useInteractive) {
+ node = currentlyAddingScript || getInteractiveScript();
+ if (node) {
+ if (!name) {
+ name = node.getAttribute('data-requiremodule');
+ }
+ context = contexts[node.getAttribute('data-requirecontext')];
+ }
+ }
+
+ //Always save off evaluating the def call until the script onload handler.
+ //This allows multiple modules to be in a file without prematurely
+ //tracing dependencies, and allows for anonymous module support,
+ //where the module name is not known until the script onload event
+ //occurs. If no context, use the global queue, and get it processed
+ //in the onscript load callback.
+ if (context) {
+ context.defQueue.push([name, deps, callback]);
+ context.defQueueMap[name] = true;
+ } else {
+ globalDefQueue.push([name, deps, callback]);
+ }
+ };
+
+ define.amd = {
+ jQuery: true
+ };
+
+ /**
+ * Executes the text. Normally just uses eval, but can be modified
+ * to use a better, environment-specific call. Only used for transpiling
+ * loader plugins, not for plain JS modules.
+ * @param {String} text the text to execute/evaluate.
+ */
+ req.exec = function (text) {
+ /*jslint evil: true */
+ return eval(text);
+ };
+
+ //Set up with config info.
+ req(cfg);
+}(this));
diff --git a/fireboywatergirl2/data/light/temple.json b/fireboywatergirl2/data/light/temple.json
new file mode 100644
index 00000000..755426ae
--- /dev/null
+++ b/fireboywatergirl2/data/light/temple.json
@@ -0,0 +1 @@
+{"index":0,"id":"light","label":"light temple","color":"#AF7F36","type":"tree","levels":[{"id":1,"_id":1,"x":0.5,"y":0.85,"filename":"tutorials/levels/light_01.json","time":30,"mobileTime":50,"required":0,"initial":true},{"id":2,"_id":2,"x":0.5,"y":0.75,"filename":"light/levels/light_02.json","time":40,"mobileTime":92,"required":0},{"id":5,"_id":3,"x":0.5,"y":0.6,"filename":"light/levels/light_05.json","time":50,"mobileTime":55,"required":0},{"id":10,"_id":4,"x":0.55,"y":0.5,"filename":"light/levels/light_10.json","time":60,"mobileTime":70,"required":0},{"id":9,"_id":5,"x":0.45,"y":0.5,"filename":"light/levels/light_09.json","time":28,"mobileTime":50,"type":"speed","required":0},{"id":18,"_id":6,"x":0.45,"y":0.4,"filename":"light/levels/light_18.json","type":"dark","time":45,"mobileTime":60,"required":0},{"id":19,"_id":7,"x":0.55,"y":0.4,"filename":"light/levels/light_19.json","time":90,"mobileTime":110,"required":0},{"id":23,"_id":8,"x":0.5,"y":0.3,"filename":"light/levels/light_23.json","time":65,"mobileTime":90,"required":0},{"id":15,"_id":9,"x":0.65,"y":0.45,"filename":"light/levels/light_15.json","type":"dark","time":22,"mobileTime":40,"required":0},{"id":14,"_id":10,"x":0.35,"y":0.45,"filename":"light/levels/light_14.json","time":80,"mobileTime":110,"required":0},{"id":16,"_id":14,"x":0.75,"y":0.45,"filename":"light/levels/light_16.json","time":60,"mobileTime":80,"required":0},{"id":11,"_id":15,"x":0.75,"y":0.6,"filename":"light/levels/light_11.json","time":130,"mobileTime":160,"required":0},{"id":25,"_id":16,"x":0.75,"y":0.3,"filename":"light/levels/light_25.json","time":45,"mobileTime":80,"required":0},{"id":8,"_id":17,"x":0.25,"y":0.6,"filename":"light/levels/light_08.json","time":85,"mobileTime":110,"required":0},{"id":21,"_id":18,"x":0.25,"y":0.3,"filename":"light/levels/light_21.json","time":28,"mobileTime":32,"required":0},{"id":13,"_id":19,"x":0.25,"y":0.45,"filename":"light/levels/light_13.json","time":30,"mobileTime":60,"type":"dark","required":0},{"id":4,"_id":20,"x":0.4,"y":0.7,"filename":"light/levels/light_04.json","time":30,"mobileTime":45,"type":"speed","required":0},{"id":6,"_id":21,"x":0.6,"y":0.7,"filename":"light/levels/light_06.json","type":"dark","time":50,"mobileTime":110,"required":0},{"id":28,"_id":22,"x":0.5,"y":0.18,"filename":"light/levels/light_28.json","time":100,"mobileTime":115,"required":0},{"id":22,"_id":23,"x":0.4,"y":0.2,"filename":"light/levels/light_22.json","time":115,"mobileTime":180,"required":0},{"id":24,"_id":24,"x":0.6,"y":0.2,"filename":"light/levels/light_24.json","time":35,"mobileTime":45,"type":"speed","required":0},{"id":0,"_id":25,"x":0.5,"y":0.95,"filename":"tutorials/levels/forest_01.json","time":40,"mobileTime":70,"required":0,"initial":true},{"id":31,"_id":26,"x":0.4,"y":0.9,"filename":"light/levels/light_31.json","time":90,"mobileTime":100,"type":"puzzle","required":0},{"id":40,"_id":27,"x":0.6,"y":0.9,"filename":"light/levels/light_40.json","time":65,"mobileTime":70,"type":"puzzle","required":0},{"id":26,"_id":28,"x":0.85,"y":0.35,"filename":"light/levels/light_26.json","type":"dark","time":40,"mobileTime":55,"required":0},{"id":17,"_id":29,"x":0.85,"y":0.55,"filename":"light/levels/light_17.json","type":"speed","time":16,"mobileTime":35,"required":0},{"id":38,"_id":30,"x":0.95,"y":0.45,"filename":"light/levels/light_38.json","time":45,"mobileTime":58,"type":"puzzle","required":0},{"id":7,"_id":31,"x":0.7,"y":0.75,"filename":"light/levels/light_07.json","type":"speed","time":20,"mobileTime":30,"required":0},{"id":39,"_id":32,"x":0.9,"y":0.75,"filename":"light/levels/light_39.json","time":55,"mobileTime":75,"type":"puzzle","required":0},{"id":3,"_id":33,"x":0.3,"y":0.75,"filename":"light/levels/light_03.json","type":"dark","time":25,"mobileTime":55,"required":0},{"id":12,"_id":34,"x":0.15,"y":0.55,"filename":"light/levels/light_12.json","time":80,"mobileTime":140,"required":0},{"id":20,"_id":35,"x":0.15,"y":0.35,"filename":"light/levels/light_20.json","type":"speed","time":25,"mobileTime":45,"required":0},{"id":33,"_id":36,"x":0.05,"y":0.45,"filename":"light/levels/light_33.json","time":53,"mobileTime":63,"type":"puzzle","required":0},{"id":32,"_id":37,"x":0.1,"y":0.75,"filename":"light/levels/light_32.json","time":45,"mobileTime":55,"type":"puzzle","required":0},{"id":27,"_id":38,"x":0.3,"y":0.15,"filename":"light/levels/light_27.json","type":"speed","time":40,"mobileTime":55,"required":0},{"id":29,"_id":39,"x":0.7,"y":0.15,"filename":"light/levels/light_29.json","time":80,"mobileTime":90,"required":0},{"id":30,"_id":40,"x":0.5,"y":0.08,"filename":"light/levels/light_30.json","type":"dark","time":60,"mobileTime":70,"required":0},{"id":34,"_id":41,"x":0.1,"y":0.2,"filename":"light/levels/light_34.json","time":80,"mobileTime":160,"type":"puzzle","required":0},{"id":37,"_id":42,"x":0.9,"y":0.2,"filename":"light/levels/light_37.json","time":65,"mobileTime":85,"type":"puzzle","required":0},{"id":35,"_id":43,"x":0.4,"y":0.039,"filename":"light/levels/light_35.json","time":100,"mobileTime":110,"type":"puzzle","required":0},{"id":36,"_id":44,"x":0.6,"y":0.039,"filename":"light/levels/light_36.json","time":65,"mobileTime":90,"type":"puzzle","required":0}],"edges":[{"id":"temp","source":32,"target":27,"_id":"3227"},{"id":"temp","source":30,"target":42,"_id":"3042"},{"id":"temp","source":44,"target":43,"_id":"4443"},{"id":"temp","source":41,"target":36,"_id":"4136"},{"id":"temp","source":37,"target":26,"_id":"3726"},{"id":"temp","source":37,"target":34,"_id":"3734"},{"id":"temp","source":34,"target":36,"_id":"3436"},{"id":"temp","source":41,"target":38,"_id":"4138"},{"id":"temp","source":38,"target":43,"_id":"3843"},{"id":"temp","source":44,"target":39,"_id":"4439"},{"id":"temp","source":39,"target":42,"_id":"3942"},{"id":"temp","source":30,"target":29,"_id":"3029"},{"id":"temp","source":29,"target":32,"_id":"2932"},{"id":"temp","source":26,"target":1,"_id":"261"},{"id":"temp","source":1,"target":27,"_id":"127"},{"id":"temp","source":1,"target":2,"_id":"12"},{"id":"temp","source":1,"target":33,"_id":"133"},{"id":"temp","source":1,"target":31,"_id":"131"},{"id":"temp","source":31,"target":29,"_id":"3129"},{"id":"temp","source":29,"target":14,"_id":"2914"},{"id":"temp","source":14,"target":28,"_id":"1428"},{"id":"temp","source":14,"target":16,"_id":"1416"},{"id":"temp","source":15,"target":14,"_id":"1514"},{"id":"temp","source":28,"target":30,"_id":"2830"},{"id":"temp","source":36,"target":35,"_id":"3635"},{"id":"temp","source":35,"target":19,"_id":"3519"},{"id":"temp","source":19,"target":34,"_id":"1934"},{"id":"temp","source":34,"target":33,"_id":"3433"},{"id":"temp","source":2,"target":21,"_id":"221"},{"id":"temp","source":2,"target":20,"_id":"220"},{"id":"temp","source":2,"target":3,"_id":"23"},{"id":"temp","source":5,"target":7,"_id":"57"},{"id":"temp","source":4,"target":6,"_id":"46"},{"id":"temp","source":6,"target":10,"_id":"610"},{"id":"temp","source":10,"target":5,"_id":"105"},{"id":"temp","source":5,"target":3,"_id":"53"},{"id":"temp","source":3,"target":4,"_id":"34"},{"id":"temp","source":4,"target":9,"_id":"49"},{"id":"temp","source":9,"target":7,"_id":"97"},{"id":"temp","source":7,"target":8,"_id":"78"},{"id":"temp","source":8,"target":6,"_id":"86"},{"id":"temp","source":9,"target":14,"_id":"914"},{"id":"temp","source":10,"target":19,"_id":"1019"},{"id":"temp","source":40,"target":22,"_id":"4022"},{"id":"temp","source":39,"target":40,"_id":"3940"},{"id":"temp","source":40,"target":38,"_id":"4038"},{"id":"temp","source":40,"target":44,"_id":"4044"},{"id":"temp","source":18,"target":19,"_id":"1819"},{"id":"temp","source":19,"target":17,"_id":"1917"},{"id":"temp","source":19,"target":20,"_id":"1920"},{"id":"temp","source":21,"target":14,"_id":"2114"},{"id":"temp","source":21,"target":15,"_id":"2115"},{"id":"temp","source":17,"target":20,"_id":"1720"},{"id":"temp","source":19,"target":23,"_id":"1923"},{"id":"temp","source":23,"target":18,"_id":"2318"},{"id":"temp","source":24,"target":16,"_id":"2416"},{"id":"temp","source":14,"target":24,"_id":"1424"},{"id":"temp","source":24,"target":22,"_id":"2422"},{"id":"temp","source":23,"target":22,"_id":"2322"},{"id":"temp","source":8,"target":22,"_id":"822"},{"id":"temp","source":27,"target":31,"_id":"2731"},{"id":"temp","source":31,"target":32,"_id":"3132"},{"id":"temp","source":26,"target":33,"_id":"2633"},{"id":"temp","source":37,"target":33,"_id":"3733"},{"id":"temp","source":35,"target":38,"_id":"3538"},{"id":"temp","source":41,"target":35,"_id":"4135"},{"id":"temp","source":28,"target":39,"_id":"2839"},{"id":"temp","source":28,"target":42,"_id":"2842"},{"id":"temp","source":40,"target":43,"_id":"4043"}]}
\ No newline at end of file
diff --git a/fireboywatergirl2/data/tutorials/levels/forest_01.json b/fireboywatergirl2/data/tutorials/levels/forest_01.json
new file mode 100644
index 00000000..234edf60
--- /dev/null
+++ b/fireboywatergirl2/data/tutorials/levels/forest_01.json
@@ -0,0 +1 @@
+{"height":29,"infinite":false,"layers":[{"data":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,2,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,4,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,1,8,8,8,8,8,1,1,1,1,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,7,7,1,1,1,6,6,6,6,6,1,1,1,1,1,1,1,1],"height":29,"name":"Ground","opacity":1,"type":"tilelayer","visible":true,"width":39,"x":0,"y":0},{"draworder":"topdown","name":"Tutorial_dual","objects":[{"height":248,"id":35,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":464,"x":16,"y":664},{"height":32,"id":36,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest1","wrap":true},"type":"","visible":true,"width":408,"x":112,"y":680},{"height":32,"id":37,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest2","wrap":true},"type":"","visible":true,"width":360,"x":160,"y":720},{"height":184,"id":38,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":760,"x":480,"y":728},{"height":32,"id":41,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest3","wrap":true},"type":"","visible":true,"width":480,"x":608,"y":768},{"height":32,"id":43,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest4","wrap":true},"type":"","visible":true,"width":536,"x":608,"y":576},{"height":184,"id":44,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":360,"x":672,"y":536},{"height":32,"id":45,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest5","wrap":true},"type":"","visible":true,"width":536,"x":648,"y":616},{"height":32,"id":46,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest6","wrap":true},"type":"","visible":true,"width":536,"x":80,"y":528},{"height":32,"id":47,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest7","wrap":true},"type":"","visible":true,"width":344,"x":320,"y":560},{"height":184,"id":48,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":384,"x":160,"y":480},{"height":32,"id":49,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest8","wrap":true},"type":"","visible":true,"width":536,"x":328,"y":392},{"height":32,"id":50,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest9","wrap":true},"type":"","visible":true,"width":536,"x":520,"y":432},{"height":136,"id":51,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":736,"x":160,"y":368},{"height":136,"id":52,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":736,"x":368,"y":216},{"height":336,"id":53,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":344,"x":24,"y":16},{"height":32,"id":54,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest10","wrap":true},"type":"","visible":true,"width":344,"x":800,"y":224},{"height":32,"id":55,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest11","wrap":true},"type":"","visible":true,"width":320,"x":48,"y":48},{"height":32,"id":57,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest12","wrap":true},"type":"","visible":true,"width":232,"x":48,"y":88},{"height":208,"id":58,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":656,"x":568,"y":16},{"height":32,"id":61,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest13","wrap":true},"type":"","visible":true,"width":296,"x":912,"y":264},{"height":32,"id":63,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest14","wrap":true},"type":"","visible":true,"width":232,"x":48,"y":128},{"height":32,"id":116,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest15","wrap":true},"type":"","visible":true,"width":360,"x":200,"y":856},{"height":32,"id":117,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest16","wrap":true},"type":"","visible":true,"width":400,"x":200,"y":816},{"height":32,"id":126,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest17","wrap":true},"type":"","visible":true,"width":448,"x":480,"y":72},{"height":32,"id":127,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest18","wrap":true},"type":"","visible":true,"width":640,"x":480,"y":112}],"opacity":1,"type":"objectgroup","visible":false,"x":0,"y":0},{"draworder":"topdown","name":"Tutorial_single","objects":[{"height":248,"id":90,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":464,"x":16,"y":664},{"height":32,"id":91,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest19","wrap":true},"type":"","visible":true,"width":360,"x":160,"y":680},{"height":32,"id":92,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest20","wrap":true},"type":"","visible":true,"width":360,"x":160,"y":720},{"height":184,"id":93,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":760,"x":480,"y":728},{"height":32,"id":94,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest21","wrap":true},"type":"","visible":true,"width":544,"x":144,"y":808},{"height":32,"id":95,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest22","wrap":true},"type":"","visible":true,"width":480,"x":192,"y":848},{"height":32,"id":96,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest23","wrap":true},"type":"","visible":true,"width":480,"x":608,"y":768},{"height":32,"id":97,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest24","wrap":true},"type":"","visible":true,"width":536,"x":608,"y":576},{"height":184,"id":98,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":360,"x":672,"y":536},{"height":32,"id":99,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest25","wrap":true},"type":"","visible":true,"width":536,"x":648,"y":616},{"height":32,"id":100,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest26","wrap":true},"type":"","visible":true,"width":536,"x":80,"y":528},{"height":32,"id":101,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest27","wrap":true},"type":"","visible":true,"width":344,"x":320,"y":560},{"height":184,"id":102,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":384,"x":160,"y":480},{"height":32,"id":103,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest28","wrap":true},"type":"","visible":true,"width":536,"x":328,"y":392},{"height":32,"id":104,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest29","wrap":true},"type":"","visible":true,"width":536,"x":520,"y":432},{"height":136,"id":105,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":736,"x":160,"y":368},{"height":136,"id":106,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":736,"x":368,"y":216},{"height":336,"id":107,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":344,"x":24,"y":16},{"height":32,"id":108,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest30","wrap":true},"type":"","visible":true,"width":344,"x":800,"y":224},{"height":32,"id":109,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest31","wrap":true},"type":"","visible":true,"width":320,"x":48,"y":48},{"height":32,"id":110,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest32","wrap":true},"type":"","visible":true,"width":232,"x":48,"y":88},{"height":208,"id":111,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":656,"x":568,"y":16},{"height":32,"id":114,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest33","wrap":true},"type":"","visible":true,"width":296,"x":912,"y":264},{"height":32,"id":115,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest34","wrap":true},"type":"","visible":true,"width":232,"x":48,"y":128},{"height":32,"id":124,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest35","wrap":true},"type":"","visible":true,"width":1000,"x":280,"y":72},{"height":32,"id":125,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest36","wrap":true},"type":"","visible":true,"width":640,"x":480,"y":122}],"opacity":1,"type":"objectgroup","visible":false,"x":0,"y":0},{"draworder":"topdown","name":"Tutorial_keyboard","objects":[{"height":248,"id":64,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":464,"x":16,"y":664},{"height":32,"id":65,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest37","wrap":true},"type":"","visible":true,"width":360,"x":160,"y":680},{"height":32,"id":66,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest38","wrap":true},"type":"","visible":true,"width":360,"x":160,"y":720},{"height":184,"id":67,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":760,"x":480,"y":728},{"height":32,"id":68,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest39","wrap":true},"type":"","visible":true,"width":544,"x":144,"y":808},{"height":32,"id":69,"name":"","properties":{"id":0},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest40","wrap":true},"type":"","visible":true,"width":480,"x":192,"y":848},{"height":32,"id":70,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest41","wrap":true},"type":"","visible":true,"width":480,"x":608,"y":768},{"height":32,"id":71,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest42","wrap":true},"type":"","visible":true,"width":536,"x":608,"y":576},{"height":184,"id":72,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":360,"x":672,"y":536},{"height":32,"id":73,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest43","wrap":true},"type":"","visible":true,"width":536,"x":648,"y":616},{"height":32,"id":74,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest44","wrap":true},"type":"","visible":true,"width":536,"x":80,"y":528},{"height":32,"id":75,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest45","wrap":true},"type":"","visible":true,"width":344,"x":320,"y":560},{"height":184,"id":76,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":384,"x":160,"y":480},{"height":32,"id":77,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest46","wrap":true},"type":"","visible":true,"width":536,"x":328,"y":392},{"height":32,"id":78,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest47","wrap":true},"type":"","visible":true,"width":536,"x":520,"y":432},{"height":136,"id":79,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":736,"x":160,"y":368},{"height":136,"id":80,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":736,"x":368,"y":216},{"height":336,"id":81,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":344,"x":24,"y":16},{"height":32,"id":82,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest48","wrap":true},"type":"","visible":true,"width":344,"x":800,"y":224},{"height":32,"id":83,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest49","wrap":true},"type":"","visible":true,"width":320,"x":48,"y":48},{"height":32,"id":84,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest50","wrap":true},"type":"","visible":true,"width":232,"x":48,"y":88},{"height":208,"id":85,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":712,"x":512,"y":16},{"height":32,"id":86,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest51","wrap":true},"type":"","visible":true,"width":448,"x":480,"y":72},{"height":32,"id":87,"name":"","properties":{"id":7},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest52","wrap":true},"type":"","visible":true,"width":640,"x":480,"y":112},{"height":32,"id":88,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest53","wrap":true},"type":"","visible":true,"width":296,"x":912,"y":264},{"height":32,"id":89,"name":"","properties":{"id":6},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_forest54","wrap":true},"type":"","visible":true,"width":232,"x":48,"y":128}],"opacity":1,"type":"objectgroup","visible":true,"x":0,"y":0},{"draworder":"topdown","name":"Chars","objects":[{"gid":16,"height":64,"id":1,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":64,"y":896},{"gid":17,"height":64,"id":5,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":64,"y":768},{"gid":19,"height":64,"id":9,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":1136,"y":192},{"gid":18,"height":64,"id":10,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":1024,"y":192},{"gid":21,"height":64,"id":12,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":720,"y":496},{"gid":21,"height":64,"id":13,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":728,"y":176},{"gid":21,"height":64,"id":14,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":40,"y":216},{"gid":20,"height":64,"id":15,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":338,"y":112},{"gid":20,"height":64,"id":16,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":208,"y":456},{"gid":20,"height":64,"id":17,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":624,"y":880},{"gid":21,"height":64,"id":18,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":880,"y":878}],"opacity":1,"type":"objectgroup","visible":true,"x":0,"y":0},{"draworder":"topdown","name":"Objects","objects":[{"gid":24,"height":64,"id":20,"name":"","properties":{"group":5},"propertytypes":{"group":"int"},"rotation":0,"type":"","visible":true,"width":64,"x":960,"y":384},{"gid":24,"height":64,"id":22,"name":"","properties":{"group":5},"propertytypes":{"group":"int"},"rotation":0,"type":"","visible":true,"width":64,"x":320,"y":512},{"gid":26,"height":64,"id":25,"name":"","properties":{"group":4},"propertytypes":{"group":"int"},"rotation":0,"type":"","visible":true,"width":64,"x":272,"y":672},{"height":32,"id":30,"name":"","properties":{"dx":0,"dy":-3,"group":5},"propertytypes":{"dx":"int","dy":"int","group":"int"},"rotation":0,"type":"platform","visible":true,"width":128,"x":1088,"y":384},{"gid":28,"height":64,"id":32,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":704,"y":288},{"height":32,"id":33,"name":"","properties":{"dx":0,"dy":-3,"group":4},"propertytypes":{"dx":"int","dy":"int","group":"int"},"rotation":0,"type":"platform","visible":true,"width":128,"x":32,"y":480}],"opacity":1,"type":"objectgroup","visible":true,"x":0,"y":0}],"nextobjectid":130,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.1.3","tileheight":32,"tilesets":[{"firstgid":1,"source":"../../../assets/tilemaps/tilesets/Ground.json"},{"firstgid":16,"source":"../../../assets/tilemaps/tilesets/Chars.json"},{"firstgid":24,"source":"../../../assets/tilemaps/tilesets/Objects.json"}],"tilewidth":32,"type":"map","version":1,"width":39}
\ No newline at end of file
diff --git a/fireboywatergirl2/data/tutorials/levels/light_01.json b/fireboywatergirl2/data/tutorials/levels/light_01.json
new file mode 100644
index 00000000..4f67b1ab
--- /dev/null
+++ b/fireboywatergirl2/data/tutorials/levels/light_01.json
@@ -0,0 +1 @@
+{"height":29,"infinite":false,"layers":[{"data":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,1,1,1,1,1,3,0,0,2,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,1,1,1,1,5,0,0,0,0,0,0,4,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,5,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"height":29,"name":"Ground","opacity":1,"type":"tilelayer","visible":true,"width":39,"x":0,"y":0},{"draworder":"topdown","name":"Tutorial","objects":[{"height":208,"id":47,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":744,"x":32,"y":704},{"height":32,"id":48,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light1","wrap":true},"type":"","visible":true,"width":648,"x":104,"y":744},{"height":32,"id":49,"name":"","properties":{"id":1},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light2","wrap":true},"type":"","visible":true,"width":648,"x":160,"y":784},{"height":416,"id":50,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":384,"x":840,"y":400},{"height":32,"id":52,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light3","wrap":true},"type":"","visible":true,"width":336,"x":898,"y":464},{"height":32,"id":53,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light4","wrap":true},"type":"","visible":true,"width":336,"x":848,"y":504},{"height":32,"id":54,"name":"","properties":{"id":2},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light5","wrap":true},"type":"","visible":true,"width":336,"x":898,"y":544},{"height":504,"id":55,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":160,"x":672,"y":112},{"height":32,"id":56,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light6","wrap":true},"type":"","visible":true,"width":336,"x":688,"y":208},{"height":32,"id":57,"name":"","properties":{"id":3},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light7","wrap":true},"type":"","visible":true,"width":336,"x":688,"y":256},{"height":480,"id":58,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":504,"x":160,"y":64},{"height":32,"id":59,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light8","wrap":true},"type":"","visible":true,"width":528,"x":120,"y":224},{"height":32,"id":60,"name":"","properties":{"id":4},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light9","wrap":true},"type":"","visible":true,"width":200,"x":304,"y":272},{"height":144,"id":61,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"type":"","visible":true,"width":440,"x":8,"y":552},{"height":32,"id":62,"name":"","properties":{"id":5},"propertytypes":{"id":"int"},"rotation":0,"text":{"bold":true,"fontfamily":"Trajan Pro","halign":"center","pixelsize":24,"text":"tutorial_light10","wrap":true},"type":"","visible":true,"width":288,"x":200,"y":416}],"opacity":1,"type":"objectgroup","visible":true,"x":0,"y":0},{"draworder":"topdown","name":"Chars","objects":[{"gid":16,"height":64,"id":2,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":200,"y":896},{"gid":18,"height":64,"id":3,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":48,"y":672},{"gid":19,"height":64,"id":4,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":272,"y":672},{"gid":21,"height":64,"id":5,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":1072,"y":592},{"gid":21,"height":64,"id":6,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":928,"y":352},{"gid":21,"height":64,"id":7,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":336,"y":480},{"gid":20,"height":64,"id":8,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":496,"y":480},{"gid":20,"height":64,"id":9,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":912,"y":640},{"gid":17,"height":64,"id":32,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":304,"y":896}],"opacity":1,"type":"objectgroup","visible":true,"x":0,"y":0},{"draworder":"topdown","name":"Objects","objects":[{"gid":29,"height":64,"id":10,"name":"","properties":{"color":"blue","group":10,"initialState":1},"propertytypes":{"color":"string","group":"int","initialState":"int"},"rotation":0,"type":"","visible":true,"width":64,"x":64,"y":896},{"gid":31,"height":64,"id":11,"name":"","properties":{"color":"blue","group":6},"propertytypes":{"color":"string","group":"int"},"rotation":-90,"type":"","visible":true,"width":64,"x":608,"y":896},{"gid":36,"height":64,"id":12,"name":"","rotation":0,"type":"","visible":true,"width":64,"x":960,"y":768},{"gid":31,"height":64,"id":13,"name":"","properties":{"color":"yellow","group":41},"propertytypes":{"color":"string","group":"int"},"rotation":-90,"type":"","visible":true,"width":64,"x":1240,"y":768},{"gid":31,"height":64,"id":14,"name":"","properties":{"color":"yellow","group":4},"propertytypes":{"color":"string","group":"int"},"rotation":-90,"type":"","visible":true,"width":64,"x":672,"y":400},{"gid":31,"height":64,"id":15,"name":"","properties":{"group":42},"propertytypes":{"group":"int"},"rotation":180,"type":"","visible":true,"width":64,"x":1056,"y":0},{"gid":29,"height":64,"id":17,"name":"","properties":{"group":11,"initialState":1},"propertytypes":{"group":"int","initialState":"int"},"rotation":-90,"type":"","visible":true,"width":64,"x":128,"y":576},{"gid":25,"height":64,"id":18,"name":"","properties":{"group":2},"propertytypes":{"group":"int"},"rotation":0,"type":"","visible":true,"width":64,"x":832,"y":416},{"height":32,"id":24,"name":"","properties":{"dx":-3,"group":4},"propertytypes":{"dx":"int","group":"int"},"rotation":0,"type":"platform","visible":true,"width":96,"x":160,"y":544},{"height":96,"id":25,"name":"","properties":{"dx":0,"dy":-3,"group":42},"propertytypes":{"dx":"int","dy":"int","group":"int"},"rotation":0,"type":"platform","visible":true,"width":32,"x":640,"y":448},{"height":96,"id":27,"name":"","properties":{"dx":0,"dy":-3,"group":41},"propertytypes":{"dx":"int","dy":"int","group":"int"},"rotation":0,"type":"platform","visible":true,"width":32,"x":800,"y":512},{"height":96,"id":28,"name":"","properties":{"dx":0,"dy":-3,"group":6},"propertytypes":{"dx":"int","dy":"int","group":"int"},"rotation":0,"type":"platform","visible":true,"width":32,"x":800,"y":736},{"gid":35,"height":64,"id":29,"name":"","properties":{"group":1},"propertytypes":{"group":"int"},"rotation":90,"type":"","visible":true,"width":64,"x":64,"y":128},{"height":0,"id":34,"name":"","polyline":[{"x":0,"y":0},{"x":304,"y":0}],"properties":{"group":1,"max":0.5,"min":-0.5},"propertytypes":{"group":"int","max":"float","min":"float"},"rotation":0,"type":"slider","visible":true,"width":0,"x":288,"y":512},{"gid":30,"height":64,"id":36,"name":"","properties":{"group":2},"propertytypes":{"group":"int"},"rotation":0,"type":"","visible":true,"width":64,"x":992,"y":192}],"opacity":1,"type":"objectgroup","visible":true,"x":0,"y":0}],"nextobjectid":63,"orientation":"orthogonal","renderorder":"right-down","tiledversion":"1.1.3","tileheight":32,"tilesets":[{"firstgid":1,"source":"../../../assets/tilemaps/tilesets/Ground.json"},{"firstgid":16,"source":"../../../assets/tilemaps/tilesets/Chars.json"},{"firstgid":24,"source":"../../../assets/tilemaps/tilesets/Objects.json"}],"tilewidth":32,"type":"map","version":1,"width":39}
\ No newline at end of file
diff --git a/fireboywatergirl2/fireboy-and-watergirl-light-temple.min.js b/fireboywatergirl2/fireboy-and-watergirl-light-temple.min.js
new file mode 100644
index 00000000..557bcd40
--- /dev/null
+++ b/fireboywatergirl2/fireboy-and-watergirl-light-temple.min.js
@@ -0,0 +1,58 @@
+!function(a){if("object"==typeof exports)module.exports=a();else{var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.p2=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c||a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&i<=1&&j>=0&&j<=1}},{"./Scalar":4}],2:[function(a,b,c){function d(){}b.exports=d,d.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},d.left=function(a,b,c){return d.area(a,b,c)>0},d.leftOn=function(a,b,c){return d.area(a,b,c)>=0},d.right=function(a,b,c){return d.area(a,b,c)<0},d.rightOn=function(a,b,c){return d.area(a,b,c)<=0};var e=[],f=[];d.collinear=function(a,b,c,g){if(g){var h=e,i=f;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=c[0]-b[0],i[1]=c[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]);return Math.acos(j/(k*l))a.vertices.length)throw new Error("lol2");if(b<0)throw new Error("lol3");for(var d=b;db[a][0])&&(a=c);g.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},d.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},d.prototype.isReflex=function(a){return g.right(this.at(a-1),this.at(a),this.at(a+1))};var i=[],j=[];d.prototype.canSee=function(a,b){var c,d,e=i,h=j;if(g.leftOn(this.at(a+1),this.at(a),this.at(b))&&g.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=g.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&g.leftOn(this.at(a),this.at(b),this.at(k+1))&&g.rightOn(this.at(a),this.at(b),this.at(k))&&(e[0]=this.at(a),e[1]=this.at(b),h[0]=this.at(k),h[1]=this.at(k+1),c=f.lineInt(e,h),g.sqdist(this.at(a),c)0?this.slice(a):[this]},d.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;ch)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xq&&(q+=this.vertices.length),p=Number.MAX_VALUE,q3&&c>=0;--c)g.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b,c){function d(){}b.exports=d,d.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b,c){function d(a){this.lowerBound=e.create(),a&&a.lowerBound&&e.copy(this.lowerBound,a.lowerBound),this.upperBound=e.create(),a&&a.upperBound&&e.copy(this.upperBound,a.upperBound)}var e=a("../math/vec2");a("../utils/Utils");b.exports=d;var f=e.create();d.prototype.setFromPoints=function(a,b,c,d){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?e.rotate(g,a[0],c):e.copy(g,a[0]),e.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;kh[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b,c){function d(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=d.AABB}var e=a("../math/vec2"),f=a("../objects/Body");b.exports=d,d.AABB=1,d.BOUNDING_CIRCLE=2,d.prototype.setWorld=function(a){this.world=a},d.prototype.getCollisionPairs=function(a){};var g=e.create();d.boundingRadiusCheck=function(a,b){e.sub(g,a.position,b.position);var c=e.squaredLength(g),d=a.boundingRadius+b.boundingRadius;return c<=d*d},d.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},d.prototype.boundingVolumeCheck=function(a,b){var c;switch(this.boundingVolumeType){case d.BOUNDING_CIRCLE:c=d.boundingRadiusCheck(a,b);break;case d.AABB:c=d.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return c},d.canCollide=function(a,b){var c=f.KINEMATIC,d=f.STATIC;return(a.type!==d||b.type!==d)&&(!(a.type===c&&b.type===d||a.type===d&&b.type===c)&&((a.type!==c||b.type!==c)&&((a.sleepState!==f.SLEEPING||b.sleepState!==f.SLEEPING)&&!(a.sleepState===f.SLEEPING&&b.type===d||b.sleepState===f.SLEEPING&&a.type===d))))},d.NAIVE=1,d.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b,c){function d(){e.call(this,e.NAIVE)}var e=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var d=0,f=b.length;d!==f;d++)for(var g=b[d],h=0;hW&&V0)for(var N=0;NMath.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,f);return h(q.normalA,j,c),g.normalize(q.normalA,q.normalA),g.scale(q.contactPointA,q.normalA,m),g.scale(q.contactPointB,q.normalA,-n),i(q.contactPointA,q.contactPointA,c),h(q.contactPointA,q.contactPointA,a.position),i(q.contactPointB,q.contactPointB,j),h(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},d.prototype[q.PLANE|q.CONVEX]=d.prototype[q.PLANE|q.BOX]=d.prototype.planeConvex=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=0;g.rotate(o,s,d);for(var r=0;r!==f.vertices.length;r++){var w=f.vertices[r];if(g.rotate(n,w,l),i(n,n,k),h(p,n,c),j(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,f);h(p,n,c),g.copy(x.normalA,o);var y=j(p,x.normalA);g.scale(p,x.normalA,y),h(x.contactPointB,n,e.position),h(x.contactPointA,n,p),h(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},d.prototype[q.PARTICLE|q.PLANE]=d.prototype.particlePlane=function(a,b,c,d,e,f,i,k,l){var m=t,n=u;k=k||0,h(m,c,i),g.rotate(n,s,k);var o=j(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,f,b);return g.copy(p.normalA,n),g.scale(m,p.normalA,o),h(p.contactPointA,c,m),h(p.contactPointA,p.contactPointA,e.position),h(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},d.prototype[q.CIRCLE|q.PARTICLE]=d.prototype.circleParticle=function(a,b,c,d,e,f,j,k,l){var m=t;if(h(m,j,c),g.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,f);return g.copy(n.normalA,m),g.normalize(n.normalA,n.normalA),g.scale(n.contactPointA,n.normalA,b.radius),i(n.contactPointA,n.contactPointA,c),h(n.contactPointA,n.contactPointA,a.position),h(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};var X=new o({radius:1}),Y=g.create(),Z=g.create();g.create();d.prototype[q.PLANE|q.CAPSULE]=d.prototype.planeCapsule=function(a,b,c,d,e,f,h,j,k){var l=Y,m=Z,n=X;g.set(l,-f.length/2,0),g.rotate(l,l,j),i(l,l,h),g.set(m,f.length/2,0),g.rotate(m,m,j),i(m,m,h),n.radius=f.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},d.prototype[q.CIRCLE|q.PLANE]=d.prototype.circlePlane=function(a,b,c,d,e,f,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;h(x,p,r),g.rotate(y,s,w);var A=j(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,f,b);return g.copy(B.normalA,y),g.scale(B.contactPointB,B.normalA,-o.radius),i(B.contactPointB,B.contactPointB,p),h(B.contactPointB,B.contactPointB,n.position),g.scale(z,B.normalA,A),h(B.contactPointA,x,z),i(B.contactPointA,B.contactPointA,r),h(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},d.prototype[q.CONVEX]=d.prototype[q.CONVEX|q.BOX]=d.prototype[q.BOX]=d.prototype.convexConvex=function(a,b,c,e,f,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0;if(!d.findSeparatingAxis(b,c,e,k,l,m,p))return 0;h(D,l,c),j(p,D)>0&&g.scale(p,p,-1);var G=d.getClosestEdge(b,e,p,!0),H=d.getClosestEdge(k,m,p);if(-1===G||-1===H)return 0;for(var I=0;I<2;I++){var J=G,K=H,L=b,M=k,N=c,O=l,P=e,Q=m,R=a,S=f;if(0===I){var T;T=J,J=K,K=T,T=L,L=M,M=T,T=N,N=O,O=T,T=P,P=Q,Q=T,T=R,R=S,S=T}for(var U=K;U=3){if(n)return!0;var _=this.createContactEquation(R,S,L,M);F++;var Y=L.vertices[J%L.vertices.length],Z=L.vertices[(J+1)%L.vertices.length];g.rotate(r,Y,P),g.rotate(s,Z,P),i(r,r,N),i(s,s,N),h(y,s,r),g.rotate90cw(_.normalA,y),g.normalize(_.normalA,_.normalA),h(D,q,r);var $=j(_.normalA,D);g.scale(C,_.normalA,$),h(_.contactPointA,q,N),h(_.contactPointA,_.contactPointA,C),i(_.contactPointA,_.contactPointA,N),h(_.contactPointA,_.contactPointA,R.position),h(_.contactPointB,q,O),i(_.contactPointB,_.contactPointB,O),h(_.contactPointB,_.contactPointB,S.position),this.contactEquations.push(_),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(_))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var $=g.fromValues(0,0);d.projectConvexOntoAxis=function(a,b,c,d,e){var f,h,i=null,k=null,l=$;g.rotate(l,d,-c);for(var m=0;mi)&&(i=h),(null===k||hi){var n=k;k=i,i=n}var o=j(b,d);g.set(e,k+o,i+o)};var _=g.fromValues(0,0),aa=g.fromValues(0,0),ba=g.fromValues(0,0),ca=g.fromValues(0,0),da=g.fromValues(0,0),ea=g.fromValues(0,0);d.findSeparatingAxis=function(a,b,c,e,f,i,j){var k=null,l=!1,m=!1,n=_,o=aa,p=ba,q=ca,s=da,t=ea;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?g.set(q,0,1):1===x&&g.set(q,1,0),0!==w&&g.rotate(q,q,w),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t;s[0]>t[0]&&(z=s,y=t,!0);var A=z[0]-y[1];l=A<=0,(null===k||A>k)&&(g.copy(j,q),k=A,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){g.rotate(o,v.vertices[x],w),g.rotate(p,v.vertices[(x+1)%v.vertices.length],w),h(n,p,o),g.rotate90cw(q,n),g.normalize(q,q),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t;s[0]>t[0]&&(z=s,y=t,!0);var A=z[0]-y[1];l=A<=0,(null===k||A>k)&&(g.copy(j,q),k=A,m=l)}}return m};var fa=g.fromValues(0,0),ga=g.fromValues(0,0),ha=g.fromValues(0,0);d.getClosestEdge=function(a,b,c,d){var e=fa,f=ga,i=ha;g.rotate(e,c,-b),d&&g.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){h(f,a.vertices[(n+1)%l],a.vertices[n%l]),g.rotate90cw(i,f),g.normalize(i,i);var o=j(i,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var ia=g.create(),ja=g.create(),ka=g.create(),la=g.create(),ma=g.create(),na=g.create(),oa=g.create();d.prototype[q.CIRCLE|q.HEIGHTFIELD]=d.prototype.circleHeightfield=function(a,b,c,d,e,f,j,k,l,m){var n=f.heights,m=m||b.radius,o=f.elementWidth,p=ja,q=ia,r=ma,s=oa,t=na,u=ka,v=la,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);w<0&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;Ay&&(y=n[A]);if(c[1]-m>y)return!l&&0;for(var B=!1,A=w;A=u[0]&&q[0]0)for(var A=w;A<=x;A++)if(g.set(u,A*o,n[A]),g.add(u,u,j),g.sub(p,c,u),g.squaredLength(p)=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;us&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return!j&&0;for(var v=0,u=q;u=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var g=f.create();d.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=g,e=0,h=b.shapes.length;eb.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,d,c),this._currentBody=this._currentShape=null)},d.prototype.getAABB=function(a){var b=this.to,c=this.from;f.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),f.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};f.create();d.prototype.reportIntersection=function(a,b,c,e){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&f.dot(c,this.direction)>0))switch(this.mode){case d.ALL:a.set(c,g,h,b,e),this.callback(a);break;case d.CLOSEST:(b=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},d.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;d.sortAxisList(a,b)},d.prototype.getCollisionPairs=function(a){var b=this.axisList,c=this.result,d=this.axisIndex;c.length=0;for(var e=b.length;e--;){var g=b[e];g.aabbNeedsUpdate&&g.updateAABB()}this.sortList();for(var h=0,i=0|b.length;h!==i;h++)for(var j=b[h],k=h+1;kthis.upperLimit&&(f.maxForce=0,f.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)h.scale(e.normalA,j,-1),h.sub(e.contactPointA,k,g.position),h.sub(e.contactPointB,l,i.position),h.scale(o,j,c),h.add(e.contactPointA,e.contactPointA,o),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&sh)o.angle=h,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&q>1;if(b<3)return[];for(var c=[],e=[],f=0;f3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(d._convex(k,l,m,n,o,p)){q=!0;for(var r=0;r3*g)break}return c.push(e[0],e[1],e[2]),c},d._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&u+v<1},d._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=d},{}],30:[function(a,b,c){var d=b.exports={},e=a("../utils/Utils");d.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},d.crossVZ=function(a,b,c){return d.rotate(a,b,-Math.PI/2),d.scale(a,a,c),a},d.crossZV=function(a,b,c){return d.rotate(a,c,Math.PI/2),d.scale(a,a,b),a},d.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},d.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},d.toLocalFrame=function(a,b,c,e){d.copy(a,b),d.sub(a,a,c),d.rotate(a,a,-e)},d.toGlobalFrame=function(a,b,c,e){d.copy(a,b),d.rotate(a,a,e),d.add(a,a,c)},d.vectorToLocalFrame=function(a,b,c){d.rotate(a,b,-c)},d.vectorToGlobalFrame=function(a,b,c){d.rotate(a,b,c)},d.centroid=function(a,b,c,e){return d.add(a,b,c),d.add(a,a,e),d.scale(a,a,1/3),a},d.create=function(){var a=new e.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},d.clone=function(a){var b=new e.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},d.fromValues=function(a,b){var c=new e.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},d.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},d.set=function(a,b,c){return a[0]=b,a[1]=c,a},d.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},d.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},d.sub=d.subtract,d.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},d.mul=d.multiply,d.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},d.div=d.divide,d.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},d.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},d.dist=d.distance,d.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},d.sqrDist=d.squaredDistance,d.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},d.len=d.length,d.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},d.sqrLen=d.squaredLength,d.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},d.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},d.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},d.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},d.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},d.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},d.getLineSegmentsIntersection=function(a,b,c,e,f){var g=d.getLineSegmentsIntersectionFraction(b,c,e,f);return!(g<0)&&(a[0]=b[0]+g*(c[0]-b[0]),a[1]=b[1]+g*(c[1]-b[1]),!0)},d.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&e<=1&&f>=0&&f<=1?f:-1}},{"../utils/Utils":57}],31:[function(a,b,c){function d(a){a=a||{},k.call(this),this.id=a.id||++d._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=e.create(),this.position=e.fromValues(0,0),a.position&&e.copy(this.position,a.position),this.interpolatedPosition=e.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=e.fromValues(0,0),this.previousAngle=0,this.velocity=e.fromValues(0,0),a.velocity&&e.copy(this.velocity,a.velocity),this.vlambda=e.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=e.create(),a.force&&e.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=d.STATIC,void 0!==a.type?this.type=a.type:a.mass?this.type=d.DYNAMIC:this.type=d.STATIC,this.boundingRadius=0,this.aabb=new j,this.aabbNeedsUpdate=!0,this.allowSleep=void 0===a.allowSleep||a.allowSleep,this.wantsToSleep=!1,this.sleepState=d.AWAKE,this.sleepSpeedLimit=void 0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void 0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void 0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void 0===a.collisionResponse||a.collisionResponse,this.idleTime=0,this.timeLastSleepy=0,
+this.ccdSpeedThreshold=void 0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void 0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var e=a("../math/vec2"),f=a("poly-decomp"),g=a("../shapes/Convex"),h=a("../collision/RaycastResult"),i=a("../collision/Ray"),j=a("../collision/AABB"),k=a("../events/EventEmitter");b.exports=d,d.prototype=new k,d.prototype.constructor=d,d._idCounter=0,d.prototype.updateSolveMassProperties=function(){this.sleepState===d.SLEEPING||this.type===d.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},d.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},d.prototype.getArea=function(){for(var a=0,b=0;bc&&(c=g+h)}this.boundingRadius=c},d.prototype.addShape=function(a,b,c){if(a.body)throw new Error("A shape can only be added to one body.");a.body=this,b?e.copy(a.position,b):e.set(a.position,0,0),a.angle=c||0,this.shapes.push(a),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},d.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b&&(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0)},d.prototype.updateMassProperties=function(){if(this.type===d.STATIC||this.type===d.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,c=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;g0?1/f:0}this.invMass=1/this.mass,e.set(this.massMultiplier,this.fixedX?0:1,this.fixedY?0:1)}};e.create();d.prototype.applyForce=function(a,b){if(e.add(this.force,this.force,a),b){var c=e.crossLength(b,a);this.angularForce+=c}};var n=e.create(),o=e.create(),p=e.create();d.prototype.applyForceLocal=function(a,b){b=b||p;var c=n,d=o;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};var q=e.create();d.prototype.applyImpulse=function(a,b){if(this.type===d.DYNAMIC){var c=q;if(e.scale(c,a,this.invMass),e.multiply(c,this.massMultiplier,c),e.add(this.velocity,c,this.velocity),b){var f=e.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};var r=e.create(),s=e.create(),t=e.create();d.prototype.applyImpulseLocal=function(a,b){b=b||t;var c=r,d=s;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyImpulse(c,d)},d.prototype.toLocalFrame=function(a,b){e.toLocalFrame(a,b,this.position,this.angle)},d.prototype.toWorldFrame=function(a,b){e.toGlobalFrame(a,b,this.position,this.angle)},d.prototype.vectorToLocalFrame=function(a,b){e.vectorToLocalFrame(a,b,this.angle)},d.prototype.vectorToWorldFrame=function(a,b){e.vectorToGlobalFrame(a,b,this.angle)},d.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var d=new f.Polygon;if(d.vertices=a,d.makeCCW(),"number"==typeof b.removeCollinearPoints&&d.removeCollinearPoints(b.removeCollinearPoints),void 0===b.skipSimpleCheck&&!d.isSimple())return!1;this.concavePath=d.vertices.slice(0);for(var c=0;c=Math.pow(this.sleepSpeedLimit,2)?(this.idleTime=0,this.sleepState=d.AWAKE):(this.idleTime+=c,this.sleepState=d.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},d.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)};var x=e.create(),y=e.create();d.prototype.integrate=function(a){var b=this.invMass,c=this.force,d=this.position,f=this.velocity;e.copy(this.previousPosition,this.position),this.previousAngle=this.angle,this.fixedRotation||(this.angularVelocity+=this.angularForce*this.invInertia*a),e.scale(x,c,a*b),e.multiply(x,this.massMultiplier,x),e.add(f,x,f),this.integrateToTimeOfImpact(a)||(e.scale(y,f,a),e.add(d,d,y),this.fixedRotation||(this.angle+=this.angularVelocity*a)),this.aabbNeedsUpdate=!0};var z=new h,A=new i({mode:i.ALL}),B=e.create(),C=e.create(),D=e.create(),E=e.create();d.prototype.integrateToTimeOfImpact=function(a){if(this.ccdSpeedThreshold<0||e.squaredLength(this.velocity)=j&&i=0&&(f.rotate(n,l,d),f.scale(n,n,2*r-1),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}for(var u=Math.pow(this.radius,2)+Math.pow(q,2),r=0;r<2;r++){f.set(o,q*(2*r-1),0),f.toGlobalFrame(o,o,c,d);var v=Math.pow(g[0]-e[0],2)+Math.pow(g[1]-e[1],2),w=2*((g[0]-e[0])*(e[0]-o[0])+(g[1]-e[1])*(e[1]-o[1])),x=Math.pow(e[0]-o[0],2)+Math.pow(e[1]-o[1],2)-Math.pow(this.radius,2),t=Math.pow(w,2)-4*v*x;if(!(t<0))if(0===t){if(f.lerp(m,e,g,t),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}else{var y=Math.sqrt(t),z=1/(2*v),A=(-w-y)*z,B=(-w+y)*z;if(A>=0&&A<=1&&(f.lerp(m,e,g,A),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,A,n,-1),a.shouldStop(b))))return;if(B>=0&&B<=1&&(f.lerp(m,e,g,B),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,B,n,-1),a.shouldStop(b))))return}}}},{"../math/vec2":30,"./Shape":45}],39:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={radius:arguments[0]},console.warn("The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })")),a=a||{},this.radius=a.radius||1,a.type=e.CIRCLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},d.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},d.prototype.computeAABB=function(a,b,c){var d=this.radius;f.set(a.upperBound,d,d),f.set(a.lowerBound,-d,-d),b&&(f.add(a.lowerBound,a.lowerBound,b),f.add(a.upperBound,a.upperBound,b))};var g=f.create(),h=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,i=b.to,j=this.radius,k=Math.pow(i[0]-e[0],2)+Math.pow(i[1]-e[1],2),l=2*((i[0]-e[0])*(e[0]-c[0])+(i[1]-e[1])*(e[1]-c[1])),m=Math.pow(e[0]-c[0],2)+Math.pow(e[1]-c[1],2)-Math.pow(j,2),n=Math.pow(l,2)-4*k*m,o=g,p=h;if(!(n<0))if(0===n)f.lerp(o,e,i,n),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,n,p,-1);else{var q=Math.sqrt(n),r=1/(2*k),s=(-l-q)*r,t=(-l+q)*r;if(s>=0&&s<=1&&(f.lerp(o,e,i,s),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,s,p,-1),a.shouldStop(b)))return;t>=0&&t<=1&&(f.lerp(o,e,i,t),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,t,p,-1))}}},{"../math/vec2":30,"./Shape":45}],40:[function(a,b,c){function d(a){Array.isArray(arguments[0])&&(a={vertices:arguments[0],axes:arguments[1]},console.warn("The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })")),a=a||{},this.vertices=[];for(var b=void 0!==a.vertices?a.vertices:[],c=0;ce)&&(e=d),(null===g||de){var j=g;g=e,e=j}f.set(b,g,e)},d.prototype.projectOntoWorldAxis=function(a,b,c,d){var e=i;this.projectOntoLocalAxis(a,d),0!==c?f.rotate(e,a,c):e=a;var g=f.dot(b,e);f.set(d,d[0]+g,d[1]+g)},d.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bb&&(b=d)}this.boundingRadius=Math.sqrt(b)},d.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},d.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,c=0;c!==a.length;c++){var e=a[c],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=d.triangleArea(f,g,h);this.area+=i}},d.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)};var o=f.create(),p=f.create(),q=f.create();d.prototype.raycast=function(a,b,c,d){var e=o,g=p,h=q,i=this.vertices;f.toLocalFrame(e,b.from,c,d),f.toLocalFrame(g,b.to,c,d);for(var j=i.length,k=0;k=0&&(f.sub(h,m,l),f.rotate(h,h,-Math.PI/2+d),f.normalize(h,h),b.reportIntersection(a,n,h,k))}}},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(a,b,c){function d(a){if(Array.isArray(arguments[0])){if(a={heights:arguments[0]},"object"==typeof arguments[1])for(var b in arguments[1])a[b]=arguments[1][b];console.warn("The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })")}a=a||{},this.heights=a.heights?a.heights.slice(0):[],this.maxValue=a.maxValue||null,this.minValue=a.minValue||null,this.elementWidth=a.elementWidth||.1,void 0!==a.maxValue&&void 0!==a.minValue||this.updateMaxMinValues(),a.type=e.HEIGHTFIELD,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.updateMaxMinValues=function(){for(var a=this.heights,b=a[0],c=a[0],d=0;d!==a.length;d++){var e=a[d];e>b&&(b=e),es){var t=r;r=s,s=t}for(var u=0;u=0&&(f.sub(m,o,n),f.rotate(m,m,d+Math.PI/2),f.normalize(m,m),b.reportIntersection(a,v,m,-1),a.shouldStop(b)))return}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={length:arguments[0]},console.warn("The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })")),a=a||{},this.length=a.length||1,a.type=e.LINE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return a*Math.pow(this.length,2)/12},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.length/2};var g=[f.create(),f.create()];d.prototype.computeAABB=function(a,b,c){var d=this.length/2;f.set(g[0],-d,0),f.set(g[1],d,0),a.setFromPoints(g,b,c,0)};var h=(f.create(),f.create()),i=f.create(),j=f.create(),k=f.fromValues(0,1);d.prototype.raycast=function(a,b,c,d){var e=b.from,g=b.to,l=i,m=j,n=this.length/2;f.set(l,-n,0),f.set(m,n,0),f.toGlobalFrame(l,l,c,d),f.toGlobalFrame(m,m,c,d);var o=f.getLineSegmentsIntersectionFraction(l,m,e,g);if(o>=0){var p=h;f.rotate(p,k,d),b.reportIntersection(a,o,p,-1)}}},{"../math/vec2":30,"./Shape":45}],43:[function(a,b,c){function d(a){a=a||{},a.type=e.PARTICLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=0},d.prototype.computeAABB=function(a,b,c){f.copy(a.lowerBound,b),f.copy(a.upperBound,b)}},{"../math/vec2":30,"./Shape":45}],44:[function(a,b,c){function d(a){a=a||{},a.type=e.PLANE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.computeAABB=function(a,b,c){var d=c%(2*Math.PI),e=f.set,g=Number.MAX_VALUE,h=a.lowerBound,i=a.upperBound;0===d?(e(h,-g,-g),e(i,g,0)):d===Math.PI/2?(e(h,0,-g),e(i,g,g)):d===Math.PI?(e(h,-g,0),e(i,g,g)):d===3*Math.PI/2?(e(h,-g,-g),e(i,0,g)):(e(h,-g,-g),e(i,g,g)),f.add(h,h,b),f.add(i,i,b)},d.prototype.updateArea=function(){this.area=Number.MAX_VALUE};var g=f.create(),h=(f.create(),f.create(),f.create()),i=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,j=b.to,k=b.direction,l=g,m=h,n=i;f.set(m,0,1),f.rotate(m,m,d),f.sub(n,e,c);var o=f.dot(n,m);if(f.sub(n,j,c),!(o*f.dot(n,m)>0||f.squaredDistance(e,j)n*h&&(p=n*h-l),f[a]+=p,b.addToWlambda(p),p}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(a,b,c){function d(a,b){a=a||{},e.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var e=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.solve=function(a,b){throw new Error("Solver.solve should be implemented by subclasses!")};var f={bodies:[]};d.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),f.bodies.length=0,b.getBodies(f.bodies),f.bodies.length&&this.solve(a,f))},d.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},d.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},d.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},d.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},d.prototype.removeAllEquations=function(){this.equations.length=0},d.GS=1,d.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/ContactEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/FrictionEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/IslandNode"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/IslandNode":60,"./Pool":55}],51:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/Island"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/Island":58,"./Pool":55}],52:[function(a,b,c){function d(){this.overlappingShapesLastState=new e,this.overlappingShapesCurrentState=new e,this.recordPool=new f({size:16}),this.tmpDict=new e,this.tmpArray1=[]}var e=a("./TupleDictionary"),f=(a("./OverlapKeeperRecord"),a("./OverlapKeeperRecordPool"));a("./Utils");b.exports=d,d.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){var d=a.keys[c],e=a.getByKey(d);b.getByKey(d);e&&this.recordPool.release(e)}a.reset(),a.copy(b),b.reset()},d.prototype.setOverlapping=function(a,b,c,d){var e=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!e.get(b.id,d.id)){var f=this.recordPool.get();f.set(a,b,c,d),e.set(b.id,d.id,f)}},d.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},d.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},d.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},d.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");d.data[g]||c.push(h)}return c},d.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},d.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b}},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(a,b,c){function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}b.exports=d,d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{}],54:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("./OverlapKeeperRecord"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=a.shapeA=a.shapeB=null,this}},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(a,b,c){function d(a){a=a||{},this.objects=[],void 0!==a.size&&this.resize(a.size)}b.exports=d,d.prototype.resize=function(a){for(var b=this.objects;b.length>a;)b.pop();for(;b.length(0|b)?a<<16|65535&b:b<<16|65535&a)},d.prototype.getByKey=function(a){return a|=0,this.data[a]},d.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},d.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},d.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},d.prototype.copy=function(a){this.reset(),e.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":57}],57:[function(a,b,c){function d(){}b.exports=d,d.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},d.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;d=a&&d=0;r-=2)for(var A=x.length-2;A>=0;A-=2)(z[r]===x[A]&&z[r+1]===x[A+1]||z[r+1]===x[A]&&z[r]===x[A+1])&&x.splice(A,2);var B=l.length;for(r=0;r!==B;r++){var C=l[r];if(!C.collideConnected)for(var A=x.length-2;A>=0;A-=2)(C.bodyA===x[A]&&C.bodyB===x[A+1]||C.bodyB===x[A]&&C.bodyA===x[A+1])&&x.splice(A,2)}this.postBroadphaseEvent.pairs=x,this.emit(this.postBroadphaseEvent),this.postBroadphaseEvent.pairs=null,k.reset(this);for(var r=0,D=x.length;r!==D;r+=2)for(var E=x[r],F=x[r+1],G=0,H=E.shapes.length;G!==H;G++)for(var I=E.shapes[G],J=I.position,K=I.angle,L=0,M=F.shapes.length;L!==M;L++){var N=F.shapes[L],O=N.position,P=N.angle,Q=this.defaultContactMaterial;if(I.material&&N.material){var R=this.getContactMaterial(I.material,N.material);R&&(Q=R)}this.runNarrowphase(k,E,I,J,K,F,N,O,P,Q,this.frictionGravity)}for(var r=0;r!==i;r++){var S=e[r];S._wakeUpAfterNarrowphase&&(S.wakeUp(),S._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(y);for(var T=this.endContactEvent,L=y.length;L--;){var U=y[L];T.shapeA=U.shapeA,T.shapeB=U.shapeB,T.bodyA=U.bodyA,T.bodyB=U.bodyB,this.emit(T)}y.length=0}var V=this.preSolveEvent;V.contactEquations=k.contactEquations,V.frictionEquations=k.frictionEquations,this.emit(V),V.contactEquations=V.frictionEquations=null;var B=l.length;for(r=0;r!==B;r++)l[r].update();if(k.contactEquations.length||k.frictionEquations.length||B)if(this.islandSplit){for(p.equations.length=0,s.appendArray(p.equations,k.contactEquations),s.appendArray(p.equations,k.frictionEquations),r=0;r!==B;r++)s.appendArray(p.equations,l[r].equations);p.split(this);for(var r=0;r!==p.islands.length;r++){var W=p.islands[r];W.equations.length&&h.solveIsland(a,W)}}else{for(h.addEquations(k.contactEquations),h.addEquations(k.frictionEquations),r=0;r!==B;r++)h.addEquations(l[r].equations);this.solveConstraints&&h.solve(a,this),h.removeAllEquations()}for(var r=0;r!==i;r++){var S=e[r];S.integrate(a)}for(var r=0;r!==i;r++)e[r].setZeroForce();if(this.emitImpactEvent&&this.has("impact"))for(var X=this.impactEvent,r=0;r!==k.contactEquations.length;r++){var Y=k.contactEquations[r];Y.firstImpact&&(X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.contactEquation=Y,this.emit(X))}if(this.sleepMode===d.BODY_SLEEPING)for(r=0;r!==i;r++)e[r].sleepTick(this.time,!1,a);else if(this.sleepMode===d.ISLAND_SLEEPING&&this.islandSplit){for(r=0;r!==i;r++)e[r].sleepTick(this.time,!0,a);for(var r=0;r0,a.frictionCoefficient=k.friction;var p;p=b.type===m.STATIC||b.type===m.KINEMATIC?g.mass:g.type===m.STATIC||g.type===m.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*l*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize,a.enabledEquations=b.collisionResponse&&g.collisionResponse&&c.collisionResponse&&h.collisionResponse;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*Math.pow(g.sleepSpeedLimit,2)&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===m.DYNAMIC&&g.sleepState===m.SLEEPING&&b.sleepState===m.AWAKE&&b.type!==m.STATIC){f.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2)>=2*Math.pow(b.sleepSpeedLimit,2)&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var v=this.beginContactEvent;if(v.shapeA=c,v.shapeB=h,v.bodyA=b,v.bodyB=g,v.contactEquations.length=0,"number"==typeof r)for(var y=a.contactEquations.length-r;y1)for(var y=a.frictionEquations.length-u;y=0;b--)this.removeConstraint(a[b]);for(var c=this.bodies,b=c.length-1;b>=0;b--)this.removeBody(c[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);d.apply(this)};var z=f.create(),A=(f.fromValues(0,0),f.fromValues(0,0));d.prototype.hitTest=function(a,b,c){c=c||0;var d=new m({position:a}),e=new k,l=a,n=z,o=A;d.addShape(e);for(var p=this.narrowphase,q=[],r=0,s=b.length;r!==s;r++)for(var t=b[r],u=0,v=t.shapes.length;u!==v;u++){var w=t.shapes[u];f.rotate(n,w.position,t.angle),f.add(n,n,t.position);var x=w.angle+t.angle;(w instanceof g&&p.circleParticle(t,w,n,x,d,e,l,0,!0)||w instanceof h&&p.particleConvex(d,e,l,0,t,w,n,x,!0)||w instanceof i&&p.particlePlane(d,e,l,0,t,w,n,x,!0)||w instanceof j&&p.particleCapsule(d,e,l,0,t,w,n,x,!0)||w instanceof k&&f.squaredLength(f.sub(o,n,a))=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(c<0||d<0)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(b<0||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(a<0||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return b&&(b.parent=void 0,this.children.splice(a,1)),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){void 0===a&&(a=0),void 0===b&&(b=this.children.length);var c=b-a;if(c>0&&c<=b){for(var d=this.children.splice(a,c),e=0;eh?l:h,m=m>i?m:i)}var o=this._bounds;if(!n){o=new b.Rectangle;var p=o.x,q=o.width+o.x,r=o.y,s=o.height+o.y,t=this.worldTransform,u=t.a,v=t.b,w=t.c,x=t.d,y=t.tx,z=t.ty,A=u*q+w*s+y,B=x*s+v*q+z,C=u*p+w*s+y,D=x*s+v*p+z,E=u*p+w*r+y,F=x*r+v*p+z,G=u*q+w*r+y,H=x*r+v*q+z;l=A,m=B,j=A,k=B,j=Cl?C:l,l=E>l?E:l,l=G>l?G:l,m=D>m?D:m,m=F>m?F:m,m=H>m?H:m}if(o.x=j,o.y=k,o.width=l-j,o.height=m-k,c)for(a.worldTransform=f,e=0;eo?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;c>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0==(a&a-1))return a;for(var b=1;b0&&0==(a&a-1)&&b>0&&0==(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;c=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;q0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;e=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromCanvas=function(a,c){return 0===a.width&&(a.width=1),0===a.height&&(a.height=1),new b.BaseTexture(a,c)},b.TextureSilentFail=!1,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,
+this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){a===this.width&&c===this.height||(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;e0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;ej?s:j,k=t>k?t:k}if(l===-1/0||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=(a[0],this.indices),d=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,d[0]=1,d[1]=1,c[0]=0,c[1]=1;for(var e,f,g,h=a.length,i=1;i1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bv?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}.call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.6.15",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,HORIZONTAL:0,VERTICAL:1,LANDSCAPE:0,PORTRAIT:1,ANGLE_UP:270,ANGLE_DOWN:90,ANGLE_LEFT:180,ANGLE_RIGHT:0,ANGLE_NORTH_EAST:315,ANGLE_NORTH_WEST:225,ANGLE_SOUTH_EAST:45,ANGLE_SOUTH_WEST:135,TOP_LEFT:0,TOP_CENTER:1,TOP_RIGHT:2,LEFT_TOP:3,LEFT_CENTER:4,LEFT_BOTTOM:5,CENTER:6,RIGHT_TOP:7,RIGHT_CENTER:8,RIGHT_BOTTOM:9,BOTTOM_LEFT:10,BOTTOM_CENTER:11,BOTTOM_RIGHT:12,blendModes:{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return a<0?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function a(b){if(b&&(a.prototype=b),!(this instanceof a))return new a}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;e0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;a=a.toString();var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(a){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);i0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return Math.PI*this._radius*2},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){!0===a&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){return(a.x-b)*(a.x-b)+(a.y-c)*(a.y-c)<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x===b.x&&a.y===b.y&&a.diameter===b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),!0===d&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth);if(c>b.halfWidth+a.radius)return!1;var d=Math.abs(a.y-b.y-b.halfHeight);if(d>b.halfHeight+a.radius)return!1;if(c<=b.halfWidth||d<=b.halfHeight)return!0;var e=c-b.halfWidth,f=d-b.halfHeight;return e*e+f*f<=a.radius*a.radius},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a=c&&a<=d&&b>=e&&b<=f},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=c-h&&(k-=h,c+=i),m=0&&p<=1&&q>=0&&q<=1?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.intersectsRectangle=function(a,b){if(!c.Rectangle.intersects(a,b))return!1;var d=a.start.x,e=a.start.y,f=a.end.x,g=a.end.y,h=b.x,i=b.y,j=b.right,k=b.bottom,l=0;if(d>=h&&d<=j&&e>=i&&e<=k||f>=h&&f<=j&&g>=i&&g<=k)return!0;if(d=h){if((l=e+(g-e)*(h-d)/(f-d))>i&&l<=k)return!0}else if(d>j&&f<=j&&(l=e+(g-e)*(j-d)/(f-d))>=i&&l<=k)return!0;if(e=i){if((l=d+(f-d)*(i-e)/(g-e))>=h&&l<=j)return!0}else if(e>k&&g<=k&&(l=d+(f-d)*(k-e)/(g-e))>=h&&l<=j)return!0;return!1},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){void 0!==a&&null!==a||(a=1),void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),void 0!==e&&null!==e||(e=1),void 0!==f&&null!==f||(f=0),void 0!==g&&null!==g||(g=0),this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},
+rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(d<1)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;e0&&this.setTo.apply(this,arguments),this.closed=!0,this.flattened=!1,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;c=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){!0===a&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return!(a.width<=0||a.height<=0)&&(b>=a.x&&b=a.y&&c=a&&e=b&&fb.volume)&&(a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!(!d&&this._shake.duration>0)&&(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!(!this.fx||!c&&this._fxDuration>0)&&(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!(!this.fx||!c&&this._fxDuration>0)&&(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.x=this.view.x+this.target.worldPosition.x,this._targetPosition.y=this.view.y+this.target.worldPosition.y,this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y)),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx&&(this.fx.clear(),this.fx.alpha=0,this._fxDuration=0)}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){void 0!==a.x&&(this.view.x=a.x),void 0!==a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),Object.defineProperty(c.Camera.prototype,"shakeIntensity",{get:function(){return this._shake.intensity},set:function(a){this._shake.intensity=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.state=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,void 0!==b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?!!(this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render)||(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){!1===this._created&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),!1===this._created&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do{b--}while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;e=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e,f){void 0===e&&(e=!0);var g=new this.classType(this.game,a,b,c,d);return g.exists=e,g.visible=e,g.alive=e,this.add(g,!1,f)},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===c&&(c=0),void 0===d&&(d=!1),Array.isArray(b)||(b=[b]),Array.isArray(c)||(c=[c]);var e=this,f=[];return b.forEach(function(b){c.forEach(function(c){for(var g=0;gthis.children.length||-1===a&&-1===b)return!1;for(var h=new c.Rectangle(0,0,d,e),i=a*d,j=b*e,k=g;kthis.children.length-1&&(a=0),this.cursor)return this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.next=function(){if(this.cursor)return this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.previous=function(){if(this.cursor)return 0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){if(a<0||a>this.children.length)return-1;this.getChildAt(a).x=b,this.getChildAt(a).y=c},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1===d?a[b[0]]+=c:2===d?a[b[0]]-=c:3===d?a[b[0]]*=c:4===d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1===d?a[b[0]][b[1]]+=c:2===d?a[b[0]][b[1]]-=c:3===d?a[b[0]][b[1]]*=c:4===d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1===d?a[b[0]][b[1]][b[2]]+=c:2===d?a[b[0]][b[1]][b[2]]-=c:3===d?a[b[0]][b[1]][b[2]]*=c:4===d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1===d?a[b[0]][b[1]][b[2]][b[3]]+=c:2===d?a[b[0]][b[1]][b[2]][b[3]]-=c:3===d?a[b[0]][b[1]][b[2]][b[3]]*=c:4===d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!(!c.Utils.getProperty(a,b)&&e)&&c.Utils.getProperty(a,b)===d},c.Group.prototype.set=function(a,b,c,d,e,f,g){if(void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(!1===d||d&&a.alive)&&(!1===e||e&&a.visible))return this.setProperty(a,b,c,f,g)},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(0===this.children.length){if(d===c.Group.RETURN_TOTAL)return 0;if(d===c.Group.RETURN_ALL)return[]}var h=0;if(d===c.Group.RETURN_ALL)var i=[];for(var j=0;j0)return this.children[this.children.length-1]},c.Group.prototype.getBottom=function(){if(this.children.length>0)return this.children[0]},c.Group.prototype.getClosestTo=function(a,b,d){for(var e=Number.MAX_VALUE,f=0,g=null,h=0;he&&(!b||b.call(d,i,f))&&(e=f,g=i)}return g},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return void 0===a&&(a=0),void 0===b&&(b=this.children.length),0===b?null:c.ArrayUtils.getRandomItem(this.children,a,b)},c.Group.prototype.getRandomExists=function(a,b){var c=this.getAll("exists",!0,a,b);return this.game.rnd.pick(c)},c.Group.prototype.getAll=function(a,b,c,d){void 0===c&&(c=0),void 0===d&&(d=this.children.length);for(var e=[],f=c;f0&&a instanceof c.Group){do{a.add(this.children[0],b)}while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=!1),void 0===c&&(c=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var d=this.removeChild(this.children[0]);this.removeFromHash(d),a&&d&&d.destroy(!0,c)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||a<0||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),Object.defineProperty(c.Group.prototype,"centerX",{get:function(){return this.getBounds(this.parent).centerX},set:function(a){var b=this.getBounds(this.parent),c=this.x-b.x;this.x=a+c-b.halfWidth}}),Object.defineProperty(c.Group.prototype,"centerY",{get:function(){return this.getBounds(this.parent).centerY},set:function(a){var b=this.getBounds(this.parent),c=this.y-b.y;this.y=a+c-b.halfHeight}}),Object.defineProperty(c.Group.prototype,"left",{get:function(){return this.getBounds(this.parent).left},set:function(a){var b=this.getBounds(this.parent),c=this.x-b.x;this.x=a+c}}),Object.defineProperty(c.Group.prototype,"right",{get:function(){return this.getBounds(this.parent).right},set:function(a){var b=this.getBounds(this.parent),c=this.x-b.x;this.x=a+c-b.width}}),Object.defineProperty(c.Group.prototype,"top",{get:function(){return this.getBounds(this.parent).top},set:function(a){var b=this.getBounds(this.parent),c=this.y-b.y;this.y=a+c}}),Object.defineProperty(c.Group.prototype,"bottom",{get:function(){return this.getBounds(this.parent).bottom},set:function(a){var b=this.getBounds(this.parent),c=this.y-b.y;this.y=a+c-b.height}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){a1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){this.pointers[c].active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.y0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.interactiveCandidates=[],this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input
+;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),!1===this._holdSent&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY);for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&!0===this.targetObject.isDragged?!1===this.targetObject.update(this)&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){var b=0,c=-1,d=null,e=this.game.input.interactiveItems.first;for(this.interactiveCandidates=[];e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e))),e=this.game.input.interactiveItems.next;for(e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e,this.interactiveCandidates.push(e)),e=this.game.input.interactiveItems.next;return this.game.input.customCandidateHandler&&(d=this.game.input.customCandidateHandler.call(this.game.input.customCandidateHandlerContext,this,this.interactiveCandidates,d)),this.swapTarget(d,!1),null!==this.targetObject},swapTarget:function(a,b){void 0===b&&(b=!1),null===a?this.targetObject&&(this.targetObject._pointerOutHandler(this,b),this.targetObject=null):null===this.targetObject?(this.targetObject=a,a._pointerOverHandler(this,b)):this.targetObject===a?!1===a.update(this)&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this,b),this.targetObject=a,this.targetObject._pointerOverHandler(this,b))},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),!1===this.isMouse&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,!0===this.isDown&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fa||this.priorityID===a&&this.sprite.renderOrderID>b))},isPixelPerfect:function(){return this.pixelPerfectClick||this.pixelPerfectOver},pointerX:function(a){return a=a||0,this._pointerData[a].x},pointerY:function(a){return a=a||0,this._pointerData[a].y},pointerDown:function(a){return a=a||0,this._pointerData[a].isDown},pointerUp:function(a){return a=a||0,this._pointerData[a].isUp},pointerTimeDown:function(a){return a=a||0,this._pointerData[a].timeDown},pointerTimeUp:function(a){return a=a||0,this._pointerData[a].timeUp},pointerOver:function(a){if(!this.enabled)return!1;if(void 0===a){for(var b=0;b<10;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;b<10;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return!!(a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y)&&(!!this.game.input.hitTest(this.sprite,a,this._tempPoint)&&(void 0===b&&(b=!1),!(!b&&this.pixelPerfectClick)||this.checkPixel(this._tempPoint.x,this._tempPoint.y)))},checkPointerOver:function(a,b){return!!(this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&0!==this.sprite.worldScale.x&&0!==this.sprite.worldScale.y)&&(!!this.game.input.hitTest(this.sprite,a,this._tempPoint)&&(void 0===b&&(b=!1),!(!b&&this.pixelPerfectOver)||this.checkPixel(this._tempPoint.x,this._tempPoint.y)))},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);if(this.game.input.hitContext.getImageData(0,0,1,1).data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){if(null!==this.sprite&&void 0!==this.sprite.parent)return this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this._pendingDrag?(this._dragDistancePass||(this._dragDistancePass=c.Math.distance(a.x,a.y,this.downPoint.x,this.downPoint.y)>=this.dragDistanceThreshold),this._dragDistancePass&&this._dragTimePass&&this.startDrag(a),!0):this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a,!1):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1)},_pointerOverHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];if(!1===d.isOver||a.dirty){var e=!1===d.isOver;d.isOver=!0,d.isOut=!1,d.timeOver=this.game.time.time,d.x=a.x-this.sprite.x,d.y=a.y-this.sprite.y,this.useHandCursor&&!1===d.isDragged&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),!b&&e&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a),this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOver.dispatch(this.sprite,a)}}},_pointerOutHandler:function(a,b){if(null!==this.sprite){var d=this._pointerData[a.id];d.isOver=!1,d.isOut=!0,d.timeOut=this.game.time.time,this.useHandCursor&&!1===d.isDragged&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),!b&&this.sprite&&this.sprite.events&&(this.sprite.events.onInputOut$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputOut.dispatch(this.sprite,a))}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.downPoint.set(a.x,a.y),a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputDown.dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&!1===this.isDragged&&(0===this.dragTimeThreshold&&0===this.dragDistanceThreshold?this.startDrag(a):(this._pendingDrag=!0,this._dragDistancePass=0===this.dragDistanceThreshold,this.dragTimeThreshold>0?(this._dragTimePass=!1,this.game.time.events.add(this.dragTimeThreshold,this.dragTimeElapsed,this,a)):this._dragTimePass=!0)),this.bringToTop&&this.sprite.bringToTop()}}},dragTimeElapsed:function(a){this._dragTimePass=!0,this._pendingDrag&&this.sprite&&this._dragDistancePass&&this.startDrag(a)},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var d=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.dragStopBlocksInputUp&&(!this.dragStopBlocksInputUp||this.draggable&&this.isDragged&&this._draggedPointerID===a.id)||this.sprite.events.onInputUp$dispatch(this.sprite,a,d),this.sprite&&this.sprite.parent&&this.sprite.parent.type===c.GROUP&&this.sprite.parent.onChildInputUp.dispatch(this.sprite,a,d),d&&(d=this.checkPointerOver(a))),b.isOver=d,!d&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this._pendingDrag=!1,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(void 0===b&&(b=!1),a.isUp)return this.stopDrag(a),!1;var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;if(this.sprite.fixedToCamera)this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y));else{var e=this.game.camera.x-this._pointerData[a.id].camX,f=this.game.camera.y-this._pointerData[a.id].camY;this.allowHorizontalDrag&&(this.sprite.x=c+e),this.allowVerticalDrag&&(this.sprite.y=d+f),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))}return this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)this.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!==navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){void 0!==b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(this._active){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||d<0&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return!(this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0))||(this.kill(),!1)},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),this.texture.baseTexture.skipRender="__default"===a,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,!(!this._exists||!this.parent.exists)||(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},weapon:function(a,b,d,e){var f=this.game.plugins.add(c.Weapon);return f.createBullets(a,b,d,e),f},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},
+tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){void 0!==d&&""!==d||(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),void 0!==d&&""!==d||(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,c.Cache.DEFAULT),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","ScaleMinMax","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return!!this.preUpdateInWorld()&&this.preUpdateCore()},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c&&(this.frame=c,!0)},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame("Over",a,this.input.pointerOver()),this.setStateFrame("Out",b,!this.input.pointerOver()),this.setStateFrame("Down",c,this.input.pointerDown()),this.setStateFrame("Up",d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,g,h){this.setStateSound("Over",a,b),this.setStateSound("Out",e,f),this.setStateSound("Down",c,d),this.setStateSound("Up",g,h)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound("Over",a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound("Out",a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound("Down",a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound("Up",a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame("Over"),this.onOverMouseOnly&&!b.isMouse||(this.playStateSound("Over"),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame("Out"),this.playStateSound("Out"),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame("Down"),this.playStateSound("Down"),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound("Up"),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(!0===this.forceOut||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame("Out");else{var d=this.changeStateFrame("Up");d||(c?this.changeStateFrame("Over"):this.changeStateFrame("Out"))}},c.SpriteBatch=function(a,b,d,e){void 0!==b&&null!==b||(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e,f){void 0!==d&&0!==d||(d=256),void 0!==e&&0!==e||(e=256),void 0===f&&(f=!1),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=c.Canvas.create(this,d,e,null,f),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.smoothProperty=a.renderType===c.CANVAS?a.renderer.renderSession.smoothProperty:c.Canvas.getSmoothingPrefix(this.context),this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),a<0){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),a<0){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;b=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){if(a>=0&&a<=this.width&&b>=0&&b<=this.height)return this.pixels[b*this.width+a]},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do{c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?++d===this.width&&(d=0,((e+=f)>=this.height||e<=0)&&(g=!0)):2!==a&&3!==a||++e===this.height&&(e=0,((d+=f)>=this.width||d<=0)&&(g=!0))}while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if(void 0!==a&&null!==a||(a=this),(a instanceof c.RenderTexture||a instanceof PIXI.RenderTexture)&&(a=a.getCanvas()),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source,void 0!==g&&null!==g||(g=a.x),void 0!==h&&null!==h||(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(null===(a=this.game.cache.getImage(a)))return;this._image=a}this._size.set(this._image.width,this._image.height)}if(void 0!==b&&null!==b||(b=0),void 0!==d&&null!==d||(d=0),e&&(this._size.x=e),f&&(this._size.y=f),void 0!==g&&null!==g||(g=b),void 0!==h&&null!==h||(h=d),void 0!==i&&null!==i||(i=this._size.x),void 0!==j&&null!==j||(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyTransform:function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=!1),!a.hasOwnProperty("worldTransform")||!a.worldVisible||0===a.worldAlpha)return this;var e=a.worldTransform;if(this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),0===e.a||0===e.d||0===this._size.x||0===this._size.y)return this;a.texture instanceof c.RenderTexture||a.texture instanceof PIXI.RenderTexture?this._image=a.texture.getCanvas():this._image=a.texture.baseTexture.source;var f=e.tx,g=e.ty;a.texture.trim&&(f+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,g+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0)),d&&(f|=0,g|=0);var h=this.context;return this._alpha.prev=h.globalAlpha,h.save(),h.globalAlpha=this._alpha.current,b&&(this.op=b),h[this.smoothProperty]=a.texture.baseTexture.scaleMode===PIXI.scaleModes.LINEAR,h.setTransform(e.a,e.b,e.c,e.d,f,g),h.drawImage(this._image,this._pos.x,this._pos.y,this._size.x,this._size.y,-this._size.x*a.anchor.x,-this._size.y*a.anchor.y,this._size.x,this._size.y),h.restore(),h.globalAlpha=this._alpha.prev,this.dirty=!0,this},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.hasOwnProperty("texture")&&this.copyTransform(a,b,d),a.type===c.GROUP&&a.exists)this.drawGroup(a,b,d);else if(a.hasOwnProperty("children")&&a.children.length>0)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this._boundsDirty=!1,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=this.currentPath.shape.points;0===g.length&&this.moveTo(0,0);for(var h=g[g.length-2],i=g[g.length-1],j=0,k=1;k<=20;++k)j=k/20,e=h+(a-h)*j,f=i+(b-i)*j,g.push(e+(a+(c-a)*j-e)*j,f+(b+(d-b)*j-f)*j);return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=this.currentPath.shape.points,m=l[l.length-2],n=l[l.length-1],o=0,p=1;p<=20;++p)o=p/20,g=1-o,h=g*g,i=h*g,j=o*o,k=j*o,l.push(i*m+3*h*o*a+3*g*j*c+k*e,i*n+3*h*o*b+3*g*j*d+k*f);return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(m<1e-8||0===e)f[f.length-2]===a&&f[f.length-1]===b||f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&e<=d?e+=2*Math.PI:f&&d<=e&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;s<=q;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this._boundsDirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dv?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=PIXI.identityMatrix;for(var b=0;bb?h+j:b,d=ie?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=h-jb?h+j:b,d=i-ke?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=h-jb?h+j:b,d=i-ke?i+k:e;else{g=f.points;for(var p=0;pb?h+o:b,d=i-oe?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-a.x/a.width,this._cachedSprite.anchor.y=-a.y/a.height,this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,this._boundsDirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;oj&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;f0)for(f=b;f=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do{if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),(d=b=d.prev)===d.next)return null;c=!0}}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if((a=i)===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);h<=e&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fc.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do{null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next}while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;b0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do{b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do{c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next}while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;ch?e:h,i=fj?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;kz?z:y,b.beginPath(),b.moveTo(u,v+y),b.lineTo(u,v+x-y),b.quadraticCurveTo(u,v+x,u+y,v+x),b.lineTo(u+w-y,v+x),b.quadraticCurveTo(u+w,v+x,u+w,v+x-y),b.lineTo(u+w,v+y),b.quadraticCurveTo(u+w,v,u+w-y,v),b.lineTo(u+y,v),b.quadraticCurveTo(u,v,u,v+y),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;dx?x:w,b.moveTo(s,t+w),b.lineTo(s,t+v-w),b.quadraticCurveTo(s,t+v,s+w,t+v),b.lineTo(s+u-w,t+v),b.quadraticCurveTo(s+u,t+v,s+u,t+v-w),b.lineTo(s+u,t+w),b.quadraticCurveTo(s+u,t,s+u-w,t),b.lineTo(s+w,t),b.quadraticCurveTo(s,t,s,t+w),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Graphics.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this._boundsDirty&&(this.updateLocalBounds(),this._boundsDirty=!1);for(var a=0;a0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&this.style.maxLines0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?i+=this.measureLine(b[h]):i+=this.context.measureText(b[h]).width,this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.measureLine(j[l]):Math.ceil(this.context.measureText(j[l]).width),l>0&&(k+=c[l-1]),i=k+m}else for(var l=0;l0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?i+=this.measureLine(j[l]):i+=Math.ceil(this.context.measureText(j[l]).width);var n=this.game.math.snapToCeil(i,c)-i;i+=n}}d[h]=Math.ceil(i),e=Math.max(e,d[h])}this.canvas.width=e*this._res;var o=f.fontSize+this.style.strokeThickness+this.padding.y,p=o*g,q=this._lineSpacing;q<0&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;h0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture(),this.dirty=!1},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var e=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(e.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(e.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(e)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill)),b+=this.context.measureText(d).width,this._charCount++}return Math.ceil(b)},c.Text.prototype.updateLine=function(a,b,c){for(var d=0;d0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){return this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font,this.runWordWrap(a).split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;gj){if(0===l){for(var p=n;p.length&&(p=p.slice(0,-1),!((o=b.measureText(p).width)<=j)););if(!p.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var q=m.substr(p.length);k[l]=q,i+=p}var r=k[l].length?l:l+1,s=k.slice(r).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=s+" "+(e[g+1]||""),f=e.length;break}i+=n,j-=o}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width/this.resolution:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/this.resolution/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height/this.resolution:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/this.resolution/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;ig;i--){for(j=0;j0?this._maxWidth:null,j=[],k=0;k=i&&f>-1)return{width:g||e,text:c.substr(0,k-(k-f)),end:l,chars:j};e+=(n.xAdvance+p)*b,j.push(d+(n.xOffset+p)*b),d+=(n.xAdvance+p)*b,h=m}return{width:e,text:c,end:l,chars:j}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(!1===f.end);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){this._data.base.scaleMode=a?0:1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;void 0!==g&&null!==g||(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",this.autoUpperCase=!f,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;e0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),a<0&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),(b+=this.characterWidth+d)>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;(b=this.autoUpperCase?a.toUpperCase():a)!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,c.Cache.DEFAULT,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return!!(this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld())&&this.preUpdateCore()},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k2)||a}var d=this;!function(){var a=navigator.userAgent;/Playstation Vita/.test(a)?d.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?d.kindle=!0:/Android/.test(a)?d.android=!0:/CrOS/.test(a)?d.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?(d.iOS=!0,navigator.appVersion.match(/OS (\d+)/),d.iOSVersion=parseInt(RegExp.$1,10)):/Linux/.test(a)?d.linux=!0:/Mac OS/.test(a)?d.macOS=!0:/Windows/.test(a)&&(d.windows=!0),(/Windows Phone/i.test(a)||/IEMobile/i.test(a))&&(d.android=!1,d.iOS=!1,d.macOS=!1,d.windows=!0,d.windowsPhone=!0);var b=/Silk/.test(a);(d.windows||d.macOS||d.linux&&!b||d.chromeOS)&&(d.desktop=!0),(d.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(d.desktop=!1)}(),function(){var a=navigator.userAgent;if(/Arora/.test(a)?d.arora=!0:/Edge\/\d+/.test(a)?d.edge=!0:/Chrome\/(\d+)/.test(a)&&!d.windowsPhone?(d.chrome=!0,d.chromeVersion=parseInt(RegExp.$1,10)):/Epiphany/.test(a)?d.epiphany=!0:/Firefox\D+(\d+)/.test(a)?(d.firefox=!0,d.firefoxVersion=parseInt(RegExp.$1,10)):/AppleWebKit/.test(a)&&d.iOS?d.mobileSafari=!0:/MSIE (\d+\.\d+);/.test(a)?(d.ie=!0,d.ieVersion=parseInt(RegExp.$1,10)):/Midori/.test(a)?d.midori=!0:/Opera/.test(a)?d.opera=!0:/Safari\/(\d+)/.test(a)&&!d.windowsPhone?(d.safari=!0,/Version\/(\d+)\./.test(a)&&(d.safariVersion=parseInt(RegExp.$1,10))):/Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(a)&&(d.ie=!0,d.trident=!0,d.tridentVersion=parseInt(RegExp.$1,10),d.ieVersion=parseInt(RegExp.$3,10)),/Silk/.test(a)&&(d.silk=!0),navigator.standalone&&(d.webApp=!0),void 0!==window.cordova&&(d.cordova=!0),"undefined"!=typeof process&&"undefined"!=typeof require&&(d.node=!0),d.node&&"object"==typeof process.versions&&(d.nodeWebkit=!!process.versions["node-webkit"],d.electron=!!process.versions.electron),navigator.isCocoonJS&&(d.cocoonJS=!0),void 0!==window.wx&&(d.wechatMinigame=!0),d.cocoonJS)try{d.cocoonJSApp="undefined"!=typeof CocoonJS}catch(a){d.cocoonJSApp=!1}void 0!==window.ejecta&&(d.ejecta=!0),/Crosswalk/.test(a)&&(d.crosswalk=!0)}(),function(){d.audioData=!!window.Audio,d.webAudio=!(!window.AudioContext&&!window.webkitAudioContext);var a=document.createElement("audio");try{if(a.canPlayType&&(a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")&&(d.ogg=!0),(a.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,"")||a.canPlayType("audio/opus;").replace(/^no$/,""))&&(d.opus=!0),a.canPlayType("audio/mpeg;").replace(/^no$/,"")&&(d.mp3=!0),a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"")&&(d.wav=!0),(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;").replace(/^no$/,""))&&(d.m4a=!0),a.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")&&(d.webm=!0),""!==a.canPlayType('audio/mp4;codecs="ec-3"')))if(d.edge)d.dolby=!0;else if(d.safari&&d.safariVersion>=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var b=parseInt(RegExp.$1,10),c=parseInt(RegExp.$2,10);(10===b&&c>=11||b>10)&&(d.dolby=!0)}}catch(a){}}(),function(){var a=document.createElement("video");try{!!a.canPlayType&&(a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,"")&&(d.oggVideo=!0),a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,"")&&(d.h264Video=!0,d.mp4Video=!0),a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")&&(d.webmVideo=!0),a.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,"")&&(d.vp9Video=!0),a.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,"")&&(d.hlsVideo=!0))}catch(a){}}(),function(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var e in c)void 0!==b.style[e]&&(b.style[e]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[e]));document.body.removeChild(b),d.css3D=void 0!==a&&a.length>0&&"none"!==a}(),function(){d.pixelRatio=window.devicePixelRatio||1,d.iPhone=-1!==navigator.userAgent.toLowerCase().indexOf("iphone"),d.iPhone4=2===d.pixelRatio&&d.iPhone,d.iPad=c(),"undefined"!=typeof Int8Array?d.typedArray=!0:d.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(d.littleEndian=a(),d.LITTLE_ENDIAN=d.littleEndian),d.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==d.littleEndian&&b(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(d.vibration=!0)}(),function(){d.canvas=!!window.CanvasRenderingContext2D||d.cocoonJS;try{d.localStorage=!!localStorage.getItem}catch(a){d.localStorage=!1}d.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),d.fileSystem=!!window.requestFileSystem;var a={stencil:!0};d.webGL=function(){try{var b=document.createElement("canvas");return b.screencanvas=!1,!!window.WebGLRenderingContext&&(b.getContext("webgl",a)||b.getContext("experimental-webgl",a))}catch(a){return!1}}(),d.webGL=!!d.webGL,d.worker=!!window.Worker,d.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,d.quirksMode="CSS1Compat"!==document.compatMode,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,d.getUserMedia=d.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,d.firefox&&d.firefoxVersion<21&&(d.getUserMedia=!1),!d.iOS&&(d.ie||d.firefox||d.chrome)&&(d.canvasBitBltShift=!0),(d.safari||d.mobileSafari)&&(d.canvasBitBltShift=!1)}(),function(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=1)&&(d.touch=!0),(window.PointerEvent||window.MSPointerEvent||window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(d.mspointer=!0),d.cocoonJS||("onwheel"in window||d.ie&&"WheelEvent"in window?d.wheelEvent="wheel":"onmousewheel"in window?d.wheelEvent="mousewheel":d.firefox&&"MouseScrollEvent"in window&&(d.wheelEvent="DOMMouseScroll"))}()},c.Device.canPlayAudio=function(a){return!("mp3"!==a||!this.mp3)||(!("ogg"!==a||!this.ogg&&!this.opus)||(!("m4a"!==a||!this.m4a)||(!("opus"!==a||!this.opus)||(!("wav"!==a||!this.wav)||(!("webm"!==a||!this.webm)||!("mp4"!==a||!this.dolby))))))},c.Device.canPlayVideo=function(a){return!("webm"!==a||!this.webmVideo&&!this.vp9Video)||(!("mp4"!==a||!this.mp4Video&&!this.h264Video)||(!("ogg"!==a&&"ogv"!==a||!this.oggVideo)||!("mpeg"!==a||!this.hlsVideo)))},c.Device.isConsoleOpen=function(){return!(!window.console||!window.console.firebug)||!(!window.console||(console.profile(),console.profileEnd(),console.clear&&console.clear(),!console.profiles))&&console.profiles.length>0},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){b=b||256,c=c||256;var f=e?document.createElement("canvas"):PIXI.CanvasPool.create(a,b,c);return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);if(b)return a[b]},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;cb-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;c=c.Math.PI2-d?a=b:(Math.abs(b-a)>Math.PI&&(ba?a+=d:b=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(d<=0)return 0;var e=(a-b)%d;return e<0&&(e+=d),e+b},wrapValue:function(a,b,c){return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;ba[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;cb[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return b<0?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;e<=d;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(b<0&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):b<0?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[c0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;j0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:aa?0:(a-c)/b}};var g=Math.PI/180,h=180/Math.PI;return c.Math.degToRad=function(a){return a*g},c.Math.radToDeg=function(a){return a*h},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&-1!==(b=this.getIndex(a)))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),void 0!==d&&""!==d||(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e=void 0!==b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if(void 0!==b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;if(!c)return e;window.location.href=e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a===this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},this.game.onPause.add(this._pauseAll,this),this.game.onResume.add(this._resumeAll,this)},c.TweenManager.prototype={getAll:function(){return this._tweens},removeAll:function(){for(var a=0;a0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].resume(!0)}},c.TweenManager.prototype.constructor=c.TweenManager,c.Tween=function(a,b,d){this.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this.frameBased=d.frameBased,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||b<=0)&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),void 0!==d&&null!==d||(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;bthis.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}void 0!==this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(2-Math.pow(2,-10*(a-1)))}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=.1):b=.4*Math.asin(1/c)/(2*Math.PI),-c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/.4))},Out:function(a){var b,c=.1;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=.1):b=.4*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/.4)+1)},InOut:function(a){var b,c=.1;return 0===a?0:1===a?1:(!c||c<1?(c=1,b=.1):b=.4*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/.4)*-.5:c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/.4)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?a*a*((b+1)*a-b)*.5:.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return a<.5?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;a=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;0===this._now?h+=this.game.time.time:h+=this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),!0===this.events[this._i].loop?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return!this.expired||!this.autoDestroy},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bthis._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=!(!b||"number"!=typeof b[0])),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(!1===this._frameData.checkFrameName(a[c]))return!1;return!0},play:function(a,b,c,d){if(this._anims[a])return this.currentAnim===this._anims[a]?!1===this.currentAnim.isPlaying?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d))},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return!(this.updateIfVisible&&!this.sprite.visible)&&(!(!this.currentAnim||!this.currentAnim.update())&&(this.currentFrame=this.currentAnim.currentFrame,!0))},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){if(this.currentAnim)return this.currentAnim.name}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){if(this.currentFrame)return this.currentFrame.index},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){if(this.currentFrame)return this.currentFrame.name},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.isReversed=!1,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),void 0!==c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=this.isReversed?this._frames.length-1:0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},reverse:function(){return this.reversed=!this.reversed,this},reverseOnce:function(){return this.onComplete.addOnce(this.reverse,this),this.reverse()},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame)&&(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this.isReversed?this._frameIndex-=this._frameSkip:this._frameIndex+=this._frameSkip,!this.isReversed&&this._frameIndex>=this._frames.length||this.isReversed&&this._frameIndex<=-1?this.loop?(this._frameIndex=Math.abs(this._frameIndex)%this._frames.length,this.isReversed&&(this._frameIndex=this._frames.length-1-this._frameIndex),this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),!this.onUpdate||(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData)):(this.complete(),!1):this.updateCurrentFrame(!0)))},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),!this.onUpdate||!a||(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData)},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;b<0&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"reversed",{get:function(){return this.isReversed},set:function(a){this.isReversed=a}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return 1e3/this.delay},set:function(a){a>0&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(b=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null!=this._frameNames[a]},clone:function(){for(var a=new c.FrameData,b=0;bj&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1&&{index:c,file:this._fileList[c]}},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4===f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));if(c=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1).toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));if(c=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1).toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format===c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format===c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format===c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!==c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(a){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=b.response}catch(b){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(a){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,
+c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),this.isPlaying=!1,""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time,this.isPlaying=!0):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),""===this.currentMarker&&(this.currentTime=0,this.startTime=this.game.time.time),this.isPlaying=!1,this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){return this.play(null,0,a,!0)},play:function(a,b,c,d,e){if(void 0!==a&&!1!==a&&null!==a||(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e)){if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.isPlaying=!1}var f=Object.keys(this.markers);if(""===a&&1===f.length&&(a=f[0]),""===a&&f.length>0)return this;if(""!==a){if(!this.markers[a])return console.warn("Phaser.Sound.play: audio marker "+a+" doesn't exist"),this;this.currentMarker=a,this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,void 0!==c&&(this.volume=c),void 0!==d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,b),this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&!1===this.game.cache.getSound(this.key).isDecoding&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.wechatMinigame||this.game.device.cocoonJS||4===this._sound.readyState)?(this.loop&&(this._sound.loop=!0),!this.loop&&""===a&&this.game.device.wechatMinigame&&this._sound.addEventListener("ended",this.onEndedHandler.bind(this)),this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this._tempPause=this._sound.currentTime,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.currentTime=this._tempPause,this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this.gainNode&&this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var a=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,a)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){(a=a||!1)!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.game.device.wechatMinigame?this._sound.pause():this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.game.device.wechatMinigame&&this.isPlaying?this._sound.play():this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){if(this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted)return void(this._muteVolume=a);this._tempVolume=a,this._volume=a,this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&!1===this.game.device.webAudio&&(this.channels=1),window.PhaserGlobal){if(!0===window.PhaserGlobal.disableAudio)return this.noAudio=!0,void(this.touchLocked=!1);if(!0===window.PhaserGlobal.disableWebAudio)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||!this.game.device.cocoonJS&&(this.game.device.chrome||this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&!0===window.PhaserGlobal.disableAudio||(this.game.device.iOSVersion>8||this.game.device.chromeVersion>=55?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0),"suspended"===this._unlockSource.context.state&&this._unlockSource.context.resume()}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;a1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottleb;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){return this.parentIsWindow||this.isFullScreen&&this.hasPhaserSetFullScreen&&!this._createdFullScreenTarget?null:this.game.canvas&&this.game.canvas.parentNode||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=new c.BitmapData(this.game,"__DEBUG",this.game.width,this.game.height,!0),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b0)for(var b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};if(Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0}),a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight){var e=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},f=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:e}),Object.defineProperty(c.DOM.visualBounds,"height",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:e}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:f})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return a-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);if(b>-1)return this.list.splice(b,1),a},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;e-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return void 0!==b&&null!==b||(b=c.Color.createColor()),void 0!==d&&null!==d||(d=!1),void 0!==e&&null!==e||(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},toABGR:function(a,b,c,d){return(d<<24|c<<16|b<<8|a)>>>0},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(b1&&(c-=1),c<1/6?a+6*(b-a)*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);if(b)return c.Color.getColor32(b.a,b.r,b.g,b.b)},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1===b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;e<=359;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;e<=359;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return b<128?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return b<128?2*(64+(a>>1))*(b/255):255-2*(255-(64+(a>>1)))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return b<128?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return b<128?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return b<128?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&!0!==this.config.arcade||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&!0===this.config.ninja&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&!0===this.config.p2&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&!0===this.config.box2d&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&!0===this.config.matter&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:c+e<0?c+=e:c=0),c>f?c=f:c<-f&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){if(void 0===b&&a.physicsType===c.GROUP)return this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g);a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g)))},collideSpriteVsSprite:function(a,b,c,d,e,f){return!(!a.body||!b.body)&&(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0)},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body)if(this.skipQuadTree||a.body.skipQuadTree)for(var h={},i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,j,d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var k=this.quadTree.retrieve(a),i=0;ik.right)continue;if(k.x>h.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.bottomk.bottom)continue;if(k.y>i.body.bottom)break}this.collideSpriteVsSprite(i,l,b,d,e,f)}}}}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;hh.bottom)&&(i.xh.right))return this.separateCircle(a,b,e)}var j=!1,k=!1;this.forceX||Math.abs(this.gravity.y+a.gravity.y)=b.right)&&!(a.position.y>=b.bottom))))},circleBodyIntersects:function(a,b){var d=c.Math.clamp(a.center.x,b.left,b.right),e=c.Math.clamp(a.center.y,b.top,b.bottom);return(a.center.x-d)*(a.center.x-d)+(a.center.y-e)*(a.center.y-e)<=a.radius*a.radius},separateCircle:function(a,b,d){this.getOverlapX(a,b),this.getOverlapY(a,b);var e=b.center.x-a.center.x,f=b.center.y-a.center.y,g=Math.atan2(f,e),h=0;if(a.isCircle!==b.isCircle){var i={x:b.isCircle?a.position.x:b.position.x,y:b.isCircle?a.position.y:b.position.y,right:b.isCircle?a.right:b.right,bottom:b.isCircle?a.bottom:b.bottom},j={x:a.isCircle?a.position.x+a.radius:b.position.x+b.radius,y:a.isCircle?a.position.y+a.radius:b.position.y+b.radius,radius:a.isCircle?a.radius:b.radius};j.yi.right&&(h=c.Math.distance(j.x,j.y,i.right,i.y)-j.radius):j.y>i.bottom&&(j.xi.right&&(h=c.Math.distance(j.x,j.y,i.right,i.bottom)-j.radius)),h*=-1}else h=a.radius+b.radius-c.Math.distance(a.center.x,a.center.y,b.center.x,b.center.y);if(d||0===h||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==h&&(a.onOverlap&&a.onOverlap.dispatch(a.sprite,b.sprite),b.onOverlap&&b.onOverlap.dispatch(b.sprite,a.sprite)),0!==h;var k={x:a.velocity.x*Math.cos(g)+a.velocity.y*Math.sin(g),y:a.velocity.x*Math.sin(g)-a.velocity.y*Math.cos(g)},l={x:b.velocity.x*Math.cos(g)+b.velocity.y*Math.sin(g),y:b.velocity.x*Math.sin(g)-b.velocity.y*Math.cos(g)},m=((a.mass-b.mass)*k.x+2*b.mass*l.x)/(a.mass+b.mass),n=(2*a.mass*k.x+(b.mass-a.mass)*l.x)/(a.mass+b.mass);return a.immovable||(a.velocity.x=(m*Math.cos(g)-k.y*Math.sin(g))*a.bounce.x,a.velocity.y=(k.y*Math.cos(g)+m*Math.sin(g))*a.bounce.y),b.immovable||(b.velocity.x=(n*Math.cos(g)-l.y*Math.sin(g))*b.bounce.x,b.velocity.y=(l.y*Math.cos(g)+n*Math.sin(g))*b.bounce.y),Math.abs(g)0&&!a.immovable&&b.velocity.x>a.velocity.x?a.velocity.x*=-1:b.velocity.x<0&&!b.immovable&&a.velocity.x0&&!a.immovable&&b.velocity.y>a.velocity.y?a.velocity.y*=-1:b.velocity.y<0&&!b.immovable&&a.velocity.yMath.PI/2&&(a.velocity.x<0&&!a.immovable&&b.velocity.x0&&!b.immovable&&a.velocity.x>b.velocity.x?b.velocity.x*=-1:a.velocity.y<0&&!a.immovable&&b.velocity.y0&&!b.immovable&&a.velocity.x>b.velocity.y&&(b.velocity.y*=-1)),a.immovable||(a.x+=a.velocity.x*this.game.time.physicsElapsed-h*Math.cos(g),a.y+=a.velocity.y*this.game.time.physicsElapsed-h*Math.sin(g)),b.immovable||(b.x+=b.velocity.x*this.game.time.physicsElapsed+h*Math.cos(g),b.y+=b.velocity.y*this.game.time.physicsElapsed+h*Math.sin(g)),a.onCollide&&a.onCollide.dispatch(a.sprite,b.sprite),b.onCollide&&b.onCollide.dispatch(b.sprite,a.sprite),!0},getOverlapX:function(a,b,c){var d=0,e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e&&!c||!1===a.checkCollision.right||!1===b.checkCollision.left?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e&&!c||!1===a.checkCollision.left||!1===b.checkCollision.right?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,d},getOverlapY:function(a,b,c){var d=0,e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e&&!c||!1===a.checkCollision.down||!1===b.checkCollision.up?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e&&!c||!1===a.checkCollision.up||!1===b.checkCollision.down?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,d},separateX:function(a,b,c){var d=this.getOverlapX(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b,c);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d||a.embedded&&b.embedded;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){if(0!==b.length&&a.exists)return this.getObjectsAtLocation(a.x,a.y,b,c,d,a)},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b,c){void 0===c&&(c=!1);var d=c?a.world.x-b.world.x:a.x-b.x,e=c?a.world.y-b.world.y:a.y-b.y;return Math.sqrt(d*d+e*e)},distanceToXY:function(a,b,c,d){void 0===d&&(d=!1);var e=d?a.world.x-b:a.x-b,f=d?a.world.y-c:a.y-c;return Math.sqrt(e*e+f*f)},distanceToPointer:function(a,b,c){void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1);var d=c?a.world.x-b.worldX:a.x-b.worldX,e=c?a.world.y-b.worldY:a.y-b.worldY;return Math.sqrt(d*d+e*e)},angleBetween:function(a,b,c){return void 0===c&&(c=!1),c?Math.atan2(b.world.y-a.world.y,b.world.x-a.world.x):Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenCenters:function(a,b){var c=b.centerX-a.centerX,d=b.centerY-a.centerY;return Math.atan2(d,c)},angleToXY:function(a,b,c,d){return void 0===d&&(d=!1),d?Math.atan2(c-a.world.y,b-a.world.x):Math.atan2(c-a.y,b-a.x)},angleToPointer:function(a,b,c){return void 0===b&&(b=this.game.input.activePointer),void 0===c&&(c=!1),c?Math.atan2(b.worldY-a.world.y,b.worldX-a.world.x):Math.atan2(b.worldY-a.y,b.worldX-a.x)},worldAngleToPointer:function(a,b){return this.angleToPointer(a,b,!0)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.isCircle=!1,this.radius=0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.angle,this.preRotation=a.angle,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point,this.deltaMax=new c.Point,this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point,this.bounce=new c.Point,this.worldBounce=null,this.onWorldBounds=null,this.onCollide=null,this.onOverlap=null,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.overlapR=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this.isMoving=!1,this.stopVelocityOnCollide=!0,this.moveTimer=0,this.moveDistance=0,this.moveDuration=0,this.moveTarget=null,this.moveEnd=null,this.onMoveComplete=new c.Signal,this.movementCallback=null,this.movementCallbackContext=null,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),a.width===this.width&&a.height===this.height||(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);b===this._sx&&c===this._sy||(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,this.position.x===this.prev.x&&this.position.y===this.prev.y||(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()&&this.onWorldBounds&&this.onWorldBounds.dispatch(this.sprite,this.blocked.up,this.blocked.down,this.blocked.left,this.blocked.right)),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},updateMovement:function(){var a=0,b=0!==this.overlapX||0!==this.overlapY;if(this.moveDuration>0?(this.moveTimer+=this.game.time.elapsedMS,a=this.moveTimer/this.moveDuration):(this.moveTarget.end.set(this.position.x,this.position.y),a=this.moveTarget.length/this.moveDistance),this.movementCallback)var c=this.movementCallback.call(this.movementCallbackContext,this,this.velocity,a);return!(b||a>=1||void 0!==c&&!0!==c)||(this.stopMovement(a>=1||this.stopVelocityOnCollide&&b),!1)},stopMovement:function(a){this.isMoving&&(this.isMoving=!1,a&&this.velocity.set(0),this.onMoveComplete.dispatch(this.sprite,0!==this.overlapX||0!==this.overlapY))},postUpdate:function(){this.enable&&this.dirty&&(this.isMoving&&this.updateMovement(),this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision,d=this.worldBounce?-this.worldBounce.x:-this.bounce.x,e=this.worldBounce?-this.worldBounce.y:-this.bounce.y;if(this.isCircle){var f={x:this.center.x-this.radius,y:this.center.y-this.radius,right:this.center.x+this.radius,bottom:this.center.y+this.radius};f.xb.right&&c.right&&(a.x=b.right-this.halfWidth-this.radius,this.velocity.x*=d,this.blocked.right=!0),f.yb.bottom&&c.down&&(a.y=b.bottom-this.halfHeight-this.radius,this.velocity.y*=e,this.blocked.down=!0)}else a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=d,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=e,this.blocked.down=!0);return this.blocked.up||this.blocked.down||this.blocked.left||this.blocked.right},moveFrom:function(a,b,c){if(void 0===b&&(b=this.speed),0===b)return!1;var d;return void 0===c?(d=this.angle,c=this.game.math.radToDeg(d)):d=this.game.math.degToRad(c),this.moveTimer=0,this.moveDuration=a,0===c||180===c?this.velocity.set(Math.cos(d)*b,0):90===c||270===c?this.velocity.set(0,Math.sin(d)*b):this.velocity.set(Math.cos(d)*b,Math.sin(d)*b),this.isMoving=!0,!0},moveTo:function(a,b,d){var e=b/(a/1e3);if(0===e)return!1;var f;return void 0===d?(f=this.angle,d=this.game.math.radToDeg(f)):f=this.game.math.degToRad(d),b=Math.abs(b),this.moveDuration=0,this.moveDistance=b,null===this.moveTarget&&(this.moveTarget=new c.Line,this.moveEnd=new c.Point),this.moveTarget.fromAngle(this.x,this.y,f,b),this.moveEnd.set(this.moveTarget.end.x,this.moveTarget.end.y),this.moveTarget.setTo(this.x,this.y,this.x,this.y),0===d||180===d?this.velocity.set(Math.cos(f)*e,0):90===d||270===d?this.velocity.set(0,Math.sin(f)*e):this.velocity.set(Math.cos(f)*e,Math.sin(f)*e),this.isMoving=!0,!0},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.isCircle=!1,this.radius=0},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.sprite.width+this.sprite.scale.x*this.offset.x,this.position.x-=this.sprite.scale.x<0?this.width:0,this.position.y=b-this.sprite.anchor.y*this.sprite.height+this.sprite.scale.y*this.offset.y,this.position.y-=this.sprite.scale.y<0?this.height:0,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},getBounds:function(a){return this.isCircle?(a.x=this.center.x-this.radius,a.y=this.center.y-this.radius,a.right=this.center.x+this.radius,a.bottom=this.center.y+this.radius):(a.x=this.x,a.y=this.y,a.right=this.right,a.bottom=this.bottom),a},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",a.fillStyle=c,a.strokeStyle=c,b.isCircle?(a.beginPath(),a.arc(b.center.x-b.game.camera.x,b.center.y-b.game.camera.y,b.radius,0,2*Math.PI),d?a.fill():a.stroke()):d?a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height):a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?j=-1:b.deltaAbsX()0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right-e>b.left&&(d=a.right-e-b.left)>this.TILE_BIAS&&(d=0),0!==d&&(a.customSeparateX?a.overlapX=d:this.processTileSeparationX(a,d)),d},tileCheckY:function(a,b,c){var d=0,e=c.fixedToCamera?0:c.position.y;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y-e0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom-e>b.top&&(d=a.bottom-e-b.top)>this.TILE_BIAS&&(d=0),0!==d&&(a.customSeparateY?a.overlapY=d:this.processTileSeparationY(a,d)),d},processTileSeparationX:function(a,b){b<0?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){b<0?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1)},c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,void 0!==a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){void 0===a&&(a=!0);var b=a?this.boundsCollisionGroup.mask:this.everythingCollisionGroup.mask;this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b),this._boundsOwnGroup=a},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.setupWall(e,"left",a,b,1.5707963267948966,i),this.setupWall(f,"right",a+c,b,-1.5707963267948966,i),this.setupWall(g,"top",a,b,-3.141592653589793,i),this.setupWall(h,"bottom",a,b+d,0,i),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},setupWall:function(a,b,c,d,e,f){a?(this.walls[b]?this.walls[b].position=[this.pxmi(c),this.pxmi(d)]:(this.walls[b]=new p2.Body({mass:0,position:[this.pxmi(c),this.pxmi(d)],angle:e}),this.walls[b].addShape(new p2.Plane),this.world.addBody(this.walls[b])),f&&(this.walls[b].shapes[0].collisionGroup=this.boundsCollisionGroup.mask)):this.walls[b]&&(this.world.removeBody(this.walls[b]),this.walls[b]=null)},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||(this.useElapsedTime?this.world.step(this.game.time.physicsElapsed):this.world.step(this.frameRate))},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[],this.walls={left:null,right:null,top:null,bottom:null}},destroy:function(){this.clear(),this.game=null},addBody:function(a){return!a.data.world&&(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world===this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.addSpring(a.data):this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.removeSpring(a.data):this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g));console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e));console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){if(a=this.getBody(a),d=this.getBody(d),a&&d)return this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g));console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f));console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){if(a=this.getBody(a),b=this.getBody(b),a&&b)return this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h));console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),void 0!==b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;d