diff --git a/README.md b/README.md index bbe81cb..19bb4da 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Dude's Quest +# Dude's Quest [![CodeFactor](https://www.codefactor.io/repository/github/diguifi/dude-sidescroll/badge/master)](https://www.codefactor.io/repository/github/diguifi/dude-sidescroll/overview/master) ![GitHub last commit](https://img.shields.io/github/last-commit/diguifi/Dude-SideScroll.svg?style=popout) ![GitHub stars](https://img.shields.io/github/stars/diguifi/Dude-SideScroll.svg?style=popout) @@ -8,6 +8,7 @@

# [Play!](https://diguifi.github.io/Dude-SideScroll) +_(not fully supported on Edge)_ A side-scrolling adventure game, featuring Dude, from [Adventures of Dude in the Top-Down world](https://github.com/diguifi/Dude-TopDown). @@ -37,8 +38,7 @@ This game was created using [Phaser 2](https://phaser.io/) and written in [TypeS - ~Music and sound effects~ - ~Main menu~ - ~Some item(s)~ -- 10 levels -- ... +- ~Demo with 4 levels~ ## Art [Jesse M - Jungle Pack](https://jesse-m.itch.io/jungle-pack) diff --git a/assets/levels/jungle1.json b/assets/levels/jungle1.json index 1f87a4a..e7e6b09 100644 --- a/assets/levels/jungle1.json +++ b/assets/levels/jungle1.json @@ -31,7 +31,7 @@ "name":"misc", "objects":[ { - "gid":757, + "gid":760, "height":32, "id":38, "name":"lumpofgrass", @@ -65,7 +65,7 @@ "name":"gems", "objects":[ { - "gid":743, + "gid":746, "height":16, "id":15, "name":"gem1", @@ -77,7 +77,7 @@ "y":78 }, { - "gid":743, + "gid":746, "height":16, "id":16, "name":"gem1", @@ -89,7 +89,7 @@ "y":78.6666666666667 }, { - "gid":743, + "gid":746, "height":16, "id":17, "name":"gem1", @@ -101,7 +101,7 @@ "y":108 }, { - "gid":743, + "gid":746, "height":16, "id":18, "name":"gem1", @@ -113,7 +113,7 @@ "y":142 }, { - "gid":743, + "gid":746, "height":16, "id":19, "name":"gem1", @@ -125,7 +125,7 @@ "y":141 }, { - "gid":743, + "gid":746, "height":16, "id":20, "name":"gem1", @@ -137,7 +137,7 @@ "y":141 }, { - "gid":743, + "gid":746, "height":16, "id":21, "name":"gem1", @@ -149,7 +149,7 @@ "y":78 }, { - "gid":743, + "gid":746, "height":16, "id":22, "name":"gem1", @@ -161,7 +161,7 @@ "y":168.333333333333 }, { - "gid":743, + "gid":746, "height":16, "id":23, "name":"gem1", @@ -173,7 +173,7 @@ "y":93 }, { - "gid":743, + "gid":746, "height":16, "id":26, "name":"gem1", @@ -303,7 +303,7 @@ "name":"redgems", "objects":[ { - "gid":747, + "gid":750, "height":16, "id":28, "name":"redgem", @@ -321,10 +321,10 @@ "y":0 }], "nextlayerid":8, - "nextobjectid":51, + "nextobjectid":52, "orientation":"orthogonal", "renderorder":"right-down", - "tiledversion":"1.2.1", + "tiledversion":"1.2.2", "tileheight":16, "tilesets":[ { @@ -341,21 +341,21 @@ "tilewidth":16 }, { - "columns":1, + "columns":4, "firstgid":742, "image":"..\/sprites\/enemy.png", "imageheight":22, - "imagewidth":23, + "imagewidth":105, "margin":0, "name":"enemies", "spacing":0, - "tilecount":1, + "tilecount":4, "tileheight":22, "tilewidth":23 }, { "columns":4, - "firstgid":743, + "firstgid":746, "image":"..\/sprites\/itens\/spr_coin_cin.png", "imageheight":16, "imagewidth":64, @@ -368,7 +368,7 @@ }, { "columns":4, - "firstgid":747, + "firstgid":750, "image":"..\/sprites\/itens\/spr_coin_ver.png", "imageheight":16, "imagewidth":64, @@ -381,7 +381,7 @@ }, { "columns":6, - "firstgid":751, + "firstgid":754, "image":"..\/sprites\/shield.png", "imageheight":17, "imagewidth":96, @@ -394,7 +394,7 @@ }, { "columns":1, - "firstgid":757, + "firstgid":760, "image":"..\/sprites\/lumpofgrass.png", "imageheight":32, "imagewidth":32, @@ -407,7 +407,7 @@ }, { "columns":2, - "firstgid":758, + "firstgid":761, "image":"..\/sprites\/platform.png", "imageheight":8, "imagewidth":64, @@ -420,7 +420,7 @@ }, { "columns":2, - "firstgid":760, + "firstgid":763, "image":"..\/sprites\/lever.png", "imageheight":16, "imagewidth":32, @@ -433,7 +433,7 @@ }, { "columns":1, - "firstgid":762, + "firstgid":765, "image":"..\/sprites\/gate.png", "imageheight":48, "imagewidth":16, diff --git a/assets/levels/jungle4.json b/assets/levels/jungle4.json index d1d2d04..c8cdddb 100644 --- a/assets/levels/jungle4.json +++ b/assets/levels/jungle4.json @@ -2,7 +2,7 @@ "infinite":false, "layers":[ { - "data":[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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 490, 537, 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, 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, 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, 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, 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, 490, 491, 492, 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, 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, 495, 496, 0, 0, 0, 0, 0, 568, 569, 490, 491, 650, 492, 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, 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, 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, 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, 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, 568, 569, 570, 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, 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, 572, 498, 0, 0, 0, 0, 0, 0, 0, 499, 531, 0, 688, 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, 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, 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, 643, 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, 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, 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, 0, 0, 491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, 491, 530, 537, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 530, 0, 530, 534, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, 569, 534, 492, 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, 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, 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, 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, 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, 538, 531, 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, 569, 530, 530, 530, 569, 569, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, 534, 537, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 537, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 534, 0, 533, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 569, 570, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 530, 537, 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, 0, 0, 0, 0, 0, 0, 0, 0, 568, 569, 656, 650, 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, 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, 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, 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, 572, 0, 0, 534, 573, 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, 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, 568, 569, 570, 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, 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, 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, 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, 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, 529, 537, 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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 570, 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, 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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "data":[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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 490, 537, 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, 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, 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, 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, 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, 490, 491, 492, 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, 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, 495, 496, 0, 0, 0, 0, 0, 568, 569, 490, 491, 650, 492, 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, 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, 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, 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, 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, 568, 569, 570, 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, 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, 572, 498, 0, 0, 0, 0, 0, 0, 0, 499, 531, 0, 688, 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, 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, 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, 643, 0, 643, 0, 0, 0, 0, 0, 0, 0, 643, 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, 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, 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, 491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, 491, 530, 537, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 530, 0, 530, 534, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, 569, 534, 492, 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, 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, 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, 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, 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, 538, 531, 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, 569, 530, 530, 530, 569, 569, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, 534, 537, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 490, 537, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 569, 570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 538, 534, 0, 533, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 572, 569, 570, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 530, 537, 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, 0, 0, 0, 0, 0, 0, 0, 0, 568, 569, 656, 650, 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, 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, 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, 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, 572, 0, 0, 534, 573, 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, 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, 568, 569, 570, 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, 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, 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, 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, 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, 529, 537, 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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 568, 570, 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, 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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "height":13, "id":1, "name":"back", @@ -14,7 +14,7 @@ "y":0 }, { - "data":[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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 22, 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, 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, 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, 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, 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, 0, 337, 338, 339, 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, 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, 337, 338, 338, 131, 0, 127, 338, 129, 338, 338, 338, 338, 339, 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, 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, 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, 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, 49, 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, 0, 0, 0, 0, 0, 0, 0, 378, 0, 378, 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, 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, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 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, 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, 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, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 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, 378, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 331, 101, 333, 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 338, 182, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 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, 0, 127, 128, 130, 131, 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, 378, 0, 378, 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, 139, 140, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 99, 417, 415, 99, 338, 338, 338, 338, 338, 338, 128, 338, 338, 338, 338, 338, 338, 338, 338, 338, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 338, 339, 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, 176, 182, 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, 0, 0, 0, 0, 0, 0, 127, 128, 131, 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, 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, 337, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 339, 0, 0, 378, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 543, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 408, 177, 178, 179, 180, 181, 412, 330, 330, 330, 330, 330, 330, 330, 330, 330, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 128, 417, 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, 376, 0, 0, 0, 0, 0, 0, 0, 176, 182, 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, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 22, 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, 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, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 130, 338, 338, 338, 338, 417, 415, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 417, 415, 338, 338, 417, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 582, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 265, 265, 265, 265, 417, 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, 376, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 338, 338, 338, 338, 338, 338, 338, 338, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 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, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 620, 621, 622, 623, 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, 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, 415, 338, 182, 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, 127, 182, 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, 0, 0, 0, 0, 0, 85, 86, 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, 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, 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, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 659, 0, 661, 662, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 338, 338, 335, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 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, 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], + "data":[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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 22, 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, 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, 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, 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, 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, 0, 337, 338, 339, 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, 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, 337, 338, 338, 131, 0, 127, 338, 129, 338, 338, 338, 338, 339, 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, 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, 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, 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, 49, 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, 0, 0, 0, 0, 0, 0, 0, 378, 0, 378, 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, 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, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 128, 130, 128, 128, 128, 128, 128, 131, 0, 0, 0, 49, 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, 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, 378, 0, 378, 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, 127, 331, 101, 333, 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 338, 182, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 128, 130, 131, 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, 378, 0, 378, 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, 139, 140, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 99, 417, 415, 99, 338, 338, 338, 338, 338, 338, 128, 338, 338, 338, 338, 338, 338, 338, 338, 338, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 338, 339, 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, 176, 182, 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, 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, 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, 0, 0, 0, 0, 0, 0, 337, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 339, 0, 0, 378, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 543, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, 408, 177, 178, 179, 180, 181, 412, 330, 330, 330, 330, 330, 330, 330, 330, 330, 130, 130, 130, 0, 0, 0, 0, 0, 0, 0, 337, 128, 417, 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, 376, 0, 0, 0, 0, 0, 0, 0, 176, 182, 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, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 22, 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, 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, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 130, 338, 338, 338, 338, 417, 415, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 417, 415, 338, 338, 417, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581, 582, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 256, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 263, 265, 265, 265, 265, 417, 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, 376, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 338, 338, 338, 338, 338, 338, 338, 338, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 620, 621, 622, 623, 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, 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, 415, 338, 182, 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, 127, 182, 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, 0, 0, 0, 0, 0, 0, 0, 0, 352, 354, 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, 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, 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, 378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 659, 0, 661, 662, 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, 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, 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, 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, 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, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, 338, 338, 335, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 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, 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, 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], "height":13, "id":2, "name":"walls", @@ -40,7 +40,19 @@ "draworder":"topdown", "id":6, "name":"items", - "objects":[], + "objects":[ + { + "gid":754, + "height":48, + "id":25, + "name":"hangglider", + "rotation":0, + "type":"", + "visible":true, + "width":48, + "x":1533, + "y":135 + }], "opacity":1, "type":"objectgroup", "visible":true, @@ -145,8 +157,8 @@ "type":"", "visible":true, "width":16, - "x":1912, - "y":140 + "x":1960, + "y":137 }, { "gid":742, @@ -157,8 +169,8 @@ "type":"", "visible":true, "width":16, - "x":2351, - "y":142 + "x":2834, + "y":123 }, { "gid":742, @@ -351,7 +363,7 @@ "name":"redgems", "objects":[ { - "gid":747, + "gid":750, "height":16, "id":24, "name":"redgem", @@ -359,8 +371,8 @@ "type":"", "visible":true, "width":16, - "x":4265, - "y":107 + "x":2353, + "y":136 }], "opacity":1, "type":"objectgroup", @@ -369,10 +381,10 @@ "y":0 }], "nextlayerid":8, - "nextobjectid":25, + "nextobjectid":26, "orientation":"orthogonal", "renderorder":"right-down", - "tiledversion":"1.2.1", + "tiledversion":"1.2.2", "tileheight":16, "tilesets":[ { @@ -402,21 +414,21 @@ "tilewidth":16 }, { - "columns":1, + "columns":4, "firstgid":746, "image":"..\/sprites\/enemy.png", "imageheight":22, - "imagewidth":23, + "imagewidth":105, "margin":0, "name":"enemies", "spacing":0, - "tilecount":1, + "tilecount":4, "tileheight":22, "tilewidth":23 }, { "columns":4, - "firstgid":747, + "firstgid":750, "image":"..\/sprites\/itens\/spr_coin_ver.png", "imageheight":16, "imagewidth":64, @@ -426,6 +438,19 @@ "tilecount":4, "tileheight":16, "tilewidth":16 + }, + { + "columns":1, + "firstgid":754, + "image":"..\/sprites\/hangglider.png", + "imageheight":48, + "imagewidth":48, + "margin":0, + "name":"hangglider", + "spacing":0, + "tilecount":1, + "tileheight":48, + "tilewidth":48 }], "tilewidth":16, "type":"map", diff --git a/assets/sprites/dude_spritesheet.png b/assets/sprites/dude_spritesheet.png index d270a5a..73907b4 100644 Binary files a/assets/sprites/dude_spritesheet.png and b/assets/sprites/dude_spritesheet.png differ diff --git a/assets/sprites/hangglider.png b/assets/sprites/hangglider.png new file mode 100644 index 0000000..62d95f0 Binary files /dev/null and b/assets/sprites/hangglider.png differ diff --git a/dist/game.js b/dist/game.js index acb042f..5fe0b05 100644 --- a/dist/game.js +++ b/dist/game.js @@ -1 +1 @@ -!function(e){var t={};function s(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,s),a.l=!0,a.exports}s.m=e,s.c=t,s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)s.d(i,a,function(t){return e[t]}.bind(null,a));return i},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="dist",s(s.s=3)}([function(e,t,s){var i,a;i=[s,t,s(8),s(9),s(10),s(11),s(12),s(13),s(14)],void 0===(a=function(e,t,s,i,a,h,l,o,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LevelManager=class{constructor(e,t,s,i){this.game=e,this.level=t,this.nextLevel=s,this.level.lastCameraPositionX=0,this.soundManager=i}createBasicLevelStuff(e){this.createMap(e),this.createParallax(430),this.game.world.bringToTop(this.level.back),this.game.world.bringToTop(this.level.walls),this.createGreenEnemies(),this.createGems(),this.createRedGems(),this.createItems(),this.createMisc()}updateBasicLevelStuff(e){this.updatePlayer(e),this.updateRedGemsInteraction(e),this.updateGemsInteraction(e),this.updateEnemiesInteraction(e),this.updateItemsInteraction(e),this.updateMiscInteraction(e),this.updateParallax(e.speed)}createMap(e){this.level.map=this.game.add.tilemap(e),this.level.map.addTilesetImage("jungletileset","jungle_tileset"),this.level.map.setCollisionBetween(1,2e3,!0,"walls"),this.level.back=this.level.map.createLayer("back"),this.level.back.setScale(2),this.level.walls=this.level.map.createLayer("walls"),this.level.walls.setScale(2),this.level.walls.resizeWorld()}createParallax(e){this.level.paralax2=this.game.add.tileSprite(0,this.game.world.height-e,this.game.world.width,this.game.world.height+100,"jungle_paralax2"),this.level.paralax2.tileScale.x=2,this.level.paralax2.tileScale.y=2,this.level.paralax3=this.game.add.tileSprite(0,this.game.world.height-e-5,this.game.world.width,this.game.world.height+100,"jungle_paralax3"),this.level.paralax3.tileScale.x=2,this.level.paralax3.tileScale.y=2,this.level.paralax4=this.game.add.tileSprite(0,this.game.world.height-e-20,this.game.world.width,this.game.world.height+100,"jungle_paralax4"),this.level.paralax4.tileScale.x=2,this.level.paralax4.tileScale.y=2,this.level.paralax5=this.game.add.tileSprite(0,this.game.world.height-e-30,this.game.world.width,this.game.world.height+100,"jungle_paralax5"),this.level.paralax5.tileScale.x=2,this.level.paralax5.tileScale.y=2,this.level.paralax5.checkWorldBounds=!0}createGreenEnemies(){this.level.map.objects.enemies.forEach(function(e){this.level.enemies.push(new s.Enemy(this.game,2*e.x,1.7*e.y,this.game.physics.arcade.gravity.y,this.level.enemySpeed))}.bind(this))}createItems(){this.level.map.objects.items.forEach(function(e){"shield"==e.name&&this.level.items.push(new a.Shield(this.game,2*e.x,1.7*e.y,this.game.physics.arcade.gravity.y))}.bind(this))}createLights(){this.level.map.objects.items.forEach(function(e){"light"==e.name&&this.level.items.push(new n.Light(this.game,2*e.x,1.7*e.y,this.game.physics.arcade.gravity.y))}.bind(this))}createBats(e){this.playerRef=e,this.level.map.objects.bats.forEach(function(e){this.level.bats.push(new i.Bat(this.game,2*e.x,1.5*e.y,this.game.physics.arcade.gravity.y,125,this.playerRef))}.bind(this))}createGems(){this.level.gems=this.game.add.physicsGroup(),this.level.map.createFromObjects("gems","gem1","greygem",0,!0,!1,this.level.gems),this.level.gems.forEach(function(e){e=this.gemSetup(e)}.bind(this))}createRedGems(){this.level.redGems=this.game.add.physicsGroup(),this.level.map.createFromObjects("redgems","redgem","redgem",0,!0,!1,this.level.redGems),this.level.redGems.forEach(function(e){e=this.gemSetup(e)}.bind(this))}createMisc(){this.level.misc=this.game.add.physicsGroup(),this.level.map.createFromObjects("misc","lumpofgrass","lumpofgrass",0,!0,!1,this.level.misc),this.level.misc.forEach(function(e){"lumpofgrass"==e.name&&(e=this.miscSetup(e))}.bind(this)),this.level.map.objects.misc.forEach(function(e){"platform"==e.name&&this.level.platforms.push(new h.Platform(this.game,2*e.x,1.9*e.y,this.game.physics.arcade.gravity.y,this.soundManager)),"lever"==e.name&&this.level.levers.push(new l.Lever(this.game,2.01*e.x,1.9*e.y,this.game.physics.arcade.gravity.y,this.soundManager))}.bind(this));var e=this.level.levers.length+this.level.platforms.length;this.level.map.objects.misc.forEach(function(t){"gate"==t.name&&(this.level.gate=new o.Gate(this.game,2*t.x,1.45*t.y,e,this.game.physics.arcade.gravity.y,this.soundManager))}.bind(this))}updatePlayer(e){this.game.physics.arcade.collide(e,this.level.walls),e.position.x+.1>=this.game.world.bounds.bottomRight.x&&this.goNextLevel(e)}updateParallax(e){this.game.input.keyboard.isDown(Phaser.Keyboard.LEFT)&&this.game.camera.position.x!=this.level.lastCameraPositionX&&(this.level.paralax4.tilePosition.x+=e/1875,this.level.paralax3.tilePosition.x+=e/6e3,this.level.paralax2.tilePosition.x+=e/3e4),this.game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)&&this.game.camera.position.x!=this.level.lastCameraPositionX&&(this.level.paralax4.tilePosition.x-=e/1875,this.level.paralax3.tilePosition.x-=e/6e3,this.level.paralax2.tilePosition.x-=e/3e4),this.level.lastCameraPositionX=this.game.camera.position.x}updateEnemiesInteraction(e){this.game.physics.arcade.collide(this.level.enemies,this.level.walls),this.game.physics.arcade.overlap(e,this.level.enemies,this.enemyOverlap.bind(this))}updateItemsInteraction(e){this.game.physics.arcade.collide(this.level.items,this.level.walls),this.game.physics.arcade.overlap(e,this.level.items,this.getItem.bind(this))}updateGateInteraction(e){this.game.physics.arcade.collide(this.level.gate,this.level.walls),this.game.physics.arcade.collide(this.level.gate,this.level.enemies,this.enemyGateCollide.bind(this)),this.level.gate.visible&&this.game.physics.arcade.collide(e,this.level.gate);var t=0;this.level.platforms.forEach(e=>{e.active&&t++}),this.level.levers.forEach(e=>{e.active&&t++}),this.level.gate.activated=t}updateMiscInteraction(e){this.game.physics.arcade.collide(this.level.misc,this.level.walls),this.game.physics.arcade.collide(e,this.level.misc,this.miscOverlap.bind(this));var t=this.level.platforms.length>0||this.level.levers.length>0;this.level.platforms.length>0&&(this.game.physics.arcade.collide(this.level.platforms,this.level.walls),this.game.physics.arcade.overlap(e,this.level.platforms,this.platformOverlap.bind(this)),this.game.physics.arcade.overlap(this.level.platforms,this.level.misc,this.platformOverlap.bind(this))),this.level.levers.length>0&&(this.game.physics.arcade.collide(this.level.levers,this.level.walls),this.game.physics.arcade.overlap(e,this.level.levers,this.leverOverlap.bind(this))),t&&this.level.gate&&this.updateGateInteraction(e),this.level.misc.forEach(function(e){e.body.touching.none&&(e.inCamera||(e.x=e.spawnX,e.y=e.spawnY))}.bind(this))}updateBatsInteraction(e){this.game.physics.arcade.collide(this.level.bats,this.level.walls),this.game.physics.arcade.overlap(e,this.level.bats,this.enemyOverlap.bind(this))}updateGemsInteraction(e){this.game.physics.arcade.collide(this.level.gems,this.level.walls),this.game.physics.arcade.overlap(e,this.level.gems,this.gemsCollect.bind(this),null,this)}updateRedGemsInteraction(e){this.game.physics.arcade.collide(this.level.redGems,this.level.walls),this.game.physics.arcade.overlap(e,this.level.redGems,this.redGemsCollect.bind(this),null,this)}enemyOverlap(e,t){e.body.touching.down&&e.position.y450&&this.playerDamage(this.soundManager),this.checkShield())}updateLightRadius(){this.lightRadius>60&&(this.lightRadius-=.2)}removeShield(){0===this.shieldSeconds?(this.hasShield=!1,this.shieldSprite.visible=!1,this.shieldTimer.visible=!1,this.shieldSeconds=this.shieldMaxTime):(this.shieldSeconds--,this.shieldTimer.setText(this.shieldSeconds.toString()))}playerDamage(e){this.soundManager.damage.play(),this.dead=!0,this.body.enable=!1,this.animations.play("damaged"),this.game.camera.fade(0,500),this.game.camera.onFadeComplete.add(this.fadeCompleted,this)}checkShield(){this.hasShield&&(this.shieldSeconds!==this.lastShieldSeconds?(this.lastShieldSeconds=this.shieldSeconds,this.game.world.bringToTop(this.shieldSprite),this.shieldSprite.visible=!0,this.shieldTimer.visible=!0,this.game.time.events.add(1e3,this.removeShield,this)):(this.shieldSprite.x=this.x-1*this.shieldSprite.scale.x,this.shieldSprite.y=this.y+10,this.shieldTimer.position.x=this.x+22,this.shieldTimer.position.y=this.y+2))}fadeCompleted(){this.fadeComplete=!0}playerDamageEffects(e){this.game.camera.resetFX(),this.body.enable=!0,this.lives--,this.position.x=this.spawnX,this.position.y=this.spawnY,this.dead=!1,this.lightRadius=this.defaultLightRadius,this.lives<0&&(this.soundManager.music.stop(),this.soundManager=null,this.game.state.start("MainMenu")),this.fadeComplete=!1}moveRight(){this.position.x4?(this.running?(this.animations.play("walk").speed=this.animSpeeds[1],this.body.velocity.x=-this.speed-this.speedBonus):(this.animations.play("walk").speed=this.animSpeeds[0],this.body.velocity.x=-this.speed),this.scale.x==this.size&&(this.scale.x=-this.size,this.shieldSprite.scale.x=2)):this.position.x=4.1}jump(){this.jumping||(this.running&&0!=this.body.velocity.x?this.body.velocity.y=-this.jumpStrength-this.jumpBonus:this.body.velocity.y=-this.jumpStrength,this.soundManager.jump.play(),this.jumping=!0,this.body.blocked.down=!1,this.movingRight?(this.scale.x=this.size,this.shieldSprite.scale.x=-2):this.movingLeft&&(this.scale.x=-this.size,this.shieldSprite.scale.x=2))}fall(){this.jumping&&this.body.velocity.y<0&&(this.body.velocity.y=-this.body.velocity.y/4)}}}.apply(t,i))||(e.exports=a)},function(e,t,s){var i;void 0===(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Hud=class extends Phaser.Sprite{constructor(e,t){super(e,0,0,"hud",0),this.hearts=[],this.gemsFontSize=16,this.redGemsFontSize=16,this.fixedToCamera=!0,this.player=t,this.lives=t.lives,this.adjustFontSize(),this.hudGemsText=e.add.bitmapText(672,29,"carrier_command",this.player.gems.toString(),this.gemsFontSize),this.hudRedGemsText=e.add.bitmapText(572,29,"carrier_command",this.player.redGems.toString(),this.redGemsFontSize),this.addChild(this.hudGemsText),this.addChild(this.hudRedGemsText),this.fillLives(),e.add.existing(this)}update(){this.hudGemsText.setText(this.player.gems.toString()),this.hudRedGemsText.setText(this.player.redGems.toString()),this.adjustFontSize(),this.lives!=this.player.lives&&(this.lives=this.player.lives,this.fillLives())}fillLives(){this.hearts.forEach(function(e){e.destroy()}),this.hearts=[];for(var e=0;e=100&&(this.gemsFontSize=12,this.hudGemsText.fontSize=12),this.player.redGems>=100&&(this.redGemsFontSize=12,this.hudRedGemsText.fontSize=12)}}}.apply(t,[s,t]))||(e.exports=i)},function(e,t,s){var i,a;i=[s,t,s(4),s(5),s(7),s(16),s(17),s(19),s(20),s(21)],void 0===(a=function(e,t,s,i,a,h,l,o,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class d{constructor(){this.game=new Phaser.Game(800,400,Phaser.CANVAS,"content",{preload:this.preload,create:this.create},!1,!1,Phaser.Physics.Arcade),this.game.state.add("Preloader",s.Preloader,!1),this.game.state.add("MainMenu",i.MainMenu,!1),this.game.state.add("Cutscene1",a.Cutscene1,!1),this.game.state.add("CutsceneDemoFinal",h.CutsceneDemoFinal,!1),this.game.state.add("Level1",l.Level1,!1),this.game.state.add("Level2",o.Level2,!1),this.game.state.add("Level3",n.Level3,!1),this.game.state.add("Level4",r.Level4,!1)}preload(){this.game.time.advancedTiming=!0}create(){this.game.time.desiredFps=60,this.game.renderer.renderSession.roundPixels=!0,this.game.device.desktop?this.game.scale.pageAlignHorizontally=!0:this.game.scale.scaleMode=Phaser.ScaleManager.SHOW_ALL,this.game.physics.startSystem(Phaser.Physics.ARCADE),this.game.physics.arcade.gravity.y=200,this.game.stage.backgroundColor="#aedecb",this.game.state.start("Preloader")}}t.Game=d,window.onload=(()=>{new d})}.apply(t,i))||(e.exports=a)},function(e,t,s){var i;void 0===(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Preloader=class extends Phaser.State{constructor(){super(...arguments),this.ready=!1}preload(){this.game.load.spritesheet("dude","assets/sprites/dude_spritesheet.png?v=1",16,25,8),this.game.load.spritesheet("enemy1","assets/sprites/enemy.png?v=1",21,22,5),this.game.load.spritesheet("bat","assets/sprites/bat_spritesheet.png?v=1",16,16,10),this.game.load.spritesheet("greygem","assets/sprites/itens/spr_coin_cin.png?v=1",16,16,4),this.game.load.spritesheet("redgem","assets/sprites/itens/spr_coin_ver.png?v=1",16,16,4),this.game.load.spritesheet("torch","assets/sprites/animated_torch.png?v=1",8,26,9),this.game.load.spritesheet("shield","assets/sprites/shield.png?v=1",16,17,6),this.game.load.spritesheet("light","assets/sprites/light.png?v=1",16,16,4),this.game.load.spritesheet("platform","assets/sprites/platform.png?v=1",32,8,2),this.game.load.spritesheet("lever","assets/sprites/lever.png",16,16,2),this.game.load.image("heart","assets/sprites/itens/heart.png"),this.game.load.image("gate","assets/sprites/gate.png"),this.game.load.image("lumpofgrass","assets/sprites/lumpofgrass.png"),this.game.load.image("logo","assets/images/logo.png?v=1"),this.game.load.image("hud","assets/images/hud.png"),this.game.load.image("heart2","assets/images/heart.png"),this.game.load.bitmapFont("carrier_command","assets/fonts/carrier_command.png","assets/fonts/carrier_command.xml"),this.game.load.image("jungle_paralax5","assets/levels/jungle/plx-5.png?v=1"),this.game.load.image("jungle_paralax4","assets/levels/jungle/plx-4.png?v=1"),this.game.load.image("jungle_paralax3","assets/levels/jungle/plx-3.png?v=1"),this.game.load.image("jungle_paralax2","assets/levels/jungle/plx-2.png?v=1"),this.game.load.spritesheet("jungle_tileset","assets/levels/jungle/jungle_tileset.png",16,16),this.game.load.tilemap("tileMap_level1","assets/levels/jungle1.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("tileMap_level2","assets/levels/jungle2.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("tileMap_level3","assets/levels/jungle3.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("tileMap_level4","assets/levels/jungle4.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("cutscene1_tilemap","assets/cutscenes/cutscene1.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.image("arrowkeys","assets/sprites/arrows.png"),this.game.load.image("shift","assets/sprites/shift.png"),this.game.load.spritesheet("buttonright","assets/buttons/btn_right.png",96,96),this.game.load.spritesheet("buttonleft","assets/buttons/btn_left.png",96,96),this.game.load.spritesheet("buttonfire","assets/buttons/btn_a.png",96,96),this.game.load.spritesheet("buttonjump","assets/buttons/btn_b.png",96,96),this.game.load.spritesheet("buttonglow","assets/buttons/btn_glow.png",144,144),this.game.load.spritesheet("buttonstart","assets/buttons/startbutton.png",48,16),this.game.load.spritesheet("buttonsound","assets/buttons/soundbutton.png",16,16),this.game.load.spritesheet("buttonstar","assets/buttons/starbutton.png",16,16),this.game.load.audio("coincatch","assets/sounds/sfx/coin-catch.mp3"),this.game.load.audio("damage","assets/sounds/sfx/damage.mp3"),this.game.load.audio("enemydamage","assets/sounds/sfx/enemy-damage.mp3"),this.game.load.audio("fall","assets/sounds/sfx/fall.mp3"),this.game.load.audio("jump","assets/sounds/sfx/jump.mp3"),this.game.load.audio("clickin","assets/sounds/sfx/click-in.mp3"),this.game.load.audio("clickout","assets/sounds/sfx/click-out.mp3"),this.game.load.audio("leverpull","assets/sounds/sfx/lever-pull.mp3"),this.game.load.audio("gateopen","assets/sounds/sfx/gate-open.mp3"),this.game.load.audio("gateclose","assets/sounds/sfx/gate-close.mp3"),this.game.load.audio("bgmusic","assets/sounds/music/bg.mp3"),this.game.load.audio("bgmusiclvl3","assets/sounds/music/bg-lvl3.mp3"),this.game.load.audio("bgdemofinal","assets/sounds/music/bg-demofinal.mp3")}create(){this.game.state.start("MainMenu")}}}.apply(t,[s,t]))||(e.exports=i)},function(e,t,s){var i,a;i=[s,t,s(6)],void 0===(a=function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.MainMenu=class extends Phaser.State{constructor(){super(...arguments),this.paralaxSpeed=450,this.mute=!1}create(){this.createParallax(450),this.logo=this.add.sprite(this.game.camera.width/2,-300,"logo"),this.logo.anchor.setTo(.5,.5),this.logo.tint=1415984,this.add.tween(this.logo).to({y:120},1e3,Phaser.Easing.Elastic.Out,!0,1e3),this.startButton=this.game.add.button(this.game.camera.width/2-72,275,"buttonstart",this.fadeOut,this,0,0,1,0),this.startButton.scale.setTo(3),this.startButton.alpha=0,this.add.tween(this.startButton).to({alpha:1},1e3,"Linear",!0),this.soundButton=this.game.add.button(this.game.camera.width/2-this.game.camera.width/2.5,350,"buttonsound",this.toggleMusic,this),this.soundButton.scale.setTo(2),this.soundButton.onInputUp.add(this.btnSoundUp,this),this.soundButton.onInputDown.add(this.btnSoundDown,this),this.soundButton.alpha=0,this.add.tween(this.soundButton).to({alpha:1},1e3,"Linear",!0),this.soundManager=new s.SoundManager(this.game)}update(){this.paralax5.tilePosition.x-=this.paralaxSpeed/1e3,this.paralax4.tilePosition.x-=this.paralaxSpeed/1875,this.paralax3.tilePosition.x-=this.paralaxSpeed/6e3,this.paralax2.tilePosition.x-=this.paralaxSpeed/1e4}fadeOut(){this.game.camera.fade(0,500),this.add.tween(this.logo).to({y:800},2e3,Phaser.Easing.Linear.None,!0),this.game.camera.onFadeComplete.add(this.startGame,this)}btnSoundDown(){this.soundManager.musicMuted?this.soundButton.frame=3:this.soundButton.frame=1}btnSoundUp(){this.soundManager.musicMuted?this.soundButton.frame=2:this.soundButton.frame=0}toggleMusic(){this.soundManager.musicMuted?(this.soundManager.music.play(),this.soundManager.musicMuted=!1):(this.soundManager.music.pause(),this.soundManager.musicMuted=!0)}createParallax(e){this.paralax2=this.game.add.tileSprite(0,this.game.world.height-e,this.game.world.width+50,this.game.world.height+100,"jungle_paralax2"),this.paralax2.tileScale.x=2,this.paralax2.tileScale.y=2,this.paralax3=this.game.add.tileSprite(0,this.game.world.height-e-5,this.game.world.width+50,this.game.world.height+100,"jungle_paralax3"),this.paralax3.tileScale.x=2,this.paralax3.tileScale.y=2,this.paralax4=this.game.add.tileSprite(0,this.game.world.height-e-20,this.game.world.width+50,this.game.world.height+100,"jungle_paralax4"),this.paralax4.tileScale.x=2,this.paralax4.tileScale.y=2,this.paralax5=this.game.add.tileSprite(0,this.game.world.height-e-30,this.game.world.width+50,this.game.world.height+100,"jungle_paralax5"),this.paralax5.tileScale.x=2,this.paralax5.tileScale.y=2,this.paralax5.checkWorldBounds=!0}startGame(){this.game.camera.onFadeComplete.removeAll(),this.game.state.start("Cutscene1",!0,!1,this.soundManager,this)}}}.apply(t,i))||(e.exports=a)},function(e,t,s){var i;void 0===(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.SoundManager=class{constructor(e){this.loaded=!1,this.musicMuted=!1,this.inGameVolume=.1,this.game=e,this.gemcatch=this.game.add.audio("coincatch"),this.damage=this.game.add.audio("damage"),this.enemydamage=this.game.add.audio("enemydamage"),this.fall=this.game.add.audio("fall"),this.jump=this.game.add.audio("jump"),this.clickin=this.game.add.audio("clickin"),this.clickout=this.game.add.audio("clickout"),this.leverpull=this.game.add.audio("leverpull"),this.gateopen=this.game.add.audio("gateopen"),this.gateclose=this.game.add.audio("gateclose"),this.music=this.game.add.audio("bgmusic"),this.musiclvl3=this.game.add.audio("bgmusiclvl3"),this.musicdemofinal=this.game.add.audio("bgdemofinal"),this.game.sound.setDecodedCallback([this.gemcatch,this.damage,this.enemydamage,this.fall,this.jump,this.music],this.loadComplete,this)}loadComplete(){this.music.loop=!0,this.music.play(),this.loaded=!0}}}.apply(t,[s,t]))||(e.exports=i)},function(e,t,s){var i,a;i=[s,t,s(0),s(15)],void 0===(a=function(e,t,s,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Cutscene1=class extends Phaser.State{constructor(){super(...arguments),this.skip=!1,this.index=0,this.narratorLines=[" ","This is Dude"," ","he has the most generic name ever"," ","yet he is a very happy dude","he lives in a land ruled by a king","and his daughter, the princess... Princess."," ","Yes, the name of the princess is 'Princess'"," ","One day..."," ","Yes she was kidnapped","By an evil goblin!","Immeditially, Dude presented himself to rescue her","and save the kingdom once and for all!"," "],this.dudeLines=[" "," ","sup"," ","Thanks"," "," "," ","wtf, her name is 'Princess'?!"," ","jesus, you suck at names"," ","Let me guess, she was kidnapped"," "," "," "," ","Let's do this!"]}init(e,t){this.soundManager=e}create(){this.levelBase=new i.LevelBase,this.levelManager=new s.LevelManager(this.game,this.levelBase,"Level1",this.soundManager),this.input.onDown.addOnce(this.fadeOut,this),this.levelManager.createMap("cutscene1_tilemap"),this.levelManager.createParallax(500),this.game.world.bringToTop(this.levelManager.level.back),this.game.world.bringToTop(this.levelManager.level.walls),this.dudeSprite=this.game.add.sprite(230,250,"dude"),this.dudeSprite.scale.setTo(2,2),this.dudeSprite.visible=!1,this.clickToSkip=this.game.add.bitmapText(400,15,"carrier_command","Click to skip",9),this.clickToSkip.anchor.x=.5,this.narratorPhrase=this.game.add.bitmapText(400,370,"carrier_command","",11),this.narratorPhrase.anchor.x=.5,this.dudePhrase=this.game.add.bitmapText(290,270,"carrier_command","",10),this.nextLine()}updateLine(){this.dudeSprite.frame=0,this.narratorPhrase.setText(this.narratorLines[this.index]),this.dudePhrase.setText(this.dudeLines[this.index]),2==this.index&&(this.soundManager.jump.play(),this.dudeSprite.visible=!0),4!=this.index&&8!=this.index&&9!=this.index||(this.dudeSprite.frame=4),10==this.index&&(this.soundManager.damage.play(),this.dudeSprite.frame=6),this.game.time.events.add(2.2*Phaser.Timer.SECOND,this.nextLine,this)}nextLine(){this.game.time.events.removeAll(),this.index++,this.indexthis.position.x-this.fieldOfView&&this.player.position.x{e.scale.setTo(2),e.onInputOver.add(this.hoverStar(t),this),e.onInputOut.add(this.notHoveringStars,this)}),this.game.time.events.add(5*Phaser.Timer.SECOND,this.showMisteriousMessage,this)}hoverStar(e){return function(){this.starButtons.forEach((t,s)=>{s<=e&&(t.frame=1)})}}notHoveringStars(){this.voted||this.starButtons.forEach((e,t)=>{e.frame=0})}actionOnClick(e){return function(){if(!this.voted){this.voted=!0,this.rateMessage.setText("Thank you for rating!"),this.starButtons.forEach(e=>{e.destroy()});let t=new XMLHttpRequest;t.onreadystatechange=function(){4==this.readyState&&200==this.status&&console.log("Success")};let s=new XMLHttpRequest;s.onreadystatechange=function(){if(4==this.readyState&&200==this.status){let s=JSON.parse(this.responseText).result.notas;s.push(e),t.open("PUT","https://www.jsonstore.io/16824c0f7a1696d7acfabe21392bd07d8afcc0ba76cb366ab189dfa94186dc08",!0),t.setRequestHeader("Content-Type","application/json;charset=UTF-8"),t.send(JSON.stringify({notas:s}))}},s.open("GET","https://www.jsonstore.io/16824c0f7a1696d7acfabe21392bd07d8afcc0ba76cb366ab189dfa94186dc08",!0),s.send()}}}showMisteriousMessage(){this.game.time.events.removeAll(),this.add.tween(this.redGemsHint).to({alpha:1},1e3,"Linear",!0)}fadeOut(){this.game.camera.fade(0,500),this.game.camera.onFadeComplete.add(this.startGame,this)}startGame(){this.soundManager.music.stop(),this.soundManager.musicdemofinal.stop(),this.soundManager=null,this.game.camera.onFadeComplete.removeAll(),this.game.state.start("MainMenu",!0,!1)}}}.apply(t,i))||(e.exports=a)},function(e,t,s){var i,a;i=[s,t,s(1),s(0),s(2)],void 0===(a=function(e,t,s,i,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Level1=class extends Phaser.State{init(e,t,s,i){this.soundManager=e,this.levelBase=t,t=null}create(){this.soundManager.music.volume=this.soundManager.inGameVolume,this.levelManager=new i.LevelManager(this.game,this.levelBase,"Level2",this.soundManager),this.levelManager.createBasicLevelStuff("tileMap_level1"),this.arrowKeysSprite=this.game.add.sprite(180,265,"arrowkeys"),this.arrowKeysSprite.scale.setTo(3),this.arrowKeysSprite.alpha=0,this.shiftSprite=this.game.add.sprite(1650,265,"shift"),this.shiftSprite.scale.setTo(2.5),this.shiftSprite.alpha=0,this.glowSpriteB=this.game.add.sprite(180,265,"buttonglow"),this.glowSpriteB.anchor.setTo(.5,.5),this.glowSpriteB.alpha=0,this.glowSpriteA=this.game.add.sprite(180,265,"buttonglow"),this.glowSpriteA.anchor.setTo(.5,.5),this.glowSpriteA.alpha=0,this.player=new s.Player(this.game,10,300,150,this.game.physics.arcade.gravity.y,0,0,3,this.soundManager),this.game.camera.follow(this.player),this.game.device.desktop||(this.glowSpriteB.position.set(this.player.controller.buttonjump.x,this.player.controller.buttonjump.y),this.glowSpriteA.position.set(this.player.controller.buttonfire.x,this.player.controller.buttonfire.y),this.glowSpriteB.fixedToCamera=!0,this.glowSpriteA.fixedToCamera=!0),this.hud=new a.Hud(this.game,this.player),this.game.world.bringToTop(this.hud)}update(){this.game.device.desktop?this.showDesktopButtons():this.showMobileButtons(),this.levelManager.updateBasicLevelStuff(this.player)}showDesktopButtons(){this.checkProximityFirstTutorial()?this.game.add.tween(this.arrowKeysSprite).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0):this.game.add.tween(this.arrowKeysSprite).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.checkProximitySecondTutorial()?this.game.add.tween(this.shiftSprite).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0):this.game.add.tween(this.shiftSprite).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0)}showMobileButtons(){this.checkProximityFirstTutorial()?(this.game.add.tween(this.player.controller.buttonjump.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0)):(this.game.add.tween(this.player.controller.buttonjump.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0)),this.checkProximitySecondTutorial()?(this.game.add.tween(this.player.controller.buttonfire.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0)):(this.game.add.tween(this.player.controller.buttonfire.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0))}checkProximityFirstTutorial(){return this.player.x>this.arrowKeysSprite.x-120&&this.player.xthis.shiftSprite.x-100&&this.player.x=this.game.world.bounds.bottomRight.x&&this.goNextLevel(e)}updateParallax(e){this.game.input.keyboard.isDown(Phaser.Keyboard.LEFT)&&this.game.camera.position.x!=this.level.lastCameraPositionX&&(this.level.paralax4.tilePosition.x+=e/1875,this.level.paralax3.tilePosition.x+=e/6e3,this.level.paralax2.tilePosition.x+=e/3e4),this.game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)&&this.game.camera.position.x!=this.level.lastCameraPositionX&&(this.level.paralax4.tilePosition.x-=e/1875,this.level.paralax3.tilePosition.x-=e/6e3,this.level.paralax2.tilePosition.x-=e/3e4),this.level.lastCameraPositionX=this.game.camera.position.x}updateEnemiesInteraction(e){this.game.physics.arcade.collide(this.level.enemies,this.level.walls),this.game.physics.arcade.overlap(e,this.level.enemies,this.enemyOverlap.bind(this))}updateItemsInteraction(e){this.game.physics.arcade.collide(this.level.items,this.level.walls),this.game.physics.arcade.overlap(e,this.level.items,this.getItem.bind(this))}updateGateInteraction(e){this.game.physics.arcade.collide(this.level.gate,this.level.walls),this.game.physics.arcade.collide(this.level.gate,this.level.enemies,this.enemyGateCollide.bind(this)),this.level.gate.visible&&this.game.physics.arcade.collide(e,this.level.gate);var t=0;this.level.platforms.forEach(e=>{e.active&&t++}),this.level.levers.forEach(e=>{e.active&&t++}),this.level.gate.activated=t}updateMiscInteraction(e){this.game.physics.arcade.collide(this.level.misc,this.level.walls),this.game.physics.arcade.collide(e,this.level.misc,this.miscOverlap.bind(this));var t=this.level.platforms.length>0||this.level.levers.length>0;this.level.platforms.length>0&&(this.game.physics.arcade.collide(this.level.platforms,this.level.walls),this.game.physics.arcade.overlap(e,this.level.platforms,this.platformOverlap.bind(this)),this.game.physics.arcade.overlap(this.level.platforms,this.level.misc,this.platformOverlap.bind(this))),this.level.levers.length>0&&(this.game.physics.arcade.collide(this.level.levers,this.level.walls),this.game.physics.arcade.overlap(e,this.level.levers,this.leverOverlap.bind(this))),t&&this.level.gate&&this.updateGateInteraction(e),this.level.misc.forEach(function(e){e.body.touching.none&&(e.inCamera||(e.x=e.spawnX,e.y=e.spawnY))}.bind(this))}updateBatsInteraction(e){this.game.physics.arcade.collide(this.level.bats,this.level.walls),this.game.physics.arcade.overlap(e,this.level.bats,this.enemyOverlap.bind(this))}updateGemsInteraction(e){this.game.physics.arcade.collide(this.level.gems,this.level.walls),this.game.physics.arcade.overlap(e,this.level.gems,this.gemsCollect.bind(this),null,this)}updateRedGemsInteraction(e){this.game.physics.arcade.collide(this.level.redGems,this.level.walls),this.game.physics.arcade.overlap(e,this.level.redGems,this.redGemsCollect.bind(this),null,this)}enemyOverlap(e,t){e.body.touching.down&&e.position.y0&&(this.body.gravity.y=-this.localGravity/this.hangGliderGravityFactor):this.body.velocity.y>0&&(this.body.gravity.y=this.localGravity),this.body.blocked.down&&(this.soundManager.fall.volume=.3,this.soundManager.fall.play(),this.jumping=!1,this.body.gravity.y=this.localGravity)),this.y>450&&this.playerDamage(this.soundManager),this.checkShield(),this.checkHangGlider(),this.applyHangGliderEffects())}updateLightRadius(){this.lightRadius>60&&(this.lightRadius-=.2)}applyHangGliderEffects(){this.jumping&&(this.hasHangGlider?(this.animations.frame=8,this.animations.stop(),this.body.velocity.y>0&&(this.body.gravity.y=-this.localGravity/this.hangGliderGravityFactor)):this.body.gravity.y=this.localGravity),this.hasHangGlider?this.body.velocity.y<0?this.body.gravity.y=this.localGravity:(this.animations.frame=8,this.body.gravity.y=-this.localGravity/this.hangGliderGravityFactor):this.body.gravity.y=this.localGravity}removeShield(){0===this.shieldSeconds?(this.hasShield=!1,this.shieldSprite.visible=!1,this.shieldTimer.visible=!1,this.shieldSeconds=this.shieldMaxTime):(this.shieldSeconds--,this.shieldTimer.setText(this.shieldSeconds.toString()))}removeHangGlider(){0===this.hangGliderSeconds?(this.hasHangGlider=!1,this.hangGliderSprite.visible=!1,this.hangGliderTimer.visible=!1,this.hangGliderSeconds=this.hangGliderMaxTime,this.hangGliderReference.caught=!1):(this.hangGliderSeconds--,this.hangGliderTimer.setText(this.hangGliderSeconds.toString()))}playerDamage(e){this.soundManager.damage.play(),this.dead=!0,this.body.enable=!1,this.animations.play("damaged"),this.game.camera.fade(0,500),this.game.camera.onFadeComplete.add(this.fadeCompleted,this)}checkShield(){this.hasShield&&(this.shieldSeconds!==this.lastShieldSeconds?(this.lastShieldSeconds=this.shieldSeconds,this.game.world.bringToTop(this.shieldSprite),this.shieldSprite.visible=!0,this.shieldTimer.visible=!0,this.game.time.events.add(1e3,this.removeShield,this)):(this.shieldSprite.x=this.x-1*this.shieldSprite.scale.x,this.shieldSprite.y=this.y+10,this.shieldTimer.position.x=this.x+22,this.shieldTimer.position.y=this.y+2))}checkHangGlider(){this.hasHangGlider&&(this.hangGliderSeconds!==this.lastHangGliderSeconds?(this.lastHangGliderSeconds=this.hangGliderSeconds,this.game.world.bringToTop(this.hangGliderSprite),this.hangGliderSprite.visible=!0,this.hangGliderTimer.visible=!0,this.hangGliderReference.caught=!0,this.game.time.events.add(1e3,this.removeHangGlider,this)):(this.hangGliderSprite.x=this.x+10*this.hangGliderSprite.scale.x,this.hangGliderSprite.y=this.y-42,this.hangGliderTimer.position.x=this.x+22,this.hangGliderTimer.position.y=this.y+10))}fadeCompleted(){this.fadeComplete=!0}playerDamageEffects(e){this.game.camera.resetFX(),this.body.enable=!0,this.lives--,this.position.x=this.spawnX,this.position.y=this.spawnY,this.dead=!1,this.lightRadius=this.defaultLightRadius,this.lives<0&&(this.soundManager.music.stop(),this.soundManager=null,this.game.state.start("MainMenu")),this.fadeComplete=!1}moveRight(){this.position.x4?(this.running?(this.hasHangGlider?this.body.blocked.down&&(this.animations.play("walk").speed=this.animSpeeds[1]):this.animations.play("walk").speed=this.animSpeeds[1],this.body.velocity.x=-this.speed-this.speedBonus):(this.hasHangGlider?this.body.blocked.down&&(this.animations.play("walk").speed=this.animSpeeds[0]):this.animations.play("walk").speed=this.animSpeeds[0],this.body.velocity.x=-this.speed),this.scale.x==this.size&&(this.scale.x=-this.size,this.shieldSprite.scale.x=2,this.hangGliderSprite.scale.x=-2)):this.position.x=4.1}jump(){this.jumping||(this.running&&0!=this.body.velocity.x?this.body.velocity.y=-this.jumpStrength-this.jumpBonus:this.body.velocity.y=-this.jumpStrength,this.soundManager.jump.play(),this.jumping=!0,this.body.blocked.down=!1,this.movingRight?(this.scale.x=this.size,this.shieldSprite.scale.x=-2,this.hangGliderSprite.scale.x=2):this.movingLeft&&(this.scale.x=-this.size,this.shieldSprite.scale.x=2,this.hangGliderSprite.scale.x=-2))}fall(){this.jumping&&this.body.velocity.y<0&&(this.hasHangGlider?this.body.velocity.y=-this.body.velocity.y/10:this.body.velocity.y=-this.body.velocity.y/4)}}}.apply(t,i))||(e.exports=a)},function(e,t,s){var i;void 0===(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Hud=class extends Phaser.Sprite{constructor(e,t){super(e,0,0,"hud",0),this.hearts=[],this.gemsFontSize=16,this.redGemsFontSize=16,this.fixedToCamera=!0,this.player=t,this.lives=t.lives,this.adjustFontSize(),this.hudGemsText=e.add.bitmapText(672,29,"carrier_command",this.player.gems.toString(),this.gemsFontSize),this.hudRedGemsText=e.add.bitmapText(572,29,"carrier_command",this.player.redGems.toString(),this.redGemsFontSize),this.addChild(this.hudGemsText),this.addChild(this.hudRedGemsText),this.fillLives(),e.add.existing(this)}update(){this.hudGemsText.setText(this.player.gems.toString()),this.hudRedGemsText.setText(this.player.redGems.toString()),this.adjustFontSize(),this.lives!=this.player.lives&&(this.lives=this.player.lives,this.fillLives())}fillLives(){this.hearts.forEach(function(e){e.destroy()}),this.hearts=[];for(var e=0;e=100&&(this.gemsFontSize=12,this.hudGemsText.fontSize=12),this.player.redGems>=100&&(this.redGemsFontSize=12,this.hudRedGemsText.fontSize=12)}}}.apply(t,[s,t]))||(e.exports=i)},function(e,t,s){var i,a;i=[s,t,s(4),s(5),s(7),s(17),s(18),s(20),s(21),s(22)],void 0===(a=function(e,t,s,i,a,h,l,n,o,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});class d{constructor(){this.game=new Phaser.Game(800,400,Phaser.CANVAS,"content",{preload:this.preload,create:this.create},!1,!1,Phaser.Physics.Arcade),this.game.state.add("Preloader",s.Preloader,!1),this.game.state.add("MainMenu",i.MainMenu,!1),this.game.state.add("Cutscene1",a.Cutscene1,!1),this.game.state.add("CutsceneDemoFinal",h.CutsceneDemoFinal,!1),this.game.state.add("Level1",l.Level1,!1),this.game.state.add("Level2",n.Level2,!1),this.game.state.add("Level3",o.Level3,!1),this.game.state.add("Level4",r.Level4,!1)}preload(){this.game.time.advancedTiming=!0}create(){this.game.time.desiredFps=60,this.game.renderer.renderSession.roundPixels=!0,this.game.device.desktop?this.game.scale.pageAlignHorizontally=!0:this.game.scale.scaleMode=Phaser.ScaleManager.SHOW_ALL,this.game.physics.startSystem(Phaser.Physics.ARCADE),this.game.physics.arcade.gravity.y=200,this.game.stage.backgroundColor="#aedecb",this.game.state.start("Preloader")}}t.Game=d,window.onload=(()=>{new d})}.apply(t,i))||(e.exports=a)},function(e,t,s){var i;void 0===(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Preloader=class extends Phaser.State{constructor(){super(...arguments),this.ready=!1}preload(){this.game.load.spritesheet("dude","assets/sprites/dude_spritesheet.png?v=1",16,25,9),this.game.load.spritesheet("enemy1","assets/sprites/enemy.png?v=1",21,22,5),this.game.load.spritesheet("bat","assets/sprites/bat_spritesheet.png?v=1",16,16,10),this.game.load.spritesheet("greygem","assets/sprites/itens/spr_coin_cin.png?v=1",16,16,4),this.game.load.spritesheet("redgem","assets/sprites/itens/spr_coin_ver.png?v=1",16,16,4),this.game.load.spritesheet("torch","assets/sprites/animated_torch.png?v=1",8,26,9),this.game.load.spritesheet("shield","assets/sprites/shield.png?v=1",16,17,6),this.game.load.spritesheet("light","assets/sprites/light.png?v=1",16,16,4),this.game.load.spritesheet("platform","assets/sprites/platform.png?v=1",32,8,2),this.game.load.spritesheet("lever","assets/sprites/lever.png",16,16,2),this.game.load.image("heart","assets/sprites/itens/heart.png"),this.game.load.image("hangglider","assets/sprites/hangglider.png"),this.game.load.image("gate","assets/sprites/gate.png"),this.game.load.image("lumpofgrass","assets/sprites/lumpofgrass.png"),this.game.load.image("logo","assets/images/logo.png?v=1"),this.game.load.image("hud","assets/images/hud.png"),this.game.load.image("heart2","assets/images/heart.png"),this.game.load.bitmapFont("carrier_command","assets/fonts/carrier_command.png","assets/fonts/carrier_command.xml"),this.game.load.image("jungle_paralax5","assets/levels/jungle/plx-5.png?v=1"),this.game.load.image("jungle_paralax4","assets/levels/jungle/plx-4.png?v=1"),this.game.load.image("jungle_paralax3","assets/levels/jungle/plx-3.png?v=1"),this.game.load.image("jungle_paralax2","assets/levels/jungle/plx-2.png?v=1"),this.game.load.spritesheet("jungle_tileset","assets/levels/jungle/jungle_tileset.png",16,16),this.game.load.tilemap("tileMap_level1","assets/levels/jungle1.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("tileMap_level2","assets/levels/jungle2.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("tileMap_level3","assets/levels/jungle3.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("tileMap_level4","assets/levels/jungle4.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.tilemap("cutscene1_tilemap","assets/cutscenes/cutscene1.json?v=1",null,Phaser.Tilemap.TILED_JSON),this.game.load.image("arrowkeys","assets/sprites/arrows.png"),this.game.load.image("shift","assets/sprites/shift.png"),this.game.load.spritesheet("buttonright","assets/buttons/btn_right.png",96,96),this.game.load.spritesheet("buttonleft","assets/buttons/btn_left.png",96,96),this.game.load.spritesheet("buttonfire","assets/buttons/btn_a.png",96,96),this.game.load.spritesheet("buttonjump","assets/buttons/btn_b.png",96,96),this.game.load.spritesheet("buttonglow","assets/buttons/btn_glow.png",144,144),this.game.load.spritesheet("buttonstart","assets/buttons/startbutton.png",48,16),this.game.load.spritesheet("buttonsound","assets/buttons/soundbutton.png",16,16),this.game.load.spritesheet("buttonstar","assets/buttons/starbutton.png",16,16),this.game.load.audio("coincatch","assets/sounds/sfx/coin-catch.mp3"),this.game.load.audio("damage","assets/sounds/sfx/damage.mp3"),this.game.load.audio("enemydamage","assets/sounds/sfx/enemy-damage.mp3"),this.game.load.audio("fall","assets/sounds/sfx/fall.mp3"),this.game.load.audio("jump","assets/sounds/sfx/jump.mp3"),this.game.load.audio("clickin","assets/sounds/sfx/click-in.mp3"),this.game.load.audio("clickout","assets/sounds/sfx/click-out.mp3"),this.game.load.audio("leverpull","assets/sounds/sfx/lever-pull.mp3"),this.game.load.audio("gateopen","assets/sounds/sfx/gate-open.mp3"),this.game.load.audio("gateclose","assets/sounds/sfx/gate-close.mp3"),this.game.load.audio("bgmusic","assets/sounds/music/bg.mp3"),this.game.load.audio("bgmusiclvl3","assets/sounds/music/bg-lvl3.mp3"),this.game.load.audio("bgdemofinal","assets/sounds/music/bg-demofinal.mp3")}create(){this.game.state.start("MainMenu")}}}.apply(t,[s,t]))||(e.exports=i)},function(e,t,s){var i,a;i=[s,t,s(6)],void 0===(a=function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.MainMenu=class extends Phaser.State{constructor(){super(...arguments),this.paralaxSpeed=450,this.mute=!1}create(){this.createParallax(450),this.logo=this.add.sprite(this.game.camera.width/2,-300,"logo"),this.logo.anchor.setTo(.5,.5),this.logo.tint=1415984,this.add.tween(this.logo).to({y:120},1e3,Phaser.Easing.Elastic.Out,!0,1e3),this.startButton=this.game.add.button(this.game.camera.width/2-72,275,"buttonstart",this.fadeOut,this,0,0,1,0),this.startButton.scale.setTo(3),this.startButton.alpha=0,this.add.tween(this.startButton).to({alpha:1},1e3,"Linear",!0),this.soundButton=this.game.add.button(this.game.camera.width/2-this.game.camera.width/2.5,350,"buttonsound",this.toggleMusic,this),this.soundButton.scale.setTo(2),this.soundButton.onInputUp.add(this.btnSoundUp,this),this.soundButton.onInputDown.add(this.btnSoundDown,this),this.soundButton.alpha=0,this.add.tween(this.soundButton).to({alpha:1},1e3,"Linear",!0),this.soundManager=new s.SoundManager(this.game)}update(){this.paralax5.tilePosition.x-=this.paralaxSpeed/1e3,this.paralax4.tilePosition.x-=this.paralaxSpeed/1875,this.paralax3.tilePosition.x-=this.paralaxSpeed/6e3,this.paralax2.tilePosition.x-=this.paralaxSpeed/1e4}fadeOut(){this.game.camera.fade(0,500),this.add.tween(this.logo).to({y:800},2e3,Phaser.Easing.Linear.None,!0),this.game.camera.onFadeComplete.add(this.startGame,this)}btnSoundDown(){this.soundManager.musicMuted?this.soundButton.frame=3:this.soundButton.frame=1}btnSoundUp(){this.soundManager.musicMuted?this.soundButton.frame=2:this.soundButton.frame=0}toggleMusic(){this.soundManager.musicMuted?(this.soundManager.music.play(),this.soundManager.musicMuted=!1):(this.soundManager.music.pause(),this.soundManager.musicMuted=!0)}createParallax(e){this.paralax2=this.game.add.tileSprite(0,this.game.world.height-e,this.game.world.width+50,this.game.world.height+100,"jungle_paralax2"),this.paralax2.tileScale.x=2,this.paralax2.tileScale.y=2,this.paralax3=this.game.add.tileSprite(0,this.game.world.height-e-5,this.game.world.width+50,this.game.world.height+100,"jungle_paralax3"),this.paralax3.tileScale.x=2,this.paralax3.tileScale.y=2,this.paralax4=this.game.add.tileSprite(0,this.game.world.height-e-20,this.game.world.width+50,this.game.world.height+100,"jungle_paralax4"),this.paralax4.tileScale.x=2,this.paralax4.tileScale.y=2,this.paralax5=this.game.add.tileSprite(0,this.game.world.height-e-30,this.game.world.width+50,this.game.world.height+100,"jungle_paralax5"),this.paralax5.tileScale.x=2,this.paralax5.tileScale.y=2,this.paralax5.checkWorldBounds=!0}startGame(){this.game.camera.onFadeComplete.removeAll(),this.game.state.start("Cutscene1",!0,!1,this.soundManager,this)}}}.apply(t,i))||(e.exports=a)},function(e,t,s){var i;void 0===(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.SoundManager=class{constructor(e){this.loaded=!1,this.musicMuted=!1,this.inGameVolume=.1,this.game=e,this.gemcatch=this.game.add.audio("coincatch"),this.damage=this.game.add.audio("damage"),this.enemydamage=this.game.add.audio("enemydamage"),this.fall=this.game.add.audio("fall"),this.jump=this.game.add.audio("jump"),this.clickin=this.game.add.audio("clickin"),this.clickout=this.game.add.audio("clickout"),this.leverpull=this.game.add.audio("leverpull"),this.gateopen=this.game.add.audio("gateopen"),this.gateclose=this.game.add.audio("gateclose"),this.music=this.game.add.audio("bgmusic"),this.musiclvl3=this.game.add.audio("bgmusiclvl3"),this.musicdemofinal=this.game.add.audio("bgdemofinal"),this.game.sound.setDecodedCallback([this.gemcatch,this.damage,this.enemydamage,this.fall,this.jump,this.music],this.loadComplete,this)}loadComplete(){this.music.loop=!0,this.music.play(),this.loaded=!0}}}.apply(t,[s,t]))||(e.exports=i)},function(e,t,s){var i,a;i=[s,t,s(0),s(16)],void 0===(a=function(e,t,s,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Cutscene1=class extends Phaser.State{constructor(){super(...arguments),this.skip=!1,this.index=0,this.narratorLines=[" ","This is Dude"," ","he has the most generic name ever"," ","yet he is a very happy dude","he lives in a land ruled by a king","and his daughter, the princess... Princess."," ","Yes, the name of the princess is 'Princess'"," ","One day..."," ","Yes she was kidnapped","By an evil goblin!","Immeditially, Dude presented himself to rescue her","and save the kingdom once and for all!"," "],this.dudeLines=[" "," ","sup"," ","Thanks"," "," "," ","wtf, her name is 'Princess'?!"," ","jesus, you suck at names"," ","Let me guess, she was kidnapped"," "," "," "," ","Let's do this!"]}init(e,t){this.soundManager=e}create(){this.levelBase=new i.LevelBase,this.levelManager=new s.LevelManager(this.game,this.levelBase,"Level1",this.soundManager),this.input.onDown.addOnce(this.fadeOut,this),this.levelManager.createMap("cutscene1_tilemap"),this.levelManager.createParallax(500),this.game.world.bringToTop(this.levelManager.level.back),this.game.world.bringToTop(this.levelManager.level.walls),this.dudeSprite=this.game.add.sprite(230,250,"dude"),this.dudeSprite.scale.setTo(2,2),this.dudeSprite.visible=!1,this.clickToSkip=this.game.add.bitmapText(400,15,"carrier_command","Click to skip",9),this.clickToSkip.anchor.x=.5,this.narratorPhrase=this.game.add.bitmapText(400,370,"carrier_command","",11),this.narratorPhrase.anchor.x=.5,this.dudePhrase=this.game.add.bitmapText(290,270,"carrier_command","",10),this.nextLine()}updateLine(){this.dudeSprite.frame=0,this.narratorPhrase.setText(this.narratorLines[this.index]),this.dudePhrase.setText(this.dudeLines[this.index]),2==this.index&&(this.soundManager.jump.play(),this.dudeSprite.visible=!0),4!=this.index&&8!=this.index&&9!=this.index||(this.dudeSprite.frame=4),10==this.index&&(this.soundManager.damage.play(),this.dudeSprite.frame=6),this.game.time.events.add(2.2*Phaser.Timer.SECOND,this.nextLine,this)}nextLine(){this.game.time.events.removeAll(),this.index++,this.indexthis.position.x-this.fieldOfView&&this.player.position.x{e.scale.setTo(2),e.onInputOver.add(this.hoverStar(t),this),e.onInputOut.add(this.notHoveringStars,this)}),this.game.time.events.add(5*Phaser.Timer.SECOND,this.showMisteriousMessage,this)}hoverStar(e){return function(){this.starButtons.forEach((t,s)=>{s<=e&&(t.frame=1)})}}notHoveringStars(){this.voted||this.starButtons.forEach((e,t)=>{e.frame=0})}actionOnClick(e){return function(){if(!this.voted){this.voted=!0,this.rateMessage.setText("Thank you for rating!"),this.starButtons.forEach(e=>{e.destroy()});let t=new XMLHttpRequest;t.onreadystatechange=function(){4==this.readyState&&200==this.status&&console.log("Success")};let s=new XMLHttpRequest;s.onreadystatechange=function(){if(4==this.readyState&&200==this.status){let s=JSON.parse(this.responseText).result.notas;s.push(e),t.open("PUT","https://www.jsonstore.io/16824c0f7a1696d7acfabe21392bd07d8afcc0ba76cb366ab189dfa94186dc08",!0),t.setRequestHeader("Content-Type","application/json;charset=UTF-8"),t.send(JSON.stringify({notas:s}))}},s.open("GET","https://www.jsonstore.io/16824c0f7a1696d7acfabe21392bd07d8afcc0ba76cb366ab189dfa94186dc08",!0),s.send()}}}showMisteriousMessage(){this.game.time.events.removeAll(),this.add.tween(this.redGemsHint).to({alpha:1},1e3,"Linear",!0)}fadeOut(){this.game.camera.fade(0,500),this.game.camera.onFadeComplete.add(this.startGame,this)}startGame(){this.soundManager.music.stop(),this.soundManager.musicdemofinal.stop(),this.soundManager=null,this.game.camera.onFadeComplete.removeAll(),this.game.state.start("MainMenu",!0,!1)}}}.apply(t,i))||(e.exports=a)},function(e,t,s){var i,a;i=[s,t,s(1),s(0),s(2)],void 0===(a=function(e,t,s,i,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Level1=class extends Phaser.State{init(e,t,s,i){this.soundManager=e,this.levelBase=t,t=null}create(){this.soundManager.music.volume=this.soundManager.inGameVolume,this.levelManager=new i.LevelManager(this.game,this.levelBase,"Level2",this.soundManager),this.levelManager.createBasicLevelStuff("tileMap_level1"),this.arrowKeysSprite=this.game.add.sprite(180,265,"arrowkeys"),this.arrowKeysSprite.scale.setTo(3),this.arrowKeysSprite.alpha=0,this.shiftSprite=this.game.add.sprite(1650,265,"shift"),this.shiftSprite.scale.setTo(2.5),this.shiftSprite.alpha=0,this.glowSpriteB=this.game.add.sprite(180,265,"buttonglow"),this.glowSpriteB.anchor.setTo(.5,.5),this.glowSpriteB.alpha=0,this.glowSpriteA=this.game.add.sprite(180,265,"buttonglow"),this.glowSpriteA.anchor.setTo(.5,.5),this.glowSpriteA.alpha=0,this.player=new s.Player(this.game,10,300,150,this.game.physics.arcade.gravity.y,0,0,3,this.soundManager),this.game.camera.follow(this.player),this.game.device.desktop||(this.glowSpriteB.position.set(this.player.controller.buttonjump.x,this.player.controller.buttonjump.y),this.glowSpriteA.position.set(this.player.controller.buttonfire.x,this.player.controller.buttonfire.y),this.glowSpriteB.fixedToCamera=!0,this.glowSpriteA.fixedToCamera=!0),this.hud=new a.Hud(this.game,this.player),this.game.world.bringToTop(this.hud)}update(){this.game.device.desktop?this.showDesktopButtons():this.showMobileButtons(),this.levelManager.updateBasicLevelStuff(this.player)}showDesktopButtons(){this.checkProximityFirstTutorial()?this.game.add.tween(this.arrowKeysSprite).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0):this.game.add.tween(this.arrowKeysSprite).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.checkProximitySecondTutorial()?this.game.add.tween(this.shiftSprite).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0):this.game.add.tween(this.shiftSprite).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0)}showMobileButtons(){this.checkProximityFirstTutorial()?(this.game.add.tween(this.player.controller.buttonjump.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0)):(this.game.add.tween(this.player.controller.buttonjump.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteB.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0)),this.checkProximitySecondTutorial()?(this.game.add.tween(this.player.controller.buttonfire.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA).to({alpha:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA.scale).to({x:1.2,y:1.2},300,Phaser.Easing.Linear.None,!0,0,0,!0)):(this.game.add.tween(this.player.controller.buttonfire.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA).to({alpha:0},300,Phaser.Easing.Linear.None,!0,0,0,!0),this.game.add.tween(this.glowSpriteA.scale).to({x:1,y:1},300,Phaser.Easing.Linear.None,!0,0,0,!0))}checkProximityFirstTutorial(){return this.player.x>this.arrowKeysSprite.x-120&&this.player.xthis.shiftSprite.x-100&&this.player.x 0) { + this.body.gravity.y = -this.localGravity/this.hangGliderGravityFactor; + } + } + else { + if (this.body.velocity.y > 0) { + this.body.gravity.y = this.localGravity; + } + } + if (this.body.blocked.down) { this.soundManager.fall.volume = 0.3; this.soundManager.fall.play(); this.jumping = false; + this.body.gravity.y = this.localGravity; } } if (this.y > 450) this.playerDamage(this.soundManager); - + this.checkShield(); + this.checkHangGlider(); + this.applyHangGliderEffects(); } else { if (this.fadeComplete) @@ -134,6 +171,33 @@ export class Player extends Phaser.Sprite { this.lightRadius -= 0.2; } + private applyHangGliderEffects() { + if (this.jumping) { + if (this.hasHangGlider) { + this.animations.frame = 8; + this.animations.stop(); + if (this.body.velocity.y > 0) { + this.body.gravity.y = -this.localGravity/this.hangGliderGravityFactor; + } + } + else { + this.body.gravity.y = this.localGravity; + } + } + if (this.hasHangGlider) { + if (this.body.velocity.y < 0) { + this.body.gravity.y = this.localGravity; + } + else { + this.animations.frame = 8; + this.body.gravity.y = -this.localGravity/this.hangGliderGravityFactor; + } + } + else { + this.body.gravity.y = this.localGravity; + } + } + public removeShield() { if (this.shieldSeconds === 0) { this.hasShield = false; @@ -147,6 +211,21 @@ export class Player extends Phaser.Sprite { } } + public removeHangGlider() { + if (this.hangGliderSeconds === 0) { + this.hasHangGlider = false; + this.hangGliderSprite.visible = false; + this.hangGliderTimer.visible = false; + this.hangGliderSeconds = this.hangGliderMaxTime; + + this.hangGliderReference.caught = false; + } + else { + this.hangGliderSeconds--; + this.hangGliderTimer.setText(this.hangGliderSeconds.toString()); + } + } + public playerDamage(soundManager: SoundManager) { this.soundManager.damage.play(); this.dead = true; @@ -174,6 +253,25 @@ export class Player extends Phaser.Sprite { } } + private checkHangGlider() { + if (this.hasHangGlider) { + if (this.hangGliderSeconds !== this.lastHangGliderSeconds) { + this.lastHangGliderSeconds = this.hangGliderSeconds; + this.game.world.bringToTop(this.hangGliderSprite); + this.hangGliderSprite.visible = true; + this.hangGliderTimer.visible = true; + this.hangGliderReference.caught = true; + this.game.time.events.add(1000, this.removeHangGlider, this); + } + else { + this.hangGliderSprite.x = this.x + 10 * this.hangGliderSprite.scale.x; + this.hangGliderSprite.y = this.y - 42; + this.hangGliderTimer.position.x = this.x + 22; + this.hangGliderTimer.position.y = this.y + 10; + } + } + } + private fadeCompleted(){ this.fadeComplete = true; } @@ -198,11 +296,25 @@ export class Player extends Phaser.Sprite { moveRight() { if (this.position.x < this.game.world.bounds.bottomRight.x) { if (this.running) { - this.animations.play('walk').speed = this.animSpeeds[1]; + if (!this.hasHangGlider) { + this.animations.play('walk').speed = this.animSpeeds[1]; + } + else { + if (this.body.blocked.down) { + this.animations.play('walk').speed = this.animSpeeds[1]; + } + } this.body.velocity.x = this.speed + this.speedBonus; } else { - this.animations.play('walk').speed = this.animSpeeds[0]; + if (!this.hasHangGlider) { + this.animations.play('walk').speed = this.animSpeeds[0]; + } + else { + if (this.body.blocked.down) { + this.animations.play('walk').speed = this.animSpeeds[0]; + } + } this.body.velocity.x = this.speed; } @@ -210,6 +322,7 @@ export class Player extends Phaser.Sprite { if (this.scale.x == -this.size) { this.scale.x = this.size; this.shieldSprite.scale.x = -2; + this.hangGliderSprite.scale.x = 2; } } else { @@ -221,11 +334,25 @@ export class Player extends Phaser.Sprite { moveLeft() { if (this.position.x > 4) { if (this.running) { - this.animations.play('walk').speed = this.animSpeeds[1]; + if (!this.hasHangGlider) { + this.animations.play('walk').speed = this.animSpeeds[1]; + } + else { + if (this.body.blocked.down) { + this.animations.play('walk').speed = this.animSpeeds[1]; + } + } this.body.velocity.x = -this.speed - this.speedBonus; } else { - this.animations.play('walk').speed = this.animSpeeds[0]; + if (!this.hasHangGlider) { + this.animations.play('walk').speed = this.animSpeeds[0]; + } + else { + if (this.body.blocked.down) { + this.animations.play('walk').speed = this.animSpeeds[0]; + } + } this.body.velocity.x = -this.speed; } @@ -233,6 +360,7 @@ export class Player extends Phaser.Sprite { if (this.scale.x == this.size) { this.scale.x = -this.size; this.shieldSprite.scale.x = 2; + this.hangGliderSprite.scale.x = -2; } } else { @@ -257,18 +385,26 @@ export class Player extends Phaser.Sprite { if (this.movingRight) { this.scale.x = this.size; this.shieldSprite.scale.x = -2; + this.hangGliderSprite.scale.x = 2; } else if (this.movingLeft) { this.scale.x = -this.size; this.shieldSprite.scale.x = 2; + this.hangGliderSprite.scale.x = -2; } } } fall() { if (this.jumping) { - if (this.body.velocity.y < 0) - this.body.velocity.y = -this.body.velocity.y/4; + if (this.body.velocity.y < 0) { + if (this.hasHangGlider) { + this.body.velocity.y = -this.body.velocity.y/10; + } + else { + this.body.velocity.y = -this.body.velocity.y/4; + } + } } } } \ No newline at end of file diff --git a/scripts/levels/LevelManager.ts b/scripts/levels/LevelManager.ts index a7abaf9..ea94153 100644 --- a/scripts/levels/LevelManager.ts +++ b/scripts/levels/LevelManager.ts @@ -8,6 +8,7 @@ import { Platform } from "../elements/objects/Platform"; import { Lever } from "../elements/objects/Lever"; import { Gate } from "../elements/objects/Gate"; import { Light } from "../elements/items/Light"; +import { HangGlider } from "../elements/items/HangGlider"; export class LevelManager { public level: LevelBase; @@ -106,6 +107,9 @@ export class LevelManager { if(data.name == 'shield') { this.level.items.push(new Shield(this.game, data.x * 2, data.y * 1.7, this.game.physics.arcade.gravity.y)); } + if(data.name == 'hangglider') { + this.level.items.push(new HangGlider(this.game, data.x * 2, data.y * 1.5, this.game.physics.arcade.gravity.y)); + } }.bind(this)); } @@ -276,10 +280,12 @@ export class LevelManager { this.soundManager.enemydamage.play(); enemy.body.enable = false; player.jumping = false; - if (player.pressingUp) + if (player.pressingUp) { player.body.velocity.y = -player.jumpStrength - player.jumpBonus - 2; - else + } + else { player.body.velocity.y = -player.jumpStrength/2; + } enemy.destroy(); } else { @@ -326,7 +332,14 @@ export class LevelManager { if(item.name == 'light') { player.lightRadius = player.defaultLightRadius; } - item.destroy(); + if(item.name == 'hangglider') { + player.hangGliderReference = item; + player.hasHangGlider = true; + } + + if (item.name != 'hangglider') { + item.destroy(); + } } private gemSetup(gem) {