diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..64402dc --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Cidoku + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/art/background/bgBlue.png b/assets/art/background/bgBlue.png new file mode 100644 index 0000000..989c868 Binary files /dev/null and b/assets/art/background/bgBlue.png differ diff --git a/assets/art/background/bgBlue.png.import b/assets/art/background/bgBlue.png.import new file mode 100644 index 0000000..a4801dd --- /dev/null +++ b/assets/art/background/bgBlue.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bgBlue.png-e1d230ab3d1611fb86a3fbf65fd2ede5.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/background/bgBlue.png" +dest_files=[ "res://.import/bgBlue.png-e1d230ab3d1611fb86a3fbf65fd2ede5.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/background/bgPaper.png b/assets/art/background/bgPaper.png new file mode 100644 index 0000000..00c8b48 Binary files /dev/null and b/assets/art/background/bgPaper.png differ diff --git a/assets/art/background/bgPaper.png.import b/assets/art/background/bgPaper.png.import new file mode 100644 index 0000000..3a23675 --- /dev/null +++ b/assets/art/background/bgPaper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bgPaper.png-77ae5556fc7b8feab3a602e1f6637571.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/background/bgPaper.png" +dest_files=[ "res://.import/bgPaper.png-77ae5556fc7b8feab3a602e1f6637571.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/background/bgPurpleMountains.png b/assets/art/background/bgPurpleMountains.png new file mode 100644 index 0000000..7339402 Binary files /dev/null and b/assets/art/background/bgPurpleMountains.png differ diff --git a/assets/art/background/bgPurpleMountains.png.import b/assets/art/background/bgPurpleMountains.png.import new file mode 100644 index 0000000..b505f78 --- /dev/null +++ b/assets/art/background/bgPurpleMountains.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bgPurpleMountains.png-1c1f7be17a010adac722b3c8a7b3bcd6.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/background/bgPurpleMountains.png" +dest_files=[ "res://.import/bgPurpleMountains.png-1c1f7be17a010adac722b3c8a7b3bcd6.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/background/bgTrash.png b/assets/art/background/bgTrash.png new file mode 100644 index 0000000..d37ee7d Binary files /dev/null and b/assets/art/background/bgTrash.png differ diff --git a/assets/art/background/bgTrash.png.import b/assets/art/background/bgTrash.png.import new file mode 100644 index 0000000..3fb041c --- /dev/null +++ b/assets/art/background/bgTrash.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bgTrash.png-2034718f46c861b565400315ab38cf47.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/background/bgTrash.png" +dest_files=[ "res://.import/bgTrash.png-2034718f46c861b565400315ab38cf47.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/background/number.png b/assets/art/background/number.png new file mode 100644 index 0000000..d849f56 Binary files /dev/null and b/assets/art/background/number.png differ diff --git a/assets/art/background/number.png.import b/assets/art/background/number.png.import new file mode 100644 index 0000000..25896ef --- /dev/null +++ b/assets/art/background/number.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/number.png-8186643b189d712cdefe49a5cdc1cf1a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/background/number.png" +dest_files=[ "res://.import/number.png-8186643b189d712cdefe49a5cdc1cf1a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=1 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/background/title.png b/assets/art/background/title.png new file mode 100644 index 0000000..aa7f73a Binary files /dev/null and b/assets/art/background/title.png differ diff --git a/assets/art/background/title.png.import b/assets/art/background/title.png.import new file mode 100644 index 0000000..d20ce9b --- /dev/null +++ b/assets/art/background/title.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/title.png-270181e9eeeb805687c116ec0378697b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/background/title.png" +dest_files=[ "res://.import/title.png-270181e9eeeb805687c116ec0378697b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/key_yellow.png b/assets/art/key_yellow.png new file mode 100644 index 0000000..7c5d60b Binary files /dev/null and b/assets/art/key_yellow.png differ diff --git a/assets/art/key_yellow.png.import b/assets/art/key_yellow.png.import new file mode 100644 index 0000000..0672729 --- /dev/null +++ b/assets/art/key_yellow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/key_yellow.png-81f21a00e9d5898bd2cb155b9a39ecee.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/key_yellow.png" +dest_files=[ "res://.import/key_yellow.png-81f21a00e9d5898bd2cb155b9a39ecee.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/lockeddoor.png b/assets/art/lockeddoor.png new file mode 100644 index 0000000..16640f1 Binary files /dev/null and b/assets/art/lockeddoor.png differ diff --git a/assets/art/lockeddoor.png.import b/assets/art/lockeddoor.png.import new file mode 100644 index 0000000..2617482 --- /dev/null +++ b/assets/art/lockeddoor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/lockeddoor.png-68e13279ac5204e54073b525654ccfa3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/lockeddoor.png" +dest_files=[ "res://.import/lockeddoor.png-68e13279ac5204e54073b525654ccfa3.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/platforms/moving_platform.png b/assets/art/platforms/moving_platform.png new file mode 100644 index 0000000..6409b6a Binary files /dev/null and b/assets/art/platforms/moving_platform.png differ diff --git a/assets/art/platforms/moving_platform.png.import b/assets/art/platforms/moving_platform.png.import new file mode 100644 index 0000000..950a735 --- /dev/null +++ b/assets/art/platforms/moving_platform.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/platforms/moving_platform.png" +dest_files=[ "res://.import/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/platforms/one_way_platform.png b/assets/art/platforms/one_way_platform.png new file mode 100644 index 0000000..b9c4b80 Binary files /dev/null and b/assets/art/platforms/one_way_platform.png differ diff --git a/assets/art/platforms/one_way_platform.png.import b/assets/art/platforms/one_way_platform.png.import new file mode 100644 index 0000000..a9cc95b --- /dev/null +++ b/assets/art/platforms/one_way_platform.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/platforms/one_way_platform.png" +dest_files=[ "res://.import/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/player/shiro.png b/assets/art/player/shiro.png new file mode 100644 index 0000000..3604c1d Binary files /dev/null and b/assets/art/player/shiro.png differ diff --git a/assets/art/player/shiro.png.import b/assets/art/player/shiro.png.import new file mode 100644 index 0000000..407f756 --- /dev/null +++ b/assets/art/player/shiro.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/shiro.png-7107237621451b25b91db750ff79e425.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/player/shiro.png" +dest_files=[ "res://.import/shiro.png-7107237621451b25b91db750ff79e425.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/spring/spring.png b/assets/art/spring/spring.png new file mode 100644 index 0000000..9e65bd5 Binary files /dev/null and b/assets/art/spring/spring.png differ diff --git a/assets/art/spring/spring.png.import b/assets/art/spring/spring.png.import new file mode 100644 index 0000000..1d8a232 --- /dev/null +++ b/assets/art/spring/spring.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spring.png-7c1e294f5dc06a9611494f2760bd6687.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/spring/spring.png" +dest_files=[ "res://.import/spring.png-7c1e294f5dc06a9611494f2760bd6687.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/spring/spring2.png b/assets/art/spring/spring2.png new file mode 100644 index 0000000..79e3e39 Binary files /dev/null and b/assets/art/spring/spring2.png differ diff --git a/assets/art/spring/spring2.png.import b/assets/art/spring/spring2.png.import new file mode 100644 index 0000000..b48bfc6 --- /dev/null +++ b/assets/art/spring/spring2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spring2.png-fc76700a279788238e022cf64d6de7d2.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/spring/spring2.png" +dest_files=[ "res://.import/spring2.png-fc76700a279788238e022cf64d6de7d2.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/tileset/tiles_gplexian.png b/assets/art/tileset/tiles_gplexian.png new file mode 100644 index 0000000..d73d096 Binary files /dev/null and b/assets/art/tileset/tiles_gplexian.png differ diff --git a/assets/art/tileset/tiles_gplexian.png.import b/assets/art/tileset/tiles_gplexian.png.import new file mode 100644 index 0000000..4371adb --- /dev/null +++ b/assets/art/tileset/tiles_gplexian.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/tiles_gplexian.png-41e2a7736a2cf4ebc274467fa8ab77fb.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/tileset/tiles_gplexian.png" +dest_files=[ "res://.import/tiles_gplexian.png-41e2a7736a2cf4ebc274467fa8ab77fb.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/tileset/tiles_gplexian.tres b/assets/art/tileset/tiles_gplexian.tres new file mode 100644 index 0000000..a0d44ab --- /dev/null +++ b/assets/art/tileset/tiles_gplexian.tres @@ -0,0 +1,149 @@ +[gd_resource type="TileSet" load_steps=8 format=2] + +[ext_resource path="res://assets/art/tileset/tiles_gplexian.png" type="Texture" id=1] + +[sub_resource type="ConvexPolygonShape2D" id=1] +points = PoolVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=2] +points = PoolVector2Array( 0, 0, 32, 0, 32, 32, 0, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=3] +points = PoolVector2Array( 0, 32, 32, 0, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=4] +points = PoolVector2Array( 0, 32, 0, 0, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=5] +points = PoolVector2Array( 0, 0, 32, 0, 32, 32 ) + +[sub_resource type="ConvexPolygonShape2D" id=6] +points = PoolVector2Array( 0, 32, 0, 0, 32, 0 ) + +[resource] +0/name = "Solid" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 32, 32 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape = SubResource( 1 ) +0/shape_one_way = false +0/shape_one_way_margin = 1.0 +0/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 1 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +0/z_index = 0 +1/name = "Oneway" +1/texture = ExtResource( 1 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 32, 0, 32, 32 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape = SubResource( 2 ) +1/shape_one_way = true +1/shape_one_way_margin = 1.0 +1/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": true, +"one_way_margin": 1.0, +"shape": SubResource( 2 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +1/z_index = 0 +2/name = "Slope1" +2/texture = ExtResource( 1 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 64, 0, 32, 32 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shape_offset = Vector2( 0, 0 ) +2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +2/shape = SubResource( 3 ) +2/shape_one_way = false +2/shape_one_way_margin = 1.0 +2/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 3 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +2/z_index = 0 +3/name = "Slope2" +3/texture = ExtResource( 1 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 96, 0, 32, 32 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shape_offset = Vector2( 0, 0 ) +3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +3/shape = SubResource( 4 ) +3/shape_one_way = false +3/shape_one_way_margin = 1.0 +3/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 4 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +3/z_index = 0 +4/name = "Slope3" +4/texture = ExtResource( 1 ) +4/tex_offset = Vector2( 0, 0 ) +4/modulate = Color( 1, 1, 1, 1 ) +4/region = Rect2( 64, 32, 32, 32 ) +4/tile_mode = 0 +4/occluder_offset = Vector2( 0, 0 ) +4/navigation_offset = Vector2( 0, 0 ) +4/shape_offset = Vector2( 0, 0 ) +4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +4/shape = SubResource( 5 ) +4/shape_one_way = false +4/shape_one_way_margin = 1.0 +4/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 5 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +4/z_index = 0 +5/name = "Slope4" +5/texture = ExtResource( 1 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 96, 32, 32, 32 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shape_offset = Vector2( 0, 0 ) +5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +5/shape = SubResource( 6 ) +5/shape_one_way = false +5/shape_one_way_margin = 1.0 +5/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 6 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +5/z_index = 0 diff --git a/assets/art/ui/touch_button_fire.png b/assets/art/ui/touch_button_fire.png new file mode 100644 index 0000000..2675174 Binary files /dev/null and b/assets/art/ui/touch_button_fire.png differ diff --git a/assets/art/ui/touch_button_fire.png.import b/assets/art/ui/touch_button_fire.png.import new file mode 100644 index 0000000..b1faa25 --- /dev/null +++ b/assets/art/ui/touch_button_fire.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/ui/touch_button_fire.png" +dest_files=[ "res://.import/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/ui/touch_button_jump.png b/assets/art/ui/touch_button_jump.png new file mode 100644 index 0000000..495339b Binary files /dev/null and b/assets/art/ui/touch_button_jump.png differ diff --git a/assets/art/ui/touch_button_jump.png.import b/assets/art/ui/touch_button_jump.png.import new file mode 100644 index 0000000..cd9d665 --- /dev/null +++ b/assets/art/ui/touch_button_jump.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/ui/touch_button_jump.png" +dest_files=[ "res://.import/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/ui/touch_button_left.png b/assets/art/ui/touch_button_left.png new file mode 100644 index 0000000..aaadb14 Binary files /dev/null and b/assets/art/ui/touch_button_left.png differ diff --git a/assets/art/ui/touch_button_left.png.import b/assets/art/ui/touch_button_left.png.import new file mode 100644 index 0000000..720a79d --- /dev/null +++ b/assets/art/ui/touch_button_left.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/ui/touch_button_left.png" +dest_files=[ "res://.import/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/art/ui/touch_button_right.png b/assets/art/ui/touch_button_right.png new file mode 100644 index 0000000..f69d933 Binary files /dev/null and b/assets/art/ui/touch_button_right.png differ diff --git a/assets/art/ui/touch_button_right.png.import b/assets/art/ui/touch_button_right.png.import new file mode 100644 index 0000000..157b300 --- /dev/null +++ b/assets/art/ui/touch_button_right.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/art/ui/touch_button_right.png" +dest_files=[ "res://.import/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/assets/audio/music/44 - Holiday.ogg b/assets/audio/music/44 - Holiday.ogg new file mode 100644 index 0000000..cf04370 Binary files /dev/null and b/assets/audio/music/44 - Holiday.ogg differ diff --git a/assets/audio/music/44 - Holiday.ogg.import b/assets/audio/music/44 - Holiday.ogg.import new file mode 100644 index 0000000..bd0f7d6 --- /dev/null +++ b/assets/audio/music/44 - Holiday.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/44 - Holiday.ogg-1c4418d27badd2dc7a3746daa95591d8.oggstr" + +[deps] + +source_file="res://assets/audio/music/44 - Holiday.ogg" +dest_files=[ "res://.import/44 - Holiday.ogg-1c4418d27badd2dc7a3746daa95591d8.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/assets/audio/sfx/bounce.wav b/assets/audio/sfx/bounce.wav new file mode 100644 index 0000000..1fca435 Binary files /dev/null and b/assets/audio/sfx/bounce.wav differ diff --git a/assets/audio/sfx/bounce.wav.import b/assets/audio/sfx/bounce.wav.import new file mode 100644 index 0000000..8c9baa6 --- /dev/null +++ b/assets/audio/sfx/bounce.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/bounce.wav-116ec0c186efc1d94999a60e89d9455b.sample" + +[deps] + +source_file="res://assets/audio/sfx/bounce.wav" +dest_files=[ "res://.import/bounce.wav-116ec0c186efc1d94999a60e89d9455b.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/assets/audio/sfx/get.wav b/assets/audio/sfx/get.wav new file mode 100644 index 0000000..63f6a4a Binary files /dev/null and b/assets/audio/sfx/get.wav differ diff --git a/assets/audio/sfx/get.wav.import b/assets/audio/sfx/get.wav.import new file mode 100644 index 0000000..78d26ac --- /dev/null +++ b/assets/audio/sfx/get.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/get.wav-0599a7bea953cbbb113965d577ade8c6.sample" + +[deps] + +source_file="res://assets/audio/sfx/get.wav" +dest_files=[ "res://.import/get.wav-0599a7bea953cbbb113965d577ade8c6.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/assets/audio/sfx/select.wav b/assets/audio/sfx/select.wav new file mode 100644 index 0000000..f320408 Binary files /dev/null and b/assets/audio/sfx/select.wav differ diff --git a/assets/audio/sfx/select.wav.import b/assets/audio/sfx/select.wav.import new file mode 100644 index 0000000..6f7be85 --- /dev/null +++ b/assets/audio/sfx/select.wav.import @@ -0,0 +1,21 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/select.wav-af2903b06cf15cf6ef52b2f849759cb4.sample" + +[deps] + +source_file="res://assets/audio/sfx/select.wav" +dest_files=[ "res://.import/select.wav-af2903b06cf15cf6ef52b2f849759cb4.sample" ] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop=false +compress/mode=0 diff --git a/assets/theme/fonts/NormalFont.tres b/assets/theme/fonts/NormalFont.tres new file mode 100644 index 0000000..280a328 --- /dev/null +++ b/assets/theme/fonts/NormalFont.tres @@ -0,0 +1,9 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://assets/theme/fonts/PressStart2P-Regular.ttf" type="DynamicFontData" id=1] + +[resource] +size = 8 +outline_size = 1 +outline_color = Color( 0, 0, 0, 1 ) +font_data = ExtResource( 1 ) diff --git a/assets/theme/fonts/PressStart2P-Regular.ttf b/assets/theme/fonts/PressStart2P-Regular.ttf new file mode 100644 index 0000000..1098ed2 Binary files /dev/null and b/assets/theme/fonts/PressStart2P-Regular.ttf differ diff --git a/assets/theme/fonts/TitleCardFont.tres b/assets/theme/fonts/TitleCardFont.tres new file mode 100644 index 0000000..83e352c --- /dev/null +++ b/assets/theme/fonts/TitleCardFont.tres @@ -0,0 +1,9 @@ +[gd_resource type="DynamicFont" load_steps=2 format=2] + +[ext_resource path="res://assets/theme/fonts/binary.x-chr-brk.ttf" type="DynamicFontData" id=1] + +[resource] +size = 20 +outline_size = 1 +outline_color = Color( 0, 0, 0, 1 ) +font_data = ExtResource( 1 ) diff --git a/assets/theme/fonts/binary.x-chr-brk.ttf b/assets/theme/fonts/binary.x-chr-brk.ttf new file mode 100644 index 0000000..b193556 Binary files /dev/null and b/assets/theme/fonts/binary.x-chr-brk.ttf differ diff --git a/assets/theme/user_interface.tres b/assets/theme/user_interface.tres new file mode 100644 index 0000000..dc5f468 --- /dev/null +++ b/assets/theme/user_interface.tres @@ -0,0 +1,83 @@ +[gd_resource type="Theme" load_steps=8 format=2] + +[ext_resource path="res://assets/theme/fonts/PressStart2P-Regular.ttf" type="DynamicFontData" id=1] + +[sub_resource type="StyleBoxFlat" id=1] +content_margin_left = 6.0 +content_margin_right = 6.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.18, 0.207, 0.279, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.14, 0.161, 0.217, 1 ) + +[sub_resource type="StyleBoxFlat" id=2] +content_margin_left = 6.0 +content_margin_right = 6.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.41, 0.61, 0.91, 1 ) + +[sub_resource type="StyleBoxFlat" id=3] +content_margin_left = 6.0 +content_margin_right = 6.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.4, 0.4225, 0.4825, 1 ) + +[sub_resource type="StyleBoxFlat" id=4] +content_margin_left = 6.0 +content_margin_right = 6.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.125, 0.14375, 0.19375, 1 ) + +[sub_resource type="StyleBoxFlat" id=5] +content_margin_left = 6.0 +content_margin_right = 6.0 +content_margin_top = 4.0 +content_margin_bottom = 4.0 +bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color( 0.41, 0.61, 0.91, 1 ) + +[sub_resource type="DynamicFont" id=6] +size = 8 +font_data = ExtResource( 1 ) + +[resource] +default_font = SubResource( 6 ) +Button/colors/font_color = Color( 0.8, 0.8075, 0.8275, 1 ) +Button/colors/font_color_disabled = Color( 1, 1, 1, 0.3 ) +Button/colors/font_color_hover = Color( 0.88, 0.8845, 0.8965, 1 ) +Button/colors/font_color_pressed = Color( 0.41, 0.61, 0.91, 1 ) +Button/colors/icon_color_hover = Color( 1.15, 1.15, 1.15, 1 ) +Button/colors/icon_color_pressed = Color( 0.4715, 0.7015, 1.0465, 1 ) +Button/constants/hseparation = 2 +Button/fonts/font = null +Button/styles/disabled = SubResource( 1 ) +Button/styles/focus = SubResource( 2 ) +Button/styles/hover = SubResource( 3 ) +Button/styles/normal = SubResource( 4 ) +Button/styles/pressed = SubResource( 5 ) diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c21c6d4 Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..c16cdba --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=false +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..7a2a0f8 --- /dev/null +++ b/project.godot @@ -0,0 +1,184 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "KinematicBody2D", +"class": "Actor", +"language": "GDScript", +"path": "res://src/Actors/Actor.gd" +}, { +"base": "Area2D", +"class": "Coin", +"language": "GDScript", +"path": "res://src/Objects/Coin.gd" +}, { +"base": "Actor", +"class": "Enemy", +"language": "GDScript", +"path": "res://src/Actors/Enemy.gd" +}, { +"base": "Actor", +"class": "Player", +"language": "GDScript", +"path": "res://src/Actors/Player.gd" +} ] +_global_script_class_icons={ +"Actor": "", +"Coin": "", +"Enemy": "", +"Player": "" +} + +[application] + +config/name="Shirogami's Maze" +run/main_scene="res://src/Main/Game.tscn" +config/icon="res://icon.png" +target_fps="60" + +[autoload] + +global="*res://src/globals.gd" + +[debug] + +gdscript/warnings/enable=false +gdscript/completion/autocomplete_setters_and_getters=true +gdscript/warnings/return_value_discarded=false + +[display] + +window/size/width=320 +window/size/height=240 +window/size/test_width=640 +window/size/test_height=480 +window/dpi/allow_hidpi=true +window/vsync/vsync_via_compositor=true +window/stretch/mode="2d" +window/stretch/aspect="keep" +stretch/aspect="keep_height" +stretch/mode="2d" + +[gdnative] + +singletons=[ ] + +[image_loader] + +repeat=false + +[importer_defaults] + +texture={ +"compress/bptc_ldr": 0, +"compress/hdr_mode": 0, +"compress/lossy_quality": 0.7, +"compress/mode": 0, +"compress/normal_map": 0, +"detect_3d": false, +"flags/anisotropic": false, +"flags/filter": false, +"flags/mipmaps": false, +"flags/repeat": 0, +"flags/srgb": 2, +"process/HDR_as_SRGB": false, +"process/fix_alpha_border": true, +"process/invert_color": false, +"process/premult_alpha": false, +"size_limit": 0, +"stream": false, +"svg/scale": 1.0 +} + +[input] + +ui_cancel={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":88,"unicode":0,"echo":false,"script":null) + ] +} +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null) + ] +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) + ] +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) + ] +} +shoot={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null) + ] +} +toggle_fullscreen={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777254,"unicode":0,"echo":false,"script":null) + ] +} +toggle_pause={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"unicode":0,"echo":false,"script":null) + ] +} + +[layer_names] + +2d_physics/layer_1="player" +2d_physics/layer_2="enemies" +2d_physics/layer_3="coins" +2d_physics/layer_4="platforms" +2d_physics/layer_5="ground" + +[physics] + +2d/default_gravity=900 + +[rasterizer] + +use_pixel_snap=true + +[render] + +mipmap_policy=1 + +[rendering] + +quality/intended_usage/framebuffer_allocation=0 +quality/intended_usage/framebuffer_allocation.mobile=1 +quality/2d/use_pixel_snap=true +quality/filters/anisotropic_filter_level=2 +quality/filters/use_nearest_mipmap_filter=true +quality/depth/hdr=false + +[texture_import] + +filter=false diff --git a/src/Actors/Actor.gd b/src/Actors/Actor.gd new file mode 100644 index 0000000..8fe4f8c --- /dev/null +++ b/src/Actors/Actor.gd @@ -0,0 +1,18 @@ +class_name Actor +extends KinematicBody2D + +# Both the Player and Enemy inherit this scene as they have shared behaviours +# such as speed and are affected by gravity. + + +export var speed = Vector2(150.0, 350.0) +onready var gravity = ProjectSettings.get("physics/2d/default_gravity") + +const FLOOR_NORMAL = Vector2.UP + +var _velocity = Vector2.ZERO + +# _physics_process is called after the inherited _physics_process function. +# This allows the Player and Enemy scenes to be affected by gravity. +func _physics_process(delta): + _velocity.y += gravity * delta diff --git a/src/Actors/Enemy.gd b/src/Actors/Enemy.gd new file mode 100644 index 0000000..0ed30b5 --- /dev/null +++ b/src/Actors/Enemy.gd @@ -0,0 +1,79 @@ +class_name Enemy +extends Actor + + +enum State { + WALKING, + DEAD +} + +var _state = State.WALKING + +onready var platform_detector = $PlatformDetector +onready var floor_detector_left = $FloorDetectorLeft +onready var floor_detector_right = $FloorDetectorRight +onready var sprite = $Sprite +onready var animation_player = $AnimationPlayer + +# This function is called when the scene enters the scene tree. +# We can initialize variables here. +func _ready(): + _velocity.x = speed.x + +# Physics process is a built-in loop in Godot. +# If you define _physics_process on a node, Godot will call it every frame. + +# At a glance, you can see that the physics process loop: +# 1. Calculates the move velocity. +# 2. Moves the character. +# 3. Updates the sprite direction. +# 4. Updates the animation. + +# Splitting the physics process logic into functions not only makes it +# easier to read, it help to change or improve the code later on: +# - If you need to change a calculation, you can use Go To -> Function +# (Ctrl Alt F) to quickly jump to the corresponding function. +# - If you split the character into a state machine or more advanced pattern, +# you can easily move individual functions. +func _physics_process(_delta): + _velocity = calculate_move_velocity(_velocity) + + # We only update the y value of _velocity as we want to handle the horizontal movement ourselves. + _velocity.y = move_and_slide(_velocity, FLOOR_NORMAL).y + + # We flip the Sprite depending on which way the enemy is moving. + sprite.scale.x = 1 if _velocity.x > 0 else -1 + + var animation = get_new_animation() + if animation != animation_player.current_animation: + animation_player.play(animation) + + +# This function calculates a new velocity whenever you need it. +# If the enemy encounters a wall or an edge, the horizontal velocity is flipped. +func calculate_move_velocity(linear_velocity): + var velocity = linear_velocity + + if not floor_detector_left.is_colliding(): + velocity.x = speed.x + elif not floor_detector_right.is_colliding(): + velocity.x = -speed.x + + if is_on_wall(): + velocity.x *= -1 + + return velocity + + +func destroy(): + _state = State.DEAD + _velocity = Vector2.ZERO + + +func get_new_animation(): + var animation_new = "" + if _state == State.WALKING: + animation_new = "walk" if abs(_velocity.x) > 0 else "idle" + else: + animation_new = "destroy" + return animation_new diff --git a/src/Actors/Enemy.tscn b/src/Actors/Enemy.tscn new file mode 100644 index 0000000..c060793 --- /dev/null +++ b/src/Actors/Enemy.tscn @@ -0,0 +1,259 @@ +[gd_scene load_steps=15 format=2] + +[ext_resource path="res://assets/art/player/bullet/bullet.png" type="Texture" id=1] +[ext_resource path="res://assets/audio/sfx/explode.wav" type="AudioStream" id=2] +[ext_resource path="res://assets/audio/sfx/hit.wav" type="AudioStream" id=3] +[ext_resource path="res://assets/art/enemy/enemy.png" type="Texture" id=4] +[ext_resource path="res://src/Actors/Enemy.gd" type="Script" id=5] + +[sub_resource type="CanvasItemMaterial" id=1] + +[sub_resource type="Animation" id=2] +resource_name = "destroy" +length = 1.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 7 ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite:rotation_degrees") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.8 ), +"transitions": PoolRealArray( 0.0796601, 1 ), +"update": 0, +"values": [ 0.0, 180.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Sprite:self_modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.5, 1.1 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Explosion:emitting") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 1, +"values": [ false, true ] +} +tracks/4/type = "value" +tracks/4/path = NodePath("Explosion:process_material:scale") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/keys = { +"times": PoolRealArray( 0.6, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 1.0, 4.0 ] +} +tracks/5/type = "value" +tracks/5/path = NodePath("Hit:playing") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/keys = { +"times": PoolRealArray( 0.00999999 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/6/type = "value" +tracks/6/path = NodePath("Explode:playing") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/keys = { +"times": PoolRealArray( 0.8 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/7/type = "method" +tracks/7/path = NodePath(".") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/keys = { +"times": PoolRealArray( 1.5 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} +tracks/8/type = "value" +tracks/8/path = NodePath(".:collision_layer") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ 0 ] +} +tracks/9/type = "value" +tracks/9/path = NodePath("Sprite:position") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/keys = { +"times": PoolRealArray( 0, 0.2, 0.4 ), +"transitions": PoolRealArray( 2.2974, 0.183011, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, -32 ), Vector2( 0, 0 ) ] +} + +[sub_resource type="Animation" id=3] +length = 6.75 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.75, 1.5, 2.25, 3, 3.75, 4.5, 5.25, 6, 6.75 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 5, 6, 5, 6, 5, 6, 7, 6, 7, 5 ] +} + +[sub_resource type="Animation" id=4] +length = 1.25 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.25, 0.5, 0.75, 1, 1.25 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 3, 4, 0 ] +} + +[sub_resource type="CapsuleShape2D" id=5] +radius = 11.0 +height = 7.0 + +[sub_resource type="CanvasItemMaterial" id=6] +blend_mode = 1 + +[sub_resource type="Gradient" id=7] +offsets = PoolRealArray( 0.5, 1 ) +colors = PoolColorArray( 1, 1, 1, 1, 0, 0, 0, 1 ) + +[sub_resource type="GradientTexture" id=8] +gradient = SubResource( 7 ) +width = 256 + +[sub_resource type="ParticlesMaterial" id=9] +emission_shape = 1 +emission_sphere_radius = 8.0 +flag_disable_z = true +spread = 180.0 +gravity = Vector3( 0, 250, 0 ) +initial_velocity = 120.0 +initial_velocity_random = 0.5 +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +angle_random = 1.0 +scale_random = 1.0 +color_ramp = SubResource( 8 ) +hue_variation = 0.05 +hue_variation_random = 0.46 + +[node name="Enemy" type="KinematicBody2D"] +collision_layer = 2 +collision_mask = 24 +script = ExtResource( 5 ) +speed = Vector2( 75, 250 ) + +[node name="PlatformDetector" type="RayCast2D" parent="."] +position = Vector2( 0, 6 ) +enabled = true +cast_to = Vector2( 0, 8 ) +collision_mask = 8 + +[node name="FloorDetectorLeft" type="RayCast2D" parent="."] +position = Vector2( -15, -4 ) +enabled = true +cast_to = Vector2( 0, 35 ) +collision_mask = 24 + +[node name="FloorDetectorRight" type="RayCast2D" parent="."] +position = Vector2( 15.5, -3 ) +enabled = true +cast_to = Vector2( 0, 35 ) +collision_mask = 24 + +[node name="Sprite" type="Sprite" parent="."] +material = SubResource( 1 ) +texture = ExtResource( 4 ) +flip_h = true +hframes = 8 +frame = 7 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/destroy = SubResource( 2 ) +anims/idle = SubResource( 3 ) +anims/walk = SubResource( 4 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +rotation = -1.5708 +shape = SubResource( 5 ) + +[node name="Explosion" type="Particles2D" parent="."] +self_modulate = Color( 1, 1, 1, 0.12 ) +material = SubResource( 6 ) +emitting = false +amount = 32 +lifetime = 0.5 +one_shot = true +speed_scale = 1.2 +explosiveness = 0.76 +draw_order = 215832976 +process_material = SubResource( 9 ) +texture = ExtResource( 1 ) + +[node name="Hit" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource( 3 ) + +[node name="Explode" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource( 2 ) diff --git a/src/Actors/Player.gd b/src/Actors/Player.gd new file mode 100644 index 0000000..000e237 --- /dev/null +++ b/src/Actors/Player.gd @@ -0,0 +1,93 @@ +class_name Player +extends Actor + +const FLOOR_DETECT_DISTANCE = 20.0 + +export(String) var action_suffix = "" +var bounce = false +var bounce_vec = Vector2(0,0) +onready var platform_detector = $PlatformDetector +onready var sprite = $Sprite +onready var animation_player = $AnimationPlayer + +func _physics_process(_delta): + var direction = get_direction() + var is_jump_interrupted = (Input.is_action_just_released("jump" + action_suffix) and _velocity.y < 0.0) if !bounce else false + _velocity = calculate_move_velocity(_velocity, direction, speed, is_jump_interrupted,_delta) + + if _velocity.y > 0.0: + bounce = false + + if is_on_floor(): + if bounce_vec != Vector2(0,0) and !bounce: + #print("OK") + bounce_vec = Vector2(0,0) + if Input.is_action_just_pressed("jump"): + $jump.play() + if is_on_ceiling(): + if bounce_vec != Vector2(0,0): + bounce_vec = Vector2(bounce_vec.x,0) + + var snap_vector = Vector2.DOWN * FLOOR_DETECT_DISTANCE if direction.y == 0.0 and !bounce else Vector2.ZERO + var is_on_platform = platform_detector.is_colliding() + _velocity = move_and_slide_with_snap( + _velocity, snap_vector, FLOOR_NORMAL, not is_on_platform, 4, 0.9, false + ) + + if direction.x != 0: + sprite.scale.x = 1 if direction.x > 0 else -1 +# + var animation = get_new_animation() + if animation != animation_player.current_animation: + animation_player.play(animation) + + +func get_direction(): + return Vector2( + Input.get_action_strength("move_right" + action_suffix) - Input.get_action_strength("move_left" + action_suffix), + -1 if is_on_floor() and Input.is_action_just_pressed("jump" + action_suffix) else 0 + ) + + +# This function calculates a new velocity whenever you need it. +# It allows you to interrupt jumps. +func calculate_move_velocity( + linear_velocity, + direction, + speed, + is_jump_interrupted, + delta + ): + var velocity + if bounce_vec.x != 0: + velocity = bounce_vec + bounce_vec.y += gravity * delta + else: + velocity = linear_velocity + velocity.x = speed.x * direction.x + if direction.y != 0.0: + velocity.y = speed.y * direction.y + if is_jump_interrupted: + velocity.y = 0.0 + return velocity + +func get_new_animation(): + var animation_new = "" + if is_on_floor(): + animation_new = "run" if abs(_velocity.x) > 0.1 else "idle" + else: + animation_new = "falling" if _velocity.y > 0 else "jumping" + return animation_new + +func bounce_off_glove(strength,angle): + bounce = true + var rangle = round(angle) + bounce_vec = Vector2(0,0) + if rangle == 90: + _velocity = Vector2(0,-strength) + elif rangle == 270: + _velocity = Vector2(0,strength) + else: + sprite.scale.x = -1 if (angle >= 0 and angle <= 90) or angle > 270 else 1 + var ang_rad = deg2rad(angle) + bounce_vec = Vector2(-cos(ang_rad),-sin(ang_rad))*strength diff --git a/src/Actors/Player.tscn b/src/Actors/Player.tscn new file mode 100644 index 0000000..beddd8d --- /dev/null +++ b/src/Actors/Player.tscn @@ -0,0 +1,153 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://src/Actors/Player.gd" type="Script" id=1] +[ext_resource path="res://assets/art/player/shiro.png" type="Texture" id=2] +[ext_resource path="res://assets/audio/sfx/select.wav" type="AudioStream" id=3] +[ext_resource path="res://assets/art/ui/touch_button_left.png" type="Texture" id=5] +[ext_resource path="res://assets/art/ui/touch_button_right.png" type="Texture" id=6] +[ext_resource path="res://assets/art/ui/touch_button_jump.png" type="Texture" id=7] +[ext_resource path="res://assets/art/ui/touch_button_fire.png" type="Texture" id=8] + +[sub_resource type="Animation" id=1] +resource_name = "falling" +length = 0.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 1, +"values": [ 3, 4, 3 ] +} + +[sub_resource type="Animation" id=2] +length = 0.001 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 4.5, 4.75, 5, 5.25 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 1, 19, 20, 19, 16 ] +} + +[sub_resource type="Animation" id=3] +length = 0.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.25, 0.5 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 1, +"values": [ 5, 6, 5 ] +} + +[sub_resource type="Animation" id=4] +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.25, 0.5, 0.75 ), +"transitions": PoolRealArray( 1, 1, 1, 1 ), +"update": 1, +"values": [ 0, 1, 2, 1 ] +} + +[sub_resource type="RectangleShape2D" id=5] +extents = Vector2( 6, 7 ) + +[node name="Player" type="KinematicBody2D"] +collision_mask = 30 +script = ExtResource( 1 ) + +[node name="PlatformDetector" type="RayCast2D" parent="."] +enabled = true +cast_to = Vector2( 0, 6 ) +collision_mask = 8 + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -15 ) +texture = ExtResource( 2 ) +hframes = 7 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +playback_speed = 2.6 +anims/falling = SubResource( 1 ) +anims/idle = SubResource( 2 ) +anims/jumping = SubResource( 3 ) +anims/run = SubResource( 4 ) + +[node name="Camera" type="Camera2D" parent="."] +position = Vector2( 0, -28 ) +rotating = true +current = true +process_mode = 0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, -7 ) +shape = SubResource( 5 ) + +[node name="UI" type="CanvasLayer" parent="."] +layer = 0 + +[node name="Left" type="TouchScreenButton" parent="UI"] +visible = false +position = Vector2( 27.7593, 360.87 ) +scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 5 ) +passby_press = true +action = "move_left" +visibility_mode = 1 + +[node name="Right" type="TouchScreenButton" parent="UI"] +visible = false +position = Vector2( 121.542, 361.415 ) +scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 6 ) +passby_press = true +action = "move_right" +visibility_mode = 1 + +[node name="Jump" type="TouchScreenButton" parent="UI"] +visible = false +position = Vector2( 666.224, 359.02 ) +scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 7 ) +action = "jump" +visibility_mode = 1 + +[node name="Fire" type="TouchScreenButton" parent="UI"] +visible = false +position = Vector2( 668.073, 262.788 ) +scale = Vector2( 1.49157, 1.46265 ) +normal = ExtResource( 8 ) +action = "shoot" +visibility_mode = 1 + +[node name="jump" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) +volume_db = -3.714 +pitch_scale = 1.48 diff --git a/src/Level/Googolplexian.gd b/src/Level/Googolplexian.gd new file mode 100644 index 0000000..11d7d93 --- /dev/null +++ b/src/Level/Googolplexian.gd @@ -0,0 +1,17 @@ +extends Node2D + +const LIMIT_LEFT = 0 +const LIMIT_TOP = -96 +const LIMIT_RIGHT = 3328 +const LIMIT_BOTTOM = 1984 + +func _ready(): + global.hud.run_clock() + $Music.play() + for child in get_children(): + if child is Player: + var camera = child.get_node("Camera") + camera.limit_left = LIMIT_LEFT + camera.limit_top = LIMIT_TOP + camera.limit_right = LIMIT_RIGHT + camera.limit_bottom = LIMIT_BOTTOM diff --git a/src/Level/Googolplexian.tscn b/src/Level/Googolplexian.tscn new file mode 100644 index 0000000..f4fa5a8 --- /dev/null +++ b/src/Level/Googolplexian.tscn @@ -0,0 +1,438 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://assets/art/tileset/tiles_gplexian.tres" type="TileSet" id=1] +[ext_resource path="res://src/Objects/SpringWeak.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/art/background/number.png" type="Texture" id=3] +[ext_resource path="res://src/Objects/Spring.tscn" type="PackedScene" id=4] +[ext_resource path="res://src/Level/Googolplexian.gd" type="Script" id=5] +[ext_resource path="res://src/Objects/InventoryItemPickup.tscn" type="PackedScene" id=6] +[ext_resource path="res://src/Objects/LockedDoor.tscn" type="PackedScene" id=7] +[ext_resource path="res://assets/audio/music/44 - Holiday.ogg" type="AudioStream" id=8] +[ext_resource path="res://src/Level/Music.gd" type="Script" id=9] +[ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=10] +[ext_resource path="res://src/Objects/TriggerResults.tscn" type="PackedScene" id=11] +[ext_resource path="res://src/Objects/Coin.tscn" type="PackedScene" id=12] + +[node name="Googolplexian" type="Node2D"] +pause_mode = 1 +script = ExtResource( 5 ) + +[node name="LockedDoor" parent="." instance=ExtResource( 7 )] +position = Vector2( 3296, 1888 ) + +[node name="TileMap2" type="TileMap" parent="."] +modulate = Color( 0.482353, 0.407843, 0.560784, 1 ) +tile_set = ExtResource( 1 ) +cell_size = Vector2( 32, 32 ) +format = 1 +tile_data = PoolIntArray( 524331, 1, 0, 589907, 1, 0, 1638425, 1, 0, 1638427, 1, 0, 1966146, 1, 0, 1966149, 1, 0, 1966152, 1, 0, 1966155, 1, 0, 1966157, 1, 0, 2293840, 1, 0, 2293842, 1, 0, 2293846, 1, 0, 2293848, 1, 0 ) + +[node name="TileMap" type="TileMap" parent="."] +modulate = Color( 0.482353, 0.407843, 0.560784, 1 ) +tile_set = ExtResource( 1 ) +cell_size = Vector2( 32, 32 ) +collision_layer = 16 +collision_mask = 0 +format = 1 +tile_data = PoolIntArray( -196608, 0, 0, -196526, 4, 0, -196525, 0, 0, -196524, 3, 0, -196522, 4, 0, -196521, 0, 0, -196520, 3, 0, -196514, 4, 0, -196513, 0, 0, -196512, 0, 0, -196511, 0, 0, -196510, 0, 0, -196509, 0, 0, -196508, 0, 0, -196507, 0, 0, -196506, 0, 0, -196505, 0, 0, -131072, 0, 0, -130989, 4, 0, -130988, 0, 0, -130987, 3, 0, -130985, 4, 0, -130984, 0, 0, -130983, 3, 0, -130977, 4, 0, -130976, 0, 0, -130975, 0, 0, -130974, 0, 0, -130973, 0, 0, -130972, 0, 0, -130971, 0, 0, -130970, 0, 0, -130969, 0, 0, -65536, 0, 0, -65452, 4, 0, -65451, 0, 0, -65450, 3, 0, -65448, 4, 0, -65447, 0, 0, -65446, 3, 0, -65440, 4, 0, -65439, 0, 0, -65438, 0, 0, -65437, 0, 0, -65436, 0, 0, -65435, 0, 0, -65434, 0, 0, -65433, 0, 0, 0, 0, 0, 85, 4, 0, 86, 0, 0, 87, 3, 0, 89, 4, 0, 90, 0, 0, 91, 3, 0, 97, 4, 0, 98, 0, 0, 99, 0, 0, 100, 0, 0, 101, 0, 0, 102, 0, 0, 103, 0, 0, 65536, 0, 0, 65540, 2, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 3, 0, 65571, 2, 0, 65572, 0, 0, 65573, 0, 0, 65574, 0, 0, 65575, 0, 0, 65576, 0, 0, 65577, 0, 0, 65578, 3, 0, 65622, 4, 0, 65623, 0, 0, 65624, 3, 0, 65626, 4, 0, 65627, 0, 0, 65628, 3, 0, 65634, 4, 0, 65635, 0, 0, 65636, 0, 0, 65637, 0, 0, 65638, 0, 0, 65639, 0, 0, 131072, 0, 0, 131075, 2, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 131090, 0, 0, 131091, 0, 0, 131092, 0, 0, 131093, 3, 0, 131106, 2, 0, 131107, 0, 0, 131108, 0, 0, 131109, 0, 0, 131110, 0, 0, 131111, 0, 0, 131112, 0, 0, 131113, 0, 0, 131114, 0, 0, 131137, 2, 0, 131138, 0, 0, 131139, 0, 0, 131140, 0, 0, 131141, 3, 0, 131150, 2, 0, 131151, 0, 0, 131152, 0, 0, 131153, 0, 0, 131154, 3, 0, 131159, 4, 0, 131160, 0, 0, 131161, 3, 0, 131163, 4, 0, 131164, 0, 0, 131165, 3, 0, 131171, 4, 0, 131172, 0, 0, 131173, 0, 0, 131174, 0, 0, 131175, 0, 0, 196608, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196626, 0, 0, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 0, 0, 196631, 0, 0, 196632, 0, 0, 196633, 0, 0, 196634, 0, 0, 196635, 0, 0, 196636, 0, 0, 196637, 0, 0, 196638, 1, 0, 196639, 1, 0, 196640, 1, 0, 196641, 0, 0, 196642, 0, 0, 196650, 0, 0, 196660, 2, 0, 196661, 0, 0, 196662, 0, 0, 196663, 0, 0, 196664, 0, 0, 196665, 0, 0, 196666, 0, 0, 196667, 0, 0, 196668, 1, 0, 196669, 1, 0, 196670, 1, 0, 196671, 1, 0, 196672, 0, 0, 196673, 0, 0, 196674, 0, 0, 196675, 0, 0, 196676, 0, 0, 196677, 0, 0, 196678, 0, 0, 196679, 1, 0, 196680, 1, 0, 196681, 1, 0, 196682, 1, 0, 196683, 0, 0, 196684, 1, 0, 196685, 1, 0, 196686, 0, 0, 196687, 0, 0, 196688, 0, 0, 196689, 0, 0, 196690, 0, 0, 196691, 0, 0, 196692, 0, 0, 196693, 0, 0, 196694, 3, 0, 196696, 4, 0, 196697, 0, 0, 196698, 3, 0, 196700, 4, 0, 196701, 0, 0, 196702, 3, 0, 196708, 4, 0, 196709, 0, 0, 196710, 0, 0, 196711, 0, 0, 262144, 0, 0, 262147, 0, 0, 262148, 0, 0, 262149, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 0, 0, 262154, 0, 0, 262155, 0, 0, 262156, 0, 0, 262157, 0, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 262162, 0, 0, 262177, 4, 0, 262178, 0, 0, 262179, 1, 0, 262180, 1, 0, 262181, 1, 0, 262182, 1, 0, 262183, 0, 0, 262186, 0, 0, 262203, 0, 0, 262226, 4, 0, 262227, 0, 0, 262228, 3, 0, 262229, 4, 0, 262230, 0, 0, 262231, 3, 0, 262233, 4, 0, 262234, 0, 0, 262235, 3, 0, 262237, 4, 0, 262238, 0, 0, 262239, 3, 0, 262245, 4, 0, 262246, 0, 0, 262247, 0, 0, 327680, 0, 0, 327683, 0, 0, 327684, 0, 0, 327685, 0, 0, 327687, 0, 0, 327696, 0, 0, 327698, 0, 0, 327719, 0, 0, 327722, 0, 0, 327734, 2, 0, 327735, 0, 0, 327736, 0, 0, 327737, 0, 0, 327739, 0, 0, 327740, 1, 0, 327741, 1, 0, 327742, 1, 0, 327743, 1, 0, 327744, 0, 0, 327745, 0, 0, 327746, 0, 0, 327747, 0, 0, 327748, 0, 0, 327749, 0, 0, 327750, 0, 0, 327751, 1, 0, 327752, 1, 0, 327753, 1, 0, 327754, 1, 0, 327755, 0, 0, 327756, 1, 0, 327757, 1, 0, 327758, 0, 0, 327759, 0, 0, 327760, 0, 0, 327761, 3, 0, 327763, 4, 0, 327764, 0, 0, 327765, 3, 0, 327766, 4, 0, 327767, 0, 0, 327768, 3, 0, 327770, 4, 0, 327771, 0, 0, 327772, 3, 0, 327774, 4, 0, 327775, 0, 0, 327776, 3, 0, 327782, 4, 0, 327783, 0, 0, 393216, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393223, 0, 0, 393225, 0, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 0, 393231, 1, 0, 393232, 0, 0, 393234, 0, 0, 393255, 0, 0, 393258, 0, 0, 393269, 2, 0, 393270, 0, 0, 393271, 5, 0, 393273, 0, 0, 393275, 0, 0, 393280, 0, 0, 393286, 0, 0, 393291, 0, 0, 393296, 4, 0, 393297, 0, 0, 393298, 3, 0, 393300, 4, 0, 393301, 0, 0, 393302, 3, 0, 393303, 4, 0, 393304, 0, 0, 393305, 3, 0, 393307, 4, 0, 393308, 0, 0, 393309, 3, 0, 393311, 4, 0, 393312, 0, 0, 393313, 3, 0, 393319, 0, 0, 458752, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458759, 0, 0, 458761, 0, 0, 458768, 0, 0, 458770, 0, 0, 458774, 0, 0, 458775, 0, 0, 458776, 0, 0, 458777, 0, 0, 458778, 0, 0, 458779, 0, 0, 458780, 0, 0, 458781, 0, 0, 458782, 1, 0, 458783, 1, 0, 458784, 1, 0, 458785, 0, 0, 458786, 0, 0, 458787, 0, 0, 458788, 1, 0, 458789, 0, 0, 458791, 0, 0, 458794, 0, 0, 458805, 0, 0, 458806, 5, 0, 458809, 0, 0, 458811, 0, 0, 458816, 0, 0, 458822, 0, 0, 458827, 0, 0, 458833, 4, 0, 458834, 0, 0, 458835, 3, 0, 458837, 4, 0, 458838, 0, 0, 458839, 3, 0, 458840, 4, 0, 458841, 0, 0, 458842, 3, 0, 458844, 4, 0, 458845, 0, 0, 458846, 3, 0, 458848, 4, 0, 458849, 0, 0, 458850, 3, 0, 458855, 0, 0, 524288, 0, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524295, 0, 0, 524297, 0, 0, 524304, 0, 0, 524306, 0, 0, 524310, 0, 0, 524317, 0, 0, 524321, 0, 0, 524325, 0, 0, 524327, 0, 0, 524330, 0, 0, 524331, 3, 0, 524332, 1, 0, 524333, 1, 0, 524334, 1, 0, 524335, 1, 0, 524336, 1, 0, 524337, 1, 0, 524338, 0, 0, 524339, 0, 0, 524341, 0, 0, 524345, 0, 0, 524347, 0, 0, 524352, 0, 0, 524358, 0, 0, 524363, 0, 0, 524370, 4, 0, 524371, 0, 0, 524372, 3, 0, 524374, 4, 0, 524375, 0, 0, 524376, 3, 0, 524377, 4, 0, 524378, 0, 0, 524379, 3, 0, 524381, 4, 0, 524382, 0, 0, 524383, 3, 0, 524385, 4, 0, 524386, 0, 0, 524387, 3, 0, 524391, 0, 0, 589824, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589831, 0, 0, 589833, 0, 0, 589840, 0, 0, 589842, 0, 0, 589846, 0, 0, 589853, 0, 0, 589857, 0, 0, 589861, 0, 0, 589863, 0, 0, 589866, 0, 0, 589867, 0, 0, 589868, 3, 0, 589874, 0, 0, 589875, 0, 0, 589877, 0, 0, 589881, 0, 0, 589883, 0, 0, 589888, 0, 0, 589894, 0, 0, 589899, 0, 0, 589900, 0, 0, 589901, 0, 0, 589902, 0, 0, 589903, 0, 0, 589904, 1, 0, 589905, 1, 0, 589906, 1, 0, 589907, 4, 0, 589908, 0, 0, 589909, 3, 0, 589911, 4, 0, 589912, 0, 0, 589913, 0, 0, 589914, 0, 0, 589915, 0, 0, 589916, 3, 0, 589918, 4, 0, 589919, 0, 0, 589922, 4, 0, 589923, 0, 0, 589927, 0, 0, 655360, 0, 0, 655363, 0, 0, 655364, 0, 0, 655365, 0, 0, 655367, 0, 0, 655369, 0, 0, 655373, 2, 0, 655374, 0, 0, 655375, 0, 0, 655376, 5, 0, 655378, 0, 0, 655382, 0, 0, 655389, 4, 0, 655390, 1, 0, 655391, 1, 0, 655392, 1, 0, 655393, 5, 0, 655397, 0, 0, 655399, 0, 0, 655402, 0, 0, 655403, 0, 0, 655404, 0, 0, 655405, 3, 0, 655410, 0, 0, 655411, 0, 0, 655413, 0, 0, 655417, 0, 0, 655419, 0, 0, 655424, 0, 0, 655430, 0, 0, 655431, 0, 0, 655439, 0, 0, 655444, 4, 0, 655445, 0, 0, 655446, 3, 0, 655452, 0, 0, 655453, 1, 0, 655454, 1, 0, 655455, 0, 0, 655459, 0, 0, 655463, 0, 0, 720896, 0, 0, 720899, 0, 0, 720900, 0, 0, 720901, 0, 0, 720903, 0, 0, 720905, 0, 0, 720906, 1, 0, 720907, 1, 0, 720908, 1, 0, 720909, 0, 0, 720910, 0, 0, 720911, 5, 0, 720914, 0, 0, 720918, 0, 0, 720931, 2, 0, 720932, 0, 0, 720933, 0, 0, 720935, 0, 0, 720938, 0, 0, 720939, 0, 0, 720940, 0, 0, 720941, 0, 0, 720942, 1, 0, 720943, 1, 0, 720944, 1, 0, 720945, 0, 0, 720946, 0, 0, 720947, 0, 0, 720949, 0, 0, 720953, 0, 0, 720955, 0, 0, 720956, 0, 0, 720957, 1, 0, 720958, 1, 0, 720959, 1, 0, 720960, 0, 0, 720961, 0, 0, 720962, 0, 0, 720963, 0, 0, 720964, 0, 0, 720965, 0, 0, 720966, 0, 0, 720967, 0, 0, 720968, 0, 0, 720969, 0, 0, 720970, 0, 0, 720971, 0, 0, 720972, 3, 0, 720975, 0, 0, 720981, 4, 0, 720982, 0, 0, 720983, 0, 0, 720984, 0, 0, 720988, 0, 0, 720991, 0, 0, 720995, 0, 0, 720999, 0, 0, 786432, 0, 0, 786435, 0, 0, 786436, 0, 0, 786437, 0, 0, 786439, 0, 0, 786450, 0, 0, 786454, 0, 0, 786466, 2, 0, 786467, 0, 0, 786468, 5, 0, 786471, 0, 0, 786483, 0, 0, 786485, 0, 0, 786489, 0, 0, 786496, 0, 0, 786508, 0, 0, 786511, 0, 0, 786524, 0, 0, 786527, 0, 0, 786531, 0, 0, 786535, 0, 0, 851968, 0, 0, 851971, 0, 0, 851972, 0, 0, 851973, 0, 0, 851975, 0, 0, 851984, 2, 0, 851985, 0, 0, 851986, 5, 0, 851990, 0, 0, 852001, 2, 0, 852002, 0, 0, 852003, 5, 0, 852006, 2, 0, 852007, 0, 0, 852019, 0, 0, 852021, 0, 0, 852025, 0, 0, 852032, 0, 0, 852044, 0, 0, 852047, 0, 0, 852048, 0, 0, 852049, 0, 0, 852056, 0, 0, 852057, 0, 0, 852058, 0, 0, 852059, 0, 0, 852060, 0, 0, 852061, 1, 0, 852062, 1, 0, 852063, 0, 0, 852067, 0, 0, 852071, 0, 0, 917504, 0, 0, 917507, 0, 0, 917508, 0, 0, 917509, 0, 0, 917511, 0, 0, 917512, 0, 0, 917513, 0, 0, 917514, 1, 0, 917515, 1, 0, 917516, 1, 0, 917517, 0, 0, 917518, 0, 0, 917519, 0, 0, 917520, 0, 0, 917521, 5, 0, 917526, 0, 0, 917536, 2, 0, 917537, 0, 0, 917538, 5, 0, 917541, 2, 0, 917542, 0, 0, 917543, 0, 0, 917544, 0, 0, 917545, 0, 0, 917546, 0, 0, 917547, 0, 0, 917548, 0, 0, 917549, 0, 0, 917550, 1, 0, 917551, 1, 0, 917552, 1, 0, 917553, 0, 0, 917555, 0, 0, 917557, 0, 0, 917561, 0, 0, 917568, 0, 0, 917580, 0, 0, 917583, 0, 0, 917592, 0, 0, 917603, 0, 0, 917607, 0, 0, 983040, 0, 0, 983043, 0, 0, 983044, 0, 0, 983045, 0, 0, 983062, 0, 0, 983069, 2, 0, 983070, 0, 0, 983071, 1, 0, 983072, 0, 0, 983073, 5, 0, 983076, 2, 0, 983077, 0, 0, 983078, 5, 0, 983080, 0, 0, 983089, 0, 0, 983091, 0, 0, 983093, 0, 0, 983094, 0, 0, 983095, 0, 0, 983096, 0, 0, 983097, 0, 0, 983098, 0, 0, 983099, 0, 0, 983100, 0, 0, 983101, 0, 0, 983102, 0, 0, 983103, 0, 0, 983104, 0, 0, 983105, 0, 0, 983106, 0, 0, 983107, 0, 0, 983108, 0, 0, 983109, 0, 0, 983110, 0, 0, 983111, 0, 0, 983112, 0, 0, 983113, 0, 0, 983114, 0, 0, 983115, 0, 0, 983116, 0, 0, 983119, 0, 0, 983123, 0, 0, 983124, 0, 0, 983128, 0, 0, 983139, 0, 0, 983143, 0, 0, 1048576, 0, 0, 1048579, 0, 0, 1048580, 0, 0, 1048581, 0, 0, 1048593, 2, 0, 1048594, 0, 0, 1048597, 0, 0, 1048598, 0, 0, 1048604, 2, 0, 1048605, 0, 0, 1048606, 0, 0, 1048608, 0, 0, 1048611, 2, 0, 1048612, 0, 0, 1048613, 5, 0, 1048616, 0, 0, 1048625, 0, 0, 1048627, 0, 0, 1048629, 0, 0, 1048655, 0, 0, 1048664, 0, 0, 1048668, 2, 0, 1048669, 0, 0, 1048670, 0, 0, 1048671, 3, 0, 1048675, 0, 0, 1048679, 0, 0, 1114112, 0, 0, 1114115, 0, 0, 1114116, 0, 0, 1114117, 0, 0, 1114118, 0, 0, 1114119, 0, 0, 1114120, 0, 0, 1114121, 0, 0, 1114122, 0, 0, 1114123, 1, 0, 1114124, 0, 0, 1114125, 1, 0, 1114126, 1, 0, 1114127, 1, 0, 1114128, 0, 0, 1114129, 0, 0, 1114130, 0, 0, 1114133, 0, 0, 1114139, 2, 0, 1114140, 0, 0, 1114141, 0, 0, 1114142, 0, 0, 1114144, 0, 0, 1114152, 0, 0, 1114161, 0, 0, 1114163, 0, 0, 1114165, 0, 0, 1114191, 0, 0, 1114198, 0, 0, 1114199, 0, 0, 1114200, 0, 0, 1114201, 0, 0, 1114202, 0, 0, 1114203, 0, 0, 1114204, 0, 0, 1114205, 0, 0, 1114206, 0, 0, 1114207, 0, 0, 1114208, 0, 0, 1114209, 1, 0, 1114210, 1, 0, 1114211, 0, 0, 1114215, 0, 0, 1179648, 0, 0, 1179651, 0, 0, 1179652, 0, 0, 1179653, 0, 0, 1179654, 0, 0, 1179655, 0, 0, 1179656, 0, 0, 1179657, 0, 0, 1179658, 0, 0, 1179660, 0, 0, 1179664, 0, 0, 1179665, 0, 0, 1179666, 0, 0, 1179669, 0, 0, 1179674, 2, 0, 1179675, 0, 0, 1179676, 0, 0, 1179677, 0, 0, 1179678, 0, 0, 1179679, 1, 0, 1179680, 0, 0, 1179681, 3, 0, 1179688, 0, 0, 1179697, 0, 0, 1179699, 0, 0, 1179701, 0, 0, 1179702, 0, 0, 1179703, 0, 0, 1179704, 0, 0, 1179706, 0, 0, 1179707, 0, 0, 1179708, 0, 0, 1179709, 0, 0, 1179710, 0, 0, 1179711, 0, 0, 1179712, 1, 0, 1179713, 0, 0, 1179714, 0, 0, 1179715, 0, 0, 1179716, 0, 0, 1179717, 1, 0, 1179718, 0, 0, 1179719, 0, 0, 1179720, 0, 0, 1179721, 0, 0, 1179722, 0, 0, 1179723, 1, 0, 1179724, 1, 0, 1179725, 1, 0, 1179726, 1, 0, 1179727, 0, 0, 1179736, 0, 0, 1179747, 0, 0, 1179751, 0, 0, 1245184, 0, 0, 1245187, 0, 0, 1245188, 0, 0, 1245189, 0, 0, 1245190, 0, 0, 1245191, 0, 0, 1245192, 0, 0, 1245193, 0, 0, 1245194, 0, 0, 1245195, 1, 0, 1245196, 0, 0, 1245200, 0, 0, 1245205, 0, 0, 1245209, 2, 0, 1245210, 0, 0, 1245211, 0, 0, 1245212, 0, 0, 1245213, 0, 0, 1245214, 0, 0, 1245216, 4, 0, 1245217, 0, 0, 1245218, 3, 0, 1245224, 0, 0, 1245233, 0, 0, 1245235, 0, 0, 1245237, 0, 0, 1245239, 2, 0, 1245240, 0, 0, 1245242, 0, 0, 1245243, 3, 0, 1245247, 0, 0, 1245254, 0, 0, 1245258, 0, 0, 1245263, 0, 0, 1245267, 0, 0, 1245268, 0, 0, 1245272, 0, 0, 1245281, 0, 0, 1245283, 0, 0, 1245287, 0, 0, 1310720, 0, 0, 1310723, 0, 0, 1310724, 0, 0, 1310725, 0, 0, 1310726, 0, 0, 1310727, 0, 0, 1310728, 0, 0, 1310729, 0, 0, 1310730, 0, 0, 1310732, 0, 0, 1310736, 0, 0, 1310740, 2, 0, 1310741, 0, 0, 1310745, 0, 0, 1310746, 0, 0, 1310747, 0, 0, 1310748, 0, 0, 1310749, 0, 0, 1310750, 0, 0, 1310753, 4, 0, 1310754, 0, 0, 1310755, 3, 0, 1310760, 0, 0, 1310769, 0, 0, 1310771, 0, 0, 1310773, 0, 0, 1310775, 0, 0, 1310776, 5, 0, 1310778, 4, 0, 1310779, 0, 0, 1310783, 0, 0, 1310790, 0, 0, 1310794, 0, 0, 1310799, 0, 0, 1310808, 0, 0, 1310817, 0, 0, 1310819, 0, 0, 1310823, 0, 0, 1376256, 0, 0, 1376259, 0, 0, 1376260, 0, 0, 1376261, 0, 0, 1376262, 0, 0, 1376263, 0, 0, 1376264, 0, 0, 1376265, 0, 0, 1376266, 0, 0, 1376268, 0, 0, 1376272, 0, 0, 1376276, 0, 0, 1376277, 0, 0, 1376278, 3, 0, 1376281, 0, 0, 1376282, 0, 0, 1376283, 0, 0, 1376284, 0, 0, 1376285, 0, 0, 1376286, 0, 0, 1376287, 0, 0, 1376288, 3, 0, 1376290, 4, 0, 1376291, 0, 0, 1376292, 0, 0, 1376293, 0, 0, 1376294, 0, 0, 1376296, 0, 0, 1376301, 2, 0, 1376302, 0, 0, 1376303, 0, 0, 1376304, 0, 0, 1376305, 0, 0, 1376307, 0, 0, 1376309, 0, 0, 1376310, 0, 0, 1376311, 0, 0, 1376315, 0, 0, 1376316, 0, 0, 1376317, 0, 0, 1376318, 0, 0, 1376319, 0, 0, 1376320, 0, 0, 1376321, 0, 0, 1376322, 1, 0, 1376323, 1, 0, 1376324, 0, 0, 1376325, 0, 0, 1376326, 0, 0, 1376327, 0, 0, 1376328, 0, 0, 1376329, 0, 0, 1376330, 0, 0, 1376331, 1, 0, 1376332, 1, 0, 1376333, 1, 0, 1376334, 1, 0, 1376335, 0, 0, 1376336, 0, 0, 1376337, 0, 0, 1376344, 0, 0, 1376351, 0, 0, 1376353, 0, 0, 1376355, 0, 0, 1376359, 0, 0, 1441792, 0, 0, 1441795, 0, 0, 1441796, 0, 0, 1441797, 0, 0, 1441798, 0, 0, 1441799, 0, 0, 1441800, 0, 0, 1441801, 0, 0, 1441802, 0, 0, 1441804, 0, 0, 1441805, 1, 0, 1441806, 1, 0, 1441807, 1, 0, 1441808, 0, 0, 1441812, 0, 0, 1441813, 4, 0, 1441814, 0, 0, 1441815, 3, 0, 1441824, 0, 0, 1441830, 0, 0, 1441832, 0, 0, 1441836, 2, 0, 1441837, 0, 0, 1441838, 0, 0, 1441839, 0, 0, 1441840, 0, 0, 1441841, 0, 0, 1441843, 0, 0, 1441851, 0, 0, 1441880, 0, 0, 1441887, 0, 0, 1441889, 0, 0, 1441891, 0, 0, 1441895, 0, 0, 1507328, 0, 0, 1507331, 0, 0, 1507332, 0, 0, 1507333, 0, 0, 1507334, 0, 0, 1507335, 0, 0, 1507336, 0, 0, 1507337, 0, 0, 1507338, 0, 0, 1507340, 0, 0, 1507344, 0, 0, 1507348, 0, 0, 1507350, 4, 0, 1507351, 0, 0, 1507352, 3, 0, 1507360, 0, 0, 1507366, 0, 0, 1507368, 0, 0, 1507369, 1, 0, 1507370, 1, 0, 1507371, 1, 0, 1507372, 0, 0, 1507373, 0, 0, 1507374, 0, 0, 1507375, 0, 0, 1507376, 0, 0, 1507377, 0, 0, 1507379, 0, 0, 1507380, 0, 0, 1507381, 0, 0, 1507382, 0, 0, 1507383, 0, 0, 1507384, 0, 0, 1507385, 0, 0, 1507386, 0, 0, 1507387, 0, 0, 1507389, 0, 0, 1507390, 0, 0, 1507391, 0, 0, 1507392, 0, 0, 1507393, 0, 0, 1507394, 1, 0, 1507395, 1, 0, 1507396, 0, 0, 1507397, 0, 0, 1507398, 0, 0, 1507399, 0, 0, 1507400, 0, 0, 1507401, 0, 0, 1507402, 0, 0, 1507403, 1, 0, 1507404, 1, 0, 1507405, 1, 0, 1507406, 1, 0, 1507407, 0, 0, 1507408, 0, 0, 1507409, 0, 0, 1507410, 0, 0, 1507411, 0, 0, 1507412, 0, 0, 1507413, 0, 0, 1507414, 0, 0, 1507415, 0, 0, 1507416, 0, 0, 1507421, 0, 0, 1507423, 0, 0, 1507425, 0, 0, 1507427, 0, 0, 1507431, 0, 0, 1572864, 0, 0, 1572867, 0, 0, 1572868, 0, 0, 1572869, 0, 0, 1572870, 0, 0, 1572871, 0, 0, 1572872, 0, 0, 1572873, 0, 0, 1572874, 0, 0, 1572876, 0, 0, 1572880, 0, 0, 1572884, 0, 0, 1572887, 4, 0, 1572888, 0, 0, 1572889, 3, 0, 1572896, 0, 0, 1572902, 0, 0, 1572904, 0, 0, 1572908, 4, 0, 1572909, 0, 0, 1572910, 0, 0, 1572911, 0, 0, 1572912, 0, 0, 1572913, 5, 0, 1572915, 4, 0, 1572916, 0, 0, 1572917, 0, 0, 1572918, 0, 0, 1572919, 0, 0, 1572920, 0, 0, 1572921, 0, 0, 1572922, 0, 0, 1572923, 5, 0, 1572925, 4, 0, 1572926, 0, 0, 1572927, 0, 0, 1572928, 0, 0, 1572929, 0, 0, 1572932, 0, 0, 1572933, 0, 0, 1572948, 0, 0, 1572952, 0, 0, 1572953, 0, 0, 1572954, 1, 0, 1572955, 1, 0, 1572956, 1, 0, 1572957, 0, 0, 1572959, 0, 0, 1572961, 0, 0, 1572963, 0, 0, 1572967, 0, 0, 1638400, 0, 0, 1638403, 0, 0, 1638404, 0, 0, 1638405, 0, 0, 1638406, 0, 0, 1638407, 0, 0, 1638408, 0, 0, 1638409, 0, 0, 1638410, 0, 0, 1638412, 0, 0, 1638416, 0, 0, 1638417, 3, 0, 1638420, 0, 0, 1638424, 4, 0, 1638425, 5, 0, 1638426, 1, 0, 1638427, 2, 0, 1638428, 0, 0, 1638429, 0, 0, 1638430, 0, 0, 1638431, 0, 0, 1638432, 0, 0, 1638433, 0, 0, 1638434, 3, 0, 1638438, 0, 0, 1638440, 0, 0, 1638464, 4, 0, 1638465, 0, 0, 1638468, 0, 0, 1638469, 0, 0, 1638470, 3, 0, 1638484, 0, 0, 1638499, 0, 0, 1638503, 0, 0, 1703936, 0, 0, 1703939, 0, 0, 1703940, 0, 0, 1703941, 0, 0, 1703942, 0, 0, 1703943, 0, 0, 1703944, 0, 0, 1703945, 0, 0, 1703946, 0, 0, 1703947, 1, 0, 1703948, 0, 0, 1703949, 1, 0, 1703950, 1, 0, 1703951, 1, 0, 1703952, 0, 0, 1703953, 0, 0, 1703954, 3, 0, 1703956, 0, 0, 1703962, 2, 0, 1703963, 0, 0, 1703964, 5, 0, 1703969, 4, 0, 1703970, 0, 0, 1703971, 3, 0, 1703974, 0, 0, 1703976, 0, 0, 1703977, 0, 0, 1703978, 0, 0, 1703979, 0, 0, 1703980, 0, 0, 1703981, 0, 0, 1704001, 0, 0, 1704004, 4, 0, 1704005, 0, 0, 1704006, 0, 0, 1704007, 3, 0, 1704020, 0, 0, 1704035, 0, 0, 1704039, 0, 0, 1769472, 0, 0, 1769482, 0, 0, 1769488, 4, 0, 1769489, 0, 0, 1769490, 0, 0, 1769492, 0, 0, 1769497, 2, 0, 1769498, 0, 0, 1769499, 5, 0, 1769510, 0, 0, 1769512, 0, 0, 1769523, 2, 0, 1769524, 0, 0, 1769525, 0, 0, 1769526, 0, 0, 1769527, 0, 0, 1769528, 0, 0, 1769529, 0, 0, 1769530, 0, 0, 1769531, 3, 0, 1769536, 2, 0, 1769537, 0, 0, 1769541, 4, 0, 1769542, 0, 0, 1769543, 0, 0, 1769544, 3, 0, 1769556, 0, 0, 1769560, 0, 0, 1769561, 0, 0, 1769562, 0, 0, 1769563, 0, 0, 1769564, 0, 0, 1769565, 0, 0, 1769566, 0, 0, 1769567, 1, 0, 1769568, 1, 0, 1769569, 1, 0, 1769570, 1, 0, 1769571, 0, 0, 1769575, 0, 0, 1835008, 0, 0, 1835018, 0, 0, 1835025, 4, 0, 1835026, 0, 0, 1835028, 0, 0, 1835032, 0, 0, 1835033, 0, 0, 1835034, 5, 0, 1835045, 2, 0, 1835046, 0, 0, 1835048, 0, 0, 1835050, 0, 0, 1835051, 0, 0, 1835052, 0, 0, 1835053, 0, 0, 1835054, 0, 0, 1835055, 0, 0, 1835056, 0, 0, 1835057, 0, 0, 1835058, 0, 0, 1835059, 0, 0, 1835060, 0, 0, 1835061, 0, 0, 1835062, 0, 0, 1835063, 0, 0, 1835064, 0, 0, 1835065, 0, 0, 1835066, 0, 0, 1835067, 0, 0, 1835068, 0, 0, 1835069, 0, 0, 1835070, 0, 0, 1835071, 0, 0, 1835072, 0, 0, 1835073, 0, 0, 1835078, 4, 0, 1835079, 0, 0, 1835080, 0, 0, 1835081, 3, 0, 1835092, 0, 0, 1835093, 1, 0, 1835094, 1, 0, 1835095, 1, 0, 1835096, 0, 0, 1835097, 0, 0, 1835098, 0, 0, 1835099, 0, 0, 1835100, 0, 0, 1835101, 5, 0, 1835111, 0, 0, 1900544, 0, 0, 1900554, 0, 0, 1900562, 0, 0, 1900568, 0, 0, 1900569, 5, 0, 1900574, 2, 0, 1900575, 0, 0, 1900576, 1, 0, 1900577, 0, 0, 1900578, 0, 0, 1900579, 0, 0, 1900580, 0, 0, 1900581, 0, 0, 1900582, 0, 0, 1900584, 0, 0, 1900586, 0, 0, 1900598, 0, 0, 1900615, 4, 0, 1900616, 0, 0, 1900617, 0, 0, 1900618, 3, 0, 1900632, 0, 0, 1900633, 0, 0, 1900634, 0, 0, 1900635, 0, 0, 1900636, 5, 0, 1900647, 0, 0, 1966080, 0, 0, 1966090, 0, 0, 1966091, 1, 0, 1966092, 1, 0, 1966093, 1, 0, 1966094, 1, 0, 1966095, 1, 0, 1966096, 0, 0, 1966097, 1, 0, 1966098, 0, 0, 1966099, 0, 0, 1966100, 0, 0, 1966101, 0, 0, 1966102, 0, 0, 1966103, 0, 0, 1966104, 0, 0, 1966105, 0, 0, 1966106, 0, 0, 1966107, 0, 0, 1966108, 0, 0, 1966109, 0, 0, 1966110, 0, 0, 1966111, 0, 0, 1966113, 0, 0, 1966120, 0, 0, 1966122, 0, 0, 1966134, 0, 0, 1966135, 1, 0, 1966136, 1, 0, 1966137, 1, 0, 1966138, 1, 0, 1966139, 1, 0, 1966140, 1, 0, 1966141, 1, 0, 1966142, 1, 0, 1966143, 1, 0, 1966144, 1, 0, 1966145, 1, 0, 1966146, 2, 0, 1966147, 0, 0, 1966148, 0, 0, 1966149, 3, 0, 1966150, 1, 0, 1966151, 1, 0, 1966152, 4, 0, 1966153, 0, 0, 1966154, 0, 0, 1966155, 3, 0, 1966156, 1, 0, 1966157, 4, 0, 1966158, 0, 0, 1966159, 0, 0, 1966160, 0, 0, 1966161, 0, 0, 1966162, 0, 0, 1966163, 0, 0, 1966164, 0, 0, 1966165, 0, 0, 1966166, 0, 0, 1966167, 0, 0, 1966168, 0, 0, 1966169, 0, 0, 1966170, 0, 0, 1966171, 5, 0, 1966173, 2, 0, 1966174, 0, 0, 1966175, 0, 0, 1966176, 1, 0, 1966177, 1, 0, 1966178, 1, 0, 1966179, 0, 0, 1966183, 0, 0, 2031616, 0, 0, 2031617, 0, 0, 2031618, 0, 0, 2031620, 0, 0, 2031621, 0, 0, 2031622, 0, 0, 2031623, 0, 0, 2031624, 0, 0, 2031626, 0, 0, 2031632, 0, 0, 2031647, 0, 0, 2031649, 0, 0, 2031656, 0, 0, 2031658, 0, 0, 2031670, 0, 0, 2031681, 2, 0, 2031682, 0, 0, 2031683, 0, 0, 2031684, 0, 0, 2031685, 0, 0, 2031686, 3, 0, 2031689, 4, 0, 2031690, 0, 0, 2031691, 0, 0, 2031692, 3, 0, 2031694, 4, 0, 2031695, 0, 0, 2031696, 0, 0, 2031697, 0, 0, 2031698, 0, 0, 2031699, 0, 0, 2031700, 0, 0, 2031701, 0, 0, 2031702, 0, 0, 2031703, 0, 0, 2031704, 0, 0, 2031705, 0, 0, 2031706, 5, 0, 2031708, 2, 0, 2031709, 0, 0, 2031710, 0, 0, 2031711, 0, 0, 2031715, 0, 0, 2031719, 0, 0, 2097152, 0, 0, 2097153, 0, 0, 2097154, 0, 0, 2097156, 0, 0, 2097157, 0, 0, 2097158, 0, 0, 2097159, 0, 0, 2097160, 0, 0, 2097162, 0, 0, 2097168, 0, 0, 2097183, 0, 0, 2097184, 1, 0, 2097185, 0, 0, 2097187, 0, 0, 2097188, 0, 0, 2097189, 0, 0, 2097190, 0, 0, 2097192, 0, 0, 2097194, 0, 0, 2097206, 0, 0, 2097216, 2, 0, 2097217, 0, 0, 2097218, 0, 0, 2097219, 0, 0, 2097220, 0, 0, 2097221, 0, 0, 2097222, 0, 0, 2097223, 3, 0, 2097226, 4, 0, 2097227, 0, 0, 2097228, 0, 0, 2097229, 3, 0, 2097231, 4, 0, 2097232, 0, 0, 2097233, 0, 0, 2097234, 0, 0, 2097235, 0, 0, 2097236, 0, 0, 2097237, 0, 0, 2097238, 0, 0, 2097239, 0, 0, 2097240, 0, 0, 2097241, 5, 0, 2097243, 2, 0, 2097244, 0, 0, 2097245, 0, 0, 2097246, 5, 0, 2097247, 0, 0, 2097251, 0, 0, 2097255, 0, 0, 2162688, 0, 0, 2162689, 0, 0, 2162690, 0, 0, 2162692, 0, 0, 2162693, 0, 0, 2162694, 0, 0, 2162695, 0, 0, 2162696, 0, 0, 2162698, 0, 0, 2162704, 0, 0, 2162723, 0, 0, 2162726, 0, 0, 2162728, 0, 0, 2162730, 0, 0, 2162742, 0, 0, 2162751, 2, 0, 2162752, 0, 0, 2162753, 0, 0, 2162754, 0, 0, 2162755, 0, 0, 2162756, 0, 0, 2162757, 0, 0, 2162758, 0, 0, 2162759, 0, 0, 2162760, 3, 0, 2162763, 4, 0, 2162764, 0, 0, 2162765, 0, 0, 2162766, 3, 0, 2162768, 4, 0, 2162769, 0, 0, 2162770, 0, 0, 2162771, 0, 0, 2162772, 0, 0, 2162773, 0, 0, 2162774, 0, 0, 2162775, 0, 0, 2162776, 5, 0, 2162778, 2, 0, 2162779, 0, 0, 2162780, 0, 0, 2162781, 5, 0, 2162783, 0, 0, 2162787, 0, 0, 2162791, 0, 0, 2228224, 0, 0, 2228225, 0, 0, 2228226, 0, 0, 2228228, 0, 0, 2228229, 0, 0, 2228230, 0, 0, 2228231, 0, 0, 2228232, 0, 0, 2228234, 0, 0, 2228240, 0, 0, 2228259, 0, 0, 2228262, 0, 0, 2228264, 0, 0, 2228266, 0, 0, 2228278, 0, 0, 2228286, 2, 0, 2228287, 0, 0, 2228288, 0, 0, 2228289, 0, 0, 2228290, 0, 0, 2228291, 0, 0, 2228292, 0, 0, 2228293, 0, 0, 2228294, 0, 0, 2228295, 0, 0, 2228296, 0, 0, 2228297, 3, 0, 2228300, 4, 0, 2228301, 0, 0, 2228302, 0, 0, 2228303, 3, 0, 2228305, 4, 0, 2228306, 0, 0, 2228307, 0, 0, 2228308, 0, 0, 2228309, 0, 0, 2228310, 0, 0, 2228311, 5, 0, 2228313, 2, 0, 2228314, 0, 0, 2228315, 0, 0, 2228316, 5, 0, 2228319, 0, 0, 2228323, 0, 0, 2228327, 0, 0, 2293760, 0, 0, 2293761, 0, 0, 2293762, 0, 0, 2293764, 0, 0, 2293765, 0, 0, 2293766, 0, 0, 2293767, 0, 0, 2293768, 0, 0, 2293770, 0, 0, 2293771, 1, 0, 2293772, 1, 0, 2293773, 1, 0, 2293774, 1, 0, 2293775, 1, 0, 2293776, 0, 0, 2293795, 0, 0, 2293798, 0, 0, 2293800, 0, 0, 2293802, 0, 0, 2293814, 0, 0, 2293821, 2, 0, 2293822, 0, 0, 2293823, 0, 0, 2293824, 0, 0, 2293825, 0, 0, 2293826, 0, 0, 2293827, 0, 0, 2293828, 0, 0, 2293829, 0, 0, 2293830, 0, 0, 2293831, 0, 0, 2293832, 0, 0, 2293833, 0, 0, 2293834, 3, 0, 2293837, 4, 0, 2293838, 0, 0, 2293839, 0, 0, 2293840, 3, 0, 2293841, 1, 0, 2293842, 4, 0, 2293843, 0, 0, 2293844, 0, 0, 2293845, 0, 0, 2293846, 5, 0, 2293847, 1, 0, 2293848, 2, 0, 2293849, 0, 0, 2293850, 0, 0, 2293851, 5, 0, 2293854, 2, 0, 2293855, 0, 0, 2293859, 0, 0, 2293863, 0, 0, 2359296, 0, 0, 2359297, 0, 0, 2359298, 0, 0, 2359300, 0, 0, 2359301, 0, 0, 2359302, 0, 0, 2359303, 0, 0, 2359304, 0, 0, 2359306, 0, 0, 2359312, 0, 0, 2359331, 0, 0, 2359334, 0, 0, 2359336, 0, 0, 2359341, 2, 0, 2359342, 3, 0, 2359344, 2, 0, 2359346, 3, 0, 2359348, 2, 0, 2359350, 0, 0, 2359356, 2, 0, 2359357, 0, 0, 2359358, 0, 0, 2359359, 0, 0, 2359360, 0, 0, 2359361, 0, 0, 2359362, 0, 0, 2359363, 0, 0, 2359364, 0, 0, 2359365, 0, 0, 2359366, 0, 0, 2359367, 0, 0, 2359368, 0, 0, 2359369, 0, 0, 2359370, 0, 0, 2359371, 3, 0, 2359374, 4, 0, 2359375, 0, 0, 2359376, 0, 0, 2359377, 3, 0, 2359383, 2, 0, 2359384, 0, 0, 2359385, 0, 0, 2359386, 5, 0, 2359389, 2, 0, 2359390, 0, 0, 2359391, 0, 0, 2359395, 0, 0, 2359399, 0, 0, 2424832, 0, 0, 2424833, 0, 0, 2424834, 0, 0, 2424836, 0, 0, 2424837, 0, 0, 2424838, 0, 0, 2424839, 0, 0, 2424840, 0, 0, 2424842, 0, 0, 2424848, 0, 0, 2424849, 1, 0, 2424850, 0, 0, 2424851, 0, 0, 2424852, 0, 0, 2424853, 0, 0, 2424854, 0, 0, 2424855, 0, 0, 2424856, 1, 0, 2424857, 1, 0, 2424858, 0, 0, 2424859, 0, 0, 2424860, 0, 0, 2424861, 0, 0, 2424862, 0, 0, 2424863, 0, 0, 2424864, 1, 0, 2424865, 0, 0, 2424866, 0, 0, 2424867, 0, 0, 2424870, 0, 0, 2424872, 0, 0, 2424876, 2, 0, 2424877, 0, 0, 2424878, 0, 0, 2424880, 0, 0, 2424882, 0, 0, 2424884, 0, 0, 2424886, 0, 0, 2424891, 2, 0, 2424892, 0, 0, 2424893, 0, 0, 2424894, 0, 0, 2424895, 0, 0, 2424896, 0, 0, 2424897, 0, 0, 2424898, 0, 0, 2424899, 0, 0, 2424900, 0, 0, 2424901, 0, 0, 2424902, 0, 0, 2424903, 0, 0, 2424904, 0, 0, 2424905, 0, 0, 2424906, 0, 0, 2424907, 0, 0, 2424908, 3, 0, 2424911, 4, 0, 2424912, 0, 0, 2424913, 0, 0, 2424914, 3, 0, 2424918, 2, 0, 2424919, 0, 0, 2424920, 0, 0, 2424921, 5, 0, 2424924, 2, 0, 2424925, 0, 0, 2424926, 0, 0, 2424927, 0, 0, 2424928, 1, 0, 2424929, 1, 0, 2424930, 1, 0, 2424931, 0, 0, 2424935, 0, 0, 2490368, 0, 0, 2490369, 0, 0, 2490370, 0, 0, 2490372, 0, 0, 2490373, 0, 0, 2490374, 0, 0, 2490375, 0, 0, 2490376, 0, 0, 2490378, 0, 0, 2490386, 0, 0, 2490399, 0, 0, 2490401, 0, 0, 2490406, 0, 0, 2490408, 0, 0, 2490411, 2, 0, 2490412, 0, 0, 2490413, 0, 0, 2490414, 0, 0, 2490416, 0, 0, 2490418, 0, 0, 2490420, 0, 0, 2490422, 0, 0, 2490423, 3, 0, 2490435, 0, 0, 2490436, 0, 0, 2490437, 0, 0, 2490438, 0, 0, 2490439, 0, 0, 2490440, 0, 0, 2490441, 0, 0, 2490442, 0, 0, 2490443, 0, 0, 2490444, 0, 0, 2490445, 1, 0, 2490446, 1, 0, 2490447, 1, 0, 2490448, 0, 0, 2490449, 0, 0, 2490450, 0, 0, 2490451, 1, 0, 2490452, 1, 0, 2490453, 1, 0, 2490454, 0, 0, 2490455, 0, 0, 2490456, 0, 0, 2490457, 0, 0, 2490458, 0, 0, 2490459, 0, 0, 2490460, 0, 0, 2490461, 0, 0, 2490462, 0, 0, 2490463, 0, 0, 2490467, 0, 0, 2490471, 0, 0, 2555904, 0, 0, 2555905, 0, 0, 2555906, 0, 0, 2555908, 0, 0, 2555909, 0, 0, 2555910, 0, 0, 2555911, 0, 0, 2555912, 0, 0, 2555914, 0, 0, 2555922, 0, 0, 2555935, 0, 0, 2555937, 0, 0, 2555942, 0, 0, 2555944, 0, 0, 2555945, 0, 0, 2555946, 0, 0, 2555947, 0, 0, 2555948, 0, 0, 2555949, 0, 0, 2555950, 0, 0, 2555952, 0, 0, 2555954, 0, 0, 2555956, 0, 0, 2555958, 0, 0, 2555959, 0, 0, 2555960, 3, 0, 2555971, 0, 0, 2555974, 0, 0, 2555996, 0, 0, 2555999, 0, 0, 2556003, 0, 0, 2556007, 0, 0, 2621440, 0, 0, 2621441, 0, 0, 2621442, 0, 0, 2621444, 0, 0, 2621445, 0, 0, 2621446, 0, 0, 2621447, 0, 0, 2621448, 0, 0, 2621450, 0, 0, 2621451, 0, 0, 2621452, 0, 0, 2621453, 0, 0, 2621454, 0, 0, 2621455, 0, 0, 2621456, 0, 0, 2621457, 1, 0, 2621458, 0, 0, 2621459, 1, 0, 2621460, 1, 0, 2621461, 1, 0, 2621462, 1, 0, 2621463, 1, 0, 2621464, 1, 0, 2621465, 1, 0, 2621466, 1, 0, 2621467, 1, 0, 2621468, 1, 0, 2621469, 1, 0, 2621470, 1, 0, 2621471, 0, 0, 2621473, 0, 0, 2621478, 0, 0, 2621483, 0, 0, 2621486, 0, 0, 2621488, 0, 0, 2621490, 0, 0, 2621492, 0, 0, 2621494, 0, 0, 2621495, 0, 0, 2621496, 0, 0, 2621497, 3, 0, 2621507, 0, 0, 2621510, 0, 0, 2621532, 0, 0, 2621535, 0, 0, 2621539, 0, 0, 2621543, 0, 0, 2686976, 0, 0, 2686977, 0, 0, 2686978, 0, 0, 2686980, 0, 0, 2686994, 0, 0, 2687007, 0, 0, 2687009, 0, 0, 2687014, 0, 0, 2687019, 0, 0, 2687022, 0, 0, 2687024, 0, 0, 2687026, 0, 0, 2687028, 0, 0, 2687030, 0, 0, 2687031, 0, 0, 2687032, 0, 0, 2687033, 0, 0, 2687034, 3, 0, 2687043, 0, 0, 2687046, 0, 0, 2687050, 0, 0, 2687051, 0, 0, 2687052, 0, 0, 2687053, 1, 0, 2687054, 1, 0, 2687055, 1, 0, 2687056, 0, 0, 2687057, 0, 0, 2687058, 0, 0, 2687059, 1, 0, 2687060, 1, 0, 2687061, 1, 0, 2687062, 0, 0, 2687063, 0, 0, 2687064, 0, 0, 2687068, 0, 0, 2687071, 0, 0, 2687075, 0, 0, 2687079, 0, 0, 2752512, 0, 0, 2752513, 0, 0, 2752514, 0, 0, 2752516, 0, 0, 2752530, 0, 0, 2752543, 0, 0, 2752544, 1, 0, 2752545, 0, 0, 2752550, 0, 0, 2752552, 0, 0, 2752553, 1, 0, 2752554, 1, 0, 2752555, 0, 0, 2752558, 0, 0, 2752560, 0, 0, 2752562, 0, 0, 2752564, 0, 0, 2752566, 0, 0, 2752567, 0, 0, 2752568, 0, 0, 2752569, 0, 0, 2752570, 0, 0, 2752571, 3, 0, 2752579, 0, 0, 2752582, 0, 0, 2752586, 0, 0, 2752588, 0, 0, 2752592, 0, 0, 2752594, 0, 0, 2752598, 0, 0, 2752600, 0, 0, 2752604, 0, 0, 2752607, 0, 0, 2752611, 0, 0, 2752615, 0, 0, 2818048, 0, 0, 2818049, 0, 0, 2818050, 0, 0, 2818052, 0, 0, 2818053, 1, 0, 2818054, 1, 0, 2818055, 1, 0, 2818056, 0, 0, 2818057, 0, 0, 2818058, 0, 0, 2818059, 0, 0, 2818060, 0, 0, 2818061, 0, 0, 2818062, 0, 0, 2818063, 0, 0, 2818064, 0, 0, 2818066, 0, 0, 2818067, 1, 0, 2818068, 1, 0, 2818069, 1, 0, 2818070, 1, 0, 2818071, 1, 0, 2818072, 1, 0, 2818073, 1, 0, 2818074, 1, 0, 2818075, 1, 0, 2818076, 1, 0, 2818077, 1, 0, 2818078, 1, 0, 2818079, 0, 0, 2818081, 0, 0, 2818086, 0, 0, 2818088, 0, 0, 2818091, 0, 0, 2818094, 0, 0, 2818096, 0, 0, 2818098, 0, 0, 2818100, 0, 0, 2818102, 0, 0, 2818103, 0, 0, 2818104, 0, 0, 2818105, 0, 0, 2818106, 0, 0, 2818107, 0, 0, 2818108, 1, 0, 2818109, 1, 0, 2818110, 1, 0, 2818111, 0, 0, 2818112, 0, 0, 2818113, 0, 0, 2818114, 0, 0, 2818115, 0, 0, 2818116, 0, 0, 2818117, 0, 0, 2818118, 0, 0, 2818122, 0, 0, 2818123, 0, 0, 2818124, 0, 0, 2818128, 0, 0, 2818129, 0, 0, 2818130, 0, 0, 2818134, 0, 0, 2818135, 0, 0, 2818136, 0, 0, 2818140, 0, 0, 2818141, 0, 0, 2818142, 0, 0, 2818143, 0, 0, 2818147, 0, 0, 2818151, 0, 0, 2883584, 0, 0, 2883600, 0, 0, 2883602, 0, 0, 2883615, 0, 0, 2883617, 0, 0, 2883622, 0, 0, 2883624, 0, 0, 2883627, 0, 0, 2883630, 0, 0, 2883632, 0, 0, 2883634, 0, 0, 2883636, 0, 0, 2883647, 0, 0, 2883683, 0, 0, 2883687, 0, 0, 2949120, 0, 0, 2949136, 0, 0, 2949138, 0, 0, 2949151, 0, 0, 2949153, 0, 0, 2949158, 0, 0, 2949160, 0, 0, 2949163, 0, 0, 2949166, 0, 0, 2949168, 0, 0, 2949170, 0, 0, 2949172, 0, 0, 2949183, 0, 0, 2949219, 0, 0, 2949223, 0, 0, 3014656, 0, 0, 3014657, 0, 0, 3014658, 0, 0, 3014659, 1, 0, 3014660, 1, 0, 3014661, 1, 0, 3014662, 1, 0, 3014663, 1, 0, 3014664, 0, 0, 3014665, 0, 0, 3014666, 0, 0, 3014667, 0, 0, 3014668, 0, 0, 3014669, 0, 0, 3014672, 0, 0, 3014673, 1, 0, 3014674, 0, 0, 3014675, 0, 0, 3014676, 0, 0, 3014677, 1, 0, 3014678, 1, 0, 3014679, 1, 0, 3014680, 1, 0, 3014681, 1, 0, 3014682, 0, 0, 3014683, 0, 0, 3014684, 0, 0, 3014685, 0, 0, 3014686, 0, 0, 3014687, 0, 0, 3014688, 1, 0, 3014689, 0, 0, 3014690, 0, 0, 3014691, 0, 0, 3014692, 0, 0, 3014693, 0, 0, 3014694, 0, 0, 3014696, 0, 0, 3014699, 0, 0, 3014702, 0, 0, 3014704, 0, 0, 3014706, 0, 0, 3014708, 0, 0, 3014719, 0, 0, 3014729, 2, 0, 3014730, 0, 0, 3014731, 0, 0, 3014732, 0, 0, 3014733, 3, 0, 3014735, 2, 0, 3014736, 0, 0, 3014737, 0, 0, 3014738, 0, 0, 3014739, 3, 0, 3014741, 2, 0, 3014742, 0, 0, 3014743, 0, 0, 3014744, 0, 0, 3014745, 3, 0, 3014747, 2, 0, 3014748, 0, 0, 3014749, 0, 0, 3014750, 0, 0, 3014751, 0, 0, 3014752, 3, 0, 3014754, 2, 0, 3014755, 0, 0, 3014759, 0, 0, 3080192, 0, 0, 3080205, 0, 0, 3080208, 0, 0, 3080232, 0, 0, 3080235, 0, 0, 3080238, 0, 0, 3080240, 0, 0, 3080242, 0, 0, 3080244, 0, 0, 3080245, 0, 0, 3080246, 0, 0, 3080247, 0, 0, 3080248, 0, 0, 3080249, 0, 0, 3080250, 0, 0, 3080251, 0, 0, 3080252, 0, 0, 3080253, 0, 0, 3080254, 0, 0, 3080255, 0, 0, 3080259, 0, 0, 3080260, 1, 0, 3080261, 1, 0, 3080262, 0, 0, 3080263, 0, 0, 3080265, 0, 0, 3080266, 0, 0, 3080267, 0, 0, 3080268, 0, 0, 3080269, 0, 0, 3080271, 0, 0, 3080272, 0, 0, 3080273, 0, 0, 3080274, 0, 0, 3080275, 0, 0, 3080277, 0, 0, 3080278, 0, 0, 3080279, 0, 0, 3080280, 0, 0, 3080281, 0, 0, 3080283, 0, 0, 3080284, 0, 0, 3080285, 0, 0, 3080286, 0, 0, 3080287, 0, 0, 3080288, 0, 0, 3080290, 0, 0, 3080291, 0, 0, 3080295, 0, 0, 3145728, 0, 0, 3145730, 0, 0, 3145731, 0, 0, 3145732, 0, 0, 3145733, 1, 0, 3145734, 0, 0, 3145735, 0, 0, 3145736, 0, 0, 3145737, 0, 0, 3145738, 0, 0, 3145739, 0, 0, 3145740, 1, 0, 3145741, 0, 0, 3145744, 0, 0, 3145768, 0, 0, 3145771, 0, 0, 3145774, 0, 0, 3145776, 0, 0, 3145778, 0, 0, 3145795, 0, 0, 3145798, 0, 0, 3145799, 0, 0, 3145800, 0, 0, 3145801, 0, 0, 3145802, 0, 0, 3145803, 0, 0, 3145804, 0, 0, 3145805, 0, 0, 3145806, 0, 0, 3145807, 0, 0, 3145808, 0, 0, 3145809, 0, 0, 3145810, 0, 0, 3145811, 0, 0, 3145812, 0, 0, 3145813, 0, 0, 3145814, 0, 0, 3145815, 0, 0, 3145816, 0, 0, 3145817, 0, 0, 3145818, 0, 0, 3145819, 0, 0, 3145820, 0, 0, 3145821, 0, 0, 3145822, 0, 0, 3145823, 0, 0, 3145824, 0, 0, 3145825, 0, 0, 3145826, 0, 0, 3145827, 0, 0, 3145831, 0, 0, 3211264, 0, 0, 3211266, 0, 0, 3211268, 0, 0, 3211280, 0, 0, 3211281, 0, 0, 3211282, 0, 0, 3211283, 0, 0, 3211284, 0, 0, 3211285, 1, 0, 3211286, 1, 0, 3211287, 1, 0, 3211288, 1, 0, 3211289, 1, 0, 3211290, 0, 0, 3211291, 0, 0, 3211292, 0, 0, 3211293, 0, 0, 3211294, 0, 0, 3211295, 0, 0, 3211296, 1, 0, 3211297, 0, 0, 3211298, 0, 0, 3211299, 0, 0, 3211300, 0, 0, 3211301, 0, 0, 3211302, 0, 0, 3211303, 0, 0, 3211304, 0, 0, 3211307, 0, 0, 3211310, 0, 0, 3211312, 0, 0, 3211314, 0, 0, 3211331, 0, 0, 3211334, 0, 0, 3211335, 0, 0, 3211336, 0, 0, 3211337, 0, 0, 3211338, 0, 0, 3211339, 0, 0, 3211340, 0, 0, 3211341, 0, 0, 3211342, 0, 0, 3211343, 0, 0, 3211344, 0, 0, 3211345, 0, 0, 3211346, 0, 0, 3211347, 0, 0, 3211348, 0, 0, 3211349, 0, 0, 3211350, 0, 0, 3211351, 0, 0, 3211352, 0, 0, 3211353, 0, 0, 3211354, 0, 0, 3211355, 0, 0, 3211356, 0, 0, 3211357, 0, 0, 3211358, 0, 0, 3211359, 0, 0, 3211360, 0, 0, 3211361, 0, 0, 3211362, 0, 0, 3211363, 0, 0, 3211367, 0, 0, 3276800, 0, 0, 3276802, 0, 0, 3276804, 0, 0, 3276843, 0, 0, 3276846, 0, 0, 3276848, 0, 0, 3276850, 0, 0, 3276867, 0, 0, 3276869, 0, 0, 3276870, 0, 0, 3276871, 0, 0, 3276872, 0, 0, 3276873, 0, 0, 3276874, 0, 0, 3276875, 0, 0, 3276876, 0, 0, 3276877, 0, 0, 3276878, 0, 0, 3276879, 0, 0, 3276880, 0, 0, 3276881, 0, 0, 3276882, 0, 0, 3276883, 0, 0, 3276884, 0, 0, 3276885, 0, 0, 3276886, 0, 0, 3276887, 0, 0, 3276888, 0, 0, 3276889, 0, 0, 3276890, 0, 0, 3276891, 0, 0, 3276892, 0, 0, 3276893, 0, 0, 3276894, 0, 0, 3276895, 0, 0, 3276896, 0, 0, 3276897, 0, 0, 3276898, 0, 0, 3276899, 0, 0, 3276903, 0, 0, 3342336, 0, 0, 3342338, 0, 0, 3342340, 0, 0, 3342379, 0, 0, 3342382, 0, 0, 3342384, 0, 0, 3342386, 0, 0, 3342403, 0, 0, 3342406, 0, 0, 3342407, 0, 0, 3342408, 0, 0, 3342409, 0, 0, 3342410, 0, 0, 3342411, 0, 0, 3342412, 0, 0, 3342413, 0, 0, 3342414, 0, 0, 3342415, 0, 0, 3342416, 0, 0, 3342417, 0, 0, 3342418, 0, 0, 3342419, 0, 0, 3342420, 0, 0, 3342421, 0, 0, 3342422, 0, 0, 3342423, 0, 0, 3342424, 0, 0, 3342425, 0, 0, 3342426, 0, 0, 3342427, 0, 0, 3342428, 0, 0, 3342429, 0, 0, 3342430, 0, 0, 3342431, 0, 0, 3342432, 0, 0, 3342433, 0, 0, 3342434, 0, 0, 3342435, 0, 0, 3342439, 0, 0, 3407872, 0, 0, 3407874, 0, 0, 3407876, 0, 0, 3407877, 0, 0, 3407880, 0, 0, 3407881, 0, 0, 3407882, 0, 0, 3407883, 0, 0, 3407884, 1, 0, 3407885, 0, 0, 3407886, 0, 0, 3407887, 0, 0, 3407888, 0, 0, 3407889, 0, 0, 3407890, 0, 0, 3407891, 0, 0, 3407892, 0, 0, 3407893, 0, 0, 3407894, 0, 0, 3407895, 1, 0, 3407896, 0, 0, 3407897, 0, 0, 3407898, 0, 0, 3407899, 0, 0, 3407900, 0, 0, 3407901, 0, 0, 3407902, 0, 0, 3407903, 0, 0, 3407904, 1, 0, 3407905, 0, 0, 3407906, 0, 0, 3407907, 0, 0, 3407908, 0, 0, 3407909, 0, 0, 3407910, 0, 0, 3407911, 0, 0, 3407912, 0, 0, 3407913, 1, 0, 3407914, 1, 0, 3407915, 0, 0, 3407918, 0, 0, 3407920, 0, 0, 3407922, 0, 0, 3407923, 0, 0, 3407924, 0, 0, 3407925, 0, 0, 3407929, 0, 0, 3407930, 0, 0, 3407931, 0, 0, 3407932, 0, 0, 3407936, 0, 0, 3407937, 0, 0, 3407938, 0, 0, 3407939, 0, 0, 3407942, 0, 0, 3407943, 0, 0, 3407944, 0, 0, 3407945, 0, 0, 3407946, 0, 0, 3407947, 0, 0, 3407948, 0, 0, 3407949, 0, 0, 3407950, 0, 0, 3407951, 0, 0, 3407952, 0, 0, 3407953, 0, 0, 3407954, 0, 0, 3407955, 0, 0, 3407956, 0, 0, 3407957, 0, 0, 3407958, 0, 0, 3407959, 0, 0, 3407960, 0, 0, 3407961, 0, 0, 3407962, 0, 0, 3407963, 0, 0, 3407964, 0, 0, 3407965, 0, 0, 3407966, 0, 0, 3407967, 0, 0, 3407968, 0, 0, 3407969, 0, 0, 3407970, 0, 0, 3407971, 0, 0, 3407975, 0, 0, 3473408, 0, 0, 3473410, 0, 0, 3473421, 0, 0, 3473430, 0, 0, 3473432, 0, 0, 3473439, 0, 0, 3473448, 0, 0, 3473451, 0, 0, 3473454, 0, 0, 3473456, 0, 0, 3473458, 0, 0, 3473475, 0, 0, 3473478, 0, 0, 3473479, 0, 0, 3473480, 0, 0, 3473481, 0, 0, 3473482, 0, 0, 3473483, 0, 0, 3473484, 0, 0, 3473485, 0, 0, 3473486, 0, 0, 3473487, 0, 0, 3473488, 0, 0, 3473489, 0, 0, 3473490, 0, 0, 3473491, 0, 0, 3473492, 0, 0, 3473493, 0, 0, 3473494, 0, 0, 3473495, 0, 0, 3473496, 0, 0, 3473497, 0, 0, 3473498, 0, 0, 3473499, 0, 0, 3473500, 0, 0, 3473501, 0, 0, 3473502, 0, 0, 3473503, 0, 0, 3473504, 0, 0, 3473505, 0, 0, 3473506, 0, 0, 3473507, 0, 0, 3473511, 0, 0, 3538944, 0, 0, 3538946, 0, 0, 3538948, 0, 0, 3538949, 0, 0, 3538950, 0, 0, 3538951, 0, 0, 3538952, 0, 0, 3538953, 0, 0, 3538954, 0, 0, 3538955, 0, 0, 3538956, 1, 0, 3538957, 0, 0, 3538958, 0, 0, 3538959, 0, 0, 3538960, 0, 0, 3538961, 0, 0, 3538962, 0, 0, 3538963, 0, 0, 3538964, 0, 0, 3538965, 0, 0, 3538966, 0, 0, 3538967, 1, 0, 3538968, 0, 0, 3538969, 0, 0, 3538970, 0, 0, 3538971, 0, 0, 3538972, 0, 0, 3538973, 0, 0, 3538974, 0, 0, 3538975, 0, 0, 3538984, 0, 0, 3538987, 0, 0, 3538990, 0, 0, 3538992, 0, 0, 3538994, 0, 0, 3539011, 0, 0, 3539014, 0, 0, 3539015, 0, 0, 3539016, 0, 0, 3539017, 0, 0, 3539018, 0, 0, 3539019, 0, 0, 3539020, 0, 0, 3539021, 0, 0, 3539022, 0, 0, 3539023, 0, 0, 3539024, 0, 0, 3539025, 0, 0, 3539026, 0, 0, 3539027, 0, 0, 3539028, 0, 0, 3539029, 0, 0, 3539030, 0, 0, 3539031, 0, 0, 3539032, 0, 0, 3539033, 0, 0, 3539034, 0, 0, 3539035, 0, 0, 3539036, 0, 0, 3539037, 0, 0, 3539038, 0, 0, 3539039, 0, 0, 3539040, 0, 0, 3539041, 0, 0, 3539042, 0, 0, 3539043, 0, 0, 3539047, 0, 0, 3604480, 0, 0, 3604482, 0, 0, 3604484, 0, 0, 3604511, 0, 0, 3604512, 1, 0, 3604513, 1, 0, 3604514, 1, 0, 3604515, 1, 0, 3604516, 1, 0, 3604517, 1, 0, 3604518, 1, 0, 3604519, 1, 0, 3604520, 0, 0, 3604523, 0, 0, 3604526, 0, 0, 3604528, 0, 0, 3604530, 0, 0, 3604547, 0, 0, 3604550, 0, 0, 3604551, 0, 0, 3604552, 0, 0, 3604553, 0, 0, 3604554, 0, 0, 3604555, 0, 0, 3604556, 0, 0, 3604557, 0, 0, 3604558, 0, 0, 3604559, 0, 0, 3604560, 0, 0, 3604561, 0, 0, 3604562, 0, 0, 3604563, 0, 0, 3604564, 0, 0, 3604565, 0, 0, 3604566, 0, 0, 3604567, 0, 0, 3604568, 0, 0, 3604569, 0, 0, 3604570, 0, 0, 3604571, 0, 0, 3604572, 0, 0, 3604573, 0, 0, 3604574, 0, 0, 3604575, 0, 0, 3604576, 0, 0, 3604577, 0, 0, 3604578, 0, 0, 3604579, 0, 0, 3604583, 0, 0, 3670016, 0, 0, 3670018, 0, 0, 3670020, 0, 0, 3670047, 0, 0, 3670056, 0, 0, 3670059, 0, 0, 3670062, 0, 0, 3670064, 0, 0, 3670066, 0, 0, 3670083, 0, 0, 3670086, 0, 0, 3670087, 0, 0, 3670088, 0, 0, 3670089, 0, 0, 3670090, 0, 0, 3670091, 0, 0, 3670092, 0, 0, 3670093, 0, 0, 3670094, 0, 0, 3670095, 0, 0, 3670096, 0, 0, 3670097, 0, 0, 3670098, 0, 0, 3670099, 0, 0, 3670100, 0, 0, 3670101, 0, 0, 3670102, 0, 0, 3670103, 0, 0, 3670104, 0, 0, 3670105, 0, 0, 3670106, 0, 0, 3670107, 0, 0, 3670108, 0, 0, 3670109, 0, 0, 3670110, 0, 0, 3670111, 0, 0, 3670112, 0, 0, 3670113, 0, 0, 3670114, 0, 0, 3670115, 0, 0, 3670119, 0, 0, 3735552, 0, 0, 3735554, 0, 0, 3735583, 0, 0, 3735586, 0, 0, 3735589, 0, 0, 3735592, 0, 0, 3735595, 0, 0, 3735596, 0, 0, 3735597, 0, 0, 3735598, 0, 0, 3735600, 0, 0, 3735602, 0, 0, 3735619, 0, 0, 3735655, 0, 0, 3801088, 0, 0, 3801090, 0, 0, 3801091, 0, 0, 3801092, 0, 0, 3801093, 0, 0, 3801094, 0, 0, 3801095, 0, 0, 3801096, 0, 0, 3801097, 0, 0, 3801098, 0, 0, 3801099, 0, 0, 3801100, 0, 0, 3801101, 0, 0, 3801102, 0, 0, 3801103, 0, 0, 3801104, 0, 0, 3801105, 0, 0, 3801106, 0, 0, 3801107, 0, 0, 3801108, 0, 0, 3801109, 0, 0, 3801110, 0, 0, 3801111, 0, 0, 3801112, 0, 0, 3801113, 0, 0, 3801114, 0, 0, 3801115, 0, 0, 3801116, 0, 0, 3801117, 0, 0, 3801118, 0, 0, 3801119, 0, 0, 3801128, 0, 0, 3801136, 0, 0, 3801138, 0, 0, 3801155, 0, 0, 3801191, 0, 0, 3801192, 0, 0, 3801193, 0, 0, 3801194, 0, 0, 3801195, 0, 0, 3801196, 0, 0, 3866624, 0, 0, 3866655, 0, 0, 3866656, 1, 0, 3866657, 1, 0, 3866658, 1, 0, 3866659, 1, 0, 3866660, 1, 0, 3866661, 1, 0, 3866662, 1, 0, 3866663, 1, 0, 3866664, 0, 0, 3866665, 0, 0, 3866666, 0, 0, 3866667, 0, 0, 3866668, 0, 0, 3866669, 0, 0, 3866670, 0, 0, 3866671, 0, 0, 3866672, 0, 0, 3866674, 0, 0, 3866691, 0, 0, 3866703, 2, 0, 3866704, 0, 0, 3866705, 0, 0, 3866706, 3, 0, 3866717, 2, 0, 3866718, 0, 0, 3866719, 0, 0, 3866720, 3, 0, 3866732, 0, 0, 3932160, 0, 0, 3932161, 0, 0, 3932162, 0, 0, 3932163, 0, 0, 3932164, 0, 0, 3932165, 0, 0, 3932166, 0, 0, 3932167, 0, 0, 3932168, 0, 0, 3932169, 0, 0, 3932170, 0, 0, 3932171, 0, 0, 3932172, 0, 0, 3932173, 0, 0, 3932174, 0, 0, 3932175, 0, 0, 3932176, 0, 0, 3932177, 0, 0, 3932178, 0, 0, 3932179, 0, 0, 3932180, 0, 0, 3932181, 0, 0, 3932182, 0, 0, 3932183, 0, 0, 3932184, 0, 0, 3932185, 0, 0, 3932186, 0, 0, 3932187, 3, 0, 3932227, 0, 0, 3932232, 2, 0, 3932233, 0, 0, 3932234, 0, 0, 3932235, 3, 0, 3932238, 2, 0, 3932239, 0, 0, 3932240, 0, 0, 3932241, 0, 0, 3932242, 0, 0, 3932243, 3, 0, 3932246, 2, 0, 3932247, 0, 0, 3932248, 0, 0, 3932249, 3, 0, 3932252, 2, 0, 3932253, 0, 0, 3932254, 0, 0, 3932255, 0, 0, 3932256, 0, 0, 3932257, 3, 0, 3932268, 0, 0, 3997696, 0, 0, 3997697, 0, 0, 3997698, 0, 0, 3997699, 0, 0, 3997700, 0, 0, 3997701, 0, 0, 3997702, 0, 0, 3997703, 0, 0, 3997704, 0, 0, 3997705, 0, 0, 3997706, 0, 0, 3997707, 0, 0, 3997708, 0, 0, 3997709, 0, 0, 3997710, 0, 0, 3997711, 0, 0, 3997712, 0, 0, 3997713, 0, 0, 3997714, 0, 0, 3997715, 0, 0, 3997716, 0, 0, 3997717, 0, 0, 3997718, 0, 0, 3997719, 0, 0, 3997720, 0, 0, 3997721, 0, 0, 3997722, 0, 0, 3997723, 0, 0, 3997724, 0, 0, 3997725, 0, 0, 3997726, 0, 0, 3997727, 0, 0, 3997728, 0, 0, 3997729, 0, 0, 3997730, 0, 0, 3997731, 0, 0, 3997732, 0, 0, 3997733, 0, 0, 3997734, 0, 0, 3997735, 0, 0, 3997736, 0, 0, 3997737, 0, 0, 3997738, 0, 0, 3997739, 0, 0, 3997740, 0, 0, 3997741, 0, 0, 3997742, 0, 0, 3997743, 0, 0, 3997744, 0, 0, 3997745, 0, 0, 3997746, 0, 0, 3997747, 0, 0, 3997748, 0, 0, 3997749, 0, 0, 3997750, 0, 0, 3997751, 0, 0, 3997752, 0, 0, 3997753, 0, 0, 3997754, 0, 0, 3997755, 0, 0, 3997756, 0, 0, 3997757, 0, 0, 3997758, 0, 0, 3997759, 0, 0, 3997760, 0, 0, 3997761, 0, 0, 3997762, 0, 0, 3997763, 0, 0, 3997764, 0, 0, 3997765, 0, 0, 3997766, 0, 0, 3997767, 0, 0, 3997768, 0, 0, 3997769, 0, 0, 3997770, 0, 0, 3997771, 0, 0, 3997772, 0, 0, 3997773, 0, 0, 3997774, 0, 0, 3997775, 0, 0, 3997776, 0, 0, 3997777, 0, 0, 3997778, 0, 0, 3997779, 0, 0, 3997780, 0, 0, 3997781, 0, 0, 3997782, 0, 0, 3997783, 0, 0, 3997784, 0, 0, 3997785, 0, 0, 3997786, 0, 0, 3997787, 0, 0, 3997788, 0, 0, 3997789, 0, 0, 3997790, 0, 0, 3997791, 0, 0, 3997792, 0, 0, 3997793, 0, 0, 3997794, 0, 0, 3997795, 0, 0, 3997796, 0, 0, 3997797, 0, 0, 3997798, 0, 0, 3997799, 0, 0, 3997800, 0, 0, 3997801, 0, 0, 3997802, 0, 0, 3997803, 0, 0, 3997804, 0, 0 ) + +[node name="Music" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 8 ) +volume_db = -14.0 +pitch_scale = 0.88 +script = ExtResource( 9 ) + +[node name="Springs" type="Node" parent="."] + +[node name="SpringWeak" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 496, 320 ) + +[node name="SpringWeak2" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 752, 960 ) + +[node name="SpringWeak4" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1072, 800 ) + +[node name="SpringWeak60" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1008, 672 ) + +[node name="SpringWeak5" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1040, 1024 ) + +[node name="SpringWeak36" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2032, 480 ) + +[node name="SpringWeak37" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2288, 320 ) + +[node name="SpringWeak38" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2064, 672 ) + +[node name="SpringWeak58" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1328, 832 ) + +[node name="SpringWeak39" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2224, 672 ) + +[node name="SpringWeak40" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2512, 672 ) + +[node name="SpringWeak41" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2576, 672 ) + +[node name="SpringWeak55" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2000, 1504 ) + +[node name="SpringWeak57" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2224, 1600 ) + +[node name="SpringWeak59" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2128, 1664 ) + +[node name="SpringWeak42" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2608, 672 ) + +[node name="SpringWeak43" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2672, 608 ) + +[node name="SpringWeak44" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2704, 608 ) + +[node name="SpringWeak45" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2768, 544 ) + +[node name="SpringWeak51" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 3024, 416 ) + +[node name="SpringWeak53" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2928, 864 ) + +[node name="SpringWeak52" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2992, 416 ) + +[node name="SpringWeak54" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2992, 512 ) + +[node name="SpringWeak56" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 3024, 512 ) + +[node name="SpringWeak46" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2800, 544 ) + +[node name="SpringWeak47" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2672, 480 ) + +[node name="SpringWeak48" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2704, 480 ) + +[node name="SpringWeak49" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2576, 416 ) + +[node name="SpringWeak50" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 2608, 416 ) + +[node name="SpringWeak22" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 848, 1184 ) + +[node name="SpringWeak23" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 880, 1184 ) + +[node name="SpringWeak24" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 912, 1184 ) + +[node name="SpringWeak25" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 944, 1184 ) + +[node name="SpringWeak26" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 976, 1184 ) + +[node name="SpringWeak27" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1008, 1184 ) + +[node name="SpringWeak35" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 592, 1184 ) + +[node name="SpringWeak61" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 368, 1280 ) + +[node name="SpringWeak34" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 624, 1184 ) + +[node name="SpringWeak33" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 656, 1184 ) + +[node name="SpringWeak32" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 688, 1184 ) + +[node name="SpringWeak31" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 720, 1184 ) + +[node name="SpringWeak30" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 752, 1184 ) + +[node name="SpringWeak28" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1072, 1184 ) + +[node name="SpringWeak29" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1104, 1184 ) + +[node name="SpringWeak6" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 624, 1472 ) + +[node name="SpringWeak21" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 560, 1568 ) + +[node name="SpringWeak7" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 656, 1472 ) + +[node name="SpringWeak8" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 688, 1472 ) + +[node name="SpringWeak9" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 720, 1472 ) + +[node name="SpringWeak10" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 752, 1472 ) + +[node name="SpringWeak18" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 624, 1376 ) + +[node name="SpringWeak19" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 976, 1376 ) + +[node name="SpringWeak20" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 800, 1376 ) + +[node name="SpringWeak11" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 784, 1472 ) + +[node name="SpringWeak12" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 816, 1472 ) + +[node name="SpringWeak13" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 848, 1472 ) + +[node name="SpringWeak14" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 880, 1472 ) + +[node name="SpringWeak15" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 912, 1472 ) + +[node name="SpringWeak16" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 944, 1472 ) + +[node name="SpringWeak17" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 976, 1472 ) + +[node name="SpringWeak3" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 368, 960 ) + +[node name="Spring" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 560, 416 ) + +[node name="Spring3" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 688, 512 ) + +[node name="Spring5" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1168, 352 ) + +[node name="Spring6" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1008, 320 ) + +[node name="Spring7" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1008, 576 ) + +[node name="Spring24" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1520, 672 ) + +[node name="Spring25" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1936, 352 ) + +[node name="Spring26" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2512, 576 ) + +[node name="Spring37" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2448, 288 ) + +[node name="Spring36" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1840, 736 ) + +[node name="Spring27" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2160, 960 ) + +[node name="Spring29" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2320, 1536 ) + +[node name="Spring30" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2192, 1952 ) + +[node name="Spring31" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2512, 1536 ) + +[node name="Spring32" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2704, 1536 ) + +[node name="Spring33" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2896, 1536 ) + +[node name="Spring34" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 3120, 1536 ) + +[node name="Spring35" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 3120, 1184 ) + +[node name="Spring28" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 2480, 960 ) + +[node name="Spring2" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 368, 608 ) + +[node name="Spring4" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 368, 832 ) + +[node name="Spring8" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 464, 832 ) + +[node name="Spring39" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 464, 704 ) + +[node name="Spring9" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 176, 1664 ) + +[node name="Spring10" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 400, 1856 ) + +[node name="Spring11" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 752, 1856 ) + +[node name="Spring12" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 752, 1728 ) + +[node name="Spring21" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1040, 1760 ) + +[node name="Spring22" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1360, 1664 ) + +[node name="Spring23" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1328, 1888 ) + +[node name="Spring13" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 784, 1280 ) + +[node name="Spring15" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 560, 1280 ) + +[node name="Spring38" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 464, 1120 ) + +[node name="Spring17" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 560, 1472 ) + +[node name="Spring18" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1040, 1472 ) + +[node name="Spring19" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1040, 1344 ) + +[node name="Spring16" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 560, 1184 ) + +[node name="Spring14" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 816, 1280 ) + +[node name="Secret" type="Node" parent="."] + +[node name="Coin" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 832, 951 ) + +[node name="Coin3" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 1584, 340 ) + +[node name="Coin9" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 2064, 848 ) + +[node name="Coin10" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 1744, 528 ) + +[node name="Coin11" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 2864, 528 ) + +[node name="Coin12" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 3152, 704 ) + +[node name="Coin8" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 368, 240 ) + +[node name="Coin4" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 2128, 1936 ) + +[node name="Coin6" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 1264, 1744 ) + +[node name="Coin7" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 1776, 944 ) + +[node name="Coin5" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 2256, 791 ) + +[node name="Coin2" parent="Secret" instance=ExtResource( 12 )] +position = Vector2( 464, 680 ) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] +scroll_ignore_camera_zoom = true + +[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.1, 0.1 ) +motion_offset = Vector2( -100, -50 ) +motion_mirroring = Vector2( 320, 320 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"] +texture = ExtResource( 3 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 320, 320 ) + +[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.2, 0.2 ) +motion_mirroring = Vector2( 320, 320 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"] +modulate = Color( 0.741176, 0.6, 0.972549, 0.713726 ) +texture = ExtResource( 3 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 320, 320 ) + +[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.4, 0.4 ) +motion_offset = Vector2( 256, -24 ) +motion_mirroring = Vector2( 320, 320 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"] +modulate = Color( 0.741176, 0.6, 0.972549, 0.329412 ) +texture = ExtResource( 3 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 320, 320 ) + +[node name="InventoryItemPickup" parent="." instance=ExtResource( 6 )] +position = Vector2( 79, 1519 ) +item = "KeyYellow" + +[node name="TriggerResults" parent="." instance=ExtResource( 11 )] +position = Vector2( 3320, 1912 ) +scale = Vector2( 1.17911, 2.77211 ) + +[node name="Player" parent="." instance=ExtResource( 10 )] +position = Vector2( 342.897, 351.981 ) +[connection signal="touched" from="TriggerResults" to="Music" method="_on_TriggerResults_touched"] diff --git a/src/Level/Level.gd b/src/Level/Level.gd new file mode 100644 index 0000000..dcc81f0 --- /dev/null +++ b/src/Level/Level.gd @@ -0,0 +1,18 @@ +extends Node2D + +const LIMIT_LEFT = 0 +const LIMIT_TOP = 0 +const LIMIT_RIGHT = 1376 +const LIMIT_BOTTOM = 416 + +func _ready(): + global.hud.run_clock() + $Music.play() + for child in get_children(): + if child is Player: + var camera = child.get_node("Camera") + camera.limit_left = LIMIT_LEFT + camera.limit_top = LIMIT_TOP + camera.limit_right = LIMIT_RIGHT + camera.limit_bottom = LIMIT_BOTTOM + $Springs/AnimationPlayer.play("Nueva Animación") diff --git a/src/Level/Level.tscn b/src/Level/Level.tscn new file mode 100644 index 0000000..0112074 --- /dev/null +++ b/src/Level/Level.tscn @@ -0,0 +1,230 @@ +[gd_scene load_steps=11 format=2] + +[ext_resource path="res://assets/art/tileset/tiles_gplexian.tres" type="TileSet" id=1] +[ext_resource path="res://src/Objects/SpringWeak.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/art/background/number.png" type="Texture" id=3] +[ext_resource path="res://src/Objects/Spring.tscn" type="PackedScene" id=4] +[ext_resource path="res://src/Level/Level.gd" type="Script" id=5] +[ext_resource path="res://src/Objects/LockedDoor.tscn" type="PackedScene" id=7] +[ext_resource path="res://assets/audio/music/44 - Holiday.ogg" type="AudioStream" id=8] +[ext_resource path="res://src/Level/Music.gd" type="Script" id=9] +[ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=10] + +[sub_resource type="Animation" id=1] +resource_name = "Nueva Animación" +length = 2.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Spring:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 156.235, 354.42 ), Vector2( 262.747, 382.15 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Spring:rotation_degrees") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 65.4156, 0.0 ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("SpringWeak5:rotation_degrees") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ -360.0, 0.0 ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("SpringWeak5:scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0, 2 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 1.96, 1.96 ), Vector2( 1, 1 ) ] +} + +[node name="Test" type="Node2D"] +pause_mode = 1 +script = ExtResource( 5 ) + +[node name="LockedDoor" parent="." instance=ExtResource( 7 )] +position = Vector2( 3296, 1888 ) + +[node name="TileMap2" type="TileMap" parent="."] +modulate = Color( 0.482353, 0.407843, 0.560784, 1 ) +tile_set = ExtResource( 1 ) +cell_size = Vector2( 32, 32 ) +format = 1 + +[node name="TileMap" type="TileMap" parent="."] +tile_set = ExtResource( 1 ) +cell_size = Vector2( 32, 32 ) +collision_layer = 16 +collision_mask = 0 +format = 1 +tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 21, 0, 0, 22, 0, 0, 23, 0, 0, 24, 0, 0, 25, 0, 0, 26, 0, 0, 27, 0, 0, 28, 0, 0, 29, 0, 0, 30, 0, 0, 31, 0, 0, 32, 0, 0, 33, 0, 0, 34, 0, 0, 35, 0, 0, 36, 0, 0, 37, 0, 0, 38, 0, 0, 39, 0, 0, 40, 0, 0, 41, 0, 0, 42, 0, 0, 65536, 0, 0, 65578, 0, 0, 131072, 0, 0, 131114, 0, 0, 196608, 0, 0, 196650, 0, 0, 262144, 0, 0, 262186, 0, 0, 327680, 0, 0, 327722, 0, 0, 393216, 0, 0, 393258, 0, 0, 458752, 0, 0, 458794, 0, 0, 524288, 0, 0, 524330, 0, 0, 589824, 0, 0, 589866, 0, 0, 655360, 0, 0, 655402, 0, 0, 720896, 0, 0, 720938, 0, 0, 786432, 0, 0, 786433, 0, 0, 786434, 0, 0, 786435, 0, 0, 786436, 0, 0, 786437, 0, 0, 786438, 0, 0, 786439, 0, 0, 786440, 0, 0, 786441, 0, 0, 786442, 0, 0, 786443, 0, 0, 786444, 0, 0, 786445, 0, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 0, 0, 786450, 0, 0, 786451, 0, 0, 786452, 0, 0, 786453, 0, 0, 786454, 0, 0, 786455, 0, 0, 786456, 0, 0, 786457, 0, 0, 786458, 0, 0, 786459, 0, 0, 786460, 0, 0, 786461, 0, 0, 786462, 0, 0, 786463, 0, 0, 786464, 0, 0, 786465, 0, 0, 786466, 0, 0, 786467, 0, 0, 786468, 0, 0, 786469, 0, 0, 786470, 0, 0, 786471, 0, 0, 786472, 0, 0, 786473, 0, 0, 786474, 0, 0 ) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] +scroll_ignore_camera_zoom = true + +[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.1, 0.1 ) +motion_offset = Vector2( -100, -50 ) +motion_mirroring = Vector2( 320, 320 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"] +texture = ExtResource( 3 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 320, 320 ) +__meta__ = { +"_edit_group_": true +} + +[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.2, 0.2 ) +motion_mirroring = Vector2( 320, 320 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"] +modulate = Color( 0.741176, 0.6, 0.972549, 0.713726 ) +texture = ExtResource( 3 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 320, 320 ) +__meta__ = { +"_edit_group_": true +} + +[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.4, 0.4 ) +motion_offset = Vector2( 256, -24 ) +motion_mirroring = Vector2( 320, 320 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"] +modulate = Color( 0.741176, 0.6, 0.972549, 0.329412 ) +texture = ExtResource( 3 ) +centered = false +region_enabled = true +region_rect = Rect2( 0, 0, 320, 320 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Springs" type="Node" parent="."] + +[node name="Spring" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 156.235, 354.42 ) +rotation = 1.14172 + +[node name="Spring2" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 502.458, 385.315 ) +scale = Vector2( 2.07638, 2.07638 ) + +[node name="Spring7" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1.76728, 342.24 ) +rotation = 1.32545 +scale = Vector2( 3.32238, 3.20387 ) + +[node name="Spring9" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 1318.61, 37.5164 ) +rotation = 3.14159 +scale = Vector2( 3.32238, 3.20387 ) + +[node name="Spring5" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 415.589, 382.881 ) +scale = Vector2( 0.497401, 0.497401 ) + +[node name="Spring8" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 354.931, 384.023 ) +scale = Vector2( 0.186014, 0.186014 ) + +[node name="Spring6" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 449.801, 383.856 ) +scale = Vector2( 0.815439, 0.815439 ) + +[node name="Spring3" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 303.535, 381.986 ) +rotation = 5.2487 + +[node name="Spring4" parent="Springs" instance=ExtResource( 4 )] +position = Vector2( 374.265, 84.4751 ) +rotation = 3.25579 + +[node name="SpringWeak" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 393.729, 384.39 ) + +[node name="SpringWeak5" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 774.063, 305.446 ) +rotation = -6.28319 +scale = Vector2( 1.96, 1.96 ) + +[node name="SpringWeak6" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 36.0806, 382.88 ) +rotation = 1.30903 +scale = Vector2( 3.12, 3.12 ) + +[node name="SpringWeak8" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 723.597, 386.502 ) +rotation = 0.567022 +scale = Vector2( 2.4635, 2.4635 ) + +[node name="SpringWeak7" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 1346.12, 377.438 ) +rotation = -1.10788 +scale = Vector2( 1.5, 1.5 ) + +[node name="SpringWeak2" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 469.222, 383.778 ) +scale = Vector2( 0.800015, 0.800015 ) + +[node name="SpringWeak3" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 432.571, 384.126 ) +scale = Vector2( 0.520015, 0.520015 ) + +[node name="SpringWeak4" parent="Springs" instance=ExtResource( 2 )] +position = Vector2( 373.578, 383.984 ) +scale = Vector2( 0.187345, 0.187345 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Springs"] +playback_speed = 0.5 +"anims/Nueva Animación" = SubResource( 1 ) + +[node name="Secret" type="Node" parent="."] + +[node name="Music" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 8 ) +volume_db = -80.0 +pitch_scale = 0.94 +script = ExtResource( 9 ) + +[node name="Player" parent="." instance=ExtResource( 10 )] +position = Vector2( 684.897, 365.981 ) diff --git a/src/Level/Music.gd b/src/Level/Music.gd new file mode 100644 index 0000000..b7d5079 --- /dev/null +++ b/src/Level/Music.gd @@ -0,0 +1,4 @@ +extends AudioStreamPlayer + +func _on_TriggerResults_touched(): + stop() diff --git a/src/Level/Test2.tscn b/src/Level/Test2.tscn new file mode 100644 index 0000000..e26a1b7 --- /dev/null +++ b/src/Level/Test2.tscn @@ -0,0 +1,432 @@ +[gd_scene load_steps=15 format=2] + +[ext_resource path="res://src/Objects/Spring.tscn" type="PackedScene" id=1] +[ext_resource path="res://assets/art/background/bgTrash.png" type="Texture" id=2] +[ext_resource path="res://assets/audio/music/44 - Holiday.ogg" type="AudioStream" id=3] +[ext_resource path="res://assets/art/background/bgPurpleMountains.png" type="Texture" id=4] +[ext_resource path="res://assets/art/background/bgBlue.png" type="Texture" id=5] +[ext_resource path="res://src/Level/Music.gd" type="Script" id=6] +[ext_resource path="res://assets/art/tileset/tiles_gplexian.tres" type="TileSet" id=7] +[ext_resource path="res://src/Level/Googolplexian.gd" type="Script" id=8] +[ext_resource path="res://src/Objects/SpringWeak.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/Objects/TriggerResults.tscn" type="PackedScene" id=10] +[ext_resource path="res://src/Objects/Coin.tscn" type="PackedScene" id=11] +[ext_resource path="res://src/Objects/LockedDoor.tscn" type="PackedScene" id=12] +[ext_resource path="res://src/Objects/InventoryItemPickup.tscn" type="PackedScene" id=13] +[ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=14] + +[node name="Googolplexian" type="Node2D"] +pause_mode = 1 +script = ExtResource( 8 ) + +[node name="LockedDoor" parent="." instance=ExtResource( 12 )] +position = Vector2( 3296, 1888 ) + +[node name="TileMap2" type="TileMap" parent="."] +tile_set = ExtResource( 7 ) +cell_size = Vector2( 32, 32 ) +format = 1 +tile_data = PoolIntArray( 524331, 1, 0, 589907, 1, 0, 1638425, 1, 0, 1638427, 1, 0, 1966146, 1, 0, 1966149, 1, 0, 1966152, 1, 0, 1966155, 1, 0, 1966157, 1, 0, 2293840, 1, 0, 2293842, 1, 0, 2293846, 1, 0, 2293848, 1, 0 ) + +[node name="TileMap" type="TileMap" parent="."] +tile_set = ExtResource( 7 ) +cell_size = Vector2( 32, 32 ) +collision_layer = 16 +collision_mask = 0 +format = 1 +tile_data = PoolIntArray( -196608, 0, 0, -196526, 4, 0, -196525, 0, 0, -196524, 3, 0, -196522, 4, 0, -196521, 0, 0, -196520, 3, 0, -196514, 4, 0, -196513, 0, 0, -196512, 0, 0, -196511, 0, 0, -196510, 0, 0, -196509, 0, 0, -196508, 0, 0, -196507, 0, 0, -196506, 0, 0, -196505, 0, 0, -131072, 0, 0, -130989, 4, 0, -130988, 0, 0, -130987, 3, 0, -130985, 4, 0, -130984, 0, 0, -130983, 3, 0, -130977, 4, 0, -130976, 0, 0, -130975, 0, 0, -130974, 0, 0, -130973, 0, 0, -130972, 0, 0, -130971, 0, 0, -130970, 0, 0, -130969, 0, 0, -65536, 0, 0, -65452, 4, 0, -65451, 0, 0, -65450, 3, 0, -65448, 4, 0, -65447, 0, 0, -65446, 3, 0, -65440, 4, 0, -65439, 0, 0, -65438, 0, 0, -65437, 0, 0, -65436, 0, 0, -65435, 0, 0, -65434, 0, 0, -65433, 0, 0, 0, 0, 0, 85, 4, 0, 86, 0, 0, 87, 3, 0, 89, 4, 0, 90, 0, 0, 91, 3, 0, 97, 4, 0, 98, 0, 0, 99, 0, 0, 100, 0, 0, 101, 0, 0, 102, 0, 0, 103, 0, 0, 65536, 0, 0, 65540, 2, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 3, 0, 65571, 2, 0, 65572, 0, 0, 65573, 0, 0, 65574, 0, 0, 65575, 0, 0, 65576, 0, 0, 65577, 0, 0, 65578, 3, 0, 65622, 4, 0, 65623, 0, 0, 65624, 3, 0, 65626, 4, 0, 65627, 0, 0, 65628, 3, 0, 65634, 4, 0, 65635, 0, 0, 65636, 0, 0, 65637, 0, 0, 65638, 0, 0, 65639, 0, 0, 131072, 0, 0, 131075, 2, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 131090, 0, 0, 131091, 0, 0, 131092, 0, 0, 131093, 3, 0, 131106, 2, 0, 131107, 0, 0, 131108, 0, 0, 131109, 0, 0, 131110, 0, 0, 131111, 0, 0, 131112, 0, 0, 131113, 0, 0, 131114, 0, 0, 131137, 2, 0, 131138, 0, 0, 131139, 0, 0, 131140, 0, 0, 131141, 3, 0, 131150, 2, 0, 131151, 0, 0, 131152, 0, 0, 131153, 0, 0, 131154, 3, 0, 131159, 4, 0, 131160, 0, 0, 131161, 3, 0, 131163, 4, 0, 131164, 0, 0, 131165, 3, 0, 131171, 4, 0, 131172, 0, 0, 131173, 0, 0, 131174, 0, 0, 131175, 0, 0, 196608, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196626, 0, 0, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 0, 0, 196631, 0, 0, 196632, 0, 0, 196633, 0, 0, 196634, 0, 0, 196635, 0, 0, 196636, 0, 0, 196637, 0, 0, 196638, 1, 0, 196639, 1, 0, 196640, 1, 0, 196641, 0, 0, 196642, 0, 0, 196650, 0, 0, 196660, 2, 0, 196661, 0, 0, 196662, 0, 0, 196663, 0, 0, 196664, 0, 0, 196665, 0, 0, 196666, 0, 0, 196667, 0, 0, 196668, 1, 0, 196669, 1, 0, 196670, 1, 0, 196671, 1, 0, 196672, 0, 0, 196673, 0, 0, 196674, 0, 0, 196675, 0, 0, 196676, 0, 0, 196677, 0, 0, 196678, 0, 0, 196679, 1, 0, 196680, 1, 0, 196681, 1, 0, 196682, 1, 0, 196683, 0, 0, 196684, 1, 0, 196685, 1, 0, 196686, 0, 0, 196687, 0, 0, 196688, 0, 0, 196689, 0, 0, 196690, 0, 0, 196691, 0, 0, 196692, 0, 0, 196693, 0, 0, 196694, 3, 0, 196696, 4, 0, 196697, 0, 0, 196698, 3, 0, 196700, 4, 0, 196701, 0, 0, 196702, 3, 0, 196708, 4, 0, 196709, 0, 0, 196710, 0, 0, 196711, 0, 0, 262144, 0, 0, 262147, 0, 0, 262148, 0, 0, 262149, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 0, 0, 262154, 0, 0, 262155, 0, 0, 262156, 0, 0, 262157, 0, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 262162, 0, 0, 262177, 4, 0, 262178, 0, 0, 262179, 1, 0, 262180, 1, 0, 262181, 1, 0, 262182, 1, 0, 262183, 0, 0, 262186, 0, 0, 262203, 0, 0, 262226, 4, 0, 262227, 0, 0, 262228, 3, 0, 262229, 4, 0, 262230, 0, 0, 262231, 3, 0, 262233, 4, 0, 262234, 0, 0, 262235, 3, 0, 262237, 4, 0, 262238, 0, 0, 262239, 3, 0, 262245, 4, 0, 262246, 0, 0, 262247, 0, 0, 327680, 0, 0, 327683, 0, 0, 327684, 0, 0, 327685, 0, 0, 327687, 0, 0, 327696, 0, 0, 327698, 0, 0, 327719, 0, 0, 327722, 0, 0, 327734, 2, 0, 327735, 0, 0, 327736, 0, 0, 327737, 0, 0, 327739, 0, 0, 327740, 1, 0, 327741, 1, 0, 327742, 1, 0, 327743, 1, 0, 327744, 0, 0, 327745, 0, 0, 327746, 0, 0, 327747, 0, 0, 327748, 0, 0, 327749, 0, 0, 327750, 0, 0, 327751, 1, 0, 327752, 1, 0, 327753, 1, 0, 327754, 1, 0, 327755, 0, 0, 327756, 1, 0, 327757, 1, 0, 327758, 0, 0, 327759, 0, 0, 327760, 0, 0, 327761, 3, 0, 327763, 4, 0, 327764, 0, 0, 327765, 3, 0, 327766, 4, 0, 327767, 0, 0, 327768, 3, 0, 327770, 4, 0, 327771, 0, 0, 327772, 3, 0, 327774, 4, 0, 327775, 0, 0, 327776, 3, 0, 327782, 4, 0, 327783, 0, 0, 393216, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393223, 0, 0, 393225, 0, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 393229, 1, 0, 393230, 1, 0, 393231, 1, 0, 393232, 0, 0, 393234, 0, 0, 393255, 0, 0, 393258, 0, 0, 393269, 2, 0, 393270, 0, 0, 393271, 5, 0, 393273, 0, 0, 393275, 0, 0, 393280, 0, 0, 393286, 0, 0, 393291, 0, 0, 393296, 4, 0, 393297, 0, 0, 393298, 3, 0, 393300, 4, 0, 393301, 0, 0, 393302, 3, 0, 393303, 4, 0, 393304, 0, 0, 393305, 3, 0, 393307, 4, 0, 393308, 0, 0, 393309, 3, 0, 393311, 4, 0, 393312, 0, 0, 393313, 3, 0, 393319, 0, 0, 458752, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458759, 0, 0, 458761, 0, 0, 458768, 0, 0, 458770, 0, 0, 458774, 0, 0, 458775, 0, 0, 458776, 0, 0, 458777, 0, 0, 458778, 0, 0, 458779, 0, 0, 458780, 0, 0, 458781, 0, 0, 458782, 1, 0, 458783, 1, 0, 458784, 1, 0, 458785, 0, 0, 458786, 0, 0, 458787, 0, 0, 458788, 1, 0, 458789, 0, 0, 458791, 0, 0, 458794, 0, 0, 458805, 0, 0, 458806, 5, 0, 458809, 0, 0, 458811, 0, 0, 458816, 0, 0, 458822, 0, 0, 458827, 0, 0, 458833, 4, 0, 458834, 0, 0, 458835, 3, 0, 458837, 4, 0, 458838, 0, 0, 458839, 3, 0, 458840, 4, 0, 458841, 0, 0, 458842, 3, 0, 458844, 4, 0, 458845, 0, 0, 458846, 3, 0, 458848, 4, 0, 458849, 0, 0, 458850, 3, 0, 458855, 0, 0, 524288, 0, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524295, 0, 0, 524297, 0, 0, 524304, 0, 0, 524306, 0, 0, 524310, 0, 0, 524317, 0, 0, 524321, 0, 0, 524325, 0, 0, 524327, 0, 0, 524330, 0, 0, 524331, 3, 0, 524332, 1, 0, 524333, 1, 0, 524334, 1, 0, 524335, 1, 0, 524336, 1, 0, 524337, 1, 0, 524338, 0, 0, 524339, 0, 0, 524341, 0, 0, 524345, 0, 0, 524347, 0, 0, 524352, 0, 0, 524358, 0, 0, 524363, 0, 0, 524370, 4, 0, 524371, 0, 0, 524372, 3, 0, 524374, 4, 0, 524375, 0, 0, 524376, 3, 0, 524377, 4, 0, 524378, 0, 0, 524379, 3, 0, 524381, 4, 0, 524382, 0, 0, 524383, 3, 0, 524385, 4, 0, 524386, 0, 0, 524387, 3, 0, 524391, 0, 0, 589824, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589831, 0, 0, 589833, 0, 0, 589840, 0, 0, 589842, 0, 0, 589846, 0, 0, 589853, 0, 0, 589857, 0, 0, 589861, 0, 0, 589863, 0, 0, 589866, 0, 0, 589867, 0, 0, 589868, 3, 0, 589874, 0, 0, 589875, 0, 0, 589877, 0, 0, 589881, 0, 0, 589883, 0, 0, 589888, 0, 0, 589894, 0, 0, 589899, 0, 0, 589900, 0, 0, 589901, 0, 0, 589902, 0, 0, 589903, 0, 0, 589904, 1, 0, 589905, 1, 0, 589906, 1, 0, 589907, 4, 0, 589908, 0, 0, 589909, 3, 0, 589911, 4, 0, 589912, 0, 0, 589913, 0, 0, 589914, 0, 0, 589915, 0, 0, 589916, 3, 0, 589918, 4, 0, 589919, 0, 0, 589922, 4, 0, 589923, 0, 0, 589927, 0, 0, 655360, 0, 0, 655363, 0, 0, 655364, 0, 0, 655365, 0, 0, 655367, 0, 0, 655369, 0, 0, 655373, 2, 0, 655374, 0, 0, 655375, 0, 0, 655376, 5, 0, 655378, 0, 0, 655382, 0, 0, 655389, 4, 0, 655390, 1, 0, 655391, 1, 0, 655392, 1, 0, 655393, 5, 0, 655397, 0, 0, 655399, 0, 0, 655402, 0, 0, 655403, 0, 0, 655404, 0, 0, 655405, 3, 0, 655410, 0, 0, 655411, 0, 0, 655413, 0, 0, 655417, 0, 0, 655419, 0, 0, 655424, 0, 0, 655430, 0, 0, 655431, 0, 0, 655439, 0, 0, 655444, 4, 0, 655445, 0, 0, 655446, 3, 0, 655452, 0, 0, 655453, 1, 0, 655454, 1, 0, 655455, 0, 0, 655459, 0, 0, 655463, 0, 0, 720896, 0, 0, 720899, 0, 0, 720900, 0, 0, 720901, 0, 0, 720903, 0, 0, 720905, 0, 0, 720906, 1, 0, 720907, 1, 0, 720908, 1, 0, 720909, 0, 0, 720910, 0, 0, 720911, 5, 0, 720914, 0, 0, 720918, 0, 0, 720931, 2, 0, 720932, 0, 0, 720933, 0, 0, 720935, 0, 0, 720938, 0, 0, 720939, 0, 0, 720940, 0, 0, 720941, 0, 0, 720942, 1, 0, 720943, 1, 0, 720944, 1, 0, 720945, 0, 0, 720946, 0, 0, 720947, 0, 0, 720949, 0, 0, 720953, 0, 0, 720955, 0, 0, 720956, 0, 0, 720957, 1, 0, 720958, 1, 0, 720959, 1, 0, 720960, 0, 0, 720961, 0, 0, 720962, 0, 0, 720963, 0, 0, 720964, 0, 0, 720965, 0, 0, 720966, 0, 0, 720967, 0, 0, 720968, 0, 0, 720969, 0, 0, 720970, 0, 0, 720971, 0, 0, 720972, 3, 0, 720975, 0, 0, 720981, 4, 0, 720982, 0, 0, 720983, 0, 0, 720984, 0, 0, 720988, 0, 0, 720991, 0, 0, 720995, 0, 0, 720999, 0, 0, 786432, 0, 0, 786435, 0, 0, 786436, 0, 0, 786437, 0, 0, 786439, 0, 0, 786450, 0, 0, 786454, 0, 0, 786466, 2, 0, 786467, 0, 0, 786468, 5, 0, 786471, 0, 0, 786483, 0, 0, 786485, 0, 0, 786489, 0, 0, 786496, 0, 0, 786508, 0, 0, 786511, 0, 0, 786524, 0, 0, 786527, 0, 0, 786531, 0, 0, 786535, 0, 0, 851968, 0, 0, 851971, 0, 0, 851972, 0, 0, 851973, 0, 0, 851975, 0, 0, 851984, 2, 0, 851985, 0, 0, 851986, 5, 0, 851990, 0, 0, 852001, 2, 0, 852002, 0, 0, 852003, 5, 0, 852006, 2, 0, 852007, 0, 0, 852019, 0, 0, 852021, 0, 0, 852025, 0, 0, 852032, 0, 0, 852044, 0, 0, 852047, 0, 0, 852048, 0, 0, 852049, 0, 0, 852056, 0, 0, 852057, 0, 0, 852058, 0, 0, 852059, 0, 0, 852060, 0, 0, 852061, 1, 0, 852062, 1, 0, 852063, 0, 0, 852067, 0, 0, 852071, 0, 0, 917504, 0, 0, 917507, 0, 0, 917508, 0, 0, 917509, 0, 0, 917511, 0, 0, 917512, 0, 0, 917513, 0, 0, 917514, 1, 0, 917515, 1, 0, 917516, 1, 0, 917517, 0, 0, 917518, 0, 0, 917519, 0, 0, 917520, 0, 0, 917521, 5, 0, 917526, 0, 0, 917536, 2, 0, 917537, 0, 0, 917538, 5, 0, 917541, 2, 0, 917542, 0, 0, 917543, 0, 0, 917544, 0, 0, 917545, 0, 0, 917546, 0, 0, 917547, 0, 0, 917548, 0, 0, 917549, 0, 0, 917550, 1, 0, 917551, 1, 0, 917552, 1, 0, 917553, 0, 0, 917555, 0, 0, 917557, 0, 0, 917561, 0, 0, 917568, 0, 0, 917580, 0, 0, 917583, 0, 0, 917592, 0, 0, 917603, 0, 0, 917607, 0, 0, 983040, 0, 0, 983043, 0, 0, 983044, 0, 0, 983045, 0, 0, 983062, 0, 0, 983069, 2, 0, 983070, 0, 0, 983071, 1, 0, 983072, 0, 0, 983073, 5, 0, 983076, 2, 0, 983077, 0, 0, 983078, 5, 0, 983080, 0, 0, 983089, 0, 0, 983091, 0, 0, 983093, 0, 0, 983094, 0, 0, 983095, 0, 0, 983096, 0, 0, 983097, 0, 0, 983098, 0, 0, 983099, 0, 0, 983100, 0, 0, 983101, 0, 0, 983102, 0, 0, 983103, 0, 0, 983104, 0, 0, 983105, 0, 0, 983106, 0, 0, 983107, 0, 0, 983108, 0, 0, 983109, 0, 0, 983110, 0, 0, 983111, 0, 0, 983112, 0, 0, 983113, 0, 0, 983114, 0, 0, 983115, 0, 0, 983116, 0, 0, 983119, 0, 0, 983123, 0, 0, 983124, 0, 0, 983128, 0, 0, 983139, 0, 0, 983143, 0, 0, 1048576, 0, 0, 1048579, 0, 0, 1048580, 0, 0, 1048581, 0, 0, 1048593, 2, 0, 1048594, 0, 0, 1048597, 0, 0, 1048598, 0, 0, 1048604, 2, 0, 1048605, 0, 0, 1048606, 0, 0, 1048608, 0, 0, 1048611, 2, 0, 1048612, 0, 0, 1048613, 5, 0, 1048616, 0, 0, 1048625, 0, 0, 1048627, 0, 0, 1048629, 0, 0, 1048655, 0, 0, 1048664, 0, 0, 1048668, 2, 0, 1048669, 0, 0, 1048670, 0, 0, 1048671, 3, 0, 1048675, 0, 0, 1048679, 0, 0, 1114112, 0, 0, 1114115, 0, 0, 1114116, 0, 0, 1114117, 0, 0, 1114118, 0, 0, 1114119, 0, 0, 1114120, 0, 0, 1114121, 0, 0, 1114122, 0, 0, 1114123, 1, 0, 1114124, 0, 0, 1114125, 1, 0, 1114126, 1, 0, 1114127, 1, 0, 1114128, 0, 0, 1114129, 0, 0, 1114130, 0, 0, 1114133, 0, 0, 1114139, 2, 0, 1114140, 0, 0, 1114141, 0, 0, 1114142, 0, 0, 1114144, 0, 0, 1114152, 0, 0, 1114161, 0, 0, 1114163, 0, 0, 1114165, 0, 0, 1114191, 0, 0, 1114198, 0, 0, 1114199, 0, 0, 1114200, 0, 0, 1114201, 0, 0, 1114202, 0, 0, 1114203, 0, 0, 1114204, 0, 0, 1114205, 0, 0, 1114206, 0, 0, 1114207, 0, 0, 1114208, 0, 0, 1114209, 1, 0, 1114210, 1, 0, 1114211, 0, 0, 1114215, 0, 0, 1179648, 0, 0, 1179651, 0, 0, 1179652, 0, 0, 1179653, 0, 0, 1179654, 0, 0, 1179655, 0, 0, 1179656, 0, 0, 1179657, 0, 0, 1179658, 0, 0, 1179660, 0, 0, 1179664, 0, 0, 1179665, 0, 0, 1179666, 0, 0, 1179669, 0, 0, 1179674, 2, 0, 1179675, 0, 0, 1179676, 0, 0, 1179677, 0, 0, 1179678, 0, 0, 1179679, 1, 0, 1179680, 0, 0, 1179681, 3, 0, 1179688, 0, 0, 1179697, 0, 0, 1179699, 0, 0, 1179701, 0, 0, 1179702, 0, 0, 1179703, 0, 0, 1179704, 0, 0, 1179706, 0, 0, 1179707, 0, 0, 1179708, 0, 0, 1179709, 0, 0, 1179710, 0, 0, 1179711, 0, 0, 1179712, 1, 0, 1179713, 0, 0, 1179714, 0, 0, 1179715, 0, 0, 1179716, 0, 0, 1179717, 1, 0, 1179718, 0, 0, 1179719, 0, 0, 1179720, 0, 0, 1179721, 0, 0, 1179722, 0, 0, 1179723, 1, 0, 1179724, 1, 0, 1179725, 1, 0, 1179726, 1, 0, 1179727, 0, 0, 1179736, 0, 0, 1179747, 0, 0, 1179751, 0, 0, 1245184, 0, 0, 1245187, 0, 0, 1245188, 0, 0, 1245189, 0, 0, 1245190, 0, 0, 1245191, 0, 0, 1245192, 0, 0, 1245193, 0, 0, 1245194, 0, 0, 1245195, 1, 0, 1245196, 0, 0, 1245200, 0, 0, 1245205, 0, 0, 1245209, 2, 0, 1245210, 0, 0, 1245211, 0, 0, 1245212, 0, 0, 1245213, 0, 0, 1245214, 0, 0, 1245216, 4, 0, 1245217, 0, 0, 1245218, 3, 0, 1245224, 0, 0, 1245233, 0, 0, 1245235, 0, 0, 1245237, 0, 0, 1245239, 2, 0, 1245240, 0, 0, 1245242, 0, 0, 1245243, 3, 0, 1245247, 0, 0, 1245254, 0, 0, 1245258, 0, 0, 1245263, 0, 0, 1245267, 0, 0, 1245268, 0, 0, 1245272, 0, 0, 1245281, 0, 0, 1245283, 0, 0, 1245287, 0, 0, 1310720, 0, 0, 1310723, 0, 0, 1310724, 0, 0, 1310725, 0, 0, 1310726, 0, 0, 1310727, 0, 0, 1310728, 0, 0, 1310729, 0, 0, 1310730, 0, 0, 1310732, 0, 0, 1310736, 0, 0, 1310740, 2, 0, 1310741, 0, 0, 1310745, 0, 0, 1310746, 0, 0, 1310747, 0, 0, 1310748, 0, 0, 1310749, 0, 0, 1310750, 0, 0, 1310753, 4, 0, 1310754, 0, 0, 1310755, 3, 0, 1310760, 0, 0, 1310769, 0, 0, 1310771, 0, 0, 1310773, 0, 0, 1310775, 0, 0, 1310776, 5, 0, 1310778, 4, 0, 1310779, 0, 0, 1310783, 0, 0, 1310790, 0, 0, 1310794, 0, 0, 1310799, 0, 0, 1310808, 0, 0, 1310817, 0, 0, 1310819, 0, 0, 1310823, 0, 0, 1376256, 0, 0, 1376259, 0, 0, 1376260, 0, 0, 1376261, 0, 0, 1376262, 0, 0, 1376263, 0, 0, 1376264, 0, 0, 1376265, 0, 0, 1376266, 0, 0, 1376268, 0, 0, 1376272, 0, 0, 1376276, 0, 0, 1376277, 0, 0, 1376278, 3, 0, 1376281, 0, 0, 1376282, 0, 0, 1376283, 0, 0, 1376284, 0, 0, 1376285, 0, 0, 1376286, 0, 0, 1376287, 0, 0, 1376288, 3, 0, 1376290, 4, 0, 1376291, 0, 0, 1376292, 0, 0, 1376293, 0, 0, 1376294, 0, 0, 1376296, 0, 0, 1376301, 2, 0, 1376302, 0, 0, 1376303, 0, 0, 1376304, 0, 0, 1376305, 0, 0, 1376307, 0, 0, 1376309, 0, 0, 1376310, 0, 0, 1376311, 0, 0, 1376315, 0, 0, 1376316, 0, 0, 1376317, 0, 0, 1376318, 0, 0, 1376319, 0, 0, 1376320, 0, 0, 1376321, 0, 0, 1376322, 1, 0, 1376323, 1, 0, 1376324, 0, 0, 1376325, 0, 0, 1376326, 0, 0, 1376327, 0, 0, 1376328, 0, 0, 1376329, 0, 0, 1376330, 0, 0, 1376331, 1, 0, 1376332, 1, 0, 1376333, 1, 0, 1376334, 1, 0, 1376335, 0, 0, 1376336, 0, 0, 1376337, 0, 0, 1376344, 0, 0, 1376351, 0, 0, 1376353, 0, 0, 1376355, 0, 0, 1376359, 0, 0, 1441792, 0, 0, 1441795, 0, 0, 1441796, 0, 0, 1441797, 0, 0, 1441798, 0, 0, 1441799, 0, 0, 1441800, 0, 0, 1441801, 0, 0, 1441802, 0, 0, 1441804, 0, 0, 1441805, 1, 0, 1441806, 1, 0, 1441807, 1, 0, 1441808, 0, 0, 1441812, 0, 0, 1441813, 4, 0, 1441814, 0, 0, 1441815, 3, 0, 1441824, 0, 0, 1441830, 0, 0, 1441832, 0, 0, 1441836, 2, 0, 1441837, 0, 0, 1441838, 0, 0, 1441839, 0, 0, 1441840, 0, 0, 1441841, 0, 0, 1441843, 0, 0, 1441851, 0, 0, 1441880, 0, 0, 1441887, 0, 0, 1441889, 0, 0, 1441891, 0, 0, 1441895, 0, 0, 1507328, 0, 0, 1507331, 0, 0, 1507332, 0, 0, 1507333, 0, 0, 1507334, 0, 0, 1507335, 0, 0, 1507336, 0, 0, 1507337, 0, 0, 1507338, 0, 0, 1507340, 0, 0, 1507344, 0, 0, 1507348, 0, 0, 1507350, 4, 0, 1507351, 0, 0, 1507352, 3, 0, 1507360, 0, 0, 1507366, 0, 0, 1507368, 0, 0, 1507369, 1, 0, 1507370, 1, 0, 1507371, 1, 0, 1507372, 0, 0, 1507373, 0, 0, 1507374, 0, 0, 1507375, 0, 0, 1507376, 0, 0, 1507377, 0, 0, 1507379, 0, 0, 1507380, 0, 0, 1507381, 0, 0, 1507382, 0, 0, 1507383, 0, 0, 1507384, 0, 0, 1507385, 0, 0, 1507386, 0, 0, 1507387, 0, 0, 1507389, 0, 0, 1507390, 0, 0, 1507391, 0, 0, 1507392, 0, 0, 1507393, 0, 0, 1507394, 1, 0, 1507395, 1, 0, 1507396, 0, 0, 1507397, 0, 0, 1507398, 0, 0, 1507399, 0, 0, 1507400, 0, 0, 1507401, 0, 0, 1507402, 0, 0, 1507403, 1, 0, 1507404, 1, 0, 1507405, 1, 0, 1507406, 1, 0, 1507407, 0, 0, 1507408, 0, 0, 1507409, 0, 0, 1507410, 0, 0, 1507411, 0, 0, 1507412, 0, 0, 1507413, 0, 0, 1507414, 0, 0, 1507415, 0, 0, 1507416, 0, 0, 1507421, 0, 0, 1507423, 0, 0, 1507425, 0, 0, 1507427, 0, 0, 1507431, 0, 0, 1572864, 0, 0, 1572867, 0, 0, 1572868, 0, 0, 1572869, 0, 0, 1572870, 0, 0, 1572871, 0, 0, 1572872, 0, 0, 1572873, 0, 0, 1572874, 0, 0, 1572876, 0, 0, 1572880, 0, 0, 1572884, 0, 0, 1572887, 4, 0, 1572888, 0, 0, 1572889, 3, 0, 1572896, 0, 0, 1572902, 0, 0, 1572904, 0, 0, 1572908, 4, 0, 1572909, 0, 0, 1572910, 0, 0, 1572911, 0, 0, 1572912, 0, 0, 1572913, 5, 0, 1572915, 4, 0, 1572916, 0, 0, 1572917, 0, 0, 1572918, 0, 0, 1572919, 0, 0, 1572920, 0, 0, 1572921, 0, 0, 1572922, 0, 0, 1572923, 5, 0, 1572925, 4, 0, 1572926, 0, 0, 1572927, 0, 0, 1572928, 0, 0, 1572929, 0, 0, 1572932, 0, 0, 1572933, 0, 0, 1572948, 0, 0, 1572952, 0, 0, 1572953, 0, 0, 1572954, 1, 0, 1572955, 1, 0, 1572956, 1, 0, 1572957, 0, 0, 1572959, 0, 0, 1572961, 0, 0, 1572963, 0, 0, 1572967, 0, 0, 1638400, 0, 0, 1638403, 0, 0, 1638404, 0, 0, 1638405, 0, 0, 1638406, 0, 0, 1638407, 0, 0, 1638408, 0, 0, 1638409, 0, 0, 1638410, 0, 0, 1638412, 0, 0, 1638416, 0, 0, 1638417, 3, 0, 1638420, 0, 0, 1638424, 4, 0, 1638425, 5, 0, 1638426, 1, 0, 1638427, 2, 0, 1638428, 0, 0, 1638429, 0, 0, 1638430, 0, 0, 1638431, 0, 0, 1638432, 0, 0, 1638433, 0, 0, 1638434, 3, 0, 1638438, 0, 0, 1638440, 0, 0, 1638464, 4, 0, 1638465, 0, 0, 1638468, 0, 0, 1638469, 0, 0, 1638470, 3, 0, 1638484, 0, 0, 1638499, 0, 0, 1638503, 0, 0, 1703936, 0, 0, 1703939, 0, 0, 1703940, 0, 0, 1703941, 0, 0, 1703942, 0, 0, 1703943, 0, 0, 1703944, 0, 0, 1703945, 0, 0, 1703946, 0, 0, 1703947, 1, 0, 1703948, 0, 0, 1703949, 1, 0, 1703950, 1, 0, 1703951, 1, 0, 1703952, 0, 0, 1703953, 0, 0, 1703954, 3, 0, 1703956, 0, 0, 1703962, 2, 0, 1703963, 0, 0, 1703964, 5, 0, 1703969, 4, 0, 1703970, 0, 0, 1703971, 3, 0, 1703974, 0, 0, 1703976, 0, 0, 1703977, 0, 0, 1703978, 0, 0, 1703979, 0, 0, 1703980, 0, 0, 1703981, 0, 0, 1704001, 0, 0, 1704004, 4, 0, 1704005, 0, 0, 1704006, 0, 0, 1704007, 3, 0, 1704020, 0, 0, 1704035, 0, 0, 1704039, 0, 0, 1769472, 0, 0, 1769482, 0, 0, 1769488, 4, 0, 1769489, 0, 0, 1769490, 0, 0, 1769492, 0, 0, 1769497, 2, 0, 1769498, 0, 0, 1769499, 5, 0, 1769510, 0, 0, 1769512, 0, 0, 1769523, 2, 0, 1769524, 0, 0, 1769525, 0, 0, 1769526, 0, 0, 1769527, 0, 0, 1769528, 0, 0, 1769529, 0, 0, 1769530, 0, 0, 1769531, 3, 0, 1769536, 2, 0, 1769537, 0, 0, 1769541, 4, 0, 1769542, 0, 0, 1769543, 0, 0, 1769544, 3, 0, 1769556, 0, 0, 1769560, 0, 0, 1769561, 0, 0, 1769562, 0, 0, 1769563, 0, 0, 1769564, 0, 0, 1769565, 0, 0, 1769566, 0, 0, 1769567, 1, 0, 1769568, 1, 0, 1769569, 1, 0, 1769570, 1, 0, 1769571, 0, 0, 1769575, 0, 0, 1835008, 0, 0, 1835018, 0, 0, 1835025, 4, 0, 1835026, 0, 0, 1835028, 0, 0, 1835032, 0, 0, 1835033, 0, 0, 1835034, 5, 0, 1835045, 2, 0, 1835046, 0, 0, 1835048, 0, 0, 1835050, 0, 0, 1835051, 0, 0, 1835052, 0, 0, 1835053, 0, 0, 1835054, 0, 0, 1835055, 0, 0, 1835056, 0, 0, 1835057, 0, 0, 1835058, 0, 0, 1835059, 0, 0, 1835060, 0, 0, 1835061, 0, 0, 1835062, 0, 0, 1835063, 0, 0, 1835064, 0, 0, 1835065, 0, 0, 1835066, 0, 0, 1835067, 0, 0, 1835068, 0, 0, 1835069, 0, 0, 1835070, 0, 0, 1835071, 0, 0, 1835072, 0, 0, 1835073, 0, 0, 1835078, 4, 0, 1835079, 0, 0, 1835080, 0, 0, 1835081, 3, 0, 1835092, 0, 0, 1835093, 1, 0, 1835094, 1, 0, 1835095, 1, 0, 1835096, 0, 0, 1835097, 0, 0, 1835098, 0, 0, 1835099, 0, 0, 1835100, 0, 0, 1835101, 5, 0, 1835111, 0, 0, 1900544, 0, 0, 1900554, 0, 0, 1900562, 0, 0, 1900568, 0, 0, 1900569, 5, 0, 1900574, 2, 0, 1900575, 0, 0, 1900576, 1, 0, 1900577, 0, 0, 1900578, 0, 0, 1900579, 0, 0, 1900580, 0, 0, 1900581, 0, 0, 1900582, 0, 0, 1900584, 0, 0, 1900586, 0, 0, 1900598, 0, 0, 1900615, 4, 0, 1900616, 0, 0, 1900617, 0, 0, 1900618, 3, 0, 1900632, 0, 0, 1900633, 0, 0, 1900634, 0, 0, 1900635, 0, 0, 1900636, 5, 0, 1900647, 0, 0, 1966080, 0, 0, 1966090, 0, 0, 1966091, 1, 0, 1966092, 1, 0, 1966093, 1, 0, 1966094, 1, 0, 1966095, 1, 0, 1966096, 0, 0, 1966097, 1, 0, 1966098, 0, 0, 1966099, 0, 0, 1966100, 0, 0, 1966101, 0, 0, 1966102, 0, 0, 1966103, 0, 0, 1966104, 0, 0, 1966105, 0, 0, 1966106, 0, 0, 1966107, 0, 0, 1966108, 0, 0, 1966109, 0, 0, 1966110, 0, 0, 1966111, 0, 0, 1966113, 0, 0, 1966120, 0, 0, 1966122, 0, 0, 1966134, 0, 0, 1966135, 1, 0, 1966136, 1, 0, 1966137, 1, 0, 1966138, 1, 0, 1966139, 1, 0, 1966140, 1, 0, 1966141, 1, 0, 1966142, 1, 0, 1966143, 1, 0, 1966144, 1, 0, 1966145, 1, 0, 1966146, 2, 0, 1966147, 0, 0, 1966148, 0, 0, 1966149, 3, 0, 1966150, 1, 0, 1966151, 1, 0, 1966152, 4, 0, 1966153, 0, 0, 1966154, 0, 0, 1966155, 3, 0, 1966156, 1, 0, 1966157, 4, 0, 1966158, 0, 0, 1966159, 0, 0, 1966160, 0, 0, 1966161, 0, 0, 1966162, 0, 0, 1966163, 0, 0, 1966164, 0, 0, 1966165, 0, 0, 1966166, 0, 0, 1966167, 0, 0, 1966168, 0, 0, 1966169, 0, 0, 1966170, 0, 0, 1966171, 5, 0, 1966173, 2, 0, 1966174, 0, 0, 1966175, 0, 0, 1966176, 1, 0, 1966177, 1, 0, 1966178, 1, 0, 1966179, 0, 0, 1966183, 0, 0, 2031616, 0, 0, 2031617, 0, 0, 2031618, 0, 0, 2031620, 0, 0, 2031621, 0, 0, 2031622, 0, 0, 2031623, 0, 0, 2031624, 0, 0, 2031626, 0, 0, 2031632, 0, 0, 2031647, 0, 0, 2031649, 0, 0, 2031656, 0, 0, 2031658, 0, 0, 2031670, 0, 0, 2031681, 2, 0, 2031682, 0, 0, 2031683, 0, 0, 2031684, 0, 0, 2031685, 0, 0, 2031686, 3, 0, 2031689, 4, 0, 2031690, 0, 0, 2031691, 0, 0, 2031692, 3, 0, 2031694, 4, 0, 2031695, 0, 0, 2031696, 0, 0, 2031697, 0, 0, 2031698, 0, 0, 2031699, 0, 0, 2031700, 0, 0, 2031701, 0, 0, 2031702, 0, 0, 2031703, 0, 0, 2031704, 0, 0, 2031705, 0, 0, 2031706, 5, 0, 2031708, 2, 0, 2031709, 0, 0, 2031710, 0, 0, 2031711, 0, 0, 2031715, 0, 0, 2031719, 0, 0, 2097152, 0, 0, 2097153, 0, 0, 2097154, 0, 0, 2097156, 0, 0, 2097157, 0, 0, 2097158, 0, 0, 2097159, 0, 0, 2097160, 0, 0, 2097162, 0, 0, 2097168, 0, 0, 2097183, 0, 0, 2097184, 1, 0, 2097185, 0, 0, 2097187, 0, 0, 2097188, 0, 0, 2097189, 0, 0, 2097190, 0, 0, 2097192, 0, 0, 2097194, 0, 0, 2097206, 0, 0, 2097216, 2, 0, 2097217, 0, 0, 2097218, 0, 0, 2097219, 0, 0, 2097220, 0, 0, 2097221, 0, 0, 2097222, 0, 0, 2097223, 3, 0, 2097226, 4, 0, 2097227, 0, 0, 2097228, 0, 0, 2097229, 3, 0, 2097231, 4, 0, 2097232, 0, 0, 2097233, 0, 0, 2097234, 0, 0, 2097235, 0, 0, 2097236, 0, 0, 2097237, 0, 0, 2097238, 0, 0, 2097239, 0, 0, 2097240, 0, 0, 2097241, 5, 0, 2097243, 2, 0, 2097244, 0, 0, 2097245, 0, 0, 2097246, 5, 0, 2097247, 0, 0, 2097251, 0, 0, 2097255, 0, 0, 2162688, 0, 0, 2162689, 0, 0, 2162690, 0, 0, 2162692, 0, 0, 2162693, 0, 0, 2162694, 0, 0, 2162695, 0, 0, 2162696, 0, 0, 2162698, 0, 0, 2162704, 0, 0, 2162723, 0, 0, 2162726, 0, 0, 2162728, 0, 0, 2162730, 0, 0, 2162742, 0, 0, 2162751, 2, 0, 2162752, 0, 0, 2162753, 0, 0, 2162754, 0, 0, 2162755, 0, 0, 2162756, 0, 0, 2162757, 0, 0, 2162758, 0, 0, 2162759, 0, 0, 2162760, 3, 0, 2162763, 4, 0, 2162764, 0, 0, 2162765, 0, 0, 2162766, 3, 0, 2162768, 4, 0, 2162769, 0, 0, 2162770, 0, 0, 2162771, 0, 0, 2162772, 0, 0, 2162773, 0, 0, 2162774, 0, 0, 2162775, 0, 0, 2162776, 5, 0, 2162778, 2, 0, 2162779, 0, 0, 2162780, 0, 0, 2162781, 5, 0, 2162783, 0, 0, 2162787, 0, 0, 2162791, 0, 0, 2228224, 0, 0, 2228225, 0, 0, 2228226, 0, 0, 2228228, 0, 0, 2228229, 0, 0, 2228230, 0, 0, 2228231, 0, 0, 2228232, 0, 0, 2228234, 0, 0, 2228240, 0, 0, 2228259, 0, 0, 2228262, 0, 0, 2228264, 0, 0, 2228266, 0, 0, 2228278, 0, 0, 2228286, 2, 0, 2228287, 0, 0, 2228288, 0, 0, 2228289, 0, 0, 2228290, 0, 0, 2228291, 0, 0, 2228292, 0, 0, 2228293, 0, 0, 2228294, 0, 0, 2228295, 0, 0, 2228296, 0, 0, 2228297, 3, 0, 2228300, 4, 0, 2228301, 0, 0, 2228302, 0, 0, 2228303, 3, 0, 2228305, 4, 0, 2228306, 0, 0, 2228307, 0, 0, 2228308, 0, 0, 2228309, 0, 0, 2228310, 0, 0, 2228311, 5, 0, 2228313, 2, 0, 2228314, 0, 0, 2228315, 0, 0, 2228316, 5, 0, 2228319, 0, 0, 2228323, 0, 0, 2228327, 0, 0, 2293760, 0, 0, 2293761, 0, 0, 2293762, 0, 0, 2293764, 0, 0, 2293765, 0, 0, 2293766, 0, 0, 2293767, 0, 0, 2293768, 0, 0, 2293770, 0, 0, 2293771, 1, 0, 2293772, 1, 0, 2293773, 1, 0, 2293774, 1, 0, 2293775, 1, 0, 2293776, 0, 0, 2293795, 0, 0, 2293798, 0, 0, 2293800, 0, 0, 2293802, 0, 0, 2293814, 0, 0, 2293821, 2, 0, 2293822, 0, 0, 2293823, 0, 0, 2293824, 0, 0, 2293825, 0, 0, 2293826, 0, 0, 2293827, 0, 0, 2293828, 0, 0, 2293829, 0, 0, 2293830, 0, 0, 2293831, 0, 0, 2293832, 0, 0, 2293833, 0, 0, 2293834, 3, 0, 2293837, 4, 0, 2293838, 0, 0, 2293839, 0, 0, 2293840, 3, 0, 2293841, 1, 0, 2293842, 4, 0, 2293843, 0, 0, 2293844, 0, 0, 2293845, 0, 0, 2293846, 5, 0, 2293847, 1, 0, 2293848, 2, 0, 2293849, 0, 0, 2293850, 0, 0, 2293851, 5, 0, 2293854, 2, 0, 2293855, 0, 0, 2293859, 0, 0, 2293863, 0, 0, 2359296, 0, 0, 2359297, 0, 0, 2359298, 0, 0, 2359300, 0, 0, 2359301, 0, 0, 2359302, 0, 0, 2359303, 0, 0, 2359304, 0, 0, 2359306, 0, 0, 2359312, 0, 0, 2359331, 0, 0, 2359334, 0, 0, 2359336, 0, 0, 2359341, 2, 0, 2359342, 3, 0, 2359344, 2, 0, 2359346, 3, 0, 2359348, 2, 0, 2359350, 0, 0, 2359356, 2, 0, 2359357, 0, 0, 2359358, 0, 0, 2359359, 0, 0, 2359360, 0, 0, 2359361, 0, 0, 2359362, 0, 0, 2359363, 0, 0, 2359364, 0, 0, 2359365, 0, 0, 2359366, 0, 0, 2359367, 0, 0, 2359368, 0, 0, 2359369, 0, 0, 2359370, 0, 0, 2359371, 3, 0, 2359374, 4, 0, 2359375, 0, 0, 2359376, 0, 0, 2359377, 3, 0, 2359383, 2, 0, 2359384, 0, 0, 2359385, 0, 0, 2359386, 5, 0, 2359389, 2, 0, 2359390, 0, 0, 2359391, 0, 0, 2359395, 0, 0, 2359399, 0, 0, 2424832, 0, 0, 2424833, 0, 0, 2424834, 0, 0, 2424836, 0, 0, 2424837, 0, 0, 2424838, 0, 0, 2424839, 0, 0, 2424840, 0, 0, 2424842, 0, 0, 2424848, 0, 0, 2424849, 1, 0, 2424850, 0, 0, 2424851, 0, 0, 2424852, 0, 0, 2424853, 0, 0, 2424854, 0, 0, 2424855, 0, 0, 2424856, 1, 0, 2424857, 1, 0, 2424858, 0, 0, 2424859, 0, 0, 2424860, 0, 0, 2424861, 0, 0, 2424862, 0, 0, 2424863, 0, 0, 2424864, 1, 0, 2424865, 0, 0, 2424866, 0, 0, 2424867, 0, 0, 2424870, 0, 0, 2424872, 0, 0, 2424876, 2, 0, 2424877, 0, 0, 2424878, 0, 0, 2424880, 0, 0, 2424882, 0, 0, 2424884, 0, 0, 2424886, 0, 0, 2424891, 2, 0, 2424892, 0, 0, 2424893, 0, 0, 2424894, 0, 0, 2424895, 0, 0, 2424896, 0, 0, 2424897, 0, 0, 2424898, 0, 0, 2424899, 0, 0, 2424900, 0, 0, 2424901, 0, 0, 2424902, 0, 0, 2424903, 0, 0, 2424904, 0, 0, 2424905, 0, 0, 2424906, 0, 0, 2424907, 0, 0, 2424908, 3, 0, 2424911, 4, 0, 2424912, 0, 0, 2424913, 0, 0, 2424914, 3, 0, 2424918, 2, 0, 2424919, 0, 0, 2424920, 0, 0, 2424921, 5, 0, 2424924, 2, 0, 2424925, 0, 0, 2424926, 0, 0, 2424927, 0, 0, 2424928, 1, 0, 2424929, 1, 0, 2424930, 1, 0, 2424931, 0, 0, 2424935, 0, 0, 2490368, 0, 0, 2490369, 0, 0, 2490370, 0, 0, 2490372, 0, 0, 2490373, 0, 0, 2490374, 0, 0, 2490375, 0, 0, 2490376, 0, 0, 2490378, 0, 0, 2490386, 0, 0, 2490399, 0, 0, 2490401, 0, 0, 2490406, 0, 0, 2490408, 0, 0, 2490411, 2, 0, 2490412, 0, 0, 2490413, 0, 0, 2490414, 0, 0, 2490416, 0, 0, 2490418, 0, 0, 2490420, 0, 0, 2490422, 0, 0, 2490423, 3, 0, 2490435, 0, 0, 2490436, 0, 0, 2490437, 0, 0, 2490438, 0, 0, 2490439, 0, 0, 2490440, 0, 0, 2490441, 0, 0, 2490442, 0, 0, 2490443, 0, 0, 2490444, 0, 0, 2490445, 1, 0, 2490446, 1, 0, 2490447, 1, 0, 2490448, 0, 0, 2490449, 0, 0, 2490450, 0, 0, 2490451, 1, 0, 2490452, 1, 0, 2490453, 1, 0, 2490454, 0, 0, 2490455, 0, 0, 2490456, 0, 0, 2490457, 0, 0, 2490458, 0, 0, 2490459, 0, 0, 2490460, 0, 0, 2490461, 0, 0, 2490462, 0, 0, 2490463, 0, 0, 2490467, 0, 0, 2490471, 0, 0, 2555904, 0, 0, 2555905, 0, 0, 2555906, 0, 0, 2555908, 0, 0, 2555909, 0, 0, 2555910, 0, 0, 2555911, 0, 0, 2555912, 0, 0, 2555914, 0, 0, 2555922, 0, 0, 2555935, 0, 0, 2555937, 0, 0, 2555942, 0, 0, 2555944, 0, 0, 2555945, 0, 0, 2555946, 0, 0, 2555947, 0, 0, 2555948, 0, 0, 2555949, 0, 0, 2555950, 0, 0, 2555952, 0, 0, 2555954, 0, 0, 2555956, 0, 0, 2555958, 0, 0, 2555959, 0, 0, 2555960, 3, 0, 2555971, 0, 0, 2555974, 0, 0, 2555996, 0, 0, 2555999, 0, 0, 2556003, 0, 0, 2556007, 0, 0, 2621440, 0, 0, 2621441, 0, 0, 2621442, 0, 0, 2621444, 0, 0, 2621445, 0, 0, 2621446, 0, 0, 2621447, 0, 0, 2621448, 0, 0, 2621450, 0, 0, 2621451, 0, 0, 2621452, 0, 0, 2621453, 0, 0, 2621454, 0, 0, 2621455, 0, 0, 2621456, 0, 0, 2621457, 1, 0, 2621458, 0, 0, 2621459, 1, 0, 2621460, 1, 0, 2621461, 1, 0, 2621462, 1, 0, 2621463, 1, 0, 2621464, 1, 0, 2621465, 1, 0, 2621466, 1, 0, 2621467, 1, 0, 2621468, 1, 0, 2621469, 1, 0, 2621470, 1, 0, 2621471, 0, 0, 2621473, 0, 0, 2621478, 0, 0, 2621483, 0, 0, 2621486, 0, 0, 2621488, 0, 0, 2621490, 0, 0, 2621492, 0, 0, 2621494, 0, 0, 2621495, 0, 0, 2621496, 0, 0, 2621497, 3, 0, 2621507, 0, 0, 2621510, 0, 0, 2621532, 0, 0, 2621535, 0, 0, 2621539, 0, 0, 2621543, 0, 0, 2686976, 0, 0, 2686977, 0, 0, 2686978, 0, 0, 2686980, 0, 0, 2686994, 0, 0, 2687007, 0, 0, 2687009, 0, 0, 2687014, 0, 0, 2687019, 0, 0, 2687022, 0, 0, 2687024, 0, 0, 2687026, 0, 0, 2687028, 0, 0, 2687030, 0, 0, 2687031, 0, 0, 2687032, 0, 0, 2687033, 0, 0, 2687034, 3, 0, 2687043, 0, 0, 2687046, 0, 0, 2687050, 0, 0, 2687051, 0, 0, 2687052, 0, 0, 2687053, 1, 0, 2687054, 1, 0, 2687055, 1, 0, 2687056, 0, 0, 2687057, 0, 0, 2687058, 0, 0, 2687059, 1, 0, 2687060, 1, 0, 2687061, 1, 0, 2687062, 0, 0, 2687063, 0, 0, 2687064, 0, 0, 2687068, 0, 0, 2687071, 0, 0, 2687075, 0, 0, 2687079, 0, 0, 2752512, 0, 0, 2752513, 0, 0, 2752514, 0, 0, 2752516, 0, 0, 2752530, 0, 0, 2752543, 0, 0, 2752544, 1, 0, 2752545, 0, 0, 2752550, 0, 0, 2752552, 0, 0, 2752553, 1, 0, 2752554, 1, 0, 2752555, 0, 0, 2752558, 0, 0, 2752560, 0, 0, 2752562, 0, 0, 2752564, 0, 0, 2752566, 0, 0, 2752567, 0, 0, 2752568, 0, 0, 2752569, 0, 0, 2752570, 0, 0, 2752571, 3, 0, 2752579, 0, 0, 2752582, 0, 0, 2752586, 0, 0, 2752588, 0, 0, 2752592, 0, 0, 2752594, 0, 0, 2752598, 0, 0, 2752600, 0, 0, 2752604, 0, 0, 2752607, 0, 0, 2752611, 0, 0, 2752615, 0, 0, 2818048, 0, 0, 2818049, 0, 0, 2818050, 0, 0, 2818052, 0, 0, 2818053, 1, 0, 2818054, 1, 0, 2818055, 1, 0, 2818056, 0, 0, 2818057, 0, 0, 2818058, 0, 0, 2818059, 0, 0, 2818060, 0, 0, 2818061, 0, 0, 2818062, 0, 0, 2818063, 0, 0, 2818064, 0, 0, 2818066, 0, 0, 2818067, 1, 0, 2818068, 1, 0, 2818069, 1, 0, 2818070, 1, 0, 2818071, 1, 0, 2818072, 1, 0, 2818073, 1, 0, 2818074, 1, 0, 2818075, 1, 0, 2818076, 1, 0, 2818077, 1, 0, 2818078, 1, 0, 2818079, 0, 0, 2818081, 0, 0, 2818086, 0, 0, 2818088, 0, 0, 2818091, 0, 0, 2818094, 0, 0, 2818096, 0, 0, 2818098, 0, 0, 2818100, 0, 0, 2818102, 0, 0, 2818103, 0, 0, 2818104, 0, 0, 2818105, 0, 0, 2818106, 0, 0, 2818107, 0, 0, 2818108, 1, 0, 2818109, 1, 0, 2818110, 1, 0, 2818111, 0, 0, 2818112, 0, 0, 2818113, 0, 0, 2818114, 0, 0, 2818115, 0, 0, 2818116, 0, 0, 2818117, 0, 0, 2818118, 0, 0, 2818122, 0, 0, 2818123, 0, 0, 2818124, 0, 0, 2818128, 0, 0, 2818129, 0, 0, 2818130, 0, 0, 2818134, 0, 0, 2818135, 0, 0, 2818136, 0, 0, 2818140, 0, 0, 2818141, 0, 0, 2818142, 0, 0, 2818143, 0, 0, 2818147, 0, 0, 2818151, 0, 0, 2883584, 0, 0, 2883600, 0, 0, 2883602, 0, 0, 2883615, 0, 0, 2883617, 0, 0, 2883622, 0, 0, 2883624, 0, 0, 2883627, 0, 0, 2883630, 0, 0, 2883632, 0, 0, 2883634, 0, 0, 2883636, 0, 0, 2883647, 0, 0, 2883683, 0, 0, 2883687, 0, 0, 2949120, 0, 0, 2949136, 0, 0, 2949138, 0, 0, 2949151, 0, 0, 2949153, 0, 0, 2949158, 0, 0, 2949160, 0, 0, 2949163, 0, 0, 2949166, 0, 0, 2949168, 0, 0, 2949170, 0, 0, 2949172, 0, 0, 2949183, 0, 0, 2949219, 0, 0, 2949223, 0, 0, 3014656, 0, 0, 3014657, 0, 0, 3014658, 0, 0, 3014659, 1, 0, 3014660, 1, 0, 3014661, 1, 0, 3014662, 1, 0, 3014663, 1, 0, 3014664, 0, 0, 3014665, 0, 0, 3014666, 0, 0, 3014667, 0, 0, 3014668, 0, 0, 3014669, 0, 0, 3014672, 0, 0, 3014673, 1, 0, 3014674, 0, 0, 3014675, 0, 0, 3014676, 0, 0, 3014677, 1, 0, 3014678, 1, 0, 3014679, 1, 0, 3014680, 1, 0, 3014681, 1, 0, 3014682, 0, 0, 3014683, 0, 0, 3014684, 0, 0, 3014685, 0, 0, 3014686, 0, 0, 3014687, 0, 0, 3014688, 1, 0, 3014689, 0, 0, 3014690, 0, 0, 3014691, 0, 0, 3014692, 0, 0, 3014693, 0, 0, 3014694, 0, 0, 3014696, 0, 0, 3014699, 0, 0, 3014702, 0, 0, 3014704, 0, 0, 3014706, 0, 0, 3014708, 0, 0, 3014719, 0, 0, 3014729, 2, 0, 3014730, 0, 0, 3014731, 0, 0, 3014732, 0, 0, 3014733, 3, 0, 3014735, 2, 0, 3014736, 0, 0, 3014737, 0, 0, 3014738, 0, 0, 3014739, 3, 0, 3014741, 2, 0, 3014742, 0, 0, 3014743, 0, 0, 3014744, 0, 0, 3014745, 3, 0, 3014747, 2, 0, 3014748, 0, 0, 3014749, 0, 0, 3014750, 0, 0, 3014751, 0, 0, 3014752, 3, 0, 3014754, 2, 0, 3014755, 0, 0, 3014759, 0, 0, 3080192, 0, 0, 3080205, 0, 0, 3080208, 0, 0, 3080232, 0, 0, 3080235, 0, 0, 3080238, 0, 0, 3080240, 0, 0, 3080242, 0, 0, 3080244, 0, 0, 3080245, 0, 0, 3080246, 0, 0, 3080247, 0, 0, 3080248, 0, 0, 3080249, 0, 0, 3080250, 0, 0, 3080251, 0, 0, 3080252, 0, 0, 3080253, 0, 0, 3080254, 0, 0, 3080255, 0, 0, 3080259, 0, 0, 3080260, 1, 0, 3080261, 1, 0, 3080262, 0, 0, 3080263, 0, 0, 3080265, 0, 0, 3080266, 0, 0, 3080267, 0, 0, 3080268, 0, 0, 3080269, 0, 0, 3080271, 0, 0, 3080272, 0, 0, 3080273, 0, 0, 3080274, 0, 0, 3080275, 0, 0, 3080277, 0, 0, 3080278, 0, 0, 3080279, 0, 0, 3080280, 0, 0, 3080281, 0, 0, 3080283, 0, 0, 3080284, 0, 0, 3080285, 0, 0, 3080286, 0, 0, 3080287, 0, 0, 3080288, 0, 0, 3080290, 0, 0, 3080291, 0, 0, 3080295, 0, 0, 3145728, 0, 0, 3145730, 0, 0, 3145731, 0, 0, 3145732, 0, 0, 3145733, 1, 0, 3145734, 0, 0, 3145735, 0, 0, 3145736, 0, 0, 3145737, 0, 0, 3145738, 0, 0, 3145739, 0, 0, 3145740, 1, 0, 3145741, 0, 0, 3145744, 0, 0, 3145768, 0, 0, 3145771, 0, 0, 3145774, 0, 0, 3145776, 0, 0, 3145778, 0, 0, 3145795, 0, 0, 3145798, 0, 0, 3145799, 0, 0, 3145800, 0, 0, 3145801, 0, 0, 3145802, 0, 0, 3145803, 0, 0, 3145804, 0, 0, 3145805, 0, 0, 3145806, 0, 0, 3145807, 0, 0, 3145808, 0, 0, 3145809, 0, 0, 3145810, 0, 0, 3145811, 0, 0, 3145812, 0, 0, 3145813, 0, 0, 3145814, 0, 0, 3145815, 0, 0, 3145816, 0, 0, 3145817, 0, 0, 3145818, 0, 0, 3145819, 0, 0, 3145820, 0, 0, 3145821, 0, 0, 3145822, 0, 0, 3145823, 0, 0, 3145824, 0, 0, 3145825, 0, 0, 3145826, 0, 0, 3145827, 0, 0, 3145831, 0, 0, 3211264, 0, 0, 3211266, 0, 0, 3211268, 0, 0, 3211280, 0, 0, 3211281, 0, 0, 3211282, 0, 0, 3211283, 0, 0, 3211284, 0, 0, 3211285, 1, 0, 3211286, 1, 0, 3211287, 1, 0, 3211288, 1, 0, 3211289, 1, 0, 3211290, 0, 0, 3211291, 0, 0, 3211292, 0, 0, 3211293, 0, 0, 3211294, 0, 0, 3211295, 0, 0, 3211296, 1, 0, 3211297, 0, 0, 3211298, 0, 0, 3211299, 0, 0, 3211300, 0, 0, 3211301, 0, 0, 3211302, 0, 0, 3211303, 0, 0, 3211304, 0, 0, 3211307, 0, 0, 3211310, 0, 0, 3211312, 0, 0, 3211314, 0, 0, 3211331, 0, 0, 3211334, 0, 0, 3211335, 0, 0, 3211336, 0, 0, 3211337, 0, 0, 3211338, 0, 0, 3211339, 0, 0, 3211340, 0, 0, 3211341, 0, 0, 3211342, 0, 0, 3211343, 0, 0, 3211344, 0, 0, 3211345, 0, 0, 3211346, 0, 0, 3211347, 0, 0, 3211348, 0, 0, 3211349, 0, 0, 3211350, 0, 0, 3211351, 0, 0, 3211352, 0, 0, 3211353, 0, 0, 3211354, 0, 0, 3211355, 0, 0, 3211356, 0, 0, 3211357, 0, 0, 3211358, 0, 0, 3211359, 0, 0, 3211360, 0, 0, 3211361, 0, 0, 3211362, 0, 0, 3211363, 0, 0, 3211367, 0, 0, 3276800, 0, 0, 3276802, 0, 0, 3276804, 0, 0, 3276843, 0, 0, 3276846, 0, 0, 3276848, 0, 0, 3276850, 0, 0, 3276867, 0, 0, 3276869, 0, 0, 3276870, 0, 0, 3276871, 0, 0, 3276872, 0, 0, 3276873, 0, 0, 3276874, 0, 0, 3276875, 0, 0, 3276876, 0, 0, 3276877, 0, 0, 3276878, 0, 0, 3276879, 0, 0, 3276880, 0, 0, 3276881, 0, 0, 3276882, 0, 0, 3276883, 0, 0, 3276884, 0, 0, 3276885, 0, 0, 3276886, 0, 0, 3276887, 0, 0, 3276888, 0, 0, 3276889, 0, 0, 3276890, 0, 0, 3276891, 0, 0, 3276892, 0, 0, 3276893, 0, 0, 3276894, 0, 0, 3276895, 0, 0, 3276896, 0, 0, 3276897, 0, 0, 3276898, 0, 0, 3276899, 0, 0, 3276903, 0, 0, 3342336, 0, 0, 3342338, 0, 0, 3342340, 0, 0, 3342379, 0, 0, 3342382, 0, 0, 3342384, 0, 0, 3342386, 0, 0, 3342403, 0, 0, 3342406, 0, 0, 3342407, 0, 0, 3342408, 0, 0, 3342409, 0, 0, 3342410, 0, 0, 3342411, 0, 0, 3342412, 0, 0, 3342413, 0, 0, 3342414, 0, 0, 3342415, 0, 0, 3342416, 0, 0, 3342417, 0, 0, 3342418, 0, 0, 3342419, 0, 0, 3342420, 0, 0, 3342421, 0, 0, 3342422, 0, 0, 3342423, 0, 0, 3342424, 0, 0, 3342425, 0, 0, 3342426, 0, 0, 3342427, 0, 0, 3342428, 0, 0, 3342429, 0, 0, 3342430, 0, 0, 3342431, 0, 0, 3342432, 0, 0, 3342433, 0, 0, 3342434, 0, 0, 3342435, 0, 0, 3342439, 0, 0, 3407872, 0, 0, 3407874, 0, 0, 3407876, 0, 0, 3407877, 0, 0, 3407880, 0, 0, 3407881, 0, 0, 3407882, 0, 0, 3407883, 0, 0, 3407884, 1, 0, 3407885, 0, 0, 3407886, 0, 0, 3407887, 0, 0, 3407888, 0, 0, 3407889, 0, 0, 3407890, 0, 0, 3407891, 0, 0, 3407892, 0, 0, 3407893, 0, 0, 3407894, 0, 0, 3407895, 1, 0, 3407896, 0, 0, 3407897, 0, 0, 3407898, 0, 0, 3407899, 0, 0, 3407900, 0, 0, 3407901, 0, 0, 3407902, 0, 0, 3407903, 0, 0, 3407904, 1, 0, 3407905, 0, 0, 3407906, 0, 0, 3407907, 0, 0, 3407908, 0, 0, 3407909, 0, 0, 3407910, 0, 0, 3407911, 0, 0, 3407912, 0, 0, 3407913, 1, 0, 3407914, 1, 0, 3407915, 0, 0, 3407918, 0, 0, 3407920, 0, 0, 3407922, 0, 0, 3407923, 0, 0, 3407924, 0, 0, 3407925, 0, 0, 3407929, 0, 0, 3407930, 0, 0, 3407931, 0, 0, 3407932, 0, 0, 3407936, 0, 0, 3407937, 0, 0, 3407938, 0, 0, 3407939, 0, 0, 3407942, 0, 0, 3407943, 0, 0, 3407944, 0, 0, 3407945, 0, 0, 3407946, 0, 0, 3407947, 0, 0, 3407948, 0, 0, 3407949, 0, 0, 3407950, 0, 0, 3407951, 0, 0, 3407952, 0, 0, 3407953, 0, 0, 3407954, 0, 0, 3407955, 0, 0, 3407956, 0, 0, 3407957, 0, 0, 3407958, 0, 0, 3407959, 0, 0, 3407960, 0, 0, 3407961, 0, 0, 3407962, 0, 0, 3407963, 0, 0, 3407964, 0, 0, 3407965, 0, 0, 3407966, 0, 0, 3407967, 0, 0, 3407968, 0, 0, 3407969, 0, 0, 3407970, 0, 0, 3407971, 0, 0, 3407975, 0, 0, 3473408, 0, 0, 3473410, 0, 0, 3473421, 0, 0, 3473430, 0, 0, 3473432, 0, 0, 3473439, 0, 0, 3473448, 0, 0, 3473451, 0, 0, 3473454, 0, 0, 3473456, 0, 0, 3473458, 0, 0, 3473475, 0, 0, 3473478, 0, 0, 3473479, 0, 0, 3473480, 0, 0, 3473481, 0, 0, 3473482, 0, 0, 3473483, 0, 0, 3473484, 0, 0, 3473485, 0, 0, 3473486, 0, 0, 3473487, 0, 0, 3473488, 0, 0, 3473489, 0, 0, 3473490, 0, 0, 3473491, 0, 0, 3473492, 0, 0, 3473493, 0, 0, 3473494, 0, 0, 3473495, 0, 0, 3473496, 0, 0, 3473497, 0, 0, 3473498, 0, 0, 3473499, 0, 0, 3473500, 0, 0, 3473501, 0, 0, 3473502, 0, 0, 3473503, 0, 0, 3473504, 0, 0, 3473505, 0, 0, 3473506, 0, 0, 3473507, 0, 0, 3473511, 0, 0, 3538944, 0, 0, 3538946, 0, 0, 3538948, 0, 0, 3538949, 0, 0, 3538950, 0, 0, 3538951, 0, 0, 3538952, 0, 0, 3538953, 0, 0, 3538954, 0, 0, 3538955, 0, 0, 3538956, 1, 0, 3538957, 0, 0, 3538958, 0, 0, 3538959, 0, 0, 3538960, 0, 0, 3538961, 0, 0, 3538962, 0, 0, 3538963, 0, 0, 3538964, 0, 0, 3538965, 0, 0, 3538966, 0, 0, 3538967, 1, 0, 3538968, 0, 0, 3538969, 0, 0, 3538970, 0, 0, 3538971, 0, 0, 3538972, 0, 0, 3538973, 0, 0, 3538974, 0, 0, 3538975, 0, 0, 3538984, 0, 0, 3538987, 0, 0, 3538990, 0, 0, 3538992, 0, 0, 3538994, 0, 0, 3539011, 0, 0, 3539014, 0, 0, 3539015, 0, 0, 3539016, 0, 0, 3539017, 0, 0, 3539018, 0, 0, 3539019, 0, 0, 3539020, 0, 0, 3539021, 0, 0, 3539022, 0, 0, 3539023, 0, 0, 3539024, 0, 0, 3539025, 0, 0, 3539026, 0, 0, 3539027, 0, 0, 3539028, 0, 0, 3539029, 0, 0, 3539030, 0, 0, 3539031, 0, 0, 3539032, 0, 0, 3539033, 0, 0, 3539034, 0, 0, 3539035, 0, 0, 3539036, 0, 0, 3539037, 0, 0, 3539038, 0, 0, 3539039, 0, 0, 3539040, 0, 0, 3539041, 0, 0, 3539042, 0, 0, 3539043, 0, 0, 3539047, 0, 0, 3604480, 0, 0, 3604482, 0, 0, 3604484, 0, 0, 3604511, 0, 0, 3604512, 1, 0, 3604513, 1, 0, 3604514, 1, 0, 3604515, 1, 0, 3604516, 1, 0, 3604517, 1, 0, 3604518, 1, 0, 3604519, 1, 0, 3604520, 0, 0, 3604523, 0, 0, 3604526, 0, 0, 3604528, 0, 0, 3604530, 0, 0, 3604547, 0, 0, 3604550, 0, 0, 3604551, 0, 0, 3604552, 0, 0, 3604553, 0, 0, 3604554, 0, 0, 3604555, 0, 0, 3604556, 0, 0, 3604557, 0, 0, 3604558, 0, 0, 3604559, 0, 0, 3604560, 0, 0, 3604561, 0, 0, 3604562, 0, 0, 3604563, 0, 0, 3604564, 0, 0, 3604565, 0, 0, 3604566, 0, 0, 3604567, 0, 0, 3604568, 0, 0, 3604569, 0, 0, 3604570, 0, 0, 3604571, 0, 0, 3604572, 0, 0, 3604573, 0, 0, 3604574, 0, 0, 3604575, 0, 0, 3604576, 0, 0, 3604577, 0, 0, 3604578, 0, 0, 3604579, 0, 0, 3604583, 0, 0, 3670016, 0, 0, 3670018, 0, 0, 3670020, 0, 0, 3670047, 0, 0, 3670056, 0, 0, 3670059, 0, 0, 3670062, 0, 0, 3670064, 0, 0, 3670066, 0, 0, 3670083, 0, 0, 3670086, 0, 0, 3670087, 0, 0, 3670088, 0, 0, 3670089, 0, 0, 3670090, 0, 0, 3670091, 0, 0, 3670092, 0, 0, 3670093, 0, 0, 3670094, 0, 0, 3670095, 0, 0, 3670096, 0, 0, 3670097, 0, 0, 3670098, 0, 0, 3670099, 0, 0, 3670100, 0, 0, 3670101, 0, 0, 3670102, 0, 0, 3670103, 0, 0, 3670104, 0, 0, 3670105, 0, 0, 3670106, 0, 0, 3670107, 0, 0, 3670108, 0, 0, 3670109, 0, 0, 3670110, 0, 0, 3670111, 0, 0, 3670112, 0, 0, 3670113, 0, 0, 3670114, 0, 0, 3670115, 0, 0, 3670119, 0, 0, 3735552, 0, 0, 3735554, 0, 0, 3735583, 0, 0, 3735586, 0, 0, 3735589, 0, 0, 3735592, 0, 0, 3735595, 0, 0, 3735596, 0, 0, 3735597, 0, 0, 3735598, 0, 0, 3735600, 0, 0, 3735602, 0, 0, 3735619, 0, 0, 3735655, 0, 0, 3801088, 0, 0, 3801090, 0, 0, 3801091, 0, 0, 3801092, 0, 0, 3801093, 0, 0, 3801094, 0, 0, 3801095, 0, 0, 3801096, 0, 0, 3801097, 0, 0, 3801098, 0, 0, 3801099, 0, 0, 3801100, 0, 0, 3801101, 0, 0, 3801102, 0, 0, 3801103, 0, 0, 3801104, 0, 0, 3801105, 0, 0, 3801106, 0, 0, 3801107, 0, 0, 3801108, 0, 0, 3801109, 0, 0, 3801110, 0, 0, 3801111, 0, 0, 3801112, 0, 0, 3801113, 0, 0, 3801114, 0, 0, 3801115, 0, 0, 3801116, 0, 0, 3801117, 0, 0, 3801118, 0, 0, 3801119, 0, 0, 3801128, 0, 0, 3801136, 0, 0, 3801138, 0, 0, 3801155, 0, 0, 3801191, 0, 0, 3801192, 0, 0, 3801193, 0, 0, 3801194, 0, 0, 3801195, 0, 0, 3801196, 0, 0, 3866624, 0, 0, 3866655, 0, 0, 3866656, 1, 0, 3866657, 1, 0, 3866658, 1, 0, 3866659, 1, 0, 3866660, 1, 0, 3866661, 1, 0, 3866662, 1, 0, 3866663, 1, 0, 3866664, 0, 0, 3866665, 0, 0, 3866666, 0, 0, 3866667, 0, 0, 3866668, 0, 0, 3866669, 0, 0, 3866670, 0, 0, 3866671, 0, 0, 3866672, 0, 0, 3866674, 0, 0, 3866691, 0, 0, 3866703, 2, 0, 3866704, 0, 0, 3866705, 0, 0, 3866706, 3, 0, 3866717, 2, 0, 3866718, 0, 0, 3866719, 0, 0, 3866720, 3, 0, 3866732, 0, 0, 3932160, 0, 0, 3932161, 0, 0, 3932162, 0, 0, 3932163, 0, 0, 3932164, 0, 0, 3932165, 0, 0, 3932166, 0, 0, 3932167, 0, 0, 3932168, 0, 0, 3932169, 0, 0, 3932170, 0, 0, 3932171, 0, 0, 3932172, 0, 0, 3932173, 0, 0, 3932174, 0, 0, 3932175, 0, 0, 3932176, 0, 0, 3932177, 0, 0, 3932178, 0, 0, 3932179, 0, 0, 3932180, 0, 0, 3932181, 0, 0, 3932182, 0, 0, 3932183, 0, 0, 3932184, 0, 0, 3932185, 0, 0, 3932186, 0, 0, 3932187, 3, 0, 3932227, 0, 0, 3932232, 2, 0, 3932233, 0, 0, 3932234, 0, 0, 3932235, 3, 0, 3932238, 2, 0, 3932239, 0, 0, 3932240, 0, 0, 3932241, 0, 0, 3932242, 0, 0, 3932243, 3, 0, 3932246, 2, 0, 3932247, 0, 0, 3932248, 0, 0, 3932249, 3, 0, 3932252, 2, 0, 3932253, 0, 0, 3932254, 0, 0, 3932255, 0, 0, 3932256, 0, 0, 3932257, 3, 0, 3932268, 0, 0, 3997696, 0, 0, 3997697, 0, 0, 3997698, 0, 0, 3997699, 0, 0, 3997700, 0, 0, 3997701, 0, 0, 3997702, 0, 0, 3997703, 0, 0, 3997704, 0, 0, 3997705, 0, 0, 3997706, 0, 0, 3997707, 0, 0, 3997708, 0, 0, 3997709, 0, 0, 3997710, 0, 0, 3997711, 0, 0, 3997712, 0, 0, 3997713, 0, 0, 3997714, 0, 0, 3997715, 0, 0, 3997716, 0, 0, 3997717, 0, 0, 3997718, 0, 0, 3997719, 0, 0, 3997720, 0, 0, 3997721, 0, 0, 3997722, 0, 0, 3997723, 0, 0, 3997724, 0, 0, 3997725, 0, 0, 3997726, 0, 0, 3997727, 0, 0, 3997728, 0, 0, 3997729, 0, 0, 3997730, 0, 0, 3997731, 0, 0, 3997732, 0, 0, 3997733, 0, 0, 3997734, 0, 0, 3997735, 0, 0, 3997736, 0, 0, 3997737, 0, 0, 3997738, 0, 0, 3997739, 0, 0, 3997740, 0, 0, 3997741, 0, 0, 3997742, 0, 0, 3997743, 0, 0, 3997744, 0, 0, 3997745, 0, 0, 3997746, 0, 0, 3997747, 0, 0, 3997748, 0, 0, 3997749, 0, 0, 3997750, 0, 0, 3997751, 0, 0, 3997752, 0, 0, 3997753, 0, 0, 3997754, 0, 0, 3997755, 0, 0, 3997756, 0, 0, 3997757, 0, 0, 3997758, 0, 0, 3997759, 0, 0, 3997760, 0, 0, 3997761, 0, 0, 3997762, 0, 0, 3997763, 0, 0, 3997764, 0, 0, 3997765, 0, 0, 3997766, 0, 0, 3997767, 0, 0, 3997768, 0, 0, 3997769, 0, 0, 3997770, 0, 0, 3997771, 0, 0, 3997772, 0, 0, 3997773, 0, 0, 3997774, 0, 0, 3997775, 0, 0, 3997776, 0, 0, 3997777, 0, 0, 3997778, 0, 0, 3997779, 0, 0, 3997780, 0, 0, 3997781, 0, 0, 3997782, 0, 0, 3997783, 0, 0, 3997784, 0, 0, 3997785, 0, 0, 3997786, 0, 0, 3997787, 0, 0, 3997788, 0, 0, 3997789, 0, 0, 3997790, 0, 0, 3997791, 0, 0, 3997792, 0, 0, 3997793, 0, 0, 3997794, 0, 0, 3997795, 0, 0, 3997796, 0, 0, 3997797, 0, 0, 3997798, 0, 0, 3997799, 0, 0, 3997800, 0, 0, 3997801, 0, 0, 3997802, 0, 0, 3997803, 0, 0, 3997804, 0, 0 ) + +[node name="Music" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) +volume_db = -14.0 +script = ExtResource( 6 ) + +[node name="Springs" type="Node" parent="."] + +[node name="SpringWeak" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 496, 320 ) + +[node name="SpringWeak2" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 752, 960 ) + +[node name="SpringWeak4" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 1072, 800 ) + +[node name="SpringWeak60" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 1008, 672 ) + +[node name="SpringWeak5" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 1040, 1024 ) + +[node name="SpringWeak36" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2032, 480 ) + +[node name="SpringWeak37" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2288, 320 ) + +[node name="SpringWeak38" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2064, 672 ) + +[node name="SpringWeak58" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 1328, 832 ) + +[node name="SpringWeak39" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2224, 672 ) + +[node name="SpringWeak40" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2512, 672 ) + +[node name="SpringWeak41" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2576, 672 ) + +[node name="SpringWeak55" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2000, 1504 ) + +[node name="SpringWeak57" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2224, 1600 ) + +[node name="SpringWeak59" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2128, 1664 ) + +[node name="SpringWeak42" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2608, 672 ) + +[node name="SpringWeak43" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2672, 608 ) + +[node name="SpringWeak44" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2704, 608 ) + +[node name="SpringWeak45" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2768, 544 ) + +[node name="SpringWeak51" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 3024, 416 ) + +[node name="SpringWeak53" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2928, 864 ) + +[node name="SpringWeak52" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2992, 416 ) + +[node name="SpringWeak54" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2992, 512 ) + +[node name="SpringWeak56" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 3024, 512 ) + +[node name="SpringWeak46" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2800, 544 ) + +[node name="SpringWeak47" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2672, 480 ) + +[node name="SpringWeak48" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2704, 480 ) + +[node name="SpringWeak49" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2576, 416 ) + +[node name="SpringWeak50" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 2608, 416 ) + +[node name="SpringWeak22" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 848, 1184 ) + +[node name="SpringWeak23" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 880, 1184 ) + +[node name="SpringWeak24" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 912, 1184 ) + +[node name="SpringWeak25" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 944, 1184 ) + +[node name="SpringWeak26" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 976, 1184 ) + +[node name="SpringWeak27" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 1008, 1184 ) + +[node name="SpringWeak35" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 592, 1184 ) + +[node name="SpringWeak61" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 368, 1280 ) + +[node name="SpringWeak34" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 624, 1184 ) + +[node name="SpringWeak33" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 656, 1184 ) + +[node name="SpringWeak32" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 688, 1184 ) + +[node name="SpringWeak31" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 720, 1184 ) + +[node name="SpringWeak30" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 752, 1184 ) + +[node name="SpringWeak28" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 1072, 1184 ) + +[node name="SpringWeak29" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 1104, 1184 ) + +[node name="SpringWeak6" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 624, 1472 ) + +[node name="SpringWeak21" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 560, 1568 ) + +[node name="SpringWeak7" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 656, 1472 ) + +[node name="SpringWeak8" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 688, 1472 ) + +[node name="SpringWeak9" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 720, 1472 ) + +[node name="SpringWeak10" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 752, 1472 ) + +[node name="SpringWeak18" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 624, 1376 ) + +[node name="SpringWeak19" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 976, 1376 ) + +[node name="SpringWeak20" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 800, 1376 ) + +[node name="SpringWeak11" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 784, 1472 ) + +[node name="SpringWeak12" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 816, 1472 ) + +[node name="SpringWeak13" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 848, 1472 ) + +[node name="SpringWeak14" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 880, 1472 ) + +[node name="SpringWeak15" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 912, 1472 ) + +[node name="SpringWeak16" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 944, 1472 ) + +[node name="SpringWeak17" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 976, 1472 ) + +[node name="SpringWeak3" parent="Springs" instance=ExtResource( 9 )] +position = Vector2( 368, 960 ) + +[node name="Spring" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 560, 416 ) + +[node name="Spring3" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 688, 512 ) + +[node name="Spring5" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1168, 352 ) + +[node name="Spring6" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1008, 320 ) + +[node name="Spring7" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1008, 576 ) + +[node name="Spring24" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1520, 672 ) + +[node name="Spring25" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1936, 352 ) + +[node name="Spring26" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2512, 576 ) + +[node name="Spring37" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2448, 288 ) + +[node name="Spring36" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1840, 736 ) + +[node name="Spring27" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2160, 960 ) + +[node name="Spring29" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2320, 1536 ) + +[node name="Spring30" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2192, 1952 ) + +[node name="Spring31" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2512, 1536 ) + +[node name="Spring32" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2704, 1536 ) + +[node name="Spring33" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2896, 1536 ) + +[node name="Spring34" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 3120, 1536 ) + +[node name="Spring35" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 3120, 1184 ) + +[node name="Spring28" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 2480, 960 ) + +[node name="Spring2" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 368, 608 ) + +[node name="Spring4" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 368, 832 ) + +[node name="Spring8" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 464, 832 ) + +[node name="Spring39" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 464, 704 ) + +[node name="Spring9" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 176, 1664 ) + +[node name="Spring10" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 400, 1856 ) + +[node name="Spring11" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 752, 1856 ) + +[node name="Spring12" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 752, 1728 ) + +[node name="Spring21" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1040, 1760 ) + +[node name="Spring22" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1360, 1664 ) + +[node name="Spring23" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1328, 1888 ) + +[node name="Spring13" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 784, 1280 ) + +[node name="Spring15" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 560, 1280 ) + +[node name="Spring38" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 464, 1120 ) + +[node name="Spring17" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 560, 1472 ) + +[node name="Spring18" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1040, 1472 ) + +[node name="Spring19" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 1040, 1344 ) + +[node name="Spring16" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 560, 1184 ) + +[node name="Spring14" parent="Springs" instance=ExtResource( 1 )] +position = Vector2( 816, 1280 ) + +[node name="Secret" type="Node" parent="."] + +[node name="Coin" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 832, 951 ) + +[node name="Coin3" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 1584, 340 ) + +[node name="Coin9" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 2064, 848 ) + +[node name="Coin10" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 1744, 528 ) + +[node name="Coin11" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 2864, 528 ) + +[node name="Coin12" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 3152, 704 ) + +[node name="Coin8" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 368, 240 ) + +[node name="Coin4" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 2128, 1936 ) + +[node name="Coin6" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 1264, 1744 ) + +[node name="Coin7" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 1776, 944 ) + +[node name="Coin5" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 2256, 791 ) + +[node name="Coin2" parent="Secret" instance=ExtResource( 11 )] +position = Vector2( 464, 680 ) + +[node name="ParallaxBackground" type="ParallaxBackground" parent="."] +scroll_ignore_camera_zoom = true + +[node name="ParallaxLayer" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.05, 0.05 ) +motion_offset = Vector2( -100, -50 ) +motion_mirroring = Vector2( 298, 298 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer"] +texture = ExtResource( 5 ) +centered = false + +[node name="ParallaxLayer2" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.1, 0.1 ) +motion_mirroring = Vector2( 634, 0 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite2" type="Sprite" parent="ParallaxBackground/ParallaxLayer2"] +texture = ExtResource( 4 ) +centered = false +offset = Vector2( 0, -400 ) +region_rect = Rect2( 0, 0, 635.097, 786.762 ) + +[node name="ParallaxLayer3" type="ParallaxLayer" parent="ParallaxBackground"] +motion_scale = Vector2( 0.2, 0.2 ) +motion_mirroring = Vector2( 448, 0 ) +__meta__ = { +"_edit_lock_": true +} + +[node name="Sprite" type="Sprite" parent="ParallaxBackground/ParallaxLayer3"] +texture = ExtResource( 2 ) +centered = false +offset = Vector2( 0, 300 ) +region_rect = Rect2( 0, 0, 448.527, 629.578 ) + +[node name="InventoryItemPickup" parent="." instance=ExtResource( 13 )] +position = Vector2( 79, 1519 ) +item = "KeyYellow" + +[node name="TriggerResults" parent="." instance=ExtResource( 10 )] +position = Vector2( 3320, 1912 ) +scale = Vector2( 1.17911, 2.77211 ) + +[node name="Player" parent="." instance=ExtResource( 14 )] +position = Vector2( 342.897, 351.981 ) +[connection signal="touched" from="TriggerResults" to="Music" method="_on_TriggerResults_touched"] diff --git a/src/Main/BlackBorders.tscn b/src/Main/BlackBorders.tscn new file mode 100644 index 0000000..3d0f302 --- /dev/null +++ b/src/Main/BlackBorders.tscn @@ -0,0 +1,16 @@ +[gd_scene format=2] + +[node name="Borders" type="Control"] +margin_right = 320.0 +margin_bottom = 240.0 + +[node name="ColorRect2" type="ColorRect" parent="."] +margin_right = 320.0 +margin_bottom = 32.0 +color = Color( 0, 0, 0, 1 ) + +[node name="ColorRect3" type="ColorRect" parent="."] +margin_top = 208.0 +margin_right = 320.0 +margin_bottom = 240.0 +color = Color( 0, 0, 0, 1 ) diff --git a/src/Main/Game.gd b/src/Main/Game.gd new file mode 100644 index 0000000..9689fc7 --- /dev/null +++ b/src/Main/Game.gd @@ -0,0 +1,70 @@ +extends Node +# This class contains controls that should always be accessible, like pausing +# the game or toggling the window full-screen. + +var map_name = null +var map_path = null +var player = null + +# The "_" prefix is a convention to indicate that variables are private, +# that is to say, another node or script should not access them. +onready var _pause_menu = load("res://src/Main/PauseMenu.tscn") + + +func _init(): + OS.min_window_size = OS.window_size + OS.max_window_size = OS.get_screen_size() + +func _ready(): + change_scene("res://src/Main/MainMenu.tscn",true,"fade_in",global.STATE.MENU) + +func _input(event): + if event.is_action_pressed("toggle_fullscreen"): + OS.window_fullscreen = not OS.window_fullscreen + get_tree().set_input_as_handled() + # The GlobalControls node, in the Stage scene, is set to process even + # when the game is paused, so this code keeps running. + # To see that, select GlobalControls, and scroll down to the Pause category + # in the inspector. + elif event.is_action_pressed("toggle_pause") and global.game_state == global.STATE.INGAME: + if !get_tree().paused: + pause() + get_tree().set_input_as_handled() + +func pause(): + var pause_menu = _pause_menu.instance() + add_child(pause_menu) + get_tree().paused = true + +func change_scene(path_to_scene : String, reset_stats : bool = false, + transition = "fade_out", set_game_mode = global.STATE.INGAME): + + global.show_message("") + + if transition != "none": + if find_node("Player"): + player.can_move = false + var transition_effect = load("res://src/Main/SceneTransition.tscn").instance() + add_child(transition_effect) + var anim = transition_effect.get_node("AnimationPlayer") + transition_effect.start(transition) + yield(anim,"animation_finished") + global.game_state = set_game_mode + + if map_name != null: + var map = get_node(map_name) + remove_child(map) + map.call_deferred("free") + + var next_map_path = load(path_to_scene) + var next_map = next_map_path.instance() + add_child(next_map) + map_name = next_map.name + map_path = next_map.get_path() + + global.game_state = set_game_mode + +# if set_game_mode == global.STATE.INGAME: +# player = get_node(map_name + "/Entities/Player") + + set_process(true) diff --git a/src/Main/Game.tscn b/src/Main/Game.tscn new file mode 100644 index 0000000..e635fd0 --- /dev/null +++ b/src/Main/Game.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://src/Main/Game.gd" type="Script" id=2] +[ext_resource path="res://src/Main/HUD.tscn" type="PackedScene" id=5] + +[node name="Game" type="Node"] +pause_mode = 2 +script = ExtResource( 2 ) + +[node name="InterfaceLayer" type="CanvasLayer" parent="."] +layer = 100 + +[node name="HUD" parent="." instance=ExtResource( 5 )] diff --git a/src/Main/GetReady.gd b/src/Main/GetReady.gd new file mode 100644 index 0000000..38a3cbb --- /dev/null +++ b/src/Main/GetReady.gd @@ -0,0 +1,37 @@ +extends Control + +var label_number = 0 +var zone +var level +onready var small_label = $ZoneNumber +onready var title_label = $LevelName + +func _ready(): + $MonoBackground/Back.color = Color(randf(),randf(),randf()) + small_label.text = "Stage "+str(global.current_level+1) + title_label.text = global.level_names[global.current_level] + +func _process(delta): + if Input.is_action_just_pressed("shoot") or Input.is_action_just_pressed("special") : + go() + +func _on_Timer_timeout(): + if label_number != 2: + $MonoBackground/Back.color = Color(randf(),randf(),randf()) + match label_number: + 0: + title_label.visible = true + small_label.visible = false + 1: + small_label.text = "GET READY" + title_label.visible = false + small_label.visible = true + 2: + small_label.text = "GO" + $Timer.stop() + go() + label_number += 1 + +func go(): + set_process(false) + global.game_root.change_scene("res://src/Level/"+global.level_list[global.current_level]+".tscn",true) diff --git a/src/Main/GetReady.tscn b/src/Main/GetReady.tscn new file mode 100644 index 0000000..a1625fb --- /dev/null +++ b/src/Main/GetReady.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://src/Main/GetReady.gd" type="Script" id=1] +[ext_resource path="res://src/Main/MonoBackground.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/theme/fonts/TitleCardFont.tres" type="DynamicFont" id=3] +[ext_resource path="res://assets/theme/fonts/NormalFont.tres" type="DynamicFont" id=4] +[ext_resource path="res://src/Main/BlackBorders.tscn" type="PackedScene" id=6] + +[node name="GetReady" type="Control"] +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MonoBackground" parent="." instance=ExtResource( 2 )] + +[node name="ZoneNumber" type="Label" parent="."] +margin_right = 320.0 +margin_bottom = 240.0 +custom_fonts/font = ExtResource( 4 ) +text = "ZONE 1" +align = 1 +valign = 1 +uppercase = true + +[node name="LevelName" type="Label" parent="."] +visible = false +margin_top = -4.0 +margin_right = 320.0 +margin_bottom = 240.0 +custom_fonts/font = ExtResource( 3 ) +text = "Glorious Perseverance" +align = 1 +valign = 1 + +[node name="Borders" parent="." instance=ExtResource( 6 )] + +[node name="Timer" type="Timer" parent="."] +autostart = true +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/src/Main/HUD.gd b/src/Main/HUD.gd new file mode 100644 index 0000000..497d090 --- /dev/null +++ b/src/Main/HUD.gd @@ -0,0 +1,91 @@ +extends CanvasLayer + +var text +var length = 0 +var scroll_effect = 0 +var important = 0 +var seconds = 0 +var minutes = 0 +onready var inventory = $Inventory.get_children() +onready var text_label = $DownPanel/Message +onready var scroll = text_label.get_v_scroll() +onready var clock = $UpPanel/CenterContainer/Timer + +func _process(delta): + $DownPanel.visible = (global.game_state == global.STATE.INGAME) + $UpPanel.visible = (global.game_state == global.STATE.INGAME) + $Inventory.visible = (global.game_state == global.STATE.INGAME) + +func show_message(display_text,_important): + $TypeTimer.stop() + #$ScrollTimer.stop() + #$ScrollWaitTimer.stop() + $ClearTimer.stop() + scroll_effect = 0 + scroll.value = 0 + text_label.visible_characters = 0 + text = display_text + var regex + regex = RegEx.new() + regex.compile("\\[.*?]") + var stripped = text + for j in regex.search_all(text): + stripped = stripped.replace(j.get_string(),"") + length = stripped.length() + #$ScrollWaitTimer.wait_time = 2 + $TypeTimer.start() + $ClearTimer.start() + #$ScrollWaitTimer.start() + text_label.bbcode_text = text + +func _on_TypeTimer_timeout(): + if scroll_effect == 0: + if text_label.visible_characters < length: + text_label.visible_characters += 1 + $TypeTimer.start() + elif scroll_effect == -1 and text_label.visible_characters > 0: + text_label.visible_characters -= 1 + $TypeTimer.start() + +func _on_ScrollTimer_timeout(): + if scroll.value == scroll.max_value-9: + $ScrollTimer.stop() + $ScrollWaitTimer.stop() + $ClearTimer.start() + else: + if scroll_effect < 9: + scroll.value += 1 + scroll_effect +=1 + else: + scroll_effect = 0 + $ScrollWaitTimer.start() + $ScrollTimer.stop() + +func _on_ScrollWaitTimer_timeout(): + text_label.visible_characters = length + $ScrollWaitTimer.wait_time = 1 + $ScrollTimer.start() + +func _on_ClearTimer_timeout(): + $TypeTimer.start() + scroll_effect = -1 + +func update_items(): + for item in inventory: + item.visible = global.has_item(item.name) + +func run_clock(): + seconds = 0 + minutes = 0 + $ClockTick.start() + +func stop_clock(): + $ClockTick.stop() + + +func update_clock(): + seconds += 1 + if seconds == 60: + seconds = 0 + minutes += 1 + clock.text = ("%02d" % minutes) + ":" +("%02d" % seconds) diff --git a/src/Main/HUD.tscn b/src/Main/HUD.tscn new file mode 100644 index 0000000..8a2af56 --- /dev/null +++ b/src/Main/HUD.tscn @@ -0,0 +1,121 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://assets/art/key_yellow.png" type="Texture" id=1] +[ext_resource path="res://assets/theme/fonts/NormalFont.tres" type="DynamicFont" id=2] +[ext_resource path="res://src/Main/HUD.gd" type="Script" id=3] + +[node name="HUD" type="CanvasLayer"] +pause_mode = 1 +script = ExtResource( 3 ) + +[node name="UpPanel" type="ColorRect" parent="."] +visible = false +anchor_right = 1.0 +margin_bottom = 16.0 +color = Color( 0, 0, 0, 0 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CenterContainer" type="CenterContainer" parent="UpPanel"] +margin_left = 2.0 +margin_right = 318.0 +margin_bottom = 16.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Timer" type="Label" parent="UpPanel/CenterContainer"] +margin_left = 138.0 +margin_top = 4.0 +margin_right = 178.0 +margin_bottom = 12.0 +size_flags_horizontal = 7 +custom_fonts/font = ExtResource( 2 ) +text = "00:00" +align = 2 + +[node name="Margin" type="MarginContainer" parent="UpPanel"] +anchor_right = 1.0 +margin_left = 2.0 +margin_right = -2.0 +margin_bottom = 16.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="DownPanel" type="ColorRect" parent="."] +visible = false +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = -16.0 +color = Color( 0, 0, 0, 0 ) + +[node name="Message" type="RichTextLabel" parent="DownPanel"] +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.63 +anchor_bottom = 1.0 +margin_left = -156.0 +margin_top = -12.0 +margin_right = 114.4 +margin_bottom = -3.0 +rect_clip_content = false +custom_fonts/normal_font = ExtResource( 2 ) +bbcode_enabled = true +visible_characters = 0 +scroll_active = false + +[node name="Inventory" type="GridContainer" parent="."] +margin_left = 318.0 +margin_top = -2.0 +margin_right = 374.0 +margin_bottom = 14.0 +rect_scale = Vector2( -1, 1 ) +columns = 3 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="KeyYellow" type="TextureRect" parent="Inventory"] +visible = false +margin_right = 16.0 +margin_bottom = 16.0 +texture = ExtResource( 1 ) + +[node name="KeyBlue" type="TextureRect" parent="Inventory"] +visible = false +margin_left = 20.0 +margin_right = 36.0 +margin_bottom = 16.0 +texture = ExtResource( 1 ) + +[node name="KeyRed" type="TextureRect" parent="Inventory"] +visible = false +margin_left = 40.0 +margin_right = 56.0 +margin_bottom = 16.0 +texture = ExtResource( 1 ) + +[node name="TypeTimer" type="Timer" parent="."] +wait_time = 0.05 +one_shot = true + +[node name="ScrollTimer" type="Timer" parent="."] +wait_time = 0.1 + +[node name="ScrollWaitTimer" type="Timer" parent="."] +wait_time = 2.0 +one_shot = true + +[node name="ClearTimer" type="Timer" parent="."] +wait_time = 4.0 +one_shot = true + +[node name="ClockTick" type="Timer" parent="."] +[connection signal="timeout" from="TypeTimer" to="." method="_on_TypeTimer_timeout"] +[connection signal="timeout" from="ScrollTimer" to="." method="_on_ScrollTimer_timeout"] +[connection signal="timeout" from="ScrollWaitTimer" to="." method="_on_ScrollWaitTimer_timeout"] +[connection signal="timeout" from="ClearTimer" to="." method="_on_ClearTimer_timeout"] +[connection signal="timeout" from="ClockTick" to="." method="update_clock"] diff --git a/src/Main/MainMenu.gd b/src/Main/MainMenu.gd new file mode 100644 index 0000000..4ba42bf --- /dev/null +++ b/src/Main/MainMenu.gd @@ -0,0 +1,83 @@ +extends CanvasLayer + +var menu_selected = 0 +var item_selected = 0 +var item_no = [] +var item_labels = [] +var level_no = global.level_list.size() + +func _ready(): + global.current_level = 0 + global.score = 0 + global.hud.clock.text = "00:00" + var menus = [$MainMenu] + for i in menus: + item_labels.append(i.get_children()) + item_no.append(i.get_child_count()-1) + upd_level_sel() + color_option() + +func _process(delta): + var RIGHT = Input.is_action_just_pressed("ui_right") + var UP = Input.is_action_just_pressed("ui_up") + var LEFT = Input.is_action_just_pressed("ui_left") + var DOWN = Input.is_action_just_pressed("ui_down") + var SELECT = Input.is_action_just_pressed("shoot") + var BACK = Input.is_action_just_pressed("ui_cancel") + + if UP: + decolor_option() + if item_selected > 0: + item_selected -= 1 + else: + item_selected = item_no[menu_selected] + color_option() + elif DOWN: + decolor_option() + if item_selected < item_no[menu_selected]: + item_selected += 1 + else: + item_selected = 0 + color_option() + + if RIGHT: + if menu_selected == 0: + if item_selected == 0: + if global.current_level < level_no-1: + global.current_level += 1 + else: + global.current_level = 0 + upd_level_sel() + elif LEFT: + if menu_selected == 0: + if item_selected == 0: + if global.current_level == 0: + global.current_level = level_no-1 + else: + global.current_level -=1 + upd_level_sel() + + if SELECT: + decolor_option() + match menu_selected: + 0: + #Main menu + match item_selected: + 0: + set_process(false) + global.game_root.change_scene("res://src/Main/GetReady.tscn",true,"fade_out",global.STATE.MENU) + 1: + $AnimationPlayer.play("credits") + pass + color_option() + if BACK: + decolor_option() + + color_option() + +func decolor_option(): + item_labels[menu_selected][item_selected].modulate = Color.white +func color_option(): + item_labels[menu_selected][item_selected].modulate = Color.plum +func upd_level_sel(): + item_labels[0][0].text = "" diff --git a/src/Main/MainMenu.tscn b/src/Main/MainMenu.tscn new file mode 100644 index 0000000..52d4cb7 --- /dev/null +++ b/src/Main/MainMenu.tscn @@ -0,0 +1,110 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://src/Main/MainMenu.gd" type="Script" id=1] +[ext_resource path="res://assets/art/background/title.png" type="Texture" id=2] +[ext_resource path="res://assets/theme/fonts/NormalFont.tres" type="DynamicFont" id=4] + +[sub_resource type="Animation" id=1] +resource_name = "credits" +length = 15.0 +step = 1.0 +tracks/0/type = "value" +tracks/0/path = NodePath("RichTextLabel:rect_position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 15 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 322, 188 ), Vector2( -1464, 188 ) ] +} + +[node name="MainMenu" type="CanvasLayer"] +script = ExtResource( 1 ) + +[node name="Background" type="TextureRect" parent="."] +margin_right = 426.0 +margin_bottom = 240.0 +texture = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="MainMenu" type="VBoxContainer" parent="."] +anchor_left = 0.296875 +anchor_top = 0.766667 +anchor_right = 0.296875 +anchor_bottom = 0.766667 +margin_left = -93.0 +margin_top = 15.9999 +margin_right = 226.0 +margin_bottom = 37.9999 +size_flags_horizontal = 4 +size_flags_vertical = 2 +size_flags_stretch_ratio = 0.6 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="StoryMode" type="Label" parent="MainMenu"] +margin_right = 319.0 +margin_bottom = 8.0 +rect_pivot_offset = Vector2( 42, 4 ) +custom_fonts/font = ExtResource( 4 ) +text = "START GAME" +align = 1 +uppercase = true + +[node name="Quit" type="Label" parent="MainMenu"] +margin_top = 12.0 +margin_right = 319.0 +margin_bottom = 20.0 +rect_pivot_offset = Vector2( 42, 4 ) +custom_fonts/font = ExtResource( 4 ) +text = "CREDITS" +align = 1 +uppercase = true + +[node name="MainVbox" type="VBoxContainer" parent="."] +margin_left = -94.0 +margin_top = 18.0 +margin_right = 226.0 +margin_bottom = 258.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="RichTextLabel" type="RichTextLabel" parent="."] +margin_left = 322.0 +margin_top = 188.0 +margin_right = 1826.0 +margin_bottom = 210.0 +rect_clip_content = false +custom_fonts/normal_font = ExtResource( 4 ) +bbcode_enabled = true +bbcode_text = "[wave amp=20 freq=5]Shirogami's Maze by Cidoku - Character and music by me - Game made in Godot using the 2D platformer demo by the Godot Engine team (I can't even code) - Tileset by rubberduck and bart[/wave]" +meta_underlined = false +text = "Shirogami's Maze by Cidoku - Character and music by me - Game made in Godot using the 2D platformer demo by the Godot Engine team (I can't even code) - Tileset by rubberduck and bart" +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +playback_speed = 0.7 +anims/credits = SubResource( 1 ) + +[node name="StoryMode2" type="Label" parent="."] +margin_left = 112.0 +margin_top = 232.0 +margin_right = 320.0 +margin_bottom = 240.0 +rect_pivot_offset = Vector2( 42, 4 ) +custom_fonts/font = ExtResource( 4 ) +text = "V1.1-2020" +align = 2 +uppercase = true +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/src/Main/MonoBackground.tscn b/src/Main/MonoBackground.tscn new file mode 100644 index 0000000..0cbf0b0 --- /dev/null +++ b/src/Main/MonoBackground.tscn @@ -0,0 +1,24 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://assets/art/background/bgPaper.png" type="Texture" id=1] + +[node name="MonoBackground" type="Control"] +margin_right = 320.0 +margin_bottom = 240.0 + +[node name="Back" type="ColorRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = 32.0 +margin_bottom = -28.0 +color = Color( 0.192157, 0.0509804, 0.227451, 1 ) + +[node name="TextureRect" type="TextureRect" parent="."] +modulate = Color( 1, 1, 1, 0.262745 ) +margin_top = 32.0 +margin_right = 320.0 +margin_bottom = 212.0 +texture = ExtResource( 1 ) +__meta__ = { +"_edit_lock_": true +} diff --git a/src/Main/PauseMenu.gd b/src/Main/PauseMenu.gd new file mode 100644 index 0000000..dc22796 --- /dev/null +++ b/src/Main/PauseMenu.gd @@ -0,0 +1,28 @@ +extends CanvasLayer + +var active = false + +func _ready(): + $AnimationPlayer.play("MoveIn") + +func _process(delta): + if active: + var UP = Input.is_action_just_pressed("ui_up") + var DOWN = Input.is_action_just_pressed("ui_down") + var SELECT = Input.is_action_just_pressed("shoot") + var PAUSE = Input.is_action_just_pressed("toggle_pause") + var BACK = Input.is_action_just_pressed("ui_cancel") + + if PAUSE or SELECT or BACK: + unpause() + +func _on_AnimationPlayer_animation_finished(anim_name): + if anim_name == "MoveIn": + active = true + if anim_name == "MoveOut": + get_tree().paused = false + queue_free() + +func unpause(): + set_process(false) + $AnimationPlayer.play("MoveOut") diff --git a/src/Main/PauseMenu.tscn b/src/Main/PauseMenu.tscn new file mode 100644 index 0000000..05cb081 --- /dev/null +++ b/src/Main/PauseMenu.tscn @@ -0,0 +1,138 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://src/Main/PauseMenu.gd" type="Script" id=1] +[ext_resource path="res://assets/theme/fonts/TitleCardFont.tres" type="DynamicFont" id=3] +[ext_resource path="res://src/Main/BlackBorders.tscn" type="PackedScene" id=5] + +[sub_resource type="Animation" id=1] +resource_name = "MoveIn" +length = 0.4 +step = 0.2 +tracks/0/type = "value" +tracks/0/path = NodePath("BordersLeftHalf:rect_position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( -160, 0 ), Vector2( 0, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("BordersRight:rect_position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 160, 0 ), Vector2( 0, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("VBoxContainer:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "MoveOut" +length = 0.4 +step = 0.2 +tracks/0/type = "value" +tracks/0/path = NodePath("BordersLeftHalf:rect_position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( -160, 0 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("BordersRight:rect_position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 160, 0 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("VBoxContainer:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0, 0.4 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} + +[node name="PauseMenu" type="CanvasLayer"] +pause_mode = 2 +script = ExtResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +playback_speed = 2.0 +anims/MoveIn = SubResource( 1 ) +anims/MoveOut = SubResource( 2 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +modulate = Color( 1, 1, 1, 0 ) +margin_right = 320.0 +margin_bottom = 240.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="GamePaused" type="Label" parent="VBoxContainer"] +margin_top = 111.0 +margin_right = 320.0 +margin_bottom = 128.0 +size_flags_vertical = 6 +custom_fonts/font = ExtResource( 3 ) +text = "Game paused" +align = 1 + +[node name="BordersLeftHalf" parent="." instance=ExtResource( 5 )] +margin_left = -160.0 +margin_right = 160.0 + +[node name="ColorRect2" parent="BordersLeftHalf" index="0"] +margin_right = 160.0 + +[node name="ColorRect3" parent="BordersLeftHalf" index="1"] +margin_right = 160.0 + +[node name="BordersRight" parent="." instance=ExtResource( 5 )] +margin_left = 160.0 +margin_right = 480.0 + +[node name="ColorRect2" parent="BordersRight" index="0"] +margin_left = 160.0 + +[node name="ColorRect3" parent="BordersRight" index="1"] +margin_left = 160.0 +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_AnimationPlayer_animation_finished"] + +[editable path="BordersLeftHalf"] + +[editable path="BordersRight"] diff --git a/src/Main/ResultsScreen.gd b/src/Main/ResultsScreen.gd new file mode 100644 index 0000000..ac2694e --- /dev/null +++ b/src/Main/ResultsScreen.gd @@ -0,0 +1,79 @@ +extends Control + +var time_bonus = 50000 +var secret_bonus = 0 +var final_score = 0 +var time = 0 +var label_number = 0 +onready var main_label = $Center/Results/Label +onready var score_label = $Center/Results/Score + +func _ready(): + set_process(false) + $MonoBackground/Back.color = Color(randf(),randf(),randf()) + time = global.hud.seconds + global.hud.minutes*60 + if global.secrets_found == 0: + secret_bonus = 0 + elif global.secrets_found > 0 and global.secrets_found <= 6: + secret_bonus = pow(22,global.secrets_found) + else: + secret_bonus = 113379904 + pow(11,global.secrets_found) + match global.current_level: + 0: + if time <= 60: + time_bonus = 99999999900 + elif time <= 70: + time_bonus = 7500000000 + elif time <= 80: + time_bonus = 250000000 + elif time <= 90: #Doable by exploiting quirks in the design (Sandro, 01:24) + time_bonus = 50000000 + elif time <= 100: #My record (01:35) + time_bonus = 1000000 + elif time <= 120: + time_bonus = 50000 + else: + time_bonus = 100 + + final_score = (time_bonus + secret_bonus) + $Timer.start() + +func _process(delta): + if Input.is_action_just_pressed("shoot") or Input.is_action_just_pressed("special") : + if label_number != -1: + $MonoBackground/Back.color = Color(randf(),randf(),randf()) + show_results() + else: + set_process(false) + #global.score += final_score + global.reset_everything() + global.game_root.change_scene("res://src/Main/MainMenu.tscn",true,"fade_out",global.STATE.CUTSCENE) + +func _on_Timer_timeout(): + if label_number != -1: + $MonoBackground/Back.color = Color(randf(),randf(),randf()) + match label_number: + 0: + set_process(true) + $AudioStreamPlayer.play() + score_label.visible = true + score_label.text = str(time_bonus)+"\n("+("%02d" % global.hud.minutes) + ":" +("%02d" % global.hud.seconds)+ ")" + main_label.text = "Time bonus" + label_number += 1 + 1: + $AudioStreamPlayer.play() + score_label.text = str(secret_bonus) + main_label.text = str(global.secrets_found)+" secret"+ ("s" if global.secrets_found > 1 else "") + " found" if global.secrets_found > 0 else "No secrets found" + label_number += 1 + 2: + show_results() + +func _on_BlinkTimer_timeout(): + $PressShoot.visible = !$PressShoot.visible + +func show_results(): + $AudioStreamPlayer.play() + label_number = -1 + main_label.text = "Final score" + score_label.text = str(global.score + final_score)+"\n("+("%02d" % global.hud.minutes) + ":" +("%02d" % global.hud.seconds)+ ")" + $BlinkTimer.start() diff --git a/src/Main/ResultsScreen.tscn b/src/Main/ResultsScreen.tscn new file mode 100644 index 0000000..381ec4b --- /dev/null +++ b/src/Main/ResultsScreen.tscn @@ -0,0 +1,69 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://src/Main/ResultsScreen.gd" type="Script" id=1] +[ext_resource path="res://src/Main/MonoBackground.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/theme/fonts/TitleCardFont.tres" type="DynamicFont" id=3] +[ext_resource path="res://assets/theme/fonts/NormalFont.tres" type="DynamicFont" id=4] +[ext_resource path="res://assets/audio/sfx/get.wav" type="AudioStream" id=5] +[ext_resource path="res://src/Main/BlackBorders.tscn" type="PackedScene" id=6] + +[node name="LevelResults" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_top = 3.8147e-06 +script = ExtResource( 1 ) +__meta__ = { +"_edit_horizontal_guides_": [ 0.0 ], +"_edit_use_anchors_": false +} + +[node name="MonoBackground" parent="." instance=ExtResource( 2 )] + +[node name="Center" type="CenterContainer" parent="."] +margin_left = 16.0 +margin_top = 33.0 +margin_right = 304.0 +margin_bottom = 209.0 + +[node name="Results" type="VBoxContainer" parent="Center"] +margin_left = 73.0 +margin_top = 79.0 +margin_right = 215.0 +margin_bottom = 96.0 + +[node name="Label" type="Label" parent="Center/Results"] +margin_right = 142.0 +margin_bottom = 17.0 +custom_fonts/font = ExtResource( 3 ) +text = "Level complete" + +[node name="Score" type="Label" parent="Center/Results"] +visible = false +margin_top = 20.0 +margin_right = 137.0 +margin_bottom = 28.0 +custom_fonts/font = ExtResource( 4 ) +text = "200000" +align = 1 + +[node name="PressShoot" type="Label" parent="."] +visible = false +margin_top = 192.0 +margin_right = 320.0 +margin_bottom = 200.0 +custom_fonts/font = ExtResource( 4 ) +text = "PRESS TO RETURN TO THE MENU" +align = 1 + +[node name="Timer" type="Timer" parent="."] +wait_time = 1.5 + +[node name="BlinkTimer" type="Timer" parent="."] +wait_time = 0.5 + +[node name="Borders" parent="." instance=ExtResource( 6 )] + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 5 ) +[connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] +[connection signal="timeout" from="BlinkTimer" to="." method="_on_BlinkTimer_timeout"] diff --git a/src/Main/SceneTransition.gd b/src/Main/SceneTransition.gd new file mode 100644 index 0000000..9c88f4c --- /dev/null +++ b/src/Main/SceneTransition.gd @@ -0,0 +1,16 @@ +extends CanvasLayer + +# This features only fade in and fade out for now but adding more transitions shouldn't be too hard + +func start(anim): + global.in_transition = true + $AnimationPlayer.play(anim) + $AnimationPlayer.connect("animation_finished",self,"on_animation_finished") + +func on_animation_finished(anim): + global.in_transition = false + match anim: + "fade_out": + $AnimationPlayer.play("fade_in") + "fade_in": + queue_free() diff --git a/src/Main/SceneTransition.tscn b/src/Main/SceneTransition.tscn new file mode 100644 index 0000000..528d0a0 --- /dev/null +++ b/src/Main/SceneTransition.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://src/Main/SceneTransition.gd" type="Script" id=1] + +[sub_resource type="Animation" id=1] +resource_name = "fade_in" +length = 0.3 +tracks/0/type = "value" +tracks/0/path = NodePath("Black:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 1 ), Color( 0, 0, 0, 0 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "fade_out" +length = 0.3 +tracks/0/type = "value" +tracks/0/path = NodePath("Black:color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 1 ) ] +} + +[node name="SceneChanger" type="CanvasLayer"] +script = ExtResource( 1 ) + +[node name="Black" type="ColorRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +rect_pivot_offset = Vector2( -64, 48 ) +color = Color( 0, 0, 0, 0 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +playback_speed = 2.0 +anims/fade_in = SubResource( 1 ) +anims/fade_out = SubResource( 2 ) diff --git a/src/Objects/Coin.gd b/src/Objects/Coin.gd new file mode 100644 index 0000000..1899380 --- /dev/null +++ b/src/Objects/Coin.gd @@ -0,0 +1,17 @@ +class_name Coin +extends Area2D +# Collectible that disappears when the player touches it. + +onready var animation_player = $AnimationPlayer + +# The Coins only detects collisions with the Player thanks to its collision mask. +# This prevents other characters such as enemies from picking up coins. + +# When the player collides with a coin, the coin plays its 'picked' animation. +# The animation takes cares of making the coin disappear, but also deactivates its +# collisions and frees it from memory, saving us from writing more complex code. +# Click the AnimationPlayer node to see the animation timeline. +func _on_body_entered(_body): + global.show_message("You found a secret spot!") + global.secrets_found += 1 + animation_player.play("picked") diff --git a/src/Objects/Coin.tscn b/src/Objects/Coin.tscn new file mode 100644 index 0000000..6c17f09 --- /dev/null +++ b/src/Objects/Coin.tscn @@ -0,0 +1,70 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://src/Objects/Coin.gd" type="Script" id=4] + +[sub_resource type="Animation" id=1] +resource_name = "picked" +length = 1.5 +step = 0.25 +tracks/0/type = "method" +tracks/0/path = NodePath(".") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 1 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} +tracks/1/type = "value" +tracks/1/path = NodePath(".:monitoring") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="Animation" id=2] +length = 1.5 +loop = true +step = 0.25 +tracks/0/type = "value" +tracks/0/path = NodePath(".:monitoring") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 2, +"values": [ true ] +} + +[sub_resource type="CircleShape2D" id=3] +radius = 9.41741 + +[node name="Coin" type="Area2D"] +monitoring = false +monitorable = false +collision_layer = 0 +script = ExtResource( 4 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "spinning" +playback_speed = 1.5 +anims/picked = SubResource( 1 ) +anims/spinning = SubResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 3 ) +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/src/Objects/InventoryItemPickup.gd b/src/Objects/InventoryItemPickup.gd new file mode 100644 index 0000000..5d205ea --- /dev/null +++ b/src/Objects/InventoryItemPickup.gd @@ -0,0 +1,29 @@ +extends Area2D + +export var item = "" + +func _ready(): + set_correct_sprite() + $AnimationPlayer.play("wave") +# warning-ignore:return_value_discarded + connect("body_entered",self,"body_entered") + +func body_entered(_body): + if $Sprite.visible: + global.add_item(item) + global.update_item_hud() + global.show_message("You found the key to exit the level.") + var snd = $AudioStreamPlayer + $Sprite.visible = false + snd.play() + yield(snd,"finished") + queue_free() + +func init(_item): + item = _item + set_correct_sprite() + +func set_correct_sprite(): + match item: + "KeyYellow": + $Sprite.set_texture(preload("res://assets/art/key_yellow.png")) diff --git a/src/Objects/InventoryItemPickup.tscn b/src/Objects/InventoryItemPickup.tscn new file mode 100644 index 0000000..d710f98 --- /dev/null +++ b/src/Objects/InventoryItemPickup.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://src/Objects/InventoryItemPickup.gd" type="Script" id=1] +[ext_resource path="res://assets/art/key_yellow.png" type="Texture" id=2] +[ext_resource path="res://assets/audio/sfx/get.wav" type="AudioStream" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 6.13601, 6.05597 ) + +[sub_resource type="Animation" id=2] +resource_name = "wave" +length = 2.0 +loop = true +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1, 2 ), +"transitions": PoolRealArray( 1, 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, -7 ), Vector2( 0, 0 ) ] +} + +[node name="InventoryItemPickup" type="Area2D"] +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 2 ) +offset = Vector2( 1, 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false +position = Vector2( 0.497204, -0.0994396 ) +shape = SubResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +playback_speed = 0.5 +anims/wave = SubResource( 2 ) + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 3 ) diff --git a/src/Objects/LockedDoor.gd b/src/Objects/LockedDoor.gd new file mode 100644 index 0000000..2165e40 --- /dev/null +++ b/src/Objects/LockedDoor.gd @@ -0,0 +1,15 @@ +extends StaticBody2D + +var done = false +export var item = "KeyYellow" + +func _on_Area2D_body_entered(_body): + if !done and _body.name == "Player": + if global.has_item(item): + global.remove_item(item) + global.update_item_hud() + $AnimationPlayer.play("open") + done = true + else: + if global.hud.text_label.visible_characters == 0: + global.show_message("This gate needs a key.") diff --git a/src/Objects/LockedDoor.tscn b/src/Objects/LockedDoor.tscn new file mode 100644 index 0000000..c451c60 --- /dev/null +++ b/src/Objects/LockedDoor.tscn @@ -0,0 +1,90 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://assets/art/lockeddoor.png" type="Texture" id=1] +[ext_resource path="res://src/Objects/LockedDoor.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 16, 32 ) + +[sub_resource type="Animation" id=2] +resource_name = "open" +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 0 ), Vector2( 0, -32 ) ] +} +tracks/1/type = "value" +tracks/1/path = NodePath("Sprite2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Vector2( 0, 32 ), Vector2( 0, 64 ) ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("CollisionShape2D:disabled") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.3 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} +tracks/3/type = "value" +tracks/3/path = NodePath("Area2D:monitoring") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/keys = { +"times": PoolRealArray( 0.3 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ false ] +} + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 39, 32 ) + +[node name="LockedDoor" type="StaticBody2D"] +modulate = Color( 1, 0.866667, 0, 1 ) +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) +centered = false + +[node name="Sprite2" type="Sprite" parent="."] +position = Vector2( 0, 32 ) +texture = ExtResource( 1 ) +centered = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false +position = Vector2( 16, 32 ) +shape = SubResource( 1 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +playback_speed = 5.0 +anims/open = SubResource( 2 ) + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2( 16, 32 ) +shape = SubResource( 3 ) +[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"] diff --git a/src/Objects/Spring.gd b/src/Objects/Spring.gd new file mode 100644 index 0000000..4e0f239 --- /dev/null +++ b/src/Objects/Spring.gd @@ -0,0 +1,17 @@ +extends Area2D + +export var strength = 500 + +onready var animation_player = $AnimationPlayer +onready var sound = $"CollisionShape2D/Bounce" + +func _ready(): + sound.pitch_scale = 1/scale.x + +func _on_Spring_body_entered(body): + if !sound.playing: + sound.playing = true + if scale.x != 1: + sound.pitch_scale = 1/scale.x + body.bounce_off_glove(strength*scale.x,rotation_degrees+90) + animation_player.play("spring") diff --git a/src/Objects/Spring.tscn b/src/Objects/Spring.tscn new file mode 100644 index 0000000..85a10a0 --- /dev/null +++ b/src/Objects/Spring.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://src/Objects/Spring.gd" type="Script" id=1] +[ext_resource path="res://assets/audio/sfx/bounce.wav" type="AudioStream" id=2] +[ext_resource path="res://assets/art/spring/spring.png" type="Texture" id=3] + +[sub_resource type="Animation" id=1] +resource_name = "spring" +length = 0.5 +tracks/0/type = "value" +tracks/0/path = NodePath("Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.1, 0.2, 0.3, 0.4 ), +"transitions": PoolRealArray( 1, 1, 1, 1, 1 ), +"update": 1, +"values": [ 2, 2, 2, 1, 0 ] +} + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 7.45267, 9.94172 ) + +[node name="Spring" type="Area2D"] +monitorable = false +collision_layer = 0 +script = ExtResource( 1 ) +strength = 800 + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -24 ) +texture = ExtResource( 3 ) +hframes = 3 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +playback_speed = 2.0 +anims/spring = SubResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false +position = Vector2( -0.405827, -9.24662 ) +shape = SubResource( 2 ) + +[node name="Bounce" type="AudioStreamPlayer" parent="CollisionShape2D"] +stream = ExtResource( 2 ) +volume_db = -15.0 +[connection signal="body_entered" from="." to="." method="_on_Spring_body_entered"] diff --git a/src/Objects/SpringWeak.tscn b/src/Objects/SpringWeak.tscn new file mode 100644 index 0000000..678e58d --- /dev/null +++ b/src/Objects/SpringWeak.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/art/spring/spring2.png" type="Texture" id=1] +[ext_resource path="res://src/Objects/Spring.tscn" type="PackedScene" id=2] + +[node name="SpringWeak" instance=ExtResource( 2 )] +strength = 550 + +[node name="Sprite" parent="." index="0"] +texture = ExtResource( 1 ) diff --git a/src/Objects/TriggerResults.gd b/src/Objects/TriggerResults.gd new file mode 100644 index 0000000..90e457f --- /dev/null +++ b/src/Objects/TriggerResults.gd @@ -0,0 +1,10 @@ +extends Area2D + +signal touched + +func _on_TriggerResults_body_entered(body): + if body.name == "Player": + emit_signal("touched") + set_deferred("monitoring",false) + global.hud.stop_clock() + global.game_root.change_scene("res://src/Main/ResultsScreen.tscn",true,"fade_out",global.STATE.MENU) diff --git a/src/Objects/TriggerResults.tscn b/src/Objects/TriggerResults.tscn new file mode 100644 index 0000000..08fb777 --- /dev/null +++ b/src/Objects/TriggerResults.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://src/Objects/TriggerResults.gd" type="Script" id=1] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 10, 19.3091 ) + +[node name="TriggerResults" type="Area2D"] +script = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) +[connection signal="body_entered" from="." to="." method="_on_TriggerResults_body_entered"] diff --git a/src/Platforms/Platform.tscn b/src/Platforms/Platform.tscn new file mode 100644 index 0000000..258089d --- /dev/null +++ b/src/Platforms/Platform.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://assets/art/platforms/moving_platform.png" type="Texture" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 47, 6 ) + +[node name="Platform" type="KinematicBody2D"] +z_index = -1 +collision_layer = 8 +collision_mask = 0 +collision/safe_margin = 0.12 +motion/sync_to_physics = true + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, -4 ) +shape = SubResource( 1 ) +one_way_collision = true diff --git a/src/globals.gd b/src/globals.gd new file mode 100644 index 0000000..dd51a29 --- /dev/null +++ b/src/globals.gd @@ -0,0 +1,46 @@ +extends Node + +enum STATE {SPLASH, MENU, CUTSCENE, INGAME, GAMEOVER, CREDITS, OPTIONS} + +var in_transition = false + +var game_state = STATE.MENU +var inventory : Array +var score = 0 +var secrets_found = 0 + +var arcade_mode = false +var level_list = ["Googolplexian","Level"] +var level_names = ["Googolplexian","Test Level"] +var current_level = 0 + +onready var game_root = get_node("/root/Game") +onready var hud = get_node("/root/Game/HUD") + +func show_message(msg): + hud.show_message(msg,false) + +func reset_everything(): + secrets_found = 0 + score = 0 + hud.seconds = 0 + hud.minutes = 0 + hud.clock.text = "00:00" + clear_inventory() + show_message("") + +func has_item(item): + return inventory.has(item) + +func add_item(item): + if !has_item(item): + inventory.append(item) + +func remove_item(item): + inventory.erase(item) + +func clear_inventory(): + inventory.clear() + +func update_item_hud(): + hud.update_items()