diff --git a/Assets/ColorPallet.png.import b/Assets/ColorPallet.png.import index fa16fe8..4e4db70 100644 --- a/Assets/ColorPallet.png.import +++ b/Assets/ColorPallet.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://dwkjfno8mjrdp" +uid="uid://1tn0jeyhxy1k" path="res://.godot/imported/ColorPallet.png-9feaa0f98adb7b976a9666999fd546c6.ctex" metadata={ "vram_texture": false diff --git a/Assets/Fonts/Dogica/dogica.ttf b/Assets/Fonts/Dogica/dogica.ttf new file mode 100644 index 0000000..2d1ac57 Binary files /dev/null and b/Assets/Fonts/Dogica/dogica.ttf differ diff --git a/Assets/Fonts/Dogica/dogica.ttf.import b/Assets/Fonts/Dogica/dogica.ttf.import new file mode 100644 index 0000000..1adec2b --- /dev/null +++ b/Assets/Fonts/Dogica/dogica.ttf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cnjan4pbb0t7y" +path="res://.godot/imported/dogica.ttf-cca28cc7d16ed3c13206eee2bc7c7b52.fontdata" + +[deps] + +source_file="res://Assets/Fonts/Dogica/dogica.ttf" +dest_files=["res://.godot/imported/dogica.ttf-cca28cc7d16ed3c13206eee2bc7c7b52.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Fonts/Dogica/dogicabold.ttf b/Assets/Fonts/Dogica/dogicabold.ttf new file mode 100644 index 0000000..7ea1b3c Binary files /dev/null and b/Assets/Fonts/Dogica/dogicabold.ttf differ diff --git a/Assets/Fonts/Dogica/dogicabold.ttf.import b/Assets/Fonts/Dogica/dogicabold.ttf.import new file mode 100644 index 0000000..2a58575 --- /dev/null +++ b/Assets/Fonts/Dogica/dogicabold.ttf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://b3gehhp8onguu" +path="res://.godot/imported/dogicabold.ttf-7a6b755be6795c57e32ed0bf4e1f5470.fontdata" + +[deps] + +source_file="res://Assets/Fonts/Dogica/dogicabold.ttf" +dest_files=["res://.godot/imported/dogicabold.ttf-7a6b755be6795c57e32ed0bf4e1f5470.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Fonts/Dogica/dogicapixel.ttf b/Assets/Fonts/Dogica/dogicapixel.ttf new file mode 100644 index 0000000..bd3ebe8 Binary files /dev/null and b/Assets/Fonts/Dogica/dogicapixel.ttf differ diff --git a/Assets/Fonts/Dogica/dogicapixel.ttf.import b/Assets/Fonts/Dogica/dogicapixel.ttf.import new file mode 100644 index 0000000..d0f969c --- /dev/null +++ b/Assets/Fonts/Dogica/dogicapixel.ttf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dqdeftjkwxe64" +path="res://.godot/imported/dogicapixel.ttf-3989b977d2a1d83a86699e4542933e5f.fontdata" + +[deps] + +source_file="res://Assets/Fonts/Dogica/dogicapixel.ttf" +dest_files=["res://.godot/imported/dogicapixel.ttf-3989b977d2a1d83a86699e4542933e5f.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Fonts/Dogica/dogicapixelbold.ttf b/Assets/Fonts/Dogica/dogicapixelbold.ttf new file mode 100644 index 0000000..62807db Binary files /dev/null and b/Assets/Fonts/Dogica/dogicapixelbold.ttf differ diff --git a/Assets/Fonts/Dogica/dogicapixelbold.ttf.import b/Assets/Fonts/Dogica/dogicapixelbold.ttf.import new file mode 100644 index 0000000..1efb8f4 --- /dev/null +++ b/Assets/Fonts/Dogica/dogicapixelbold.ttf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://ymsnpcoeg07j" +path="res://.godot/imported/dogicapixelbold.ttf-304a51366a90ea0cf00d3f76893ac3ec.fontdata" + +[deps] + +source_file="res://Assets/Fonts/Dogica/dogicapixelbold.ttf" +dest_files=["res://.godot/imported/dogicapixelbold.ttf-304a51366a90ea0cf00d3f76893ac3ec.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/Assets/Sprites/Bunny/bad_bunny_spritesheet.png b/Assets/Sprites/Bunny/bad_bunny_spritesheet.png index dccef6d..0e93b71 100644 Binary files a/Assets/Sprites/Bunny/bad_bunny_spritesheet.png and b/Assets/Sprites/Bunny/bad_bunny_spritesheet.png differ diff --git a/Assets/Sprites/Bunny/good_bunny_spritesheet.png b/Assets/Sprites/Bunny/good_bunny_spritesheet.png index 2b1b04c..94643b7 100644 Binary files a/Assets/Sprites/Bunny/good_bunny_spritesheet.png and b/Assets/Sprites/Bunny/good_bunny_spritesheet.png differ diff --git a/Assets/Sprites/Easter Egg/Egg 1.png b/Assets/Sprites/Easter Egg/Egg 1.png new file mode 100644 index 0000000..3943e7e Binary files /dev/null and b/Assets/Sprites/Easter Egg/Egg 1.png differ diff --git a/Assets/Sprites/Easter Egg/Egg 1.png.import b/Assets/Sprites/Easter Egg/Egg 1.png.import new file mode 100644 index 0000000..6adb974 --- /dev/null +++ b/Assets/Sprites/Easter Egg/Egg 1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkotcqflp3e32" +path="res://.godot/imported/Egg 1.png-1b589e8341e1098857da93ae736df578.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Easter Egg/Egg 1.png" +dest_files=["res://.godot/imported/Egg 1.png-1b589e8341e1098857da93ae736df578.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/Assets/Sprites/Easter Egg/Egg 2.png b/Assets/Sprites/Easter Egg/Egg 2.png new file mode 100644 index 0000000..6ef58eb Binary files /dev/null and b/Assets/Sprites/Easter Egg/Egg 2.png differ diff --git a/Assets/Sprites/Easter Egg/Egg 2.png.import b/Assets/Sprites/Easter Egg/Egg 2.png.import new file mode 100644 index 0000000..0b74977 --- /dev/null +++ b/Assets/Sprites/Easter Egg/Egg 2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3yg6u8yncau3" +path="res://.godot/imported/Egg 2.png-3ecb9a3c38d8804b494043f6efeaf5ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Easter Egg/Egg 2.png" +dest_files=["res://.godot/imported/Egg 2.png-3ecb9a3c38d8804b494043f6efeaf5ee.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/Assets/Sprites/Easter Egg/Egg 3.png b/Assets/Sprites/Easter Egg/Egg 3.png new file mode 100644 index 0000000..afbbf14 Binary files /dev/null and b/Assets/Sprites/Easter Egg/Egg 3.png differ diff --git a/Assets/Sprites/Easter Egg/Egg 3.png.import b/Assets/Sprites/Easter Egg/Egg 3.png.import new file mode 100644 index 0000000..3ddaf71 --- /dev/null +++ b/Assets/Sprites/Easter Egg/Egg 3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://daat37cyg0go5" +path="res://.godot/imported/Egg 3.png-c72e63a8a820676347949adf94a3512a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Easter Egg/Egg 3.png" +dest_files=["res://.godot/imported/Egg 3.png-c72e63a8a820676347949adf94a3512a.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/Assets/Sprites/Easter Egg/Shadow.png b/Assets/Sprites/Easter Egg/Shadow.png new file mode 100644 index 0000000..5d4d0c5 Binary files /dev/null and b/Assets/Sprites/Easter Egg/Shadow.png differ diff --git a/Assets/Sprites/Easter Egg/Shadow.png.import b/Assets/Sprites/Easter Egg/Shadow.png.import new file mode 100644 index 0000000..8ea67c9 --- /dev/null +++ b/Assets/Sprites/Easter Egg/Shadow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tjxkew3m4v8m" +path="res://.godot/imported/Shadow.png-763630734c7fdb0535d00bfd3d40a6b3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Easter Egg/Shadow.png" +dest_files=["res://.godot/imported/Shadow.png-763630734c7fdb0535d00bfd3d40a6b3.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/Assets/Sprites/Jesus/jesus_spritesheet.png.import b/Assets/Sprites/Jesus/jesus_spritesheet.png.import index 8ccd198..1585cde 100644 --- a/Assets/Sprites/Jesus/jesus_spritesheet.png.import +++ b/Assets/Sprites/Jesus/jesus_spritesheet.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://db70wcy5ua3jd" +uid="uid://ojlfqxj5bilo" path="res://.godot/imported/jesus_spritesheet.png-2f2e431acd4617eba93529f5420694c6.ctex" metadata={ "vram_texture": false diff --git a/Assets/Sprites/Props/Cake.png b/Assets/Sprites/Props/Cake.png new file mode 100644 index 0000000..0e508de Binary files /dev/null and b/Assets/Sprites/Props/Cake.png differ diff --git a/Assets/Sprites/Props/Cake.png.import b/Assets/Sprites/Props/Cake.png.import new file mode 100644 index 0000000..7b4982f --- /dev/null +++ b/Assets/Sprites/Props/Cake.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhvvw4yckl8x7" +path="res://.godot/imported/Cake.png-a1299373d3c2f4ed321393ceaefc7ccc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Props/Cake.png" +dest_files=["res://.godot/imported/Cake.png-a1299373d3c2f4ed321393ceaefc7ccc.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/Assets/Sprites/TileMap.png b/Assets/Sprites/TileMap.png index 33988e1..0c1de3b 100644 Binary files a/Assets/Sprites/TileMap.png and b/Assets/Sprites/TileMap.png differ diff --git a/Assets/Sprites/TileMap.png.import b/Assets/Sprites/TileMap.png.import index b55c6da..42e1637 100644 --- a/Assets/Sprites/TileMap.png.import +++ b/Assets/Sprites/TileMap.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bqi3ddjrcj2bh" +uid="uid://dl2qogjortsbo" path="res://.godot/imported/TileMap.png-5a8ebee45e38c1e4c53b5e5cf69bfe18.ctex" metadata={ "vram_texture": false diff --git a/Assets/Sprites/UI Elements/Cross.png b/Assets/Sprites/UI Elements/Cross.png new file mode 100644 index 0000000..54d186a Binary files /dev/null and b/Assets/Sprites/UI Elements/Cross.png differ diff --git a/Assets/Sprites/UI Elements/Cross.png.import b/Assets/Sprites/UI Elements/Cross.png.import new file mode 100644 index 0000000..96299a3 --- /dev/null +++ b/Assets/Sprites/UI Elements/Cross.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://6snf183fgfo5" +path="res://.godot/imported/Cross.png-cb47f197658081aa6b3b2436216091d8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/UI Elements/Cross.png" +dest_files=["res://.godot/imported/Cross.png-cb47f197658081aa6b3b2436216091d8.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/Assets/Sprites/UI Elements/Jesus.png b/Assets/Sprites/UI Elements/Jesus.png new file mode 100644 index 0000000..15b21a2 Binary files /dev/null and b/Assets/Sprites/UI Elements/Jesus.png differ diff --git a/Assets/Sprites/UI Elements/Jesus.png.import b/Assets/Sprites/UI Elements/Jesus.png.import new file mode 100644 index 0000000..1beeb37 --- /dev/null +++ b/Assets/Sprites/UI Elements/Jesus.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cp84ssaqs3pmp" +path="res://.godot/imported/Jesus.png-4b77d6b073d02e874b45321d0948eaf8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/UI Elements/Jesus.png" +dest_files=["res://.godot/imported/Jesus.png-4b77d6b073d02e874b45321d0948eaf8.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/Assets/Sprites/crucefix.png.import b/Assets/Sprites/crucefix.png.import index 544c570..83c356a 100644 --- a/Assets/Sprites/crucefix.png.import +++ b/Assets/Sprites/crucefix.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://c5jj6s5orw6mi" +uid="uid://dlxjdb0tchrps" path="res://.godot/imported/crucefix.png-cb219c7b600f79e2811b5e89faa1becb.ctex" metadata={ "vram_texture": false diff --git a/Assets/Temp Music/awesomeness.wav b/Assets/Temp Music/awesomeness.wav new file mode 100644 index 0000000..0ea8332 Binary files /dev/null and b/Assets/Temp Music/awesomeness.wav differ diff --git a/Assets/Temp Music/awesomeness.wav.import b/Assets/Temp Music/awesomeness.wav.import new file mode 100644 index 0000000..ef0f2c9 --- /dev/null +++ b/Assets/Temp Music/awesomeness.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dpbyjnyg765r7" +path="res://.godot/imported/awesomeness.wav-59f1c1423f54ec46cf96ddbcf1a5f126.sample" + +[deps] + +source_file="res://Assets/Temp Music/awesomeness.wav" +dest_files=["res://.godot/imported/awesomeness.wav-59f1c1423f54ec46cf96ddbcf1a5f126.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_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Assets/Temp Music/default_bus_layout.tres b/Assets/Temp Music/default_bus_layout.tres new file mode 100644 index 0000000..81b382e --- /dev/null +++ b/Assets/Temp Music/default_bus_layout.tres @@ -0,0 +1,16 @@ +[gd_resource type="AudioBusLayout" format=3 uid="uid://df0inyse5slni"] + +[resource] +bus/0/volume_db = 0.796078 +bus/1/name = &"Music" +bus/1/solo = false +bus/1/mute = false +bus/1/bypass_fx = false +bus/1/volume_db = 0.0 +bus/1/send = &"Master" +bus/2/name = &"SFX" +bus/2/solo = false +bus/2/mute = false +bus/2/bypass_fx = false +bus/2/volume_db = 0.0 +bus/2/send = &"Master" diff --git a/Assets/Temp Music/omw-to-beat-the-big-bad.wav b/Assets/Temp Music/omw-to-beat-the-big-bad.wav new file mode 100644 index 0000000..600b8a6 Binary files /dev/null and b/Assets/Temp Music/omw-to-beat-the-big-bad.wav differ diff --git a/Assets/Temp Music/omw-to-beat-the-big-bad.wav.import b/Assets/Temp Music/omw-to-beat-the-big-bad.wav.import new file mode 100644 index 0000000..87f4127 --- /dev/null +++ b/Assets/Temp Music/omw-to-beat-the-big-bad.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://c6nf5s6xy2uii" +path="res://.godot/imported/omw-to-beat-the-big-bad.wav-7f8a9a2e19afe1786d6b9f29ff762163.sample" + +[deps] + +source_file="res://Assets/Temp Music/omw-to-beat-the-big-bad.wav" +dest_files=["res://.godot/imported/omw-to-beat-the-big-bad.wav-7f8a9a2e19afe1786d6b9f29ff762163.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_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/Assets/Tileset.tres b/Assets/Tileset.tres index 571b83b..b2f49cf 100644 --- a/Assets/Tileset.tres +++ b/Assets/Tileset.tres @@ -1,6 +1,11 @@ -[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://bj7uu2180mie3"] +[gd_resource type="TileSet" load_steps=4 format=3 uid="uid://bj7uu2180mie3"] -[ext_resource type="Texture2D" uid="uid://bqi3ddjrcj2bh" path="res://Assets/Sprites/TileMap.png" id="1_cl3se"] +[ext_resource type="Texture2D" uid="uid://dl2qogjortsbo" path="res://Assets/Sprites/TileMap.png" id="1_cl3se"] + +[sub_resource type="NavigationPolygon" id="NavigationPolygon_fhapu"] +vertices = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)]) [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mgef5"] texture = ExtResource("1_cl3se") @@ -485,6 +490,12 @@ texture_region_size = Vector2i(32, 32) 11:3/0/terrains_peering_bit/left_side = 0 11:3/0/terrains_peering_bit/top_left_corner = 0 11:3/0/terrains_peering_bit/top_side = 0 +10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 1 +10:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:1/0/physics_layer_0/angular_velocity = 0.0 +10:1/0/navigation_layer_0/polygon = SubResource("NavigationPolygon_fhapu") [resource] tile_size = Vector2i(32, 32) @@ -493,4 +504,7 @@ physics_layer_0/collision_mask = 0 terrain_set_0/mode = 0 terrain_set_0/terrain_0/name = "Walls" terrain_set_0/terrain_0/color = Color(1, 0.301961, 0.329412, 1) +terrain_set_0/terrain_1/name = "Ground" +terrain_set_0/terrain_1/color = Color(0.5, 0.4375, 0.25, 1) +navigation_layer_0/layers = 1 sources/1 = SubResource("TileSetAtlasSource_mgef5") diff --git a/Assets/UI_Theme.tres b/Assets/UI_Theme.tres new file mode 100644 index 0000000..b6ea9a3 --- /dev/null +++ b/Assets/UI_Theme.tres @@ -0,0 +1,109 @@ +[gd_resource type="Theme" load_steps=13 format=3 uid="uid://o3vg845para"] + +[ext_resource type="FontFile" uid="uid://dqdeftjkwxe64" path="res://Assets/Fonts/Dogica/dogicapixel.ttf" id="1_43hgj"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rmi2t"] +bg_color = Color(0.427451, 0.423529, 0.8, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0, 0, 0, 1) +expand_margin_left = 7.0 +expand_margin_right = 7.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_47cud"] +bg_color = Color(0.427451, 0.423529, 0.8, 1) +border_width_left = 4 +border_width_bottom = 4 +border_color = Color(0.317647, 0.301961, 0.658824, 1) +corner_radius_top_left = 2 +corner_radius_bottom_right = 2 +expand_margin_left = 7.0 +expand_margin_right = 7.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2i81h"] +bg_color = Color(0.392157, 0.380392, 0.760784, 1) +border_width_left = 4 +border_width_bottom = 4 +border_color = Color(0.262745, 0.243137, 0.556863, 1) +corner_radius_top_left = 2 +corner_radius_bottom_right = 2 +expand_margin_left = 10.0 +expand_margin_right = 10.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vel2s"] +bg_color = Color(0.392157, 0.380392, 0.760784, 1) +expand_margin_left = 7.0 +expand_margin_right = 7.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7k6ml"] +bg_color = Color(0.392157, 0.380392, 0.760784, 1) +expand_margin_right = 10.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_11k4d"] +bg_color = Color(0.392157, 0.380392, 0.760784, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nyi0q"] +bg_color = Color(0.392157, 0.380392, 0.760784, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qky0m"] +bg_color = Color(0.313726, 0.231373, 0.4, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.313726, 0.231373, 0.4, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lleuj"] +bg_color = Color(0.941176, 0.964706, 0.909804, 1) +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +border_color = Color(0.65098, 0.741176, 0.509804, 1) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rcukk"] +bg_color = Color(0.941176, 0.964706, 0.909804, 1) +border_width_left = 3 +border_width_top = 3 +border_width_right = 3 +border_color = Color(0.658824, 0.74902, 0.517647, 1) +expand_margin_left = 5.0 +expand_margin_top = 5.0 +expand_margin_right = 5.0 +expand_margin_bottom = 5.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_44exv"] +bg_color = Color(0.894118, 0.94902, 0.835294, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_color = Color(0.635294, 0.756863, 0.482353, 1) +expand_margin_left = 4.0 +expand_margin_top = 4.0 +expand_margin_right = 4.0 + +[resource] +default_font = ExtResource("1_43hgj") +Button/styles/focus = SubResource("StyleBoxFlat_rmi2t") +Button/styles/hover = SubResource("StyleBoxFlat_47cud") +Button/styles/normal = SubResource("StyleBoxFlat_2i81h") +Button/styles/pressed = SubResource("StyleBoxFlat_vel2s") +CheckButton/styles/hover_pressed = SubResource("StyleBoxFlat_7k6ml") +HSlider/styles/grabber_area = SubResource("StyleBoxFlat_11k4d") +HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_nyi0q") +HSlider/styles/slider = SubResource("StyleBoxFlat_qky0m") +TabContainer/colors/font_selected_color = Color(0.0980392, 0.0980392, 0.0980392, 1) +TabContainer/colors/font_unselected_color = Color(0.435294, 0.435294, 0.435294, 1) +TabContainer/styles/panel = SubResource("StyleBoxFlat_lleuj") +TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_rcukk") +TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_44exv") diff --git a/Prefabs/Settings Menu.tscn b/Prefabs/Settings Menu.tscn new file mode 100644 index 0000000..2a5ae6f --- /dev/null +++ b/Prefabs/Settings Menu.tscn @@ -0,0 +1,298 @@ +[gd_scene load_steps=4 format=3 uid="uid://cbfcolm6mjolp"] + +[ext_resource type="Script" path="res://Scripts/UI/SettingsMenu.gd" id="1_2rgd2"] +[ext_resource type="Script" path="res://Scripts/UI/Remaping/RemapController.gd" id="2_2f8ap"] +[ext_resource type="Script" path="res://Scripts/UI/Remaping/RemapButton.gd" id="2_4asaa"] + +[node name="SettingsMenu" type="Node" node_paths=PackedStringArray("display_options_button", "vsync_toggle", "resolutions_options_button", "master_volume_slider", "music_volume_slider", "sfx_volume_slider")] +script = ExtResource("1_2rgd2") +display_options_button = NodePath("CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/DisplayModeOptions") +vsync_toggle = NodePath("CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/VsyncButton") +resolutions_options_button = NodePath("CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/ResolutionsOptions") +master_volume_slider = NodePath("CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider") +music_volume_slider = NodePath("CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider") +sfx_volume_slider = NodePath("CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider") + +[node name="ColorRect" type="ColorRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.576471, 0.831373, 0.709804, 1) + +[node name="Label" type="Label" parent="."] +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 95.0 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 35 +text = "SETTINGS MENU" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CenterContainer" type="CenterContainer" parent="."] +custom_minimum_size = Vector2(0, 475) +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="SettingsTabs" type="TabContainer" parent="CenterContainer"] +custom_minimum_size = Vector2(1050, 475) +layout_mode = 2 +theme_override_font_sizes/font_size = 29 + +[node name="Video" type="VBoxContainer" parent="CenterContainer/SettingsTabs"] +layout_mode = 2 +focus_neighbor_left = NodePath("../Controls") + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/SettingsTabs/Video"] +custom_minimum_size = Vector2(0, 425) +layout_mode = 2 +theme_override_constants/margin_left = 25 +theme_override_constants/margin_top = 25 +theme_override_constants/margin_right = 25 +theme_override_constants/margin_bottom = 25 + +[node name="VideoSettings" type="GridContainer" parent="CenterContainer/SettingsTabs/Video/MarginContainer"] +layout_mode = 2 +columns = 2 + +[node name="DisplayModeLabel" type="Label" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Display Mode" +vertical_alignment = 1 + +[node name="DisplayModeOptions" type="OptionButton" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +item_count = 5 +selected = 0 +popup/item_0/text = "Full-Screen" +popup/item_0/id = 0 +popup/item_1/text = "Windowed" +popup/item_1/id = 1 +popup/item_2/text = "Maximized" +popup/item_2/id = 2 +popup/item_3/text = "Minimized" +popup/item_3/id = 3 +popup/item_4/text = "Exclusive Full-Screen" +popup/item_4/id = 4 + +[node name="VSync Label" type="Label" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "VSync +" +vertical_alignment = 1 + +[node name="VsyncButton" type="CheckButton" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +text = "Vsync" + +[node name="ResolutionsLabel" type="Label" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Resolutions +" +vertical_alignment = 1 + +[node name="ResolutionsOptions" type="OptionButton" parent="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings"] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +fit_to_longest_item = false + +[node name="Audio" type="VBoxContainer" parent="CenterContainer/SettingsTabs"] +visible = false +layout_mode = 2 + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/SettingsTabs/Audio"] +custom_minimum_size = Vector2(0, 425) +layout_mode = 2 +theme_override_constants/margin_left = 25 +theme_override_constants/margin_top = 25 +theme_override_constants/margin_right = 25 +theme_override_constants/margin_bottom = 25 + +[node name="AudioSettings" type="GridContainer" parent="CenterContainer/SettingsTabs/Audio/MarginContainer"] +layout_mode = 2 +columns = 2 + +[node name="MasterVolLabel" type="Label" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Master Volume +" +vertical_alignment = 1 + +[node name="MasterVolumeSlider" type="HSlider" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +min_value = -72.0 +max_value = 0.0 + +[node name="MusicVolLabel" type="Label" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Music Volume +" +vertical_alignment = 1 + +[node name="MusicVolSlider" type="HSlider" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +min_value = -72.0 +max_value = 0.0 + +[node name="SFXVolLabel" type="Label" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "SFX Volume" +vertical_alignment = 1 + +[node name="SFXVolSlider" type="HSlider" parent="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +min_value = -72.0 +max_value = 0.0 + +[node name="Controls" type="VBoxContainer" parent="CenterContainer/SettingsTabs"] +visible = false +layout_mode = 2 + +[node name="Remap Controller" type="Control" parent="CenterContainer/SettingsTabs/Controls"] +layout_mode = 2 +script = ExtResource("2_2f8ap") + +[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/SettingsTabs/Controls"] +custom_minimum_size = Vector2(0, 425) +layout_mode = 2 +theme_override_constants/margin_left = 25 +theme_override_constants/margin_top = 25 +theme_override_constants/margin_right = 25 +theme_override_constants/margin_bottom = 25 + +[node name="ControlSettings" type="GridContainer" parent="CenterContainer/SettingsTabs/Controls/MarginContainer"] +layout_mode = 2 +columns = 2 + +[node name="MoveUpLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Move Up" +vertical_alignment = 1 + +[node name="MoveUpRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +toggle_mode = true +script = ExtResource("2_4asaa") +input_action_name = "move_up" +remap_controller = NodePath("../../../Remap Controller") + +[node name="MoveLeftLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Move Left" +vertical_alignment = 1 + +[node name="MoveLeftRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +toggle_mode = true +script = ExtResource("2_4asaa") +input_action_name = "move_left" +remap_controller = NodePath("../../../Remap Controller") + +[node name="MoveDownLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Move Down" +vertical_alignment = 1 + +[node name="MoveDownRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +toggle_mode = true +script = ExtResource("2_4asaa") +input_action_name = "move_down" +remap_controller = NodePath("../../../Remap Controller") + +[node name="MoveRightLabel" type="Label" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"] +custom_minimum_size = Vector2(400, 40) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 20 +text = "Move RIght" +vertical_alignment = 1 + +[node name="MoveRightRemapButton" type="Button" parent="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" node_paths=PackedStringArray("remap_controller")] +custom_minimum_size = Vector2(500, 40) +layout_mode = 2 +size_flags_horizontal = 10 +toggle_mode = true +script = ExtResource("2_4asaa") +input_action_name = "move_right" +remap_controller = NodePath("../../../Remap Controller") + +[node name="Back Button" type="Button" parent="."] +custom_minimum_size = Vector2(500, 40) +anchors_preset = 7 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -250.0 +offset_top = -80.0 +offset_right = 250.0 +offset_bottom = -40.0 +grow_horizontal = 2 +grow_vertical = 0 +theme_override_font_sizes/font_size = 23 +text = "Back" + +[connection signal="item_selected" from="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/DisplayModeOptions" to="." method="_on_display_mode_options_item_selected"] +[connection signal="toggled" from="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/VsyncButton" to="." method="_on_vsync_button_toggled"] +[connection signal="item_selected" from="CenterContainer/SettingsTabs/Video/MarginContainer/VideoSettings/ResolutionsOptions" to="." method="_on_resolutions_options_item_selected"] +[connection signal="drag_ended" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider" to="." method="_on_master_volume_slider_drag_ended"] +[connection signal="value_changed" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider" to="." method="_on_master_volume_slider_value_changed"] +[connection signal="drag_ended" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider" to="." method="_on_music_vol_slider_drag_ended"] +[connection signal="value_changed" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider" to="." method="_on_music_vol_slider_value_changed"] +[connection signal="drag_ended" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider" to="." method="_on_sfx_vol_slider_drag_ended"] +[connection signal="value_changed" from="CenterContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider" to="." method="_on_sfx_vol_slider_value_changed"] +[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" method="_on_pressed"] +[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveLeftRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveLeftRemapButton" method="_on_pressed"] +[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveDownRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveDownRemapButton" method="_on_pressed"] +[connection signal="pressed" from="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveRightRemapButton" to="CenterContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveRightRemapButton" method="_on_pressed"] +[connection signal="pressed" from="Back Button" to="." method="_on_back_pressed"] diff --git a/Prefabs/bunny.tscn b/Prefabs/bunny.tscn index 38a08f2..cfdce38 100644 --- a/Prefabs/bunny.tscn +++ b/Prefabs/bunny.tscn @@ -1,20 +1,37 @@ -[gd_scene load_steps=4 format=3 uid="uid://cpl4tllohhyel"] +[gd_scene load_steps=5 format=3 uid="uid://cpl4tllohhyel"] [ext_resource type="Script" path="res://Scripts/EntitySystem/Bunny.gd" id="1_1kj2b"] [ext_resource type="Texture2D" uid="uid://df2fluk0dlqar" path="res://Assets/Sprites/Bunny/bad_bunny_spritesheet.png" id="2_v8p70"] [sub_resource type="CircleShape2D" id="CircleShape2D_sedmr"] -[node name="Bunny" type="CharacterBody2D"] -scale = Vector2(0.5, 0.5) +[sub_resource type="CircleShape2D" id="CircleShape2D_itvjj"] +radius = 14.0 + +[node name="Bunny" type="CharacterBody2D" node_paths=PackedStringArray("agent")] collision_layer = 4 -collision_mask = 11 +collision_mask = 15 script = ExtResource("1_1kj2b") +agent = NodePath("NavigationAgent") [node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(0.5, 0) texture = ExtResource("2_v8p70") hframes = 5 vframes = 4 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_sedmr") + +[node name="NavigationAgent" type="NavigationAgent2D" parent="."] +path_metadata_flags = 0 + +[node name="Area2D" type="Area2D" parent="."] +collision_layer = 64 +collision_mask = 4 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +shape = SubResource("CircleShape2D_itvjj") + +[connection signal="body_entered" from="Area2D" to="." method="_on_collision"] +[connection signal="body_exited" from="Area2D" to="." method="_of_collision"] diff --git a/Prefabs/projectile.tscn b/Prefabs/projectile.tscn index ad78eed..d8d5c72 100644 --- a/Prefabs/projectile.tscn +++ b/Prefabs/projectile.tscn @@ -1,14 +1,13 @@ [gd_scene load_steps=4 format=3 uid="uid://csxh42o8twxwn"] [ext_resource type="Script" path="res://Scripts/WeaponSystem/Projectile.gd" id="1_os652"] -[ext_resource type="Texture2D" uid="uid://c5jj6s5orw6mi" path="res://Assets/Sprites/crucefix.png" id="2_ibs3t"] +[ext_resource type="Texture2D" uid="uid://dlxjdb0tchrps" path="res://Assets/Sprites/crucefix.png" id="2_ibs3t"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ki5cp"] radius = 8.57143 height = 22.8571 [node name="Projectile" type="Area2D"] -scale = Vector2(0.5, 0.5) collision_layer = 8 collision_mask = 5 script = ExtResource("1_os652") diff --git a/Scenes/Game.tscn b/Scenes/Game.tscn new file mode 100644 index 0000000..073ba3a --- /dev/null +++ b/Scenes/Game.tscn @@ -0,0 +1,173 @@ +[gd_scene load_steps=17 format=3 uid="uid://c4btepmue6d7p"] + +[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_38041"] +[ext_resource type="Script" path="res://Scripts/GameManager.gd" id="1_t708k"] +[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_ope8r"] +[ext_resource type="Script" path="res://Scripts/EntitySystem/BunnyGenerator.gd" id="3_o045y"] +[ext_resource type="PackedScene" uid="uid://cpl4tllohhyel" path="res://Prefabs/bunny.tscn" id="4_hpafd"] +[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="5_d2cbj"] +[ext_resource type="Texture2D" uid="uid://ojlfqxj5bilo" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_p526i"] +[ext_resource type="Script" path="res://Scripts/WeaponSystem/WeaponController.gd" id="7_mtrts"] +[ext_resource type="PackedScene" uid="uid://csxh42o8twxwn" path="res://Prefabs/projectile.tscn" id="8_fp1vx"] + +[sub_resource type="Animation" id="Animation_kdxam"] +resource_name = "Idle" +length = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="Animation" id="Animation_dwpep"] +resource_name = "MoveDown" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = false +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3, 4, 5, 6, 7] +} + +[sub_resource type="Animation" id="Animation_2jvl5"] +resource_name = "MoveLeft" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [24, 25, 26, 27, 28, 29, 30, 31] +} + +[sub_resource type="Animation" id="Animation_4ig1u"] +resource_name = "MoveRight" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [8, 9, 10, 11, 12, 13, 14, 15] +} + +[sub_resource type="Animation" id="Animation_pswkh"] +resource_name = "MoveUp" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), +"update": 1, +"values": [16, 17, 18, 19, 20, 21, 22, 23] +} + +[sub_resource type="Animation" id="Animation_o3hln"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_bi1h3"] +_data = { +"Idle": SubResource("Animation_kdxam"), +"MoveDown": SubResource("Animation_dwpep"), +"MoveLeft": SubResource("Animation_2jvl5"), +"MoveRight": SubResource("Animation_4ig1u"), +"MoveUp": SubResource("Animation_pswkh"), +"RESET": SubResource("Animation_o3hln") +} + +[node name="GameManager" type="Node2D" node_paths=PackedStringArray("map_generator", "bunny_generator")] +script = ExtResource("1_t708k") +map_generator = NodePath("Map Generator") +bunny_generator = NodePath("Bunny Generator") + +[node name="Map Generator" type="TileMap" parent="."] +scale = Vector2(1.5, 1.5) +tile_set = ExtResource("1_38041") +cell_quadrant_size = 32 +format = 2 +script = ExtResource("2_ope8r") +start_area_corner_size = 3 + +[node name="Bunny Generator" type="Node2D" parent="." node_paths=PackedStringArray("player")] +script = ExtResource("3_o045y") +bunny_prefab = ExtResource("4_hpafd") +player = NodePath("../Player") +player_save_distance = 320.0 + +[node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")] +position = Vector2(1440, 810) +collision_layer = 0 +script = ExtResource("5_d2cbj") +animation_player = NodePath("Player Animator") + +[node name="Player Sprite" type="Sprite2D" parent="Player"] +position = Vector2(0, -20) +texture = ExtResource("6_p526i") +hframes = 8 +vframes = 4 + +[node name="Player Collider" type="CollisionPolygon2D" parent="Player"] +position = Vector2(2, -24) +polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24) + +[node name="Player Camera" type="Camera2D" parent="Player"] +position = Vector2(0, -25) +zoom = Vector2(2, 2) +position_smoothing_enabled = true +drag_horizontal_enabled = true +drag_vertical_enabled = true +editor_draw_drag_margin = true + +[node name="Player Animator" type="AnimationPlayer" parent="Player"] +libraries = { +"": SubResource("AnimationLibrary_bi1h3") +} + +[node name="WeaponController" type="Node2D" parent="Player"] +position = Vector2(0, -16) +script = ExtResource("7_mtrts") +projectile_prefab = ExtResource("8_fp1vx") diff --git a/Scenes/Main Menu.tscn b/Scenes/Main Menu.tscn new file mode 100644 index 0000000..be1520a --- /dev/null +++ b/Scenes/Main Menu.tscn @@ -0,0 +1,294 @@ +[gd_scene load_steps=14 format=3 uid="uid://4fysk8vaw3e1"] + +[ext_resource type="Script" path="res://Scripts/UI/MainMenuManager.gd" id="1_qepq0"] +[ext_resource type="Texture2D" uid="uid://tjxkew3m4v8m" path="res://Assets/Sprites/Easter Egg/Shadow.png" id="2_8o6th"] +[ext_resource type="PackedScene" uid="uid://c4btepmue6d7p" path="res://Scenes/Game.tscn" id="2_28004"] +[ext_resource type="Texture2D" uid="uid://daat37cyg0go5" path="res://Assets/Sprites/Easter Egg/Egg 3.png" id="3_1e3fe"] +[ext_resource type="PackedScene" uid="uid://cbfcolm6mjolp" path="res://Prefabs/Settings Menu.tscn" id="3_r3r61"] +[ext_resource type="Texture2D" uid="uid://dhvvw4yckl8x7" path="res://Assets/Sprites/Props/Cake.png" id="5_7ull8"] +[ext_resource type="Texture2D" uid="uid://c3yg6u8yncau3" path="res://Assets/Sprites/Easter Egg/Egg 2.png" id="6_45o7d"] +[ext_resource type="Texture2D" uid="uid://cp84ssaqs3pmp" path="res://Assets/Sprites/UI Elements/Jesus.png" id="6_wnx18"] +[ext_resource type="Texture2D" uid="uid://dkotcqflp3e32" path="res://Assets/Sprites/Easter Egg/Egg 1.png" id="7_285vd"] +[ext_resource type="Theme" uid="uid://o3vg845para" path="res://Assets/UI_Theme.tres" id="8_lr748"] +[ext_resource type="Script" path="res://Scripts/UI/MenuButton.gd" id="9_2cu5l"] +[ext_resource type="Texture2D" uid="uid://6snf183fgfo5" path="res://Assets/Sprites/UI Elements/Cross.png" id="12_dhfc0"] +[ext_resource type="AudioStream" uid="uid://c6nf5s6xy2uii" path="res://Assets/Temp Music/omw-to-beat-the-big-bad.wav" id="13_3j724"] + +[node name="MainMenu" type="Node" node_paths=PackedStringArray("default_focus")] +script = ExtResource("1_qepq0") +game_scene = ExtResource("2_28004") +settings_scene = ExtResource("3_r3r61") +default_focus = NodePath("MainVBox/ButtonsVbox/PlayButton") + +[node name="ColorRect" type="ColorRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.576471, 0.831373, 0.709804, 1) + +[node name="Decorations" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Left Decor" type="CenterContainer" parent="Decorations"] +custom_minimum_size = Vector2(576, 0) +layout_mode = 1 +anchors_preset = 9 +anchor_bottom = 1.0 +grow_vertical = 2 + +[node name="Shadow" type="Sprite2D" parent="Decorations/Left Decor"] +position = Vector2(226.563, 338.875) +scale = Vector2(22.7773, 15.6953) +texture = ExtResource("2_8o6th") + +[node name="Egg3" type="Sprite2D" parent="Decorations/Left Decor"] +position = Vector2(134, 477) +scale = Vector2(4.6875, 4.625) +texture = ExtResource("3_1e3fe") + +[node name="Jesus" type="Sprite2D" parent="Decorations/Left Decor"] +position = Vector2(220, 335) +scale = Vector2(7.0431, 6.97321) +texture = ExtResource("6_wnx18") + +[node name="Cake" type="Sprite2D" parent="Decorations/Left Decor"] +position = Vector2(310, 491) +scale = Vector2(2.59375, 2.32031) +texture = ExtResource("5_7ull8") + +[node name="Right Decor" type="CenterContainer" parent="Decorations"] +custom_minimum_size = Vector2(576, 0) +layout_mode = 1 +anchors_preset = 11 +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 0 +grow_vertical = 2 + +[node name="Shadow2" type="Sprite2D" parent="Decorations/Right Decor"] +position = Vector2(351, 403) +scale = Vector2(19.0938, 11.8125) +texture = ExtResource("2_8o6th") + +[node name="Egg2" type="Sprite2D" parent="Decorations/Right Decor"] +position = Vector2(294, 487) +rotation = -1.5708 +scale = Vector2(4.89203, 5.21732) +texture = ExtResource("6_45o7d") + +[node name="Egg1" type="Sprite2D" parent="Decorations/Right Decor"] +position = Vector2(420.75, 471.25) +scale = Vector2(4.89062, 4.95313) +texture = ExtResource("7_285vd") + +[node name="GoodBunny" type="Sprite2D" parent="Decorations/Right Decor"] +position = Vector2(331, 458.5) +scale = Vector2(7.14286, 7.02941) +hframes = 6 + +[node name="MainVBox" type="VBoxContainer" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("8_lr748") + +[node name="CenterContainer" type="CenterContainer" parent="MainVBox"] +custom_minimum_size = Vector2(0, 150) +layout_mode = 2 + +[node name="Label" type="Label" parent="MainVBox/CenterContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 50 +text = "HOPPY EASTER GAME THING" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="ButtonsVbox" type="VBoxContainer" parent="MainVBox"] +custom_minimum_size = Vector2(0, 495) +layout_mode = 2 +theme_override_constants/separation = 10 +alignment = 1 + +[node name="PlayButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")] +custom_minimum_size = Vector2(0, 40) +layout_mode = 2 +focus_neighbor_left = NodePath("../QuitButton") +focus_neighbor_top = NodePath("../QuitButton") +focus_neighbor_right = NodePath("../SettingsButton") +focus_neighbor_bottom = NodePath("../SettingsButton") +focus_next = NodePath("../SettingsButton") +focus_previous = NodePath("../QuitButton") +mouse_default_cursor_shape = 2 +script = ExtResource("9_2cu5l") +text = "Play" +pointer_margin_from_center = 80 +leftPointer = NodePath("LeftPointer") +rightPointer = NodePath("RightPointer") +textBox = NodePath("RichTextLabel") + +[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/PlayButton"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_font_sizes/normal_font_size = 30 +bbcode_enabled = true +text = "[center]Play[/center]" + +[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/PlayButton"] +visible = false +position = Vector2(502, 12) +rotation = 1.5708 +texture = ExtResource("12_dhfc0") + +[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/PlayButton"] +visible = false +position = Vector2(650, 12) +rotation = -1.5708 +texture = ExtResource("12_dhfc0") + +[node name="SettingsButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")] +custom_minimum_size = Vector2(0, 40) +layout_mode = 2 +focus_neighbor_left = NodePath("../PlayButton") +focus_neighbor_top = NodePath("../PlayButton") +focus_neighbor_right = NodePath("../AboutButton") +focus_neighbor_bottom = NodePath("../AboutButton") +focus_next = NodePath("../AboutButton") +focus_previous = NodePath("../PlayButton") +mouse_default_cursor_shape = 2 +script = ExtResource("9_2cu5l") +text = "Settings" +pointer_margin_from_center = 130 +leftPointer = NodePath("LeftPointer") +rightPointer = NodePath("RightPointer") +textBox = NodePath("RichTextLabel") + +[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/SettingsButton"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_font_sizes/normal_font_size = 30 +bbcode_enabled = true +text = "[center]Settings[/center]" + +[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/SettingsButton"] +visible = false +position = Vector2(502, 12) +rotation = 1.5708 +texture = ExtResource("12_dhfc0") + +[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/SettingsButton"] +visible = false +position = Vector2(650, 12) +rotation = -1.5708 +texture = ExtResource("12_dhfc0") + +[node name="AboutButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")] +custom_minimum_size = Vector2(0, 40) +layout_mode = 2 +focus_neighbor_left = NodePath("../SettingsButton") +focus_neighbor_top = NodePath("../SettingsButton") +focus_neighbor_right = NodePath("../QuitButton") +focus_neighbor_bottom = NodePath("../QuitButton") +focus_next = NodePath("../QuitButton") +focus_previous = NodePath("../SettingsButton") +mouse_default_cursor_shape = 2 +script = ExtResource("9_2cu5l") +text = "About" +pointer_margin_from_center = 95 +leftPointer = NodePath("LeftPointer") +rightPointer = NodePath("RightPointer") +textBox = NodePath("RichTextLabel") + +[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/AboutButton"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_font_sizes/normal_font_size = 30 +bbcode_enabled = true +text = "[center]About[/center]" + +[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/AboutButton"] +visible = false +position = Vector2(502, 12) +rotation = 1.5708 +texture = ExtResource("12_dhfc0") + +[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/AboutButton"] +visible = false +position = Vector2(650, 12) +rotation = -1.5708 +texture = ExtResource("12_dhfc0") + +[node name="QuitButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")] +custom_minimum_size = Vector2(0, 40) +layout_mode = 2 +focus_neighbor_left = NodePath("../AboutButton") +focus_neighbor_top = NodePath("../AboutButton") +focus_neighbor_right = NodePath("../PlayButton") +focus_neighbor_bottom = NodePath("../PlayButton") +focus_next = NodePath("../PlayButton") +focus_previous = NodePath("../AboutButton") +mouse_default_cursor_shape = 2 +script = ExtResource("9_2cu5l") +text = "Quit" +pointer_margin_from_center = 80 +leftPointer = NodePath("LeftPointer") +rightPointer = NodePath("RightPointer") +textBox = NodePath("RichTextLabel") + +[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/QuitButton"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_font_sizes/normal_font_size = 30 +bbcode_enabled = true +text = "[center]Quit[/center]" + +[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/QuitButton"] +visible = false +position = Vector2(502, 12) +rotation = 1.5708 +texture = ExtResource("12_dhfc0") + +[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/QuitButton"] +visible = false +position = Vector2(650, 12) +rotation = -1.5708 +texture = ExtResource("12_dhfc0") + +[node name="MusicPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource("13_3j724") +autoplay = true +bus = &"Music" + +[connection signal="pressed" from="MainVBox/ButtonsVbox/PlayButton" to="." method="_on_play_button_pressed"] +[connection signal="pressed" from="MainVBox/ButtonsVbox/SettingsButton" to="." method="_on_settings_button_pressed"] +[connection signal="pressed" from="MainVBox/ButtonsVbox/AboutButton" to="." method="_on_about_button_pressed"] +[connection signal="pressed" from="MainVBox/ButtonsVbox/QuitButton" to="." method="_on_quit_button_pressed"] diff --git a/Scenes/Test.tscn b/Scenes/Test.tscn index 3895f10..55d7259 100644 --- a/Scenes/Test.tscn +++ b/Scenes/Test.tscn @@ -1,11 +1,11 @@ -[gd_scene load_steps=16 format=3 uid="uid://cd45icxf4gxpp"] +[gd_scene load_steps=16 format=3 uid="uid://cugui0mjc6cfe"] [ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_s4utw"] [ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_yhpwh"] [ext_resource type="Script" path="res://Scripts/EntitySystem/BunnyGenerator.gd" id="3_dvklj"] [ext_resource type="PackedScene" uid="uid://cpl4tllohhyel" path="res://Prefabs/bunny.tscn" id="4_0fyd5"] [ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="5_uv7bh"] -[ext_resource type="Texture2D" uid="uid://db70wcy5ua3jd" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_es2l8"] +[ext_resource type="Texture2D" uid="uid://ojlfqxj5bilo" path="res://Assets/Sprites/Jesus/jesus_spritesheet.png" id="6_es2l8"] [ext_resource type="Script" path="res://Scripts/WeaponSystem/WeaponController.gd" id="7_8kdie"] [ext_resource type="PackedScene" uid="uid://csxh42o8twxwn" path="res://Prefabs/projectile.tscn" id="8_wx0kk"] @@ -121,18 +121,20 @@ _data = { [node name="Player Movement" type="Node2D"] [node name="Map Generator" type="TileMap" parent="."] +scale = Vector2(1.5, 1.5) tile_set = ExtResource("1_s4utw") cell_quadrant_size = 32 format = 2 script = ExtResource("2_yhpwh") start_area_corner_size = 3 -[node name="Bunny Generator" type="Node" parent="."] +[node name="Bunny Generator" type="Node" parent="." node_paths=PackedStringArray("player")] script = ExtResource("3_dvklj") bunny_prefab = ExtResource("4_0fyd5") +player = NodePath("../Player") [node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")] -position = Vector2(960, 512) +position = Vector2(1440, 810) collision_layer = 0 script = ExtResource("5_uv7bh") speed = 60 @@ -145,10 +147,12 @@ hframes = 8 vframes = 4 [node name="Player Collider" type="CollisionPolygon2D" parent="Player"] +position = Vector2(2, -24) polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24) [node name="Player Camera" type="Camera2D" parent="Player"] -zoom = Vector2(5, 5) +position = Vector2(-1, -25) +zoom = Vector2(3, 3) position_smoothing_enabled = true drag_horizontal_enabled = true drag_vertical_enabled = true diff --git a/Scripts/EntitySystem/Bunny.gd b/Scripts/EntitySystem/Bunny.gd index f5a3040..4fbc017 100644 --- a/Scripts/EntitySystem/Bunny.gd +++ b/Scripts/EntitySystem/Bunny.gd @@ -1,19 +1,56 @@ extends CharacterBody2D class_name Bunny -@export var health : int +@export var min_distance_to_player := 80.0 +@export var max_distance_to_player := 800.0 +@export var agent : NavigationAgent2D +@export var speed := 200.0 +var health : int var team : int +var player : Node2D var on_death_callbacks : Array -func damage(damage : int): - health -= damage +var dir : Vector2 +var spread_time : float +var current_time : float +var collisions : int + +func _ready(): + seed(int(str(self))) + spread_time = randf() * 3 + current_time = spread_time + +func _physics_process(delta): + current_time -= delta + if player != null and self.global_position.distance_to(player.global_position) < max_distance_to_player and collisions <= 3: + if current_time <= 0: + current_time = spread_time + agent.target_position = player.global_position + if min_distance_to_player and agent.is_target_reachable(): + var next_location = agent.get_next_path_position() + Vector2(randf() - 0.5 * 10, randf() - 0.5 * 10) + dir = self.global_position.direction_to(next_location).normalized() + if self.global_position.distance_to(player.global_position) > min_distance_to_player: + self.velocity = dir * delta * 60 * speed + move_and_slide() + pass + +func _on_collision(body): + if body != self: collisions += 1 + pass + +func _of_collision(body): + if body != self: collisions-= 1 + pass + +func damage(damage_amount : int): + health -= damage_amount if(health <= 0): on_death() pass -func heal(health : int): - self.health += health +func heal(health_amount : int): + self.health += health_amount pass func on_death(): @@ -24,3 +61,9 @@ func on_death(): func sub_on_death(callback : Callable): on_death_callbacks.push_front(callback) pass + + + + + + diff --git a/Scripts/EntitySystem/BunnyGenerator.gd b/Scripts/EntitySystem/BunnyGenerator.gd index 71bcc9f..5e34dc9 100644 --- a/Scripts/EntitySystem/BunnyGenerator.gd +++ b/Scripts/EntitySystem/BunnyGenerator.gd @@ -1,17 +1,32 @@ extends Node +class_name BunnyGenerator @export var bunny_prefab : Resource +@export var player : CharacterBody2D +@export var player_save_distance : float = 32.0 @onready var BunnyPrefab : PackedScene = load(bunny_prefab.resource_path) -func spawn_bunny(x : float, y : float, team : int, health : int) -> Bunny: +func spawn_bunny(pos : Vector2, team : int, health : int) -> Bunny: var bunny = BunnyPrefab.instantiate() self.add_child(bunny) - bunny.global_position = Vector2(x,y) + bunny.global_position = pos bunny.health = health bunny.team = team + bunny.player = player return bunny + +func spawn_wave(free_tiles : Array, team: int, amount : int, health : int) -> Array: + var bunnys = [] -func _ready(): - var bunny = spawn_bunny(960, 512, TEAM.EVIL, 3) - bunny.sub_on_death(func(bunny): bunny.queue_free()) + # Make Sure that no possitions to near to the player are insdie of the list + free_tiles = free_tiles.filter(func(val): return val.distance_to(player.global_position) > player_save_distance) + # Make sure amount isnt bigger then available positions + if free_tiles.size() < amount: amount = free_tiles.size() + # Spawn at random positions of the list + for i in amount: + var pos = free_tiles.pick_random() + free_tiles.erase(pos) + var bunny = spawn_bunny(pos, team, health) + bunnys.push_back(bunny) + return bunnys diff --git a/Scripts/GameManager.gd b/Scripts/GameManager.gd new file mode 100644 index 0000000..cbdd2ff --- /dev/null +++ b/Scripts/GameManager.gd @@ -0,0 +1,22 @@ +extends Node2D + +@export var map_generator : Node +@export var bunny_generator : Node + +var bunnys = [] +var gen_data : Dictionary +var wave := 0 + +func _ready(): + gen_data = map_generator.generate() as Dictionary + print("time for generation: " + str(gen_data.time)) + pass + +func _process(_delta): + if(bunnys.size() == 0): + wave += 1 + bunnys = bunny_generator.spawn_wave(gen_data.free_tiles.duplicate(), TEAM.EVIL, wave * 500, 3) + for bunny in bunnys: + bunny.sub_on_death(func(bunny): bunnys.erase(bunny)) + bunny.sub_on_death(func(bunny): bunny.queue_free()) + pass diff --git a/Scripts/MapGenerator.gd b/Scripts/MapGenerator.gd index d93c357..2c809ea 100644 --- a/Scripts/MapGenerator.gd +++ b/Scripts/MapGenerator.gd @@ -15,14 +15,7 @@ extends TileMap var tile_array : Array -func _ready(): - var time = generate() - print("time for generation: " + str(time)) - - pass - - -func generate() -> float: +func generate() -> Dictionary: var start_time = Time.get_unix_time_from_system() randomize() @@ -39,7 +32,15 @@ func generate() -> float: set_borders_solid() tile_array_to_terrain() - return Time.get_unix_time_from_system() - start_time + + return {"time": Time.get_unix_time_from_system() - start_time, "free_tiles": get_free_tiles()} + +func get_free_tiles() -> Array: + var free_tiles = [] + for x in width: + for y in height: + if get_tile_non_solid(x, y): free_tiles.push_back(Vector2(x, y) * self.cell_quadrant_size * self.scale + (Vector2(self.cell_quadrant_size, self.cell_quadrant_size) / 2)) + return free_tiles func setup_tile_data_array(): tile_array.clear() @@ -68,7 +69,8 @@ func set_borders_solid(): pass func prepare_player_start_area(): - var center = Vector2i(width/2, height/2) + @warning_ignore("integer_division") + var center = Vector2i(width / 2, height / 2) for x in range(center.x - start_area_size, center.x + start_area_size): # Getting a P factor for the corner "radius" Decission @@ -265,5 +267,5 @@ func set_terrain_tile_solid(x : int, y : int): pass func set_terrain_tile_non_solid(x : int, y : int): - self.set_cell(0, Vector2i(x,y), -1) + self.set_cells_terrain_connect(0, [Vector2i(x,y)], 0, 1, false) pass diff --git a/Scripts/PlayerController.gd b/Scripts/PlayerController.gd index 584f977..4a46923 100644 --- a/Scripts/PlayerController.gd +++ b/Scripts/PlayerController.gd @@ -1,6 +1,6 @@ extends CharacterBody2D -@export var speed = 20 +@export var speed = 200 @export_range(0, 1) var damping_factor = 0.6 @export var animation_player : AnimationPlayer diff --git a/Scripts/SaveSystem/GameDataSaver.gd b/Scripts/SaveSystem/GameDataSaver.gd new file mode 100644 index 0000000..4013988 --- /dev/null +++ b/Scripts/SaveSystem/GameDataSaver.gd @@ -0,0 +1,31 @@ +extends Node + +const SAVE_FILE : String = "user://SAVEFILE.save" +var game_data = {} + +func _ready(): + load_data() + +func load_data(): + var file = FileAccess.open(SAVE_FILE, FileAccess.READ) + if file == null: + game_data = { + "display_mode": 0, + "vsync_on": false, + "current_resolution_index": 0, + "master_volume": 0, + "music_volume": 0, + "sfx_volume": 0, + } + save_data() + else: + game_data = file.get_var() + file.close() + pass + +func save_data(): + var file = FileAccess.open(SAVE_FILE, FileAccess.WRITE) + file.store_var(game_data) + file.flush() + file.close() + pass diff --git a/Scripts/SaveSystem/GlobalSettings.gd b/Scripts/SaveSystem/GlobalSettings.gd new file mode 100644 index 0000000..667d236 --- /dev/null +++ b/Scripts/SaveSystem/GlobalSettings.gd @@ -0,0 +1,61 @@ +extends Node + +@export var master_bus_index : int = 0 +@export var music_bus_index : int = 1 +@export var sfx_bus_index : int = 2 + +const resolutions_dictionary : Dictionary = { + "800x600" : Vector2(800, 600), + "1024x546" : Vector2(1024, 546), + "1152x648" : Vector2(1152, 648), + "1600x900" : Vector2(1600, 900), + "1366x768" : Vector2(1366, 768), + "1920x1080" : Vector2(1920, 1080), + "1920x1200" : Vector2(1920, 1200), + "2560x1440" : Vector2(2560, 1440), + "3840x2160" : Vector2(3840, 2160), +} + +# Video Global Settings +func set_display_mode(value: int) -> void: + Save.game_data.display_mode = value + Save.save_data() + if value == 0: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) + elif value == 1: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + elif value == 2: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MAXIMIZED) + elif value == 3: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED) + elif value == 4: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN) + else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) + pass + +func toggle_vsync(value : bool) -> void: + Save.game_data.vsync_on = value + Save.save_data() + if value: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED) + else: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) + pass + +func set_resolution(index): + Save.game_data.current_resolution_index = index + Save.save_data() + for i in resolutions_dictionary.keys().size(): + if i == index: DisplayServer.window_set_size(resolutions_dictionary.values()[i]) + +# Audio Global Settings +func update_master_volume(vol : int) -> void: + Save.game_data.master_volume = vol + Save.save_data() + AudioServer.set_bus_volume_db(master_bus_index, vol) + pass + +func update_music_volume(vol : int) -> void: + Save.game_data.music_volume = vol + Save.save_data() + AudioServer.set_bus_volume_db(music_bus_index, vol) + pass + +func update_sfx_volume(vol : int) -> void: + Save.game_data.sfx_volume = vol + Save.save_data() + AudioServer.set_bus_volume_db(sfx_bus_index, vol) + pass diff --git a/Scripts/UI/MainMenuManager.gd b/Scripts/UI/MainMenuManager.gd new file mode 100644 index 0000000..06e599a --- /dev/null +++ b/Scripts/UI/MainMenuManager.gd @@ -0,0 +1,34 @@ +extends Node + +@export var game_scene : Resource +@export var settings_scene : Resource +@export var default_focus : TextureButton + +# Engine Callbackss +func _ready(): + GlobalSettings.set_display_mode(Save.game_data.display_mode) + GlobalSettings.toggle_vsync(Save.game_data.vsync_on) + GlobalSettings.set_resolution(Save.game_data.current_resolution_index) + GlobalSettings.update_master_volume(Save.game_data.master_volume) + GlobalSettings.update_music_volume(Save.game_data.music_volume) + GlobalSettings.update_sfx_volume(Save.game_data.sfx_volume) + default_focus.grab_focus() + pass + +func _on_play_button_pressed(): + load(game_scene.resource_path) + get_tree().change_scene_to_file(game_scene.resource_path) + pass + +func _on_settings_button_pressed(): + var settings_scene_instance = load(settings_scene.resource_path).instantiate() + get_tree().current_scene.add_child(settings_scene_instance) + pass + +func _on_about_button_pressed(): + OS.shell_open("https://git.euph.dev/GameDev/HoppyEaster") + pass + +func _on_quit_button_pressed(): + get_tree().quit() + pass diff --git a/Scripts/UI/MenuButton.gd b/Scripts/UI/MenuButton.gd new file mode 100644 index 0000000..f257cdd --- /dev/null +++ b/Scripts/UI/MenuButton.gd @@ -0,0 +1,38 @@ +extends TextureButton + +@export var text : String = "Sample Text" +@export var pointer_margin_from_center : int = 100 +@export var leftPointer : Sprite2D +@export var rightPointer : Sprite2D +@export var textBox : RichTextLabel + +# Engine Callbacks +func _ready(): + textBox.parse_bbcode("[center] %s [/center]" % [text]) + pass + +func _process(_delta): + handle_hover_and_focus() + handle_x_position() + +func handle_hover_and_focus() -> void: + if has_focus(): + leftPointer.visible = true + rightPointer.visible = true + elif is_hovered(): + leftPointer.visible = true + leftPointer.modulate.a = 0.5 + rightPointer.visible = true + rightPointer.modulate.a = 0.5 + else: + leftPointer.visible = false + leftPointer.modulate.a = 1 + rightPointer.visible = false + rightPointer.modulate.a = 1 + pass + +func handle_x_position() -> void: + var center_x = get_parent().position.x + (get_parent().size.x / 2.0) + leftPointer.global_position.x = center_x - pointer_margin_from_center + rightPointer.global_position.x = center_x + pointer_margin_from_center + pass diff --git a/Scripts/UI/Remaping/RemapButton.gd b/Scripts/UI/Remaping/RemapButton.gd new file mode 100644 index 0000000..b35bba2 --- /dev/null +++ b/Scripts/UI/Remaping/RemapButton.gd @@ -0,0 +1,15 @@ +extends Button + +@export var input_action_name : String +@export var remap_controller : Node + +func _ready(): + display_key() + +func display_key (): + text = "%s" % InputMap.action_get_events(input_action_name)[0].as_text() + pass + +func _on_pressed(): + remap_controller.start_remap(self, input_action_name) + pass # Replace with function body. diff --git a/Scripts/UI/Remaping/RemapController.gd b/Scripts/UI/Remaping/RemapController.gd new file mode 100644 index 0000000..a75eb2d --- /dev/null +++ b/Scripts/UI/Remaping/RemapController.gd @@ -0,0 +1,34 @@ +extends Control + +var remap_button : Button +var remap_action : String + +func _unhandled_key_input(event): + if remap_button != null and event.pressed: + remap_key(event) + pass + +func _ready(): + set_process_unhandled_key_input(false) + remap_button = null + pass + +func start_remap(button : Button, action : String): + if(remap_button != null): + remap_button.display_key() + remap_button = button + remap_action = action + remap_button.text = "..." + set_process_unhandled_key_input(true) + pass + +func remap_key(event): + print(event) + # Do Actual Rebinding + for key in InputMap.action_get_events(remap_action): + InputMap.action_erase_event(remap_action, key) + InputMap.action_add_event(remap_action, event) + remap_button.display_key() + remap_button = null + set_process_unhandled_key_input(false) + pass diff --git a/Scripts/UI/SettingsMenu.gd b/Scripts/UI/SettingsMenu.gd new file mode 100644 index 0000000..8b8485e --- /dev/null +++ b/Scripts/UI/SettingsMenu.gd @@ -0,0 +1,63 @@ +extends Node + +# Video Settings UI References +@export var display_options_button : OptionButton +@export var vsync_toggle : CheckButton +@export var resolutions_options_button : OptionButton + +# Audio Settings UI References +@export var master_volume_slider : Slider +@export var music_volume_slider : Slider +@export var sfx_volume_slider : Slider + +# Engine Callbacks +func _ready(): + add_resolution_items() + display_options_button.select(Save.game_data.display_mode) + GlobalSettings.set_display_mode(Save.game_data.display_mode) + vsync_toggle.set_pressed_no_signal(Save.game_data.vsync_on) + GlobalSettings.toggle_vsync(Save.game_data.vsync_on) + resolutions_options_button.select(Save.game_data.current_resolution_index) + GlobalSettings.set_resolution(Save.game_data.current_resolution_index) + master_volume_slider.value = Save.game_data.master_volume + GlobalSettings.update_master_volume(Save.game_data.master_volume) + music_volume_slider.value = Save.game_data.music_volume + GlobalSettings.update_music_volume(Save.game_data.music_volume) + sfx_volume_slider.value = Save.game_data.sfx_volume + GlobalSettings.update_sfx_volume(Save.game_data.sfx_volume) + pass + +func add_resolution_items(): + for key in GlobalSettings.resolutions_dictionary.keys(): + resolutions_options_button.add_item(key) + +# Other Buttons +func _on_back_pressed(): + queue_free() + pass + +# Video Settings +func _on_display_mode_options_item_selected(index): + GlobalSettings.set_display_mode(index) + pass + +func _on_vsync_button_toggled(button_pressed): + GlobalSettings.toggle_vsync(button_pressed) + pass + +func _on_resolutions_options_item_selected(index): + GlobalSettings.set_resolution(index) + pass + +# Audio Settings +func _on_master_volume_slider_value_changed(value): + GlobalSettings.update_master_volume(value) + pass + +func _on_music_vol_slider_value_changed(value): + GlobalSettings.update_music_volume(value) + pass + +func _on_sfx_vol_slider_value_changed(value): + GlobalSettings.update_sfx_volume(value) + pass diff --git a/Scripts/WeaponSystem/Projectile.gd b/Scripts/WeaponSystem/Projectile.gd index 96a7755..9a97159 100644 --- a/Scripts/WeaponSystem/Projectile.gd +++ b/Scripts/WeaponSystem/Projectile.gd @@ -11,16 +11,16 @@ func _process(delta): pass func _on_collision(body): - var collision_layer = null; + var collided_layer = null; if body.get_class() == "TileMap": - collision_layer = body.tile_set.get_physics_layer_collision_layer(0) + collided_layer = body.tile_set.get_physics_layer_collision_layer(0) if(body.has_method("get_collision_layer")): - collision_layer = body.get_collision_layer() + collided_layer = body.get_collision_layer() - if collision_layer & map_collision_layer: + if collided_layer & map_collision_layer: queue_free() - if collision_layer & bunny_collision_layer: + if collided_layer & bunny_collision_layer: var bunny = body as Bunny bunny.damage(damage) queue_free() diff --git a/Scripts/WeaponSystem/WeaponController.gd b/Scripts/WeaponSystem/WeaponController.gd index f3b93ec..f23eec3 100644 --- a/Scripts/WeaponSystem/WeaponController.gd +++ b/Scripts/WeaponSystem/WeaponController.gd @@ -3,7 +3,7 @@ extends Node2D @export var projectile_prefab : Resource @onready var projectilePrefab : PackedScene = load(projectile_prefab.resource_path) -func _process(delta): +func _process(_delta): rotate_to_pointer() if Input.is_action_just_pressed("attack"): @@ -18,5 +18,8 @@ func spawn_projectile(pos : Vector2, dir : float, speed: float, damage : int): var projectile = projectilePrefab.instantiate() projectile.global_position = pos projectile.rotation = dir + projectile.speed = speed + projectile.damage = damage + projectile.is_displayed_folded() get_tree().root.add_child(projectile) pass diff --git a/project.godot b/project.godot index 99b8929..79d1506 100644 --- a/project.godot +++ b/project.godot @@ -11,42 +11,90 @@ config_version=5 [application] config/name="HoppyEaster" -run/main_scene="res://Scenes/Test.tscn" +run/main_scene="res://Scenes/Main Menu.tscn" config/features=PackedStringArray("4.0", "GL Compatibility") config/icon="res://icon.svg" +[audio] + +buses/default_bus_layout="res://Assets/Temp Music/default_bus_layout.tres" + +[autoload] + +GlobalSettings="*res://Scripts/SaveSystem/GlobalSettings.gd" +Save="*res://Scripts/SaveSystem/GameDataSaver.gd" + +[display] + +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/stretch/mode="viewport" +window/stretch/aspect="expand" + [dotnet] project/assembly_name="HoppyEaster" +[gui] + +theme/custom="res://Assets/UI_Theme.tres" + [input] +ui_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":4194319,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":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":65,"key_label":0,"unicode":97,"echo":false,"script":null) +] +} +ui_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":4194321,"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":-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,"echo":false,"script":null) +] +} +ui_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":4194320,"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":-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,"echo":false,"script":null) +] +} +ui_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":4194322,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":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":83,"key_label":0,"unicode":115,"echo":false,"script":null) +] +} move_left={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_up={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"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":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_down={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"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":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"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":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } attack={ @@ -59,13 +107,15 @@ attack={ [layer_names] 2d_physics/layer_1="Map" +2d_navigation/layer_1="Map" 2d_physics/layer_2="Player" 2d_physics/layer_3="Bunny" 2d_physics/layer_4="Projectile" 2d_physics/layer_5="Layer 5" +2d_physics/layer_7="bunny_check" [rendering] +textures/canvas_textures/default_texture_filter=0 renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" -textures/canvas_textures/default_texture_filter=0