diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/Punk n Spray.csproj b/Punk n Spray.csproj new file mode 100644 index 0000000..08aa7c7 --- /dev/null +++ b/Punk n Spray.csproj @@ -0,0 +1,7 @@ + + + net8.0 + true + PunknSpray + + \ No newline at end of file diff --git a/Punk n Spray.csproj.old b/Punk n Spray.csproj.old new file mode 100644 index 0000000..856b9cc --- /dev/null +++ b/Punk n Spray.csproj.old @@ -0,0 +1,9 @@ + + + net6.0 + net7.0 + net8.0 + true + PunknSpray + + \ No newline at end of file diff --git a/Punk n Spray.sln b/Punk n Spray.sln new file mode 100644 index 0000000..98d625e --- /dev/null +++ b/Punk n Spray.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35327.3 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Punk n Spray", "Punk n Spray.csproj", "{C005D5B4-4AA9-4AB5-9302-5894E8C09077}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + ExportDebug|Any CPU = ExportDebug|Any CPU + ExportRelease|Any CPU = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C005D5B4-4AA9-4AB5-9302-5894E8C09077}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C005D5B4-4AA9-4AB5-9302-5894E8C09077}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {C005D5B4-4AA9-4AB5-9302-5894E8C09077}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C89C68FE-281F-4E10-BB9F-924C53E19E35} + EndGlobalSection +EndGlobal diff --git a/art/icons/icon.svg b/art/icons/icon.svg new file mode 100644 index 0000000..166c3d9 --- /dev/null +++ b/art/icons/icon.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/art/icons/icon.svg.import b/art/icons/icon.svg.import new file mode 100644 index 0000000..c0dfdfc --- /dev/null +++ b/art/icons/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhuvglbn08hsv" +path="res://.godot/imported/icon.svg-15d7e0c3d7b78d6209069300cf608aba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/icons/icon.svg" +dest_files=["res://.godot/imported/icon.svg-15d7e0c3d7b78d6209069300cf608aba.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/art/sprites/Player Crouch-Idle 48x48.png b/art/sprites/Player Crouch-Idle 48x48.png new file mode 100644 index 0000000..fe7b4ad Binary files /dev/null and b/art/sprites/Player Crouch-Idle 48x48.png differ diff --git a/art/sprites/Player Crouch-Idle 48x48.png.import b/art/sprites/Player Crouch-Idle 48x48.png.import new file mode 100644 index 0000000..da4b216 --- /dev/null +++ b/art/sprites/Player Crouch-Idle 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cks3q4o02s7gt" +path="res://.godot/imported/Player Crouch-Idle 48x48.png-2db05b226fdfe4176e3f04ceff9d952e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/Player Crouch-Idle 48x48.png" +dest_files=["res://.godot/imported/Player Crouch-Idle 48x48.png-2db05b226fdfe4176e3f04ceff9d952e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/Player Idle 48x48.png b/art/sprites/Player Idle 48x48.png new file mode 100644 index 0000000..b618511 Binary files /dev/null and b/art/sprites/Player Idle 48x48.png differ diff --git a/art/sprites/Player Idle 48x48.png.import b/art/sprites/Player Idle 48x48.png.import new file mode 100644 index 0000000..7a23311 --- /dev/null +++ b/art/sprites/Player Idle 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://wyisbm2pjg2l" +path="res://.godot/imported/Player Idle 48x48.png-e51f8cf98fd6bb46ff4ddcf7384b5208.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/Player Idle 48x48.png" +dest_files=["res://.godot/imported/Player Idle 48x48.png-e51f8cf98fd6bb46ff4ddcf7384b5208.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/PlayerWalk 48x48.png b/art/sprites/PlayerWalk 48x48.png new file mode 100644 index 0000000..653bd2f Binary files /dev/null and b/art/sprites/PlayerWalk 48x48.png differ diff --git a/art/sprites/PlayerWalk 48x48.png.import b/art/sprites/PlayerWalk 48x48.png.import new file mode 100644 index 0000000..4d497ed --- /dev/null +++ b/art/sprites/PlayerWalk 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5j6cf0fssina" +path="res://.godot/imported/PlayerWalk 48x48.png-2a0d3a3308bedabe0cbc50ffff9493a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/PlayerWalk 48x48.png" +dest_files=["res://.godot/imported/PlayerWalk 48x48.png-2a0d3a3308bedabe0cbc50ffff9493a3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/player crouch-walk 48x48.png b/art/sprites/player crouch-walk 48x48.png new file mode 100644 index 0000000..902ef2a Binary files /dev/null and b/art/sprites/player crouch-walk 48x48.png differ diff --git a/art/sprites/player crouch-walk 48x48.png.import b/art/sprites/player crouch-walk 48x48.png.import new file mode 100644 index 0000000..043b57b --- /dev/null +++ b/art/sprites/player crouch-walk 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0l6m8kd0a36m" +path="res://.godot/imported/player crouch-walk 48x48.png-46ea8ec46171c903770aab4f46bd7940.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/player crouch-walk 48x48.png" +dest_files=["res://.godot/imported/player crouch-walk 48x48.png-46ea8ec46171c903770aab4f46bd7940.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/player land 48x48.png b/art/sprites/player land 48x48.png new file mode 100644 index 0000000..2c24d6f Binary files /dev/null and b/art/sprites/player land 48x48.png differ diff --git a/art/sprites/player land 48x48.png.import b/art/sprites/player land 48x48.png.import new file mode 100644 index 0000000..bee6aef --- /dev/null +++ b/art/sprites/player land 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://j5lj70ywebv1" +path="res://.godot/imported/player land 48x48.png-49e414010d88de2b6c2bd61e2eb30d0c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/player land 48x48.png" +dest_files=["res://.godot/imported/player land 48x48.png-49e414010d88de2b6c2bd61e2eb30d0c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/player new jump 48x48.png b/art/sprites/player new jump 48x48.png new file mode 100644 index 0000000..2551816 Binary files /dev/null and b/art/sprites/player new jump 48x48.png differ diff --git a/art/sprites/player new jump 48x48.png.import b/art/sprites/player new jump 48x48.png.import new file mode 100644 index 0000000..8f48817 --- /dev/null +++ b/art/sprites/player new jump 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bva7lbaacnj7a" +path="res://.godot/imported/player new jump 48x48.png-92ebea596c2b8cc6b5849612a4986943.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/player new jump 48x48.png" +dest_files=["res://.godot/imported/player new jump 48x48.png-92ebea596c2b8cc6b5849612a4986943.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/player run 48x48.png b/art/sprites/player run 48x48.png new file mode 100644 index 0000000..aca5b55 Binary files /dev/null and b/art/sprites/player run 48x48.png differ diff --git a/art/sprites/player run 48x48.png.import b/art/sprites/player run 48x48.png.import new file mode 100644 index 0000000..6c21c03 --- /dev/null +++ b/art/sprites/player run 48x48.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bmi2lvb6o4hbr" +path="res://.godot/imported/player run 48x48.png-f48d7fd4157521c00ac4b1fb363b5984.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/player run 48x48.png" +dest_files=["res://.godot/imported/player run 48x48.png-f48d7fd4157521c00ac4b1fb363b5984.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/tilemap-backgrounds.png b/art/sprites/tilemap-backgrounds.png new file mode 100644 index 0000000..3e13040 Binary files /dev/null and b/art/sprites/tilemap-backgrounds.png differ diff --git a/art/sprites/tilemap-backgrounds.png.import b/art/sprites/tilemap-backgrounds.png.import new file mode 100644 index 0000000..ccbcfa5 --- /dev/null +++ b/art/sprites/tilemap-backgrounds.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1vngsv0sphea" +path="res://.godot/imported/tilemap-backgrounds.png-bee4dc998082a2ae6f5fd03b537ce46e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/tilemap-backgrounds.png" +dest_files=["res://.godot/imported/tilemap-backgrounds.png-bee4dc998082a2ae6f5fd03b537ce46e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/tilemap-characters.png b/art/sprites/tilemap-characters.png new file mode 100644 index 0000000..8b1285a Binary files /dev/null and b/art/sprites/tilemap-characters.png differ diff --git a/art/sprites/tilemap-characters.png.import b/art/sprites/tilemap-characters.png.import new file mode 100644 index 0000000..e6d50be --- /dev/null +++ b/art/sprites/tilemap-characters.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b86ypj12qw38q" +path="res://.godot/imported/tilemap-characters.png-e0de1ac861e6a21076b55ecb5ed06f78.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/tilemap-characters.png" +dest_files=["res://.godot/imported/tilemap-characters.png-e0de1ac861e6a21076b55ecb5ed06f78.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/art/sprites/tilemap.png b/art/sprites/tilemap.png new file mode 100644 index 0000000..798044f Binary files /dev/null and b/art/sprites/tilemap.png differ diff --git a/art/sprites/tilemap.png.import b/art/sprites/tilemap.png.import new file mode 100644 index 0000000..95b119e --- /dev/null +++ b/art/sprites/tilemap.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cd58nu5mmatvc" +path="res://.godot/imported/tilemap.png-6038b8e4ef25bceda96c5f544ea406f4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/sprites/tilemap.png" +dest_files=["res://.godot/imported/tilemap.png-6038b8e4ef25bceda96c5f544ea406f4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fonts/CyberpunkRegular.ttf b/fonts/CyberpunkRegular.ttf new file mode 100644 index 0000000..91b2512 Binary files /dev/null and b/fonts/CyberpunkRegular.ttf differ diff --git a/fonts/CyberpunkRegular.ttf.import b/fonts/CyberpunkRegular.ttf.import new file mode 100644 index 0000000..3809d82 --- /dev/null +++ b/fonts/CyberpunkRegular.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://c5gdximibdn8d" +path="res://.godot/imported/CyberpunkRegular.ttf-1047bb36d19c55a67afa277079201533.fontdata" + +[deps] + +source_file="res://fonts/CyberpunkRegular.ttf" +dest_files=["res://.godot/imported/CyberpunkRegular.ttf-1047bb36d19c55a67afa277079201533.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/fonts/CyberpunkTitles.ttf b/fonts/CyberpunkTitles.ttf new file mode 100644 index 0000000..8d0d966 Binary files /dev/null and b/fonts/CyberpunkTitles.ttf differ diff --git a/fonts/CyberpunkTitles.ttf.import b/fonts/CyberpunkTitles.ttf.import new file mode 100644 index 0000000..82947f8 --- /dev/null +++ b/fonts/CyberpunkTitles.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bdyntrp1j2lux" +path="res://.godot/imported/CyberpunkTitles.ttf-c41249a54df0a82b7535a9a7d82c0a31.fontdata" + +[deps] + +source_file="res://fonts/CyberpunkTitles.ttf" +dest_files=["res://.godot/imported/CyberpunkTitles.ttf-c41249a54df0a82b7535a9a7d82c0a31.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +disable_embedded_bitmaps=true +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..e93124e --- /dev/null +++ b/project.godot @@ -0,0 +1,70 @@ +; 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=5 + +[application] + +config/name="Punk n Spray" +run/main_scene="res://scenes/Main.tscn" +config/features=PackedStringArray("4.4", "C#", "Forward Plus") +config/icon="res://art/icons/icon.svg" + +[dotnet] + +project/assembly_name="Punk n Spray" + +[input] + +move_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) +] +} +move_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) +] +} +jump={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null) +] +} +crouch={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":true,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) +] +} +sprint={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null) +] +} +run={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null) +] +} + +[layer_names] + +2d_physics/layer_1="World" +2d_physics/layer_2="Platforms" +2d_physics/layer_3="Player" +2d_physics/layer_4="Enemies" diff --git a/scenes/Level1.tscn b/scenes/Level1.tscn new file mode 100644 index 0000000..8eaf910 --- /dev/null +++ b/scenes/Level1.tscn @@ -0,0 +1,265 @@ +[gd_scene load_steps=9 format=4 uid="uid://glgyen0w4614"] + +[ext_resource type="Texture2D" uid="uid://cd58nu5mmatvc" path="res://art/sprites/tilemap.png" id="1_wo5tp"] +[ext_resource type="Texture2D" uid="uid://b1vngsv0sphea" path="res://art/sprites/tilemap-backgrounds.png" id="2_frbtj"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_m4vx4"] +texture = ExtResource("2_frbtj") +separation = Vector2i(1, 1) +texture_region_size = Vector2i(24, 24) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +4:0/0 = 0 +5:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +5:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +3:2/0 = 0 +4:2/0 = 0 +5:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 + +[sub_resource type="TileSet" id="TileSet_mxcxl"] +tile_size = Vector2i(24, 24) +sources/1 = SubResource("TileSetAtlasSource_m4vx4") + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_t7s7n"] +texture = ExtResource("1_wo5tp") +separation = Vector2i(1, 1) +texture_region_size = Vector2i(18, 18) +0:0/0 = 0 +1:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +4:0/0 = 0 +5:0/0 = 0 +6:0/0 = 0 +7:0/0 = 0 +8:0/0 = 0 +9:0/0 = 0 +10:0/0 = 0 +11:0/0 = 0 +12:0/0 = 0 +13:0/0 = 0 +14:0/0 = 0 +15:0/0 = 0 +16:0/0 = 0 +17:0/0 = 0 +18:0/0 = 0 +19:0/0 = 0 +0:1/0 = 0 +1:1/0 = 0 +2:1/0 = 0 +3:1/0 = 0 +4:1/0 = 0 +5:1/0 = 0 +6:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +12:1/0 = 0 +13:1/0 = 0 +14:1/0 = 0 +15:1/0 = 0 +16:1/0 = 0 +17:1/0 = 0 +18:1/0 = 0 +19:1/0 = 0 +0:2/0 = 0 +1:2/0 = 0 +2:2/0 = 0 +3:2/0 = 0 +4:2/0 = 0 +5:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +8:2/0 = 0 +9:2/0 = 0 +10:2/0 = 0 +11:2/0 = 0 +12:2/0 = 0 +13:2/0 = 0 +14:2/0 = 0 +15:2/0 = 0 +16:2/0 = 0 +17:2/0 = 0 +18:2/0 = 0 +19:2/0 = 0 +0:3/0 = 0 +1:3/0 = 0 +2:3/0 = 0 +3:3/0 = 0 +4:3/0 = 0 +5:3/0 = 0 +6:3/0 = 0 +7:3/0 = 0 +8:3/0 = 0 +9:3/0 = 0 +10:3/0 = 0 +11:3/0 = 0 +12:3/0 = 0 +13:3/0 = 0 +14:3/0 = 0 +15:3/0 = 0 +16:3/0 = 0 +17:3/0 = 0 +18:3/0 = 0 +19:3/0 = 0 +0:4/0 = 0 +1:4/0 = 0 +2:4/0 = 0 +3:4/0 = 0 +4:4/0 = 0 +5:4/0 = 0 +6:4/0 = 0 +7:4/0 = 0 +8:4/0 = 0 +9:4/0 = 0 +10:4/0 = 0 +11:4/0 = 0 +12:4/0 = 0 +13:4/0 = 0 +14:4/0 = 0 +15:4/0 = 0 +16:4/0 = 0 +17:4/0 = 0 +18:4/0 = 0 +19:4/0 = 0 +0:5/0 = 0 +1:5/0 = 0 +2:5/0 = 0 +3:5/0 = 0 +4:5/0 = 0 +5:5/0 = 0 +6:5/0 = 0 +7:5/0 = 0 +8:5/0 = 0 +9:5/0 = 0 +10:5/0 = 0 +11:5/0 = 0 +12:5/0 = 0 +13:5/0 = 0 +14:5/0 = 0 +15:5/0 = 0 +16:5/0 = 0 +17:5/0 = 0 +18:5/0 = 0 +19:5/0 = 0 +0:6/0 = 0 +1:6/0 = 0 +2:6/0 = 0 +3:6/0 = 0 +4:6/0 = 0 +5:6/0 = 0 +6:6/0 = 0 +7:6/0 = 0 +8:6/0 = 0 +9:6/0 = 0 +10:6/0 = 0 +11:6/0 = 0 +12:6/0 = 0 +13:6/0 = 0 +14:6/0 = 0 +15:6/0 = 0 +16:6/0 = 0 +17:6/0 = 0 +18:6/0 = 0 +19:6/0 = 0 +0:7/0 = 0 +1:7/0 = 0 +2:7/0 = 0 +3:7/0 = 0 +4:7/0 = 0 +5:7/0 = 0 +6:7/0 = 0 +7:7/0 = 0 +8:7/0 = 0 +9:7/0 = 0 +10:7/0 = 0 +11:7/0 = 0 +12:7/0 = 0 +13:7/0 = 0 +14:7/0 = 0 +15:7/0 = 0 +16:7/0 = 0 +17:7/0 = 0 +18:7/0 = 0 +19:7/0 = 0 +0:8/0 = 0 +1:8/0 = 0 +2:8/0 = 0 +3:8/0 = 0 +4:8/0 = 0 +5:8/0 = 0 +6:8/0 = 0 +7:8/0 = 0 +8:8/0 = 0 +9:8/0 = 0 +10:8/0 = 0 +11:8/0 = 0 +12:8/0 = 0 +13:8/0 = 0 +14:8/0 = 0 +15:8/0 = 0 +16:8/0 = 0 +17:8/0 = 0 +18:8/0 = 0 +19:8/0 = 0 + +[sub_resource type="TileSet" id="TileSet_lrrmr"] +tile_size = Vector2i(18, 18) +sources/0 = SubResource("TileSetAtlasSource_t7s7n") + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_r834c"] +size = Vector2(1152, 10) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_j8vi2"] +size = Vector2(54, 5) + +[node name="Level1" type="Node2D"] + +[node name="Background" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAABQAAQAAAAEAAAABABQAAQABAAEAAAACABQAAQACAAEAAAADABQAAQACAAEAAAAEABQAAQACAAEAAAAFABQAAQADAAEAAAAAABMAAQAAAAAAAAABABMAAQAAAAAAAAACABMAAQAAAAAAAAADABMAAQAAAAAAAAAEABMAAQAAAAAAAAAFABMAAQAAAAAAAAAGABQAAQACAAEAAAAHABQAAQACAAEAAAAIABQAAQACAAEAAAAJABQAAQABAAEAAAAKABQAAQABAAEAAAAMABQAAQAAAAEAAAALABQAAQAAAAEAAAANABQAAQAAAAEAAAAOABQAAQAAAAEAAAAPABQAAQACAAEAAAAQABQAAQADAAEAAAARABQAAQADAAEAAAASABQAAQADAAEAAAATABQAAQADAAEAAAAUABQAAQADAAEAAAAVABQAAQACAAEAAAAWABQAAQACAAEAAAAXABQAAQACAAEAAAAcABQAAQAAAAEAAAAaABQAAQABAAEAAAAbABQAAQABAAEAAAAdABQAAQACAAEAAAAeABQAAQACAAEAAAAfABQAAQACAAEAAAAgABQAAQACAAEAAAAhABQAAQACAAEAAAAiABQAAQADAAEAAAAkABQAAQADAAEAAAAjABQAAQADAAEAAAAlABQAAQACAAEAAAAmABQAAQACAAEAAAAnABQAAQACAAEAAAAoABQAAQACAAEAAAApABQAAQACAAEAAAAqABQAAQACAAEAAAArABQAAQACAAEAAAAsABQAAQACAAEAAAAtABQAAQACAAEAAAAuABQAAQACAAEAAAAvABQAAQACAAEAAAAvABMAAQAAAAAAAAAuABMAAQAAAAAAAAAtABMAAQAAAAAAAAAsABMAAQAAAAAAAAArABMAAQAAAAAAAAAqABMAAQAAAAAAAAApABMAAQAAAAAAAAAoABMAAQAAAAAAAAAnABMAAQAAAAAAAAAmABMAAQAAAAAAAAAlABMAAQAAAAAAAAAkABMAAQAAAAAAAAAjABMAAQAAAAAAAAAiABMAAQAAAAAAAAAhABMAAQAAAAAAAAAgABMAAQAAAAAAAAAfABMAAQAAAAAAAAAeABMAAQAAAAAAAAAdABMAAQAAAAAAAAAcABMAAQAAAAAAAAAbABMAAQAAAAAAAAAaABMAAQAAAAAAAAAXABMAAQAAAAAAAAAWABMAAQAAAAAAAAAVABMAAQAAAAAAAAAUABMAAQAAAAAAAAATABMAAQAAAAAAAAASABMAAQAAAAAAAAARABMAAQAAAAAAAAAQABMAAQAAAAAAAAAPABMAAQAAAAAAAAAOABMAAQAAAAAAAAANABMAAQAAAAAAAAAMABMAAQAAAAAAAAAGABMAAQAAAAAAAAAHABMAAQAAAAAAAAAIABMAAQAAAAAAAAAJABMAAQAAAAAAAAAKABMAAQAAAAAAAAALABMAAQAAAAAAAAAAAAAAAQAAAAAAAAAAAAEAAQAAAAAAAAAAAAIAAQAAAAAAAAAAAAMAAQAAAAAAAAAAAAQAAQAAAAAAAAAAAAUAAQAAAAAAAAAAAAYAAQAAAAAAAAAAAAcAAQAAAAAAAAAAAAgAAQAAAAAAAAAAAAkAAQAAAAAAAAAAAAoAAQAAAAAAAAAAAAsAAQAAAAAAAAAAAAwAAQAAAAAAAAAAAA0AAQAAAAAAAAAAAA4AAQAAAAAAAAAAAA8AAQAAAAAAAAAAABAAAQAAAAAAAAAAABEAAQAAAAAAAAAAABIAAQAAAAAAAAABAAAAAQAAAAAAAAABAAEAAQAAAAAAAAABAAIAAQAAAAAAAAABAAMAAQAAAAAAAAABAAQAAQAAAAAAAAABAAUAAQAAAAAAAAABAAYAAQAAAAAAAAABAAcAAQAAAAAAAAABAAgAAQAAAAAAAAABAAkAAQAAAAAAAAABAAoAAQAAAAAAAAABAAsAAQAAAAAAAAABAAwAAQAAAAAAAAABAA0AAQAAAAAAAAABAA4AAQAAAAAAAAABAA8AAQAAAAAAAAABABAAAQAAAAAAAAABABEAAQAAAAAAAAABABIAAQAAAAAAAAACAAAAAQAAAAAAAAACAAEAAQAAAAAAAAACAAIAAQAAAAAAAAACAAMAAQAAAAAAAAACAAQAAQAAAAAAAAACAAUAAQAAAAAAAAACAAYAAQAAAAAAAAACAAcAAQAAAAAAAAACAAgAAQAAAAAAAAACAAkAAQAAAAAAAAACAAoAAQAAAAAAAAACAAsAAQAAAAAAAAACAAwAAQAAAAAAAAACAA0AAQAAAAAAAAACAA4AAQAAAAAAAAACAA8AAQAAAAAAAAACABAAAQAAAAAAAAACABEAAQAAAAAAAAACABIAAQAAAAAAAAADAAAAAQAAAAAAAAADAAEAAQAAAAAAAAADAAIAAQAAAAAAAAADAAMAAQAAAAAAAAADAAQAAQAAAAAAAAADAAUAAQAAAAAAAAADAAYAAQAAAAAAAAADAAcAAQAAAAAAAAADAAgAAQAAAAAAAAADAAkAAQAAAAAAAAADAAoAAQAAAAAAAAADAAsAAQAAAAAAAAADAAwAAQAAAAAAAAADAA0AAQAAAAAAAAADAA4AAQAAAAAAAAADAA8AAQAAAAAAAAADABAAAQAAAAAAAAADABEAAQAAAAAAAAADABIAAQAAAAAAAAAEAAAAAQAAAAAAAAAEAAEAAQAAAAAAAAAEAAIAAQAAAAAAAAAEAAMAAQAAAAAAAAAEAAQAAQAAAAAAAAAEAAUAAQAAAAAAAAAEAAYAAQAAAAAAAAAEAAcAAQAAAAAAAAAEAAgAAQAAAAAAAAAEAAkAAQAAAAAAAAAEAAoAAQAAAAAAAAAEAAsAAQAAAAAAAAAEAAwAAQAAAAAAAAAEAA0AAQAAAAAAAAAEAA4AAQAAAAAAAAAEAA8AAQAAAAAAAAAEABAAAQAAAAAAAAAEABEAAQAAAAAAAAAEABIAAQAAAAAAAAAFAAAAAQAAAAAAAAAFAAEAAQAAAAAAAAAFAAIAAQAAAAAAAAAFAAMAAQAAAAAAAAAFAAQAAQAAAAAAAAAFAAUAAQAAAAAAAAAFAAYAAQAAAAAAAAAFAAcAAQAAAAAAAAAFAAgAAQAAAAAAAAAFAAkAAQAAAAAAAAAFAAoAAQAAAAAAAAAFAAsAAQAAAAAAAAAFAAwAAQAAAAAAAAAFAA0AAQAAAAAAAAAFAA4AAQAAAAAAAAAFAA8AAQAAAAAAAAAFABAAAQAAAAAAAAAFABEAAQAAAAAAAAAFABIAAQAAAAAAAAAGAAAAAQAAAAAAAAAGAAEAAQAAAAAAAAAGAAIAAQAAAAAAAAAGAAMAAQAAAAAAAAAGAAQAAQAAAAAAAAAGAAUAAQAAAAAAAAAGAAYAAQAAAAAAAAAGAAcAAQAAAAAAAAAGAAgAAQAAAAAAAAAGAAkAAQAAAAAAAAAGAAoAAQAAAAAAAAAGAAsAAQAAAAAAAAAGAAwAAQAAAAAAAAAGAA0AAQAAAAAAAAAGAA4AAQAAAAAAAAAGAA8AAQAAAAAAAAAGABAAAQAAAAAAAAAGABEAAQAAAAAAAAAGABIAAQAAAAAAAAAHAAAAAQAAAAAAAAAHAAEAAQAAAAAAAAAHAAIAAQAAAAAAAAAHAAMAAQAAAAAAAAAHAAQAAQAAAAAAAAAHAAUAAQAAAAAAAAAHAAYAAQAAAAAAAAAHAAcAAQAAAAAAAAAHAAgAAQAAAAAAAAAHAAkAAQAAAAAAAAAHAAoAAQAAAAAAAAAHAAsAAQAAAAAAAAAHAAwAAQAAAAAAAAAHAA0AAQAAAAAAAAAHAA4AAQAAAAAAAAAHAA8AAQAAAAAAAAAHABAAAQAAAAAAAAAHABEAAQAAAAAAAAAHABIAAQAAAAAAAAAIAAAAAQAAAAAAAAAIAAEAAQAAAAAAAAAIAAIAAQAAAAAAAAAIAAMAAQAAAAAAAAAIAAQAAQAAAAAAAAAIAAUAAQAAAAAAAAAIAAYAAQAAAAAAAAAIAAcAAQAAAAAAAAAIAAgAAQAAAAAAAAAIAAkAAQAAAAAAAAAIAAoAAQAAAAAAAAAIAAsAAQAAAAAAAAAIAAwAAQAAAAAAAAAIAA0AAQAAAAAAAAAIAA4AAQAAAAAAAAAIAA8AAQAAAAAAAAAIABAAAQAAAAAAAAAIABEAAQAAAAAAAAAIABIAAQAAAAAAAAAJAAAAAQAAAAAAAAAJAAEAAQAAAAAAAAAJAAIAAQAAAAAAAAAJAAMAAQAAAAAAAAAJAAQAAQAAAAAAAAAJAAUAAQAAAAAAAAAJAAYAAQAAAAAAAAAJAAcAAQAAAAAAAAAJAAgAAQAAAAAAAAAJAAkAAQAAAAAAAAAJAAoAAQAAAAAAAAAJAAsAAQAAAAAAAAAJAAwAAQAAAAAAAAAJAA0AAQAAAAAAAAAJAA4AAQAAAAAAAAAJAA8AAQAAAAAAAAAJABAAAQAAAAAAAAAJABEAAQAAAAAAAAAJABIAAQAAAAAAAAAKAAAAAQAAAAAAAAAKAAEAAQAAAAAAAAAKAAIAAQAAAAAAAAAKAAMAAQAAAAAAAAAKAAQAAQAAAAAAAAAKAAUAAQAAAAAAAAAKAAYAAQAAAAAAAAAKAAcAAQAAAAAAAAAKAAgAAQAAAAAAAAAKAAkAAQAAAAAAAAAKAAoAAQAAAAAAAAAKAAsAAQAAAAAAAAAKAAwAAQAAAAAAAAAKAA0AAQAAAAAAAAAKAA4AAQAAAAAAAAAKAA8AAQAAAAAAAAAKABAAAQAAAAAAAAAKABEAAQAAAAAAAAAKABIAAQAAAAAAAAALAAAAAQAAAAAAAAALAAEAAQAAAAAAAAALAAIAAQAAAAAAAAALAAMAAQAAAAAAAAALAAQAAQAAAAAAAAALAAUAAQAAAAAAAAALAAYAAQAAAAAAAAALAAcAAQAAAAAAAAALAAgAAQAAAAAAAAALAAkAAQAAAAAAAAALAAoAAQAAAAAAAAALAAsAAQAAAAAAAAALAAwAAQAAAAAAAAALAA0AAQAAAAAAAAALAA4AAQAAAAAAAAALAA8AAQAAAAAAAAALABAAAQAAAAAAAAALABEAAQAAAAAAAAALABIAAQAAAAAAAAAMAAAAAQAAAAAAAAAMAAEAAQAAAAAAAAAMAAIAAQAAAAAAAAAMAAMAAQAAAAAAAAAMAAQAAQAAAAAAAAAMAAUAAQAAAAAAAAAMAAYAAQAAAAAAAAAMAAcAAQAAAAAAAAAMAAgAAQAAAAAAAAAMAAkAAQAAAAAAAAAMAAoAAQAAAAAAAAAMAAsAAQAAAAAAAAAMAAwAAQAAAAAAAAAMAA0AAQAAAAAAAAAMAA4AAQAAAAAAAAAMAA8AAQAAAAAAAAAMABAAAQAAAAAAAAAMABEAAQAAAAAAAAAMABIAAQAAAAAAAAANAAAAAQAAAAAAAAANAAEAAQAAAAAAAAANAAIAAQAAAAAAAAANAAMAAQAAAAAAAAANAAQAAQAAAAAAAAANAAUAAQAAAAAAAAANAAYAAQAAAAAAAAANAAcAAQAAAAAAAAANAAgAAQAAAAAAAAANAAkAAQAAAAAAAAANAAoAAQAAAAAAAAANAAsAAQAAAAAAAAANAAwAAQAAAAAAAAANAA0AAQAAAAAAAAANAA4AAQAAAAAAAAANAA8AAQAAAAAAAAANABAAAQAAAAAAAAANABEAAQAAAAAAAAANABIAAQAAAAAAAAAOAAAAAQAAAAAAAAAOAAEAAQAAAAAAAAAOAAIAAQAAAAAAAAAOAAMAAQAAAAAAAAAOAAQAAQAAAAAAAAAOAAUAAQAAAAAAAAAOAAYAAQAAAAAAAAAOAAcAAQAAAAAAAAAOAAgAAQAAAAAAAAAOAAkAAQAAAAAAAAAOAAoAAQAAAAAAAAAOAAsAAQAAAAAAAAAOAAwAAQAAAAAAAAAOAA0AAQAAAAAAAAAOAA4AAQAAAAAAAAAOAA8AAQAAAAAAAAAOABAAAQAAAAAAAAAOABEAAQAAAAAAAAAOABIAAQAAAAAAAAAPAAAAAQAAAAAAAAAPAAEAAQAAAAAAAAAPAAIAAQAAAAAAAAAPAAMAAQAAAAAAAAAPAAQAAQAAAAAAAAAPAAUAAQAAAAAAAAAPAAYAAQAAAAAAAAAPAAcAAQAAAAAAAAAPAAgAAQAAAAAAAAAPAAkAAQAAAAAAAAAPAAoAAQAAAAAAAAAPAAsAAQAAAAAAAAAPAAwAAQAAAAAAAAAPAA0AAQAAAAAAAAAPAA4AAQAAAAAAAAAPAA8AAQAAAAAAAAAPABAAAQAAAAAAAAAPABEAAQAAAAAAAAAPABIAAQAAAAAAAAAQAAAAAQAAAAAAAAAQAAEAAQAAAAAAAAAQAAIAAQAAAAAAAAAQAAMAAQAAAAAAAAAQAAQAAQAAAAAAAAAQAAUAAQAAAAAAAAAQAAYAAQAAAAAAAAAQAAcAAQAAAAAAAAAQAAgAAQAAAAAAAAAQAAkAAQAAAAAAAAAQAAoAAQAAAAAAAAAQAAsAAQAAAAAAAAAQAAwAAQAAAAAAAAAQAA0AAQAAAAAAAAAQAA4AAQAAAAAAAAAQAA8AAQAAAAAAAAAQABAAAQAAAAAAAAAQABEAAQAAAAAAAAAQABIAAQAAAAAAAAARAAAAAQAAAAAAAAARAAEAAQAAAAAAAAARAAIAAQAAAAAAAAARAAMAAQAAAAAAAAARAAQAAQAAAAAAAAARAAUAAQAAAAAAAAARAAYAAQAAAAAAAAARAAcAAQAAAAAAAAARAAgAAQAAAAAAAAARAAkAAQAAAAAAAAARAAoAAQAAAAAAAAARAAsAAQAAAAAAAAARAAwAAQAAAAAAAAARAA0AAQAAAAAAAAARAA4AAQAAAAAAAAARAA8AAQAAAAAAAAARABAAAQAAAAAAAAARABEAAQAAAAAAAAARABIAAQAAAAAAAAASAAAAAQAAAAAAAAASAAEAAQAAAAAAAAASAAIAAQAAAAAAAAASAAMAAQAAAAAAAAASAAQAAQAAAAAAAAASAAUAAQAAAAAAAAASAAYAAQAAAAAAAAASAAcAAQAAAAAAAAASAAgAAQAAAAAAAAASAAkAAQAAAAAAAAASAAoAAQAAAAAAAAASAAsAAQAAAAAAAAASAAwAAQAAAAAAAAASAA0AAQAAAAAAAAASAA4AAQAAAAAAAAASAA8AAQAAAAAAAAASABAAAQAAAAAAAAASABEAAQAAAAAAAAASABIAAQAAAAAAAAATAAAAAQAAAAAAAAATAAEAAQAAAAAAAAATAAIAAQAAAAAAAAATAAMAAQAAAAAAAAATAAQAAQAAAAAAAAATAAUAAQAAAAAAAAATAAYAAQAAAAAAAAATAAcAAQAAAAAAAAATAAgAAQAAAAAAAAATAAkAAQAAAAAAAAATAAoAAQAAAAAAAAATAAsAAQAAAAAAAAATAAwAAQAAAAAAAAATAA0AAQAAAAAAAAATAA4AAQAAAAAAAAATAA8AAQAAAAAAAAATABAAAQAAAAAAAAATABEAAQAAAAAAAAATABIAAQAAAAAAAAAUAAAAAQAAAAAAAAAUAAEAAQAAAAAAAAAUAAIAAQAAAAAAAAAUAAMAAQAAAAAAAAAUAAQAAQAAAAAAAAAUAAUAAQAAAAAAAAAUAAYAAQAAAAAAAAAUAAcAAQAAAAAAAAAUAAgAAQAAAAAAAAAUAAkAAQAAAAAAAAAUAAoAAQAAAAAAAAAUAAsAAQAAAAAAAAAUAAwAAQAAAAAAAAAUAA0AAQAAAAAAAAAUAA4AAQAAAAAAAAAUAA8AAQAAAAAAAAAUABAAAQAAAAAAAAAUABEAAQAAAAAAAAAUABIAAQAAAAAAAAAVAAAAAQAAAAAAAAAVAAEAAQAAAAAAAAAVAAIAAQAAAAAAAAAVAAMAAQAAAAAAAAAVAAQAAQAAAAAAAAAVAAUAAQAAAAAAAAAVAAYAAQAAAAAAAAAVAAcAAQAAAAAAAAAVAAgAAQAAAAAAAAAVAAkAAQAAAAAAAAAVAAoAAQAAAAAAAAAVAAsAAQAAAAAAAAAVAAwAAQAAAAAAAAAVAA0AAQAAAAAAAAAVAA4AAQAAAAAAAAAVAA8AAQAAAAAAAAAVABAAAQAAAAAAAAAVABEAAQAAAAAAAAAVABIAAQAAAAAAAAAWAAAAAQAAAAAAAAAWAAEAAQAAAAAAAAAWAAIAAQAAAAAAAAAWAAMAAQAAAAAAAAAWAAQAAQAAAAAAAAAWAAUAAQAAAAAAAAAWAAYAAQAAAAAAAAAWAAcAAQAAAAAAAAAWAAgAAQAAAAAAAAAWAAkAAQAAAAAAAAAWAAoAAQAAAAAAAAAWAAsAAQAAAAAAAAAWAAwAAQAAAAAAAAAWAA0AAQAAAAAAAAAWAA4AAQAAAAAAAAAWAA8AAQAAAAAAAAAWABAAAQAAAAAAAAAWABEAAQAAAAAAAAAWABIAAQAAAAAAAAAXAAAAAQAAAAAAAAAXAAEAAQAAAAAAAAAXAAIAAQAAAAAAAAAXAAMAAQAAAAAAAAAXAAQAAQAAAAAAAAAXAAUAAQAAAAAAAAAXAAYAAQAAAAAAAAAXAAcAAQAAAAAAAAAXAAgAAQAAAAAAAAAXAAkAAQAAAAAAAAAXAAoAAQAAAAAAAAAXAAsAAQAAAAAAAAAXAAwAAQAAAAAAAAAXAA0AAQAAAAAAAAAXAA4AAQAAAAAAAAAXAA8AAQAAAAAAAAAXABAAAQAAAAAAAAAXABEAAQAAAAAAAAAXABIAAQAAAAAAAAAYAAAAAQAAAAAAAAAYAAEAAQAAAAAAAAAYAAIAAQAAAAAAAAAYAAMAAQAAAAAAAAAYAAQAAQAAAAAAAAAYAAUAAQAAAAAAAAAYAAYAAQAAAAAAAAAYAAcAAQAAAAAAAAAYAAgAAQAAAAAAAAAYAAkAAQAAAAAAAAAYAAoAAQAAAAAAAAAYAAsAAQAAAAAAAAAYAAwAAQAAAAAAAAAYAA0AAQAAAAAAAAAYAA4AAQAAAAAAAAAYAA8AAQAAAAAAAAAYABAAAQAAAAAAAAAYABEAAQAAAAAAAAAYABIAAQAAAAAAAAAZAAAAAQAAAAAAAAAZAAEAAQAAAAAAAAAZAAIAAQAAAAAAAAAZAAMAAQAAAAAAAAAZAAQAAQAAAAAAAAAZAAUAAQAAAAAAAAAZAAYAAQAAAAAAAAAZAAcAAQAAAAAAAAAZAAgAAQAAAAAAAAAZAAkAAQAAAAAAAAAZAAoAAQAAAAAAAAAZAAsAAQAAAAAAAAAZAAwAAQAAAAAAAAAZAA0AAQAAAAAAAAAZAA4AAQAAAAAAAAAZAA8AAQAAAAAAAAAZABAAAQAAAAAAAAAZABEAAQAAAAAAAAAZABIAAQAAAAAAAAAaAAAAAQAAAAAAAAAaAAEAAQAAAAAAAAAaAAIAAQAAAAAAAAAaAAMAAQAAAAAAAAAaAAQAAQAAAAAAAAAaAAUAAQAAAAAAAAAaAAYAAQAAAAAAAAAaAAcAAQAAAAAAAAAaAAgAAQAAAAAAAAAaAAkAAQAAAAAAAAAaAAoAAQAAAAAAAAAaAAsAAQAAAAAAAAAaAAwAAQAAAAAAAAAaAA0AAQAAAAAAAAAaAA4AAQAAAAAAAAAaAA8AAQAAAAAAAAAaABAAAQAAAAAAAAAaABEAAQAAAAAAAAAaABIAAQAAAAAAAAAbAAAAAQAAAAAAAAAbAAEAAQAAAAAAAAAbAAIAAQAAAAAAAAAbAAMAAQAAAAAAAAAbAAQAAQAAAAAAAAAbAAUAAQAAAAAAAAAbAAYAAQAAAAAAAAAbAAcAAQAAAAAAAAAbAAgAAQAAAAAAAAAbAAkAAQAAAAAAAAAbAAoAAQAAAAAAAAAbAAsAAQAAAAAAAAAbAAwAAQAAAAAAAAAbAA0AAQAAAAAAAAAbAA4AAQAAAAAAAAAbAA8AAQAAAAAAAAAbABAAAQAAAAAAAAAbABEAAQAAAAAAAAAbABIAAQAAAAAAAAAcAAAAAQAAAAAAAAAcAAEAAQAAAAAAAAAcAAIAAQAAAAAAAAAcAAMAAQAAAAAAAAAcAAQAAQAAAAAAAAAcAAUAAQAAAAAAAAAcAAYAAQAAAAAAAAAcAAcAAQAAAAAAAAAcAAgAAQAAAAAAAAAcAAkAAQAAAAAAAAAcAAoAAQAAAAAAAAAcAAsAAQAAAAAAAAAcAAwAAQAAAAAAAAAcAA0AAQAAAAAAAAAcAA4AAQAAAAAAAAAcAA8AAQAAAAAAAAAcABAAAQAAAAAAAAAcABEAAQAAAAAAAAAcABIAAQAAAAAAAAAdAAAAAQAAAAAAAAAdAAEAAQAAAAAAAAAdAAIAAQAAAAAAAAAdAAMAAQAAAAAAAAAdAAQAAQAAAAAAAAAdAAUAAQAAAAAAAAAdAAYAAQAAAAAAAAAdAAcAAQAAAAAAAAAdAAgAAQAAAAAAAAAdAAkAAQAAAAAAAAAdAAoAAQAAAAAAAAAdAAsAAQAAAAAAAAAdAAwAAQAAAAAAAAAdAA0AAQAAAAAAAAAdAA4AAQAAAAAAAAAdAA8AAQAAAAAAAAAdABAAAQAAAAAAAAAdABEAAQAAAAAAAAAdABIAAQAAAAAAAAAeAAAAAQAAAAAAAAAeAAEAAQAAAAAAAAAeAAIAAQAAAAAAAAAeAAMAAQAAAAAAAAAeAAQAAQAAAAAAAAAeAAUAAQAAAAAAAAAeAAYAAQAAAAAAAAAeAAcAAQAAAAAAAAAeAAgAAQAAAAAAAAAeAAkAAQAAAAAAAAAeAAoAAQAAAAAAAAAeAAsAAQAAAAAAAAAeAAwAAQAAAAAAAAAeAA0AAQAAAAAAAAAeAA4AAQAAAAAAAAAeAA8AAQAAAAAAAAAeABAAAQAAAAAAAAAeABEAAQAAAAAAAAAeABIAAQAAAAAAAAAfAAAAAQAAAAAAAAAfAAEAAQAAAAAAAAAfAAIAAQAAAAAAAAAfAAMAAQAAAAAAAAAfAAQAAQAAAAAAAAAfAAUAAQAAAAAAAAAfAAYAAQAAAAAAAAAfAAcAAQAAAAAAAAAfAAgAAQAAAAAAAAAfAAkAAQAAAAAAAAAfAAoAAQAAAAAAAAAfAAsAAQAAAAAAAAAfAAwAAQAAAAAAAAAfAA0AAQAAAAAAAAAfAA4AAQAAAAAAAAAfAA8AAQAAAAAAAAAfABAAAQAAAAAAAAAfABEAAQAAAAAAAAAfABIAAQAAAAAAAAAgAAAAAQAAAAAAAAAgAAEAAQAAAAAAAAAgAAIAAQAAAAAAAAAgAAMAAQAAAAAAAAAgAAQAAQAAAAAAAAAgAAUAAQAAAAAAAAAgAAYAAQAAAAAAAAAgAAcAAQAAAAAAAAAgAAgAAQAAAAAAAAAgAAkAAQAAAAAAAAAgAAoAAQAAAAAAAAAgAAsAAQAAAAAAAAAgAAwAAQAAAAAAAAAgAA0AAQAAAAAAAAAgAA4AAQAAAAAAAAAgAA8AAQAAAAAAAAAgABAAAQAAAAAAAAAgABEAAQAAAAAAAAAgABIAAQAAAAAAAAAhAAAAAQAAAAAAAAAhAAEAAQAAAAAAAAAhAAIAAQAAAAAAAAAhAAMAAQAAAAAAAAAhAAQAAQAAAAAAAAAhAAUAAQAAAAAAAAAhAAYAAQAAAAAAAAAhAAcAAQAAAAAAAAAhAAgAAQAAAAAAAAAhAAkAAQAAAAAAAAAhAAoAAQAAAAAAAAAhAAsAAQAAAAAAAAAhAAwAAQAAAAAAAAAhAA0AAQAAAAAAAAAhAA4AAQAAAAAAAAAhAA8AAQAAAAAAAAAhABAAAQAAAAAAAAAhABEAAQAAAAAAAAAhABIAAQAAAAAAAAAiAAAAAQAAAAAAAAAiAAEAAQAAAAAAAAAiAAIAAQAAAAAAAAAiAAMAAQAAAAAAAAAiAAQAAQAAAAAAAAAiAAUAAQAAAAAAAAAiAAYAAQAAAAAAAAAiAAcAAQAAAAAAAAAiAAgAAQAAAAAAAAAiAAkAAQAAAAAAAAAiAAoAAQAAAAAAAAAiAAsAAQAAAAAAAAAiAAwAAQAAAAAAAAAiAA0AAQAAAAAAAAAiAA4AAQAAAAAAAAAiAA8AAQAAAAAAAAAiABAAAQAAAAAAAAAiABEAAQAAAAAAAAAiABIAAQAAAAAAAAAjAAAAAQAAAAAAAAAjAAEAAQAAAAAAAAAjAAIAAQAAAAAAAAAjAAMAAQAAAAAAAAAjAAQAAQAAAAAAAAAjAAUAAQAAAAAAAAAjAAYAAQAAAAAAAAAjAAcAAQAAAAAAAAAjAAgAAQAAAAAAAAAjAAkAAQAAAAAAAAAjAAoAAQAAAAAAAAAjAAsAAQAAAAAAAAAjAAwAAQAAAAAAAAAjAA0AAQAAAAAAAAAjAA4AAQAAAAAAAAAjAA8AAQAAAAAAAAAjABAAAQAAAAAAAAAjABEAAQAAAAAAAAAjABIAAQAAAAAAAAAkAAAAAQAAAAAAAAAkAAEAAQAAAAAAAAAkAAIAAQAAAAAAAAAkAAMAAQAAAAAAAAAkAAQAAQAAAAAAAAAkAAUAAQAAAAAAAAAkAAYAAQAAAAAAAAAkAAcAAQAAAAAAAAAkAAgAAQAAAAAAAAAkAAkAAQAAAAAAAAAkAAoAAQAAAAAAAAAkAAsAAQAAAAAAAAAkAAwAAQAAAAAAAAAkAA0AAQAAAAAAAAAkAA4AAQAAAAAAAAAkAA8AAQAAAAAAAAAkABAAAQAAAAAAAAAkABEAAQAAAAAAAAAkABIAAQAAAAAAAAAlAAAAAQAAAAAAAAAlAAEAAQAAAAAAAAAlAAIAAQAAAAAAAAAlAAMAAQAAAAAAAAAlAAQAAQAAAAAAAAAlAAUAAQAAAAAAAAAlAAYAAQAAAAAAAAAlAAcAAQAAAAAAAAAlAAgAAQAAAAAAAAAlAAkAAQAAAAAAAAAlAAoAAQAAAAAAAAAlAAsAAQAAAAAAAAAlAAwAAQAAAAAAAAAlAA0AAQAAAAAAAAAlAA4AAQAAAAAAAAAlAA8AAQAAAAAAAAAlABAAAQAAAAAAAAAlABEAAQAAAAAAAAAlABIAAQAAAAAAAAAmAAAAAQAAAAAAAAAmAAEAAQAAAAAAAAAmAAIAAQAAAAAAAAAmAAMAAQAAAAAAAAAmAAQAAQAAAAAAAAAmAAUAAQAAAAAAAAAmAAYAAQAAAAAAAAAmAAcAAQAAAAAAAAAmAAgAAQAAAAAAAAAmAAkAAQAAAAAAAAAmAAoAAQAAAAAAAAAmAAsAAQAAAAAAAAAmAAwAAQAAAAAAAAAmAA0AAQAAAAAAAAAmAA4AAQAAAAAAAAAmAA8AAQAAAAAAAAAmABAAAQAAAAAAAAAmABEAAQAAAAAAAAAmABIAAQAAAAAAAAAnAAAAAQAAAAAAAAAnAAEAAQAAAAAAAAAnAAIAAQAAAAAAAAAnAAMAAQAAAAAAAAAnAAQAAQAAAAAAAAAnAAUAAQAAAAAAAAAnAAYAAQAAAAAAAAAnAAcAAQAAAAAAAAAnAAgAAQAAAAAAAAAnAAkAAQAAAAAAAAAnAAoAAQAAAAAAAAAnAAsAAQAAAAAAAAAnAAwAAQAAAAAAAAAnAA0AAQAAAAAAAAAnAA4AAQAAAAAAAAAnAA8AAQAAAAAAAAAnABAAAQAAAAAAAAAnABEAAQAAAAAAAAAnABIAAQAAAAAAAAAoAAAAAQAAAAAAAAAoAAEAAQAAAAAAAAAoAAIAAQAAAAAAAAAoAAMAAQAAAAAAAAAoAAQAAQAAAAAAAAAoAAUAAQAAAAAAAAAoAAYAAQAAAAAAAAAoAAcAAQAAAAAAAAAoAAgAAQAAAAAAAAAoAAkAAQAAAAAAAAAoAAoAAQAAAAAAAAAoAAsAAQAAAAAAAAAoAAwAAQAAAAAAAAAoAA0AAQAAAAAAAAAoAA4AAQAAAAAAAAAoAA8AAQAAAAAAAAAoABAAAQAAAAAAAAAoABEAAQAAAAAAAAAoABIAAQAAAAAAAAApAAAAAQAAAAAAAAApAAEAAQAAAAAAAAApAAIAAQAAAAAAAAApAAMAAQAAAAAAAAApAAQAAQAAAAAAAAApAAUAAQAAAAAAAAApAAYAAQAAAAAAAAApAAcAAQAAAAAAAAApAAgAAQAAAAAAAAApAAkAAQAAAAAAAAApAAoAAQAAAAAAAAApAAsAAQAAAAAAAAApAAwAAQAAAAAAAAApAA0AAQAAAAAAAAApAA4AAQAAAAAAAAApAA8AAQAAAAAAAAApABAAAQAAAAAAAAApABEAAQAAAAAAAAApABIAAQAAAAAAAAAqAAAAAQAAAAAAAAAqAAEAAQAAAAAAAAAqAAIAAQAAAAAAAAAqAAMAAQAAAAAAAAAqAAQAAQAAAAAAAAAqAAUAAQAAAAAAAAAqAAYAAQAAAAAAAAAqAAcAAQAAAAAAAAAqAAgAAQAAAAAAAAAqAAkAAQAAAAAAAAAqAAoAAQAAAAAAAAAqAAsAAQAAAAAAAAAqAAwAAQAAAAAAAAAqAA0AAQAAAAAAAAAqAA4AAQAAAAAAAAAqAA8AAQAAAAAAAAAqABAAAQAAAAAAAAAqABEAAQAAAAAAAAAqABIAAQAAAAAAAAArAAAAAQAAAAAAAAArAAEAAQAAAAAAAAArAAIAAQAAAAAAAAArAAMAAQAAAAAAAAArAAQAAQAAAAAAAAArAAUAAQAAAAAAAAArAAYAAQAAAAAAAAArAAcAAQAAAAAAAAArAAgAAQAAAAAAAAArAAkAAQAAAAAAAAArAAoAAQAAAAAAAAArAAsAAQAAAAAAAAArAAwAAQAAAAAAAAArAA0AAQAAAAAAAAArAA4AAQAAAAAAAAArAA8AAQAAAAAAAAArABAAAQAAAAAAAAArABEAAQAAAAAAAAArABIAAQAAAAAAAAAsAAAAAQAAAAAAAAAsAAEAAQAAAAAAAAAsAAIAAQAAAAAAAAAsAAMAAQAAAAAAAAAsAAQAAQAAAAAAAAAsAAUAAQAAAAAAAAAsAAYAAQAAAAAAAAAsAAcAAQAAAAAAAAAsAAgAAQAAAAAAAAAsAAkAAQAAAAAAAAAsAAoAAQAAAAAAAAAsAAsAAQAAAAAAAAAsAAwAAQAAAAAAAAAsAA0AAQAAAAAAAAAsAA4AAQAAAAAAAAAsAA8AAQAAAAAAAAAsABAAAQAAAAAAAAAsABEAAQAAAAAAAAAsABIAAQAAAAAAAAAtAAAAAQAAAAAAAAAtAAEAAQAAAAAAAAAtAAIAAQAAAAAAAAAtAAMAAQAAAAAAAAAtAAQAAQAAAAAAAAAtAAUAAQAAAAAAAAAtAAYAAQAAAAAAAAAtAAcAAQAAAAAAAAAtAAgAAQAAAAAAAAAtAAkAAQAAAAAAAAAtAAoAAQAAAAAAAAAtAAsAAQAAAAAAAAAtAAwAAQAAAAAAAAAtAA0AAQAAAAAAAAAtAA4AAQAAAAAAAAAtAA8AAQAAAAAAAAAtABAAAQAAAAAAAAAtABEAAQAAAAAAAAAtABIAAQAAAAAAAAAuAAAAAQAAAAAAAAAuAAEAAQAAAAAAAAAuAAIAAQAAAAAAAAAuAAMAAQAAAAAAAAAuAAQAAQAAAAAAAAAuAAUAAQAAAAAAAAAuAAYAAQAAAAAAAAAuAAcAAQAAAAAAAAAuAAgAAQAAAAAAAAAuAAkAAQAAAAAAAAAuAAoAAQAAAAAAAAAuAAsAAQAAAAAAAAAuAAwAAQAAAAAAAAAuAA0AAQAAAAAAAAAuAA4AAQAAAAAAAAAuAA8AAQAAAAAAAAAuABAAAQAAAAAAAAAuABEAAQAAAAAAAAAuABIAAQAAAAAAAAAvAAAAAQAAAAAAAAAvAAEAAQAAAAAAAAAvAAIAAQAAAAAAAAAvAAMAAQAAAAAAAAAvAAQAAQAAAAAAAAAvAAUAAQAAAAAAAAAvAAYAAQAAAAAAAAAvAAcAAQAAAAAAAAAvAAgAAQAAAAAAAAAvAAkAAQAAAAAAAAAvAAoAAQAAAAAAAAAvAAsAAQAAAAAAAAAvAAwAAQAAAAAAAAAvAA0AAQAAAAAAAAAvAA4AAQAAAAAAAAAvAA8AAQAAAAAAAAAvABAAAQAAAAAAAAAvABEAAQAAAAAAAAAvABIAAQAAAAAAAAAZABMAAQAAAAAAAAAYABMAAQAAAAAAAAAZABQAAQAAAAEAAAAYABQAAQAAAAEAAAAGABUAAQAAAAIAAAAHABUAAQAAAAIAAAAIABUAAQAAAAIAAAAJABUAAQAAAAIAAAAKABUAAQAAAAIAAAALABUAAQAAAAIAAAAMABUAAQAAAAIAAAANABUAAQAAAAIAAAAOABUAAQAAAAIAAAAPABUAAQAAAAIAAAAQABUAAQAAAAIAAAARABUAAQAAAAIAAAASABUAAQAAAAIAAAATABUAAQAAAAIAAAAUABUAAQAAAAIAAAAVABUAAQAAAAIAAAAWABUAAQAAAAIAAAAWABYAAQAAAAIAAAAVABYAAQAAAAIAAAAUABYAAQAAAAIAAAATABYAAQAAAAIAAAASABYAAQAAAAIAAAARABYAAQAAAAIAAAAQABYAAQAAAAIAAAAXABYAAQAAAAIAAAAYABYAAQAAAAIAAAAYABUAAQAAAAIAAAAXABUAAQAAAAIAAAAZABUAAQAAAAIAAAAZABYAAQAAAAIAAAAaABYAAQAAAAIAAAAaABUAAQAAAAIAAAAbABUAAQAAAAIAAAAcABUAAQAAAAIAAAAdABUAAQAAAAIAAAAeABUAAQAAAAIAAAAfABUAAQAAAAIAAAAgABUAAQAAAAIAAAAhABUAAQAAAAIAAAAiABUAAQAAAAIAAAAjABUAAQAAAAIAAAAkABUAAQAAAAIAAAAiABYAAQAAAAIAAAAhABYAAQAAAAIAAAAgABYAAQAAAAIAAAAfABYAAQAAAAIAAAAeABYAAQAAAAIAAAAdABYAAQAAAAIAAAAcABYAAQAAAAIAAAAbABYAAQAAAAIAAAAjABYAAQAAAAIAAAAkABYAAQAAAAIAAAAlABYAAQAAAAIAAAAmABYAAQAAAAIAAAAnABYAAQAAAAIAAAAoABYAAQAAAAIAAAApABYAAQAAAAIAAAApABUAAQAAAAIAAAAqABUAAQAAAAIAAAArABUAAQAAAAIAAAAsABUAAQAAAAIAAAAtABUAAQAAAAIAAAAuABUAAQAAAAIAAAAvABUAAQAAAAIAAAAvABYAAQAAAAIAAAAuABYAAQAAAAIAAAAtABYAAQAAAAIAAAAsABYAAQAAAAIAAAArABYAAQAAAAIAAAAqABYAAQAAAAIAAAAoABUAAQAAAAIAAAAnABUAAQAAAAIAAAAmABUAAQAAAAIAAAAlABUAAQAAAAIAAAAvABcAAQAAAAIAAAAuABcAAQAAAAIAAAAtABcAAQAAAAIAAAAsABcAAQAAAAIAAAArABcAAQAAAAIAAAAqABcAAQAAAAIAAAApABcAAQAAAAIAAAAoABcAAQAAAAIAAAAkABcAAQAAAAIAAAAlABcAAQAAAAIAAAAmABcAAQAAAAIAAAAnABcAAQAAAAIAAAAjABcAAQAAAAIAAAAiABcAAQAAAAIAAAAhABcAAQAAAAIAAAAgABcAAQAAAAIAAAAfABcAAQAAAAIAAAAeABcAAQAAAAIAAAAdABcAAQAAAAIAAAAcABcAAQAAAAIAAAAbABcAAQAAAAIAAAAaABcAAQAAAAIAAAAZABcAAQAAAAIAAAAYABcAAQAAAAIAAAAXABcAAQAAAAIAAAAWABcAAQAAAAIAAAAVABcAAQAAAAIAAAAUABcAAQAAAAIAAAATABcAAQAAAAIAAAASABcAAQAAAAIAAAARABcAAQAAAAIAAAAQABcAAQAAAAIAAAAPABcAAQAAAAIAAAAOABcAAQAAAAIAAAANABcAAQAAAAIAAAAMABcAAQAAAAIAAAALABcAAQAAAAIAAAAKABcAAQAAAAIAAAAKABYAAQAAAAIAAAAJABYAAQAAAAIAAAAIABYAAQAAAAIAAAAHABYAAQAAAAIAAAAGABYAAQAAAAIAAAAHABcAAQAAAAIAAAAIABcAAQAAAAIAAAAJABcAAQAAAAIAAAAMABYAAQAAAAIAAAANABYAAQAAAAIAAAAOABYAAQAAAAIAAAAPABYAAQAAAAIAAAALABYAAQAAAAIAAAAGABcAAQAAAAIAAAAAABcAAQAAAAIAAAABABcAAQAAAAIAAAACABcAAQAAAAIAAAADABcAAQAAAAIAAAAEABcAAQAAAAIAAAAFABcAAQAAAAIAAAAFABYAAQAAAAIAAAAFABUAAQAAAAIAAAAEABUAAQAAAAIAAAADABUAAQAAAAIAAAACABUAAQAAAAIAAAABABUAAQAAAAIAAAAAABUAAQAAAAIAAAAAABYAAQAAAAIAAAABABYAAQAAAAIAAAACABYAAQAAAAIAAAADABYAAQAAAAIAAAAEABYAAQAAAAIAAAA=") +tile_set = SubResource("TileSet_mxcxl") + +[node name="TerrainAndMisc" type="TileMapLayer" parent="."] +position = Vector2(-1, 0) +tile_map_data = PackedByteArray("AAASACMAAAACAAYAAAATACMAAAACAAYAAAAUACMAAAACAAYAAAAVACMAAAACAAYAAAAWACMAAAACAAYAAAAXACMAAAACAAYAAAAYACMAAAACAAYAAAAZACMAAAACAAYAAAAaACMAAAACAAYAAAAbACMAAAACAAYAAAAcACMAAAACAAYAAAAdACMAAAACAAYAAAAeACMAAAACAAYAAAAfACMAAAACAAYAAAAgACMAAAACAAYAAAAhACMAAAACAAYAAAAiACMAAAACAAYAAAAjACMAAAACAAYAAAAvACMAAAACAAYAAAAwACMAAAACAAYAAAAxACMAAAACAAYAAAAyACMAAAACAAYAAAAkACMAAAACAAYAAAAlACMAAAACAAYAAAAmACMAAAACAAYAAAAnACMAAAACAAYAAAAoACMAAAACAAYAAAApACMAAAACAAYAAAAqACMAAAACAAYAAAArACMAAAACAAYAAAAsACMAAAACAAYAAAAtACMAAAACAAYAAAAuACMAAAACAAYAAAAzACMAAAACAAYAAAA0ACMAAAACAAYAAAA1ACMAAAACAAYAAAA2ACMAAAACAAYAAAA3ACMAAAACAAYAAAA4ACMAAAACAAYAAAA5ACMAAAACAAYAAAA6ACMAAAACAAYAAAA7ACMAAAACAAYAAAA8ACMAAAACAAYAAAA9ACMAAAACAAYAAAA+ACMAAAACAAYAAAA/ACMAAAACAAYAAAA/ACIAAAACAAYAAAA/ACEAAAACAAYAAAA/ACAAAAACAAYAAAA+ACAAAAACAAYAAAA+ACEAAAACAAYAAAA+ACIAAAACAAYAAAA9ACIAAAACAAYAAAA8ACIAAAACAAYAAAA7ACIAAAACAAYAAAA6ACIAAAACAAYAAAA5ACIAAAACAAYAAAA4ACIAAAACAAYAAAA3ACIAAAACAAYAAAA2ACIAAAACAAYAAAA1ACIAAAACAAYAAAA0ACIAAAACAAYAAAAzACIAAAACAAYAAAAyACIAAAACAAYAAAAxACIAAAACAAYAAAAwACIAAAACAAYAAAAvACIAAAACAAYAAAAuACIAAAACAAYAAAAtACIAAAACAAYAAAAsACIAAAACAAYAAAArACIAAAACAAYAAAAqACIAAAACAAYAAAApACIAAAACAAYAAAAoACIAAAACAAYAAAAnACIAAAACAAYAAAAmACIAAAACAAYAAAAlACIAAAACAAYAAAAkACIAAAACAAYAAAAjACIAAAACAAYAAAAiACIAAAACAAYAAAAhACIAAAACAAYAAAAgACIAAAACAAYAAAAfACIAAAACAAYAAAAeACIAAAACAAYAAAAdACIAAAACAAYAAAAcACIAAAACAAYAAAAbACIAAAACAAYAAAAaACIAAAACAAYAAAAZACIAAAACAAYAAAAYACIAAAACAAYAAAAXACIAAAACAAYAAAAWACIAAAACAAYAAAAVACIAAAACAAYAAAAUACIAAAACAAYAAAATACIAAAACAAYAAAASACIAAAACAAYAAAARACIAAAACAAYAAAAQACIAAAACAAYAAAAPACIAAAACAAYAAAAOACIAAAACAAYAAAANACIAAAACAAYAAAAMACIAAAACAAYAAAALACIAAAACAAYAAAAKACIAAAACAAYAAAAJACIAAAACAAYAAAAIACIAAAACAAYAAAAHACIAAAACAAYAAAAGACIAAAACAAYAAAAFACIAAAACAAYAAAAEACIAAAACAAYAAAADACIAAAACAAYAAAACACIAAAACAAYAAAABACIAAAACAAYAAAABACEAAAACAAYAAAABACAAAAACAAYAAAA9ACAAAAACAAYAAAA9ACEAAAACAAYAAAA8ACEAAAACAAYAAAA7ACEAAAACAAYAAAA6ACEAAAACAAYAAAA5ACEAAAACAAYAAAA4ACEAAAACAAYAAAA3ACEAAAACAAYAAAA2ACEAAAACAAYAAAA1ACEAAAACAAYAAAA0ACEAAAACAAYAAAAzACEAAAACAAYAAAAyACEAAAACAAYAAAAxACEAAAACAAYAAAAwACEAAAACAAYAAAAvACEAAAACAAYAAAAuACEAAAACAAYAAAAtACEAAAACAAYAAAAsACEAAAACAAYAAAArACEAAAACAAYAAAAqACEAAAACAAYAAAApACEAAAACAAYAAAAoACEAAAACAAYAAAAnACEAAAACAAYAAAAmACEAAAACAAYAAAAlACEAAAACAAYAAAAkACEAAAACAAYAAAAjACEAAAACAAYAAAAiACEAAAACAAYAAAAhACEAAAACAAYAAAAgACEAAAACAAYAAAAVACEAAAACAAYAAAAUACEAAAACAAYAAAATACEAAAACAAYAAAASACEAAAACAAYAAAARACEAAAACAAYAAAAQACEAAAACAAYAAAAPACEAAAACAAYAAAAOACEAAAACAAYAAAANACEAAAACAAYAAAAMACEAAAACAAYAAAALACEAAAACAAYAAAAKACEAAAACAAYAAAAJACEAAAACAAYAAAAIACEAAAACAAYAAAAHACEAAAACAAYAAAAGACEAAAACAAYAAAAFACEAAAACAAYAAAAEACEAAAACAAYAAAADACEAAAACAAYAAAADACAAAAACAAYAAAACACAAAAACAAYAAAA8ACAAAAACAAYAAAA7ACAAAAACAAYAAAA6ACAAAAACAAYAAAA5ACAAAAACAAYAAAA4ACAAAAACAAYAAAA3ACAAAAACAAYAAAA2ACAAAAACAAYAAAA1ACAAAAACAAYAAAA0ACAAAAACAAYAAAAzACAAAAACAAYAAAAyACAAAAACAAYAAAAxACAAAAACAAYAAAAwACAAAAACAAYAAAAvACAAAAACAAYAAAAuACAAAAACAAYAAAAtACAAAAACAAYAAAAsACAAAAACAAYAAAArACAAAAACAAYAAAAqACAAAAACAAYAAAApACAAAAACAAYAAAAoACAAAAACAAYAAAAnACAAAAACAAYAAAAmACAAAAACAAYAAAAlACAAAAACAAYAAAAkACAAAAACAAYAAAAjACAAAAACAAYAAAAiACAAAAACAAYAAAAhACAAAAACAAYAAAAgACAAAAACAAYAAAAfACAAAAACAAYAAAAeACAAAAACAAYAAAAdACAAAAACAAYAAAAcACAAAAACAAYAAAAbACAAAAACAAYAAAAaACAAAAACAAYAAAAZACAAAAACAAYAAAAYACAAAAACAAYAAAAXACAAAAACAAYAAAAWACAAAAACAAYAAAAVACAAAAACAAYAAAAUACAAAAACAAYAAAATACAAAAACAAYAAAASACAAAAACAAYAAAARACAAAAACAAYAAAAQACAAAAACAAYAAAAPACAAAAACAAYAAAAOACAAAAACAAYAAAANACAAAAACAAYAAAAMACAAAAACAAYAAAALACAAAAACAAYAAAAKACAAAAACAAYAAAAJACAAAAACAAYAAAAIACAAAAACAAYAAAAHACAAAAACAAYAAAAGACAAAAACAAYAAAAFACAAAAACAAYAAAAEACAAAAACAAYAAAACACEAAAACAAYAAAAWACEAAAACAAYAAAAXACEAAAACAAYAAAAYACEAAAACAAYAAAAZACEAAAACAAYAAAAaACEAAAACAAYAAAAbACEAAAACAAYAAAAcACEAAAACAAYAAAAdACEAAAACAAYAAAAeACEAAAACAAYAAAAfACEAAAACAAYAAAAgABgAAAANAAcAAAAhABgAAAAOAAcAAAAiABgAAAAPAAcAAAAhABQAAAAOAAcAAAAgABQAAAANAAcAAAAiABQAAAAPAAcAAAARACMAAAACAAYAAAAQACMAAAACAAYAAAAPACMAAAACAAYAAAAOACMAAAACAAYAAAANACMAAAACAAYAAAAMACMAAAACAAYAAAALACMAAAACAAYAAAAKACMAAAACAAYAAAAJACMAAAACAAYAAAAIACMAAAACAAYAAAAHACMAAAACAAYAAAAGACMAAAACAAYAAAAFACMAAAACAAYAAAAEACMAAAACAAYAAAADACMAAAACAAYAAAACACMAAAACAAYAAAABACMAAAACAAYAAAAAACMAAAACAAYAAAAAACIAAAACAAYAAAAAACEAAAACAAYAAAAAACAAAAACAAYAAAA/AB8AAAACAAYAAAA+AB8AAAACAAYAAAA9AB8AAAACAAYAAAA8AB8AAAACAAYAAAA7AB8AAAACAAYAAAA6AB8AAAACAAYAAAA5AB8AAAACAAYAAAA4AB8AAAACAAYAAAA3AB8AAAACAAYAAAA2AB8AAAACAAYAAAA1AB8AAAACAAYAAAA0AB8AAAACAAYAAAAzAB8AAAACAAYAAAAyAB8AAAACAAYAAAAxAB8AAAACAAYAAAAwAB8AAAACAAYAAAAvAB8AAAACAAYAAAAuAB8AAAACAAYAAAAtAB8AAAACAAYAAAAsAB8AAAACAAYAAAArAB8AAAACAAYAAAAqAB8AAAACAAYAAAApAB8AAAACAAYAAAAoAB8AAAACAAYAAAAnAB8AAAACAAYAAAAmAB8AAAACAAYAAAAlAB8AAAACAAYAAAAkAB8AAAACAAYAAAAjAB8AAAACAAYAAAAiAB8AAAACAAYAAAAhAB8AAAACAAYAAAAgAB8AAAACAAYAAAAfAB8AAAACAAYAAAAeAB8AAAACAAYAAAAdAB8AAAACAAYAAAAcAB8AAAACAAYAAAAbAB8AAAACAAYAAAAaAB8AAAACAAYAAAAZAB8AAAACAAYAAAAYAB8AAAACAAYAAAAXAB8AAAACAAYAAAAWAB8AAAACAAYAAAAVAB8AAAACAAYAAAAUAB8AAAACAAYAAAATAB8AAAACAAYAAAASAB8AAAACAAYAAAARAB8AAAACAAYAAAAQAB8AAAACAAYAAAAPAB8AAAACAAYAAAAOAB8AAAACAAYAAAANAB8AAAACAAYAAAAMAB8AAAACAAYAAAALAB8AAAACAAYAAAAKAB8AAAACAAYAAAAJAB8AAAACAAYAAAAIAB8AAAACAAYAAAAHAB8AAAACAAYAAAAGAB8AAAACAAYAAAAFAB8AAAACAAYAAAAEAB8AAAACAAYAAAADAB8AAAACAAYAAAACAB8AAAACAAYAAAABAB8AAAACAAYAAAAAAB8AAAACAAYAAAAfAB0AAAACAAEAAAAeAB0AAAACAAEAAAAdAB0AAAACAAEAAAAcAB0AAAACAAEAAAAgAB0AAAACAAEAAAAbAB0AAAACAAEAAAAaAB0AAAACAAEAAAAZAB0AAAACAAEAAAAYAB0AAAACAAEAAAAXAB0AAAACAAEAAAAWAB0AAAACAAEAAAAVAB0AAAACAAEAAAAUAB0AAAACAAEAAAATAB0AAAACAAEAAAASAB0AAAACAAEAAAAAAB0AAAACAAEAAAABAB0AAAACAAEAAAACAB0AAAACAAEAAAADAB0AAAACAAEAAAAEAB0AAAACAAEAAAAFAB0AAAACAAEAAAAGAB0AAAACAAEAAAAHAB0AAAACAAEAAAAIAB0AAAACAAEAAAAJAB0AAAACAAEAAAAKAB0AAAACAAEAAAALAB0AAAACAAEAAAAMAB0AAAACAAEAAAANAB0AAAACAAEAAAAOAB0AAAACAAEAAAAPAB0AAAACAAEAAAAQAB0AAAACAAEAAAARAB0AAAACAAEAAAA/AB0AAAACAAEAAAA+AB0AAAACAAEAAAA9AB0AAAACAAEAAAA8AB0AAAACAAEAAAA7AB0AAAACAAEAAAA6AB0AAAACAAEAAAA5AB0AAAACAAEAAAA4AB0AAAACAAEAAAA3AB0AAAACAAEAAAA2AB0AAAACAAEAAAA1AB0AAAACAAEAAAA0AB0AAAACAAEAAAAzAB0AAAACAAEAAAAyAB0AAAACAAEAAAAxAB0AAAACAAEAAAAwAB0AAAACAAEAAAAvAB0AAAACAAEAAAAuAB0AAAACAAEAAAAtAB0AAAACAAEAAAAsAB0AAAACAAEAAAArAB0AAAACAAEAAAAqAB0AAAACAAEAAAApAB0AAAACAAEAAAAoAB0AAAACAAEAAAAnAB0AAAACAAEAAAAmAB0AAAACAAEAAAAlAB0AAAACAAEAAAAkAB0AAAACAAEAAAAjAB0AAAACAAEAAAAiAB0AAAACAAEAAAAhAB0AAAACAAEAAAAOAB4AAAACAAYAAAAPAB4AAAACAAYAAAAQAB4AAAACAAYAAAARAB4AAAACAAYAAAASAB4AAAACAAYAAAATAB4AAAACAAYAAAAUAB4AAAACAAYAAAAVAB4AAAACAAYAAAAWAB4AAAACAAYAAAAXAB4AAAACAAYAAAAYAB4AAAACAAYAAAAZAB4AAAACAAYAAAAaAB4AAAACAAYAAAAbAB4AAAACAAYAAAAcAB4AAAACAAYAAAAdAB4AAAACAAYAAAAeAB4AAAACAAYAAAAfAB4AAAACAAYAAAAgAB4AAAACAAYAAAAhAB4AAAACAAYAAAAiAB4AAAACAAYAAAAjAB4AAAACAAYAAAAkAB4AAAACAAYAAAAlAB4AAAACAAYAAAAmAB4AAAACAAYAAAAnAB4AAAACAAYAAAAoAB4AAAACAAYAAAApAB4AAAACAAYAAAAqAB4AAAACAAYAAAArAB4AAAACAAYAAAAsAB4AAAACAAYAAAAtAB4AAAACAAYAAAAuAB4AAAACAAYAAAAvAB4AAAACAAYAAAAwAB4AAAACAAYAAAAxAB4AAAACAAYAAAAyAB4AAAACAAYAAAAzAB4AAAACAAYAAAA0AB4AAAACAAYAAAA1AB4AAAACAAYAAAA2AB4AAAACAAYAAAA3AB4AAAACAAYAAAA4AB4AAAACAAYAAAA5AB4AAAACAAYAAAA6AB4AAAACAAYAAAA7AB4AAAACAAYAAAA8AB4AAAACAAYAAAA9AB4AAAACAAYAAAA+AB4AAAACAAYAAAA/AB4AAAACAAYAAAAAAB4AAAACAAYAAAABAB4AAAACAAYAAAACAB4AAAACAAYAAAADAB4AAAACAAYAAAAEAB4AAAACAAYAAAAFAB4AAAACAAYAAAAGAB4AAAACAAYAAAAHAB4AAAACAAYAAAAIAB4AAAACAAYAAAAJAB4AAAACAAYAAAAKAB4AAAACAAYAAAALAB4AAAACAAYAAAAMAB4AAAACAAYAAAANAB4AAAACAAYAAAA=") +tile_set = SubResource("TileSet_lrrmr") + +[node name="Floor_StaticBody2D" type="StaticBody2D" parent="."] + +[node name="Floor_CollisionShape2D" type="CollisionShape2D" parent="Floor_StaticBody2D"] +position = Vector2(575, 529) +shape = SubResource("RectangleShape2D_r834c") + +[node name="TestPlatform_StaticBody2D" type="StaticBody2D" parent="."] +collision_layer = 2 + +[node name="TestPlatform_CollisionShape2D" type="CollisionShape2D" parent="TestPlatform_StaticBody2D"] +position = Vector2(602, 435) +shape = SubResource("RectangleShape2D_j8vi2") +one_way_collision = true + +[node name="TestPlatform_StaticBody2D2" type="StaticBody2D" parent="."] +collision_layer = 2 + +[node name="TestPlatform_CollisionShape2D" type="CollisionShape2D" parent="TestPlatform_StaticBody2D2"] +position = Vector2(602, 363) +shape = SubResource("RectangleShape2D_j8vi2") +one_way_collision = true diff --git a/scenes/Main.tscn b/scenes/Main.tscn new file mode 100644 index 0000000..1be6679 --- /dev/null +++ b/scenes/Main.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=4 format=3 uid="uid://dssr27iktcld"] + +[ext_resource type="PackedScene" uid="uid://glgyen0w4614" path="res://scenes/Level1.tscn" id="1_7a2cc"] +[ext_resource type="PackedScene" uid="uid://c5v4a4xjhe832" path="res://scenes/Player.tscn" id="2_ron50"] +[ext_resource type="Script" uid="uid://uvuk2xh0skdi" path="res://src/entities/player/Player.cs" id="3_0bbpv"] + +[node name="Main" type="Node"] + +[node name="Level1" parent="." instance=ExtResource("1_7a2cc")] + +[node name="Player" parent="." instance=ExtResource("2_ron50")] +position = Vector2(143, 492) +script = ExtResource("3_0bbpv") + +[node name="Camera2D" type="Camera2D" parent="Player"] +position = Vector2(144, -6) +zoom = Vector2(2.5, 2.5) diff --git a/scenes/Player.tscn b/scenes/Player.tscn new file mode 100644 index 0000000..be8f6a6 --- /dev/null +++ b/scenes/Player.tscn @@ -0,0 +1,548 @@ +[gd_scene load_steps=73 format=3 uid="uid://c5v4a4xjhe832"] + +[ext_resource type="Texture2D" uid="uid://5j6cf0fssina" path="res://art/sprites/PlayerWalk 48x48.png" id="2_1hyc4"] +[ext_resource type="Texture2D" uid="uid://bmi2lvb6o4hbr" path="res://art/sprites/player run 48x48.png" id="2_dcgkk"] +[ext_resource type="Texture2D" uid="uid://cks3q4o02s7gt" path="res://art/sprites/Player Crouch-Idle 48x48.png" id="2_gos5p"] +[ext_resource type="Texture2D" uid="uid://0l6m8kd0a36m" path="res://art/sprites/player crouch-walk 48x48.png" id="3_qgfgr"] +[ext_resource type="Texture2D" uid="uid://wyisbm2pjg2l" path="res://art/sprites/Player Idle 48x48.png" id="4_jn0em"] +[ext_resource type="Texture2D" uid="uid://bva7lbaacnj7a" path="res://art/sprites/player new jump 48x48.png" id="5_83okp"] +[ext_resource type="Texture2D" uid="uid://j5lj70ywebv1" path="res://art/sprites/player land 48x48.png" id="6_xc5vd"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_wmiyk"] +radius = 9.0 +height = 34.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_j0imd"] +atlas = ExtResource("2_gos5p") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wii8i"] +atlas = ExtResource("2_gos5p") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_p5oe0"] +atlas = ExtResource("2_gos5p") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_y7d15"] +atlas = ExtResource("2_gos5p") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_j76b8"] +atlas = ExtResource("2_gos5p") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1vjds"] +atlas = ExtResource("2_gos5p") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_daorg"] +atlas = ExtResource("2_gos5p") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ig7od"] +atlas = ExtResource("2_gos5p") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_q7ljo"] +atlas = ExtResource("2_gos5p") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lo3b1"] +atlas = ExtResource("2_gos5p") +region = Rect2(432, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fwma2"] +atlas = ExtResource("3_qgfgr") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_k5jcu"] +atlas = ExtResource("3_qgfgr") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_en7bm"] +atlas = ExtResource("3_qgfgr") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_o0x6w"] +atlas = ExtResource("3_qgfgr") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_t0gwy"] +atlas = ExtResource("3_qgfgr") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ec8uj"] +atlas = ExtResource("3_qgfgr") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ha12i"] +atlas = ExtResource("3_qgfgr") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_qr6jk"] +atlas = ExtResource("3_qgfgr") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ar6mq"] +atlas = ExtResource("3_qgfgr") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_74g0w"] +atlas = ExtResource("3_qgfgr") +region = Rect2(432, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_rk3bd"] +atlas = ExtResource("4_jn0em") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ej1y8"] +atlas = ExtResource("4_jn0em") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_am4c6"] +atlas = ExtResource("4_jn0em") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nimqo"] +atlas = ExtResource("4_jn0em") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_nn78r"] +atlas = ExtResource("4_jn0em") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xhu8g"] +atlas = ExtResource("4_jn0em") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_755mi"] +atlas = ExtResource("4_jn0em") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_uupc3"] +atlas = ExtResource("4_jn0em") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_ncjm3"] +atlas = ExtResource("4_jn0em") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jrt43"] +atlas = ExtResource("4_jn0em") +region = Rect2(432, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_wykxr"] +atlas = ExtResource("5_83okp") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5xonh"] +atlas = ExtResource("5_83okp") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_46rgd"] +atlas = ExtResource("5_83okp") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_vj1v7"] +atlas = ExtResource("5_83okp") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_3ikxd"] +atlas = ExtResource("5_83okp") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l7v7a"] +atlas = ExtResource("5_83okp") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_6dqgy"] +atlas = ExtResource("6_xc5vd") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_maff2"] +atlas = ExtResource("6_xc5vd") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_seuxt"] +atlas = ExtResource("6_xc5vd") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lu756"] +atlas = ExtResource("6_xc5vd") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_bq8ja"] +atlas = ExtResource("6_xc5vd") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_amwrs"] +atlas = ExtResource("6_xc5vd") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_iq6my"] +atlas = ExtResource("6_xc5vd") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_80aur"] +atlas = ExtResource("6_xc5vd") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_5yntb"] +atlas = ExtResource("6_xc5vd") +region = Rect2(384, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_xq23i"] +atlas = ExtResource("2_dcgkk") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jnjqv"] +atlas = ExtResource("2_dcgkk") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_0fcjb"] +atlas = ExtResource("2_dcgkk") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cwtxs"] +atlas = ExtResource("2_dcgkk") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kn4va"] +atlas = ExtResource("2_dcgkk") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_l4vds"] +atlas = ExtResource("2_dcgkk") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_cixgp"] +atlas = ExtResource("2_dcgkk") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_u0274"] +atlas = ExtResource("2_dcgkk") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gr0nd"] +atlas = ExtResource("2_1hyc4") +region = Rect2(0, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_gatpv"] +atlas = ExtResource("2_1hyc4") +region = Rect2(48, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_8tylp"] +atlas = ExtResource("2_1hyc4") +region = Rect2(96, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_lqdwg"] +atlas = ExtResource("2_1hyc4") +region = Rect2(144, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_1s4kw"] +atlas = ExtResource("2_1hyc4") +region = Rect2(192, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_inyv3"] +atlas = ExtResource("2_1hyc4") +region = Rect2(240, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_me01t"] +atlas = ExtResource("2_1hyc4") +region = Rect2(288, 0, 48, 48) + +[sub_resource type="AtlasTexture" id="AtlasTexture_d6fg5"] +atlas = ExtResource("2_1hyc4") +region = Rect2(336, 0, 48, 48) + +[sub_resource type="SpriteFrames" id="SpriteFrames_ywr77"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_j0imd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_wii8i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_p5oe0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_y7d15") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_j76b8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1vjds") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_daorg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ig7od") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_q7ljo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lo3b1") +}], +"loop": true, +"name": &"crouch_idle", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_fwma2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_k5jcu") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_en7bm") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_o0x6w") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_t0gwy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ec8uj") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ha12i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_qr6jk") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ar6mq") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_74g0w") +}], +"loop": true, +"name": &"crouch_walk", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_rk3bd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ej1y8") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_am4c6") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nimqo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_nn78r") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_xhu8g") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_755mi") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_uupc3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_ncjm3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jrt43") +}], +"loop": true, +"name": &"idle", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_wykxr") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5xonh") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_46rgd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_vj1v7") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_3ikxd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l7v7a") +}], +"loop": true, +"name": &"jump", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_6dqgy") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_maff2") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_seuxt") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lu756") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_bq8ja") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_amwrs") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_iq6my") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_80aur") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_5yntb") +}], +"loop": true, +"name": &"land", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_xq23i") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_jnjqv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_0fcjb") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cwtxs") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kn4va") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_l4vds") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_cixgp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_u0274") +}], +"loop": true, +"name": &"run", +"speed": 6.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_gr0nd") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_gatpv") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_8tylp") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_lqdwg") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_1s4kw") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_inyv3") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_me01t") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_d6fg5") +}], +"loop": true, +"name": &"walk", +"speed": 6.0 +}] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_yho6t"] +texture = ExtResource("2_1hyc4") +texture_region_size = Vector2i(1, 1) +1:0/0 = 0 +4:0/0 = 0 +7:0/0 = 0 +10:0/0 = 0 +13:0/0 = 0 +16:0/0 = 0 +19:0/0 = 0 +22:0/0 = 0 +1:1/0 = 0 +4:1/0 = 0 +7:1/0 = 0 +8:1/0 = 0 +9:1/0 = 0 +10:1/0 = 0 +11:1/0 = 0 +13:1/0 = 0 +16:1/0 = 0 +18:1/0 = 0 +19:1/0 = 0 +20:1/0 = 0 +21:1/0 = 0 +22:1/0 = 0 +23:1/0 = 0 +1:2/0 = 0 +4:2/0 = 0 +6:2/0 = 0 +7:2/0 = 0 +8:2/0 = 0 +9:2/0 = 0 +10:2/0 = 0 +13:2/0 = 0 +16:2/0 = 0 +18:2/0 = 0 +19:2/0 = 0 +20:2/0 = 0 +21:2/0 = 0 +22:2/0 = 0 +0:0/0 = 0 +2:0/0 = 0 +3:0/0 = 0 +5:0/0 = 0 +6:0/0 = 0 + +[sub_resource type="TileSet" id="TileSet_etv3c"] +sources/0 = SubResource("TileSetAtlasSource_yho6t") + +[node name="Player" type="CharacterBody2D"] +collision_layer = 4 +collision_mask = 3 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CapsuleShape2D_wmiyk") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_ywr77") +animation = &"land" +frame = 2 +frame_progress = 0.112285 + +[node name="Area2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CapsuleShape2D_wmiyk") + +[node name="TileMapLayer" type="TileMapLayer" parent="."] +tile_set = SubResource("TileSet_etv3c") diff --git a/src/entities/player/Player.cs b/src/entities/player/Player.cs new file mode 100644 index 0000000..038a049 --- /dev/null +++ b/src/entities/player/Player.cs @@ -0,0 +1,122 @@ +using Godot; +using System; + +public partial class Player : CharacterBody2D +{ + // Constantes + private const float SPEED = 50.0f; + private const float JUMP_VELOCITY = -400.0f; + + // Acciones + private bool RUN_ACTION; + private bool JUMP_ACTION; + private bool WALK_ACTION; + private bool WALK_RIGHT; + private bool WALK_LEFT; + private bool CROUCH_ACTION; + + // Variables varias + private Vector2 screenSize; + private uint originalCollisionMask; + + public override void _Ready() + { + screenSize = GetViewportRect().Size; + originalCollisionMask = CollisionMask; + } + + public override void _Process(double delta) + { + // Actualizar acciones + RUN_ACTION = Input.IsActionPressed("run"); + JUMP_ACTION = Input.IsActionPressed("jump"); + WALK_ACTION = Input.IsActionPressed("move_left") || Input.IsActionPressed("move_right"); + WALK_RIGHT = Input.IsActionPressed("move_right"); + WALK_LEFT = Input.IsActionPressed("move_left"); + CROUCH_ACTION = Input.IsActionPressed("crouch"); + + var sprite = GetNode("AnimatedSprite2D"); + + // Animaciones + sprite.Play(); + sprite.FlipV = false; + sprite.FlipH = Velocity.X < 0; + + // Movimiento con animaciones + if (Velocity.X != 0) + { + if (RUN_ACTION) + { + if (JUMP_ACTION && !IsOnFloor()) + sprite.Animation = "jump"; + else + sprite.Animation = "run"; + } + else if (WALK_ACTION) + { + if (CROUCH_ACTION) + sprite.Animation = "crouch_walk"; + else if (JUMP_ACTION && !IsOnFloor()) + sprite.Animation = "jump"; + else + sprite.Animation = "walk"; + } + } + else // Idle + { + if (CROUCH_ACTION) + sprite.Animation = "crouch_idle"; + else if (JUMP_ACTION && !IsOnFloor()) + sprite.Animation = "jump"; + else + sprite.Animation = "idle"; + } + } + + public override void _PhysicsProcess(double delta) + { + // Gravedad + if (!IsOnFloor()) + Velocity += GetGravity() * (float)delta; + + // Saltos + if (Input.IsActionJustPressed("jump") && IsOnFloor()) + { + if (Input.IsActionPressed("crouch")) + Velocity = new Vector2(Velocity.X, 0.65f * JUMP_VELOCITY); + else if (Input.IsActionPressed("run")) + Velocity = new Vector2(Velocity.X, 1.15f * JUMP_VELOCITY); + else + Velocity = new Vector2(Velocity.X, JUMP_VELOCITY); + } + + // Movimiento lateral + float direction = Input.GetAxis("move_left", "move_right"); + if (direction != 0) + { + if (Input.IsActionPressed("run")) + Velocity = new Vector2(direction * 3 * SPEED, Velocity.Y); + else + Velocity = new Vector2(direction * SPEED, Velocity.Y); + } + else + { + Velocity = new Vector2(Mathf.MoveToward(Velocity.X, 0, SPEED), Velocity.Y); + } + + // Caída de plataformas + if (IsOnPlatform() && Input.IsActionJustPressed("crouch")) + CollisionMask &= 1; + + if (!Input.IsActionPressed("crouch") && CollisionMask != originalCollisionMask) + CollisionMask = originalCollisionMask; + + MoveAndSlide(); + } + + private bool IsOnPlatform() + { + // En tu caso los "plataformas" tienen máscara 3 + return IsOnFloor() && CollisionMask == 3; + } +} diff --git a/src/entities/player/Player.cs.uid b/src/entities/player/Player.cs.uid new file mode 100644 index 0000000..1aabf71 --- /dev/null +++ b/src/entities/player/Player.cs.uid @@ -0,0 +1 @@ +uid://uvuk2xh0skdi