diff options
30 files changed, 473 insertions, 14 deletions
diff --git a/assets/Kenney Blocks.ttf b/assets/Kenney Blocks.ttf Binary files differnew file mode 100644 index 0000000..e26959f --- /dev/null +++ b/assets/Kenney Blocks.ttf diff --git a/assets/Kenney Blocks.ttf.import b/assets/Kenney Blocks.ttf.import new file mode 100644 index 0000000..60d6d90 --- /dev/null +++ b/assets/Kenney Blocks.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://22x4f5ic7e0v" +path="res://.godot/imported/Kenney Blocks.ttf-7533467b49a8e2d9c3a6e6227bce874c.fontdata" + +[deps] + +source_file="res://assets/Kenney Blocks.ttf" +dest_files=["res://.godot/imported/Kenney Blocks.ttf-7533467b49a8e2d9c3a6e6227bce874c.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney High Square.ttf b/assets/Kenney High Square.ttf Binary files differnew file mode 100644 index 0000000..cef588d --- /dev/null +++ b/assets/Kenney High Square.ttf diff --git a/assets/Kenney High Square.ttf.import b/assets/Kenney High Square.ttf.import new file mode 100644 index 0000000..bcdafe4 --- /dev/null +++ b/assets/Kenney High Square.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://cwncply0kitsw" +path="res://.godot/imported/Kenney High Square.ttf-ef6411c86e2b140ee1a5363d1f21d300.fontdata" + +[deps] + +source_file="res://assets/Kenney High Square.ttf" +dest_files=["res://.godot/imported/Kenney High Square.ttf-ef6411c86e2b140ee1a5363d1f21d300.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney High.ttf b/assets/Kenney High.ttf Binary files differnew file mode 100644 index 0000000..14f8b14 --- /dev/null +++ b/assets/Kenney High.ttf diff --git a/assets/Kenney High.ttf.import b/assets/Kenney High.ttf.import new file mode 100644 index 0000000..1fdab13 --- /dev/null +++ b/assets/Kenney High.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bqt8qu3b3jwtg" +path="res://.godot/imported/Kenney High.ttf-a87bc3dad763dd924437429be9608444.fontdata" + +[deps] + +source_file="res://assets/Kenney High.ttf" +dest_files=["res://.godot/imported/Kenney High.ttf-a87bc3dad763dd924437429be9608444.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney Mini Square Mono.ttf b/assets/Kenney Mini Square Mono.ttf Binary files differnew file mode 100644 index 0000000..33c1fd6 --- /dev/null +++ b/assets/Kenney Mini Square Mono.ttf diff --git a/assets/Kenney Mini Square Mono.ttf.import b/assets/Kenney Mini Square Mono.ttf.import new file mode 100644 index 0000000..1a32697 --- /dev/null +++ b/assets/Kenney Mini Square Mono.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://2jclek4rpjrj" +path="res://.godot/imported/Kenney Mini Square Mono.ttf-89ec91b4d64ad5be88d0a81f00e41880.fontdata" + +[deps] + +source_file="res://assets/Kenney Mini Square Mono.ttf" +dest_files=["res://.godot/imported/Kenney Mini Square Mono.ttf-89ec91b4d64ad5be88d0a81f00e41880.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney Mini Square.ttf b/assets/Kenney Mini Square.ttf Binary files differnew file mode 100644 index 0000000..5f2c5bb --- /dev/null +++ b/assets/Kenney Mini Square.ttf diff --git a/assets/Kenney Mini Square.ttf.import b/assets/Kenney Mini Square.ttf.import new file mode 100644 index 0000000..caa6bfc --- /dev/null +++ b/assets/Kenney Mini Square.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dei0sscmeglkq" +path="res://.godot/imported/Kenney Mini Square.ttf-63b2e54e362e67c9a74807496463d06d.fontdata" + +[deps] + +source_file="res://assets/Kenney Mini Square.ttf" +dest_files=["res://.godot/imported/Kenney Mini Square.ttf-63b2e54e362e67c9a74807496463d06d.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney Mini.ttf b/assets/Kenney Mini.ttf Binary files differnew file mode 100644 index 0000000..5cbfd37 --- /dev/null +++ b/assets/Kenney Mini.ttf diff --git a/assets/Kenney Mini.ttf.import b/assets/Kenney Mini.ttf.import new file mode 100644 index 0000000..286d089 --- /dev/null +++ b/assets/Kenney Mini.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bajb8fdx3o7tu" +path="res://.godot/imported/Kenney Mini.ttf-d3a4cbedaa91e678cfcff8b61db1cc0f.fontdata" + +[deps] + +source_file="res://assets/Kenney Mini.ttf" +dest_files=["res://.godot/imported/Kenney Mini.ttf-d3a4cbedaa91e678cfcff8b61db1cc0f.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney Pixel Square.ttf b/assets/Kenney Pixel Square.ttf Binary files differnew file mode 100644 index 0000000..e540208 --- /dev/null +++ b/assets/Kenney Pixel Square.ttf diff --git a/assets/Kenney Pixel Square.ttf.import b/assets/Kenney Pixel Square.ttf.import new file mode 100644 index 0000000..982a822 --- /dev/null +++ b/assets/Kenney Pixel Square.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bg2v53hrqceb7" +path="res://.godot/imported/Kenney Pixel Square.ttf-acdb0766a14b6e433a03a42713f6ceee.fontdata" + +[deps] + +source_file="res://assets/Kenney Pixel Square.ttf" +dest_files=["res://.godot/imported/Kenney Pixel Square.ttf-acdb0766a14b6e433a03a42713f6ceee.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney Pixel.ttf b/assets/Kenney Pixel.ttf Binary files differnew file mode 100644 index 0000000..e6978d7 --- /dev/null +++ b/assets/Kenney Pixel.ttf diff --git a/assets/Kenney Pixel.ttf.import b/assets/Kenney Pixel.ttf.import new file mode 100644 index 0000000..c079985 --- /dev/null +++ b/assets/Kenney Pixel.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dj7difb332l5f" +path="res://.godot/imported/Kenney Pixel.ttf-54ccfd6aac850e07f3711ccc628e49a4.fontdata" + +[deps] + +source_file="res://assets/Kenney Pixel.ttf" +dest_files=["res://.godot/imported/Kenney Pixel.ttf-54ccfd6aac850e07f3711ccc628e49a4.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney Rocket Square.ttf b/assets/Kenney Rocket Square.ttf Binary files differnew file mode 100644 index 0000000..ca788bb --- /dev/null +++ b/assets/Kenney Rocket Square.ttf diff --git a/assets/Kenney Rocket Square.ttf.import b/assets/Kenney Rocket Square.ttf.import new file mode 100644 index 0000000..49a45b8 --- /dev/null +++ b/assets/Kenney Rocket Square.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://b7lfm16mkcdlm" +path="res://.godot/imported/Kenney Rocket Square.ttf-53ac5fd513f4ce61ae6826d4d43a6024.fontdata" + +[deps] + +source_file="res://assets/Kenney Rocket Square.ttf" +dest_files=["res://.godot/imported/Kenney Rocket Square.ttf-53ac5fd513f4ce61ae6826d4d43a6024.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/assets/Kenney Rocket.ttf b/assets/Kenney Rocket.ttf Binary files differnew file mode 100644 index 0000000..ea53b8c --- /dev/null +++ b/assets/Kenney Rocket.ttf diff --git a/assets/Kenney Rocket.ttf.import b/assets/Kenney Rocket.ttf.import new file mode 100644 index 0000000..7d08807 --- /dev/null +++ b/assets/Kenney Rocket.ttf.import @@ -0,0 +1,35 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://dsfev0k0ffwn3" +path="res://.godot/imported/Kenney Rocket.ttf-094272f8d7ed1a66882689a8e97d3f02.fontdata" + +[deps] + +source_file="res://assets/Kenney Rocket.ttf" +dest_files=["res://.godot/imported/Kenney Rocket.ttf-094272f8d7ed1a66882689a8e97d3f02.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=4 +keep_rounding_remainders=true +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/scenes/Main.tscn b/scenes/Main.tscn index dccce73..01f6590 100644 --- a/scenes/Main.tscn +++ b/scenes/Main.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=7 format=4 uid="uid://chwnewu8l45kj"] +[gd_scene load_steps=8 format=4 uid="uid://chwnewu8l45kj"] [ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="1_rvslj"] [ext_resource type="Script" uid="uid://i5bjnah05h14" path="res://path_spawner.gd" id="2_0bbpv"] [ext_resource type="PackedScene" uid="uid://cq6d7gmjbwl14" path="res://scenes/UI/cursor.tscn" id="4_rarhs"] [ext_resource type="Script" uid="uid://c8p74tnba8rs8" path="res://scenes/grid_manager.gd" id="4_vcsgt"] +[ext_resource type="PackedScene" uid="uid://dycgp3yept14k" path="res://scenes/UI/ui.tscn" id="5_vcsgt"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_tjuek"] texture = ExtResource("1_rvslj") @@ -1092,7 +1093,7 @@ sources/0 = SubResource("TileSetAtlasSource_tjuek") [node name="Main" type="Node2D"] [node name="L1" type="TileMapLayer" parent="."] -tile_map_data = PackedByteArray("AAAAAAoAAAAIAAEAAGABAAoAAAAIAAEAAGACAAoAAAAIAAEAAGADAAoAAAAIAAEAAGAEAAoAAAAIAAEAAGAFAAoAAAAIAAEAAGAGAAoAAAAIAAEAAGAHAAoAAAAIAAEAAGAIAAoAAAAIAAEAAGAJAAoAAAAIAAEAAGAKAAoAAAAIAAEAAGALAAoAAAAIAAEAAGAMAAoAAAAIAAEAAGANAAoAAAAIAAEAAGAOAAoAAAAIAAEAAGAPAAoAAAAJAAEAADAPAAkAAAAIAAEAAAAPAAgAAAAIAAEAAAAPAAcAAAAIAAEAAAAPAAYAAAAJAAEAAFAOAAYAAAAIAAEAAGANAAYAAAAIAAEAAGAMAAYAAAAIAAEAAGALAAYAAAAIAAEAAGAKAAYAAAAIAAEAAGAJAAYAAAAIAAEAAGAIAAYAAAAIAAEAAGAHAAYAAAAIAAEAAGAGAAYAAAAIAAEAAGAFAAYAAAAIAAEAAGAEAAMAAAAJAAEAAAAEAAUAAAAIAAEAADAEAAQAAAAIAAEAADAFAAMAAAAIAAEAAGAGAAMAAAAIAAEAAGAHAAMAAAAIAAEAAGAIAAMAAAAIAAEAAGAJAAMAAAAIAAEAAGAKAAMAAAAIAAEAAGALAAMAAAAIAAEAAGAMAAMAAAAIAAEAAGANAAMAAAAIAAEAAGAOAAMAAAAIAAEAAGAPAAMAAAAIAAEAAGAQAAMAAAAIAAEAAGARAAMAAAAIAAEAAGASAAMAAAAIAAEAAGATAAMAAAAIAAEAAGAEAAYAAAAJAAEAAGAHAAAAAAASABQAAAAGAAAAAAAAAAEAAAAFAAAAAAASABUAAAAEAAAAAAARABUAAAADAAAAAAAQABUAAAACAAAAAAAQABQAAAACAAEAAAAQABUAAAAHAAEAAAASABUAAAAGAAEAAAARABUAAAAFAAEAAAARABUAAAAEAAEAAAARABUAAAADAAEAAAARABUAAAAPAA4AAAALAAUAAAAQAA4AAAAIAAUAAAARAA4AAAAIAAUAAAASAA4AAAAIAAUAAAATAA0AAAAIAAUAAAATAA4AAAAIAAUAAAALAA4AAAAKAAUAAAAMAA4AAAAJAAUAAFANAA4AAAAJAAUAAFAOAA4AAAAJAAUAAFAPAA0AAAAKAAUAAAAQAA0AAAAJAAUAAFARAA0AAAAJAAUAAFASAAsAAAAKAAUAAAASAAwAAAAJAAUAAAASAA0AAAALAAUAAAATAAsAAAAJAAUAAFATAAwAAAAIAAUAAAATAAQAAAARAAkAAAATAAIAAAARAAkAAAAKAA4AAAATAAYAAAAMAA0AAAATAAYAAAAOAA0AAAABAAEAAAANAA0AAAASAAYAAAAQAAwAAAASAAYAAAALAA0AAAADAAIAAAARAAsAAAABAAEAAAARAAwAAAABAAEAAAAPAAwAAAAEAAEAAAASAAoAAAAEAAEAAAAMAAwAAAAGAAIAAAANAAwAAAACAAEAAAAJAA4AAAABAAEAAAAKAAwAAAABAAEAAAAOAAsAAAABAAEAAAARAAkAAAABAAEAAAARAAoAAAACAAEAAAAPAAsAAAACAAEAAAAIAA4AAAADAAEAAAAIAA0AAAAAAAEAAAAHAA0AAAACAAEAAAAHAA4AAAABAAMAAAAGAA4AAAABAAMAAAAFAA4AAAABAAMAAAAEAA4AAAABAAMAAAADAA4AAAABAAMAAAACAA4AAAABAAMAAAABAA4AAAABAAMAAAAAAA4AAAABAAMAAAAKAA0AAAAFAAIAAAAQAAcAAAADAAAAAAARAAcAAAADAAAAAAASAAcAAAADAAAAAAATAAcAAAADAAAAAAALAAwAAAAAAAIAAAACAAcAAAAAAAIAAAANAAQAAAAAAAIAAAABAAsAAAAAAAIAAAABAAEAAAAAAAIAAAAMAAAAAAAAAAIAAAARAAUAAAAAAAIAAAAEAAwAAAABAAEAAAAHAAcAAAABAAEAAAALAAEAAAABAAEAAAASAAgAAAABAAEAAAASAAEAAAABAAEAAAABAAUAAAABAAEAAAABAAkAAAATAAYAAAAOAAQAAAATAAYAAAATAAkAAAATAAYAAAABAA0AAAAdAAcAAAASAAkAAAAOAAoAAAABAAAAAAAOAAoAAAAAAAwAAAADAAEAAAACAAkAAAADAAEAAAACAAsAAAADAAEAAAAAAAgAAAADAAEAAAAAAAsAAAAEAAEAAAABAAgAAAAEAAEAAAAAAAYAAAAEAAEAAAAAAAcAAAAEAAEAAAACAAwAAAAEAAEAAAABAAwAAAAEAAIAAAAAAA0AAAAEAAIAAAABAAYAAAADAAIAAAACAAgAAAADAAIAAAAEAA0AAAADAAIAAAAGAAsAAAAEAAIAAAAGAA0AAAADAAEAAAADAA0AAAABAAEAAAADAAwAAAAGAAIAAAANAAAAAAAQAA8AAAAOAAAAAAARAA8AAAAPAAAAAAARAA8AAAAQAAAAAAARAA8AAAARAAAAAAARAA8AAAASAAAAAAARAA8AAAATAAAAAAARAA8AAAACAAIAAAABAAEAAAADAAIAAAABAAEAAAABAAMAAAABAAEAAAAIAAEAAAABAAEAAAACAAUAAAADAAIAAAAAAAIAAAADAAIAAAABAAIAAAAGAAIAAAAIAAAAAAAFAAEAAAAKAAAAAAAFAAEAAAAIAAIAAAAFAAEAAAAAAAMAAAAAAAEAAAAAAAAAAAAAAAEAAAACAAQAAAAAAAEAAAACAAYAAAAFAAIAAAAJAAAAAAATAAYAAAALAAAAAAASAAYAAAAAAAQAAAAOAAYAAAAAAAkAAAAOAAYAAAAKAAsAAAAOAAYAAAAFAA0AAAAPAAYAAAATAAoAAAAPAAYAAAAMAAEAAAAPAAYAAAAFAAwAAAABAAEAAAAGAAIAAAAAAAIAAAA=") +tile_map_data = PackedByteArray("AAAAAAMAAAADAAIAAAAAAAYAAAAEAAEAAAAAAAcAAAAEAAEAAAAAAAgAAAADAAEAAAAAAAkAAAAOAAYAAAAAAAoAAAAIAAEAAGAAAAsAAAAEAAEAAAAAAAwAAAADAAEAAAAAAA0AAAAEAAIAAAABAAEAAAAOAAoAAAABAAIAAAAAAAIAAAABAAUAAAABAAEAAAABAAgAAAAEAAEAAAABAAkAAAATAAYAAAABAAoAAAAIAAEAAGABAAsAAAAAAAIAAAABAAwAAAAEAAIAAAABAA0AAAAdAAcAAAACAAEAAAAQABQAAAACAAIAAAAQABUAAAACAAMAAAABAAEAAAACAAQAAAAAAAEAAAACAAUAAAADAAIAAAACAAYAAAAFAAIAAAACAAcAAAAAAAIAAAACAAgAAAADAAIAAAACAAkAAAADAAEAAAACAAoAAAAIAAEAAGACAAsAAAADAAEAAAADAAEAAAAQABUAAAADAAIAAAARABUAAAADAAwAAAAGAAIAAAADAA0AAAABAAEAAAAEAAEAAAARABUAAAAEAAIAAAARABUAAAAEAAMAAAAJAAEAAAAEAAQAAAAIAAEAADAEAAUAAAAIAAEAADAEAAwAAAABAAEAAAAEAA0AAAADAAIAAAAFAAEAAAASABUAAAAFAAIAAAARABUAAAAFAAwAAAABAAEAAAAFAA0AAAAPAAYAAAAGAAEAAAAAAAEAAAAGAAIAAAARABUAAAAGAAMAAAAIAAEAAGAGAAoAAAAIAAEAAGAGAA0AAAADAAEAAAAHAAEAAAASABQAAAAHAAIAAAASABUAAAAHAAYAAAAIAAEAAGAHAA0AAAACAAEAAAAIAAEAAAABAAEAAAAIAAIAAAAFAAEAAAAIAA0AAAAAAAEAAAAKAAoAAAAIAAEAAGAKAAsAAAAOAAYAAAAKAAwAAAABAAEAAAAKAA0AAAAFAAIAAAALAAEAAAASAAYAAAALAAIAAAABAAEAAAALAAwAAAAAAAIAAAALAA0AAAADAAIAAAAMAAEAAAAAAAIAAAAMAAIAAAAPAAYAAAAMAAwAAAAGAAIAAAAMAA0AAAATAAYAAAANAAMAAAAIAAEAAGANAAwAAAACAAEAAAANAA0AAAASAAYAAAAOAAMAAAAIAAEAAGAOAAoAAAAIAAEAAGAOAA0AAAABAAEAAAAPAAYAAAAJAAEAAFAPAAcAAAAIAAEAAAAPAAgAAAAIAAEAAAAPAAkAAAAIAAEAAAAPAAoAAAAJAAEAADAPAAsAAAACAAEAAAAPAAwAAAAEAAEAAAAPAA0AAAAKAAUAAAAQAAwAAAASAAYAAAAQAA0AAAAJAAUAAFARAAkAAAABAAEAAAARAAoAAAACAAEAAAARAAsAAAABAAEAAAARAAwAAAABAAEAAAARAA0AAAAJAAUAAFASAAEAAAARAA8AAAASAAIAAAABAAEAAAASAAcAAAADAAAAAAASAAgAAAABAAEAAAASAAkAAAAOAAoAAAASAAoAAAAEAAEAAAASAAsAAAAKAAUAAAASAAwAAAAJAAUAAAASAA0AAAALAAUAAAATAAEAAAARAA8AAAATAAIAAAARAAkAAAATAAMAAAAIAAEAAGATAAkAAAATAAYAAAATAAoAAAAPAAYAAAATAAsAAAAJAAUAAFATAAwAAAAIAAUAAAATAA0AAAAIAAUAAAAAAAEAAAAAAAEAAAAAAAQAAAAOAAYAAAAAAA4AAAABAAMAAAABAAMAAAAGAAIAAAABAAYAAAADAAIAAAABAA4AAAABAAMAAAACAAwAAAAEAAEAAAACAA4AAAABAAMAAAADAAMAAAABAAEAAAADAAoAAAAIAAEAAGADAA4AAAABAAMAAAAEAAYAAAAJAAEAAGAEAAoAAAAIAAEAAGAEAA4AAAABAAMAAAAFAAMAAAAIAAEAAGAFAAYAAAAIAAEAAGAFAAoAAAAIAAEAAGAFAA4AAAABAAMAAAAGAAQAAAAAAAIAAAAGAAYAAAAIAAEAAGAGAAsAAAAEAAIAAAAGAA4AAAABAAMAAAAHAAMAAAAIAAEAAGAHAAcAAAABAAEAAAAHAAoAAAAIAAEAAGAHAA4AAAABAAMAAAAIAAMAAAAIAAEAAGAIAAYAAAAIAAEAAGAIAAoAAAAIAAEAAGAIAA4AAAADAAEAAAAJAAEAAAATAAYAAAAJAAMAAAAIAAEAAGAJAAYAAAAIAAEAAGAJAAoAAAAIAAEAAGAJAA4AAAABAAEAAAAKAAEAAAAFAAEAAAAKAAMAAAAIAAEAAGAKAAYAAAAIAAEAAGAKAA4AAAATAAYAAAALAAMAAAAIAAEAAGALAAYAAAAIAAEAAGALAAoAAAAIAAEAAGALAA4AAAAKAAUAAAAMAAMAAAAIAAEAAGAMAAYAAAAIAAEAAGAMAAoAAAAIAAEAAGAMAA4AAAAJAAUAAFANAAEAAAAQAA8AAAANAAQAAAAAAAIAAAANAAYAAAAIAAEAAGANAAoAAAAIAAEAAGANAA4AAAAJAAUAAFAOAAEAAAARAA8AAAAOAAQAAAATAAYAAAAOAAYAAAAIAAEAAGAOAAsAAAABAAEAAAAOAA4AAAAJAAUAAFAPAAEAAAARAA8AAAAPAAMAAAAIAAEAAGAPAA4AAAALAAUAAAAQAAEAAAARAA8AAAAQAAMAAAAIAAEAAGAQAAcAAAADAAAAAAAQAA4AAAAIAAUAAAARAAEAAAARAA8AAAARAAMAAAAIAAEAAGARAAUAAAAAAAIAAAARAAcAAAADAAAAAAARAA4AAAAIAAUAAAASAAMAAAAIAAEAAGASAA4AAAAIAAUAAAATAAQAAAARAAkAAAATAAcAAAADAAAAAAATAA4AAAAIAAUAAAA=") tile_set = SubResource("TileSet_47enk") [node name="PathSpawner" type="Node2D" parent="."] @@ -1109,4 +1110,7 @@ autostart = true [node name="GridManager" type="Node" parent="."] script = ExtResource("4_vcsgt") +[node name="PanelContainer" parent="." instance=ExtResource("5_vcsgt")] +offset_right = 320.0 + [connection signal="timeout" from="PathSpawner/Timer" to="PathSpawner" method="_on_timer_timeout"] diff --git a/scenes/UI/cursor.gd b/scenes/UI/cursor.gd index cb0d0b4..c71eaa2 100644 --- a/scenes/UI/cursor.gd +++ b/scenes/UI/cursor.gd @@ -11,17 +11,23 @@ var dirs = {"move_right": Vector2.RIGHT, "move_left": Vector2.LEFT, "move_up": Vector2.UP, "move_down": Vector2.DOWN} -var towers : Dictionary +var towers : Dictionary = { + "place_warlock": { + "scene": preload("res://scenes/defenders/warlock.tscn"), + "cost": 10 + }, + "place_wyvern": { + "scene": preload("res://scenes/defenders/wyvern.tscn"), + "cost": 15 + } +} func _ready(): tile_size = grid_manager.tile_size max_x = 20 * tile_size max_y = 15 * tile_size - - towers["place_warlock"] = preload("res://scenes/defenders/warlock.tscn") - towers["place_wyvern"] = preload("res://scenes/defenders/wyvern.tscn") position = position.snapped(Vector2.ONE * tile_size) - position += Vector2.ONE * tile_size / 2 + position += Vector2(max_x / 2, max_y / 2) + Vector2(1, 0) * tile_size / 2 func _unhandled_input(event): for dir in dirs.keys(): @@ -34,17 +40,19 @@ func _unhandled_input(event): return func handle_tower(tower): - if is_valid_placement_tile(): - var tmp = tower.instantiate() + var tower_cost = tower["cost"] + if is_valid_placement_tile() && GameData.get_life() >= tower_cost: + var tmp = tower["scene"].instantiate() var path = get_tree().get_root().get_node("Main/Defenders") path.add_child(tmp) tmp.global_position = position grid_manager.occupy_tile(position) + GameData.subtract_life(tower_cost) func handle_move(dir): position += dir * tile_size position.x = max(position.x, tile_size / 2) - position.y = max(position.y, tile_size / 2) + position.y = max(position.y, tile_size + tile_size / 2) position.x = min(position.x, max_x - (tile_size / 2)) position.y = min(position.y, max_y - (tile_size / 2)) diff --git a/scenes/UI/life.gd b/scenes/UI/life.gd new file mode 100644 index 0000000..b185cda --- /dev/null +++ b/scenes/UI/life.gd @@ -0,0 +1,11 @@ +extends Label + +func _ready(): + GameData.connect("life_changed", Callable(self, "_on_life_changed")) + update_label(GameData.get_life()) + +func _on_life_changed(new_life: int) -> void: + update_label(new_life) + +func update_label(new_life: int) -> void: + text = "Life:" + str(new_life) diff --git a/scenes/UI/life.gd.uid b/scenes/UI/life.gd.uid new file mode 100644 index 0000000..6666d8d --- /dev/null +++ b/scenes/UI/life.gd.uid @@ -0,0 +1 @@ +uid://dtj2opmwvh4y1 diff --git a/scenes/UI/morale.gd b/scenes/UI/morale.gd new file mode 100644 index 0000000..d5a8046 --- /dev/null +++ b/scenes/UI/morale.gd @@ -0,0 +1,11 @@ +extends Label + +func _ready(): + GameData.connect("morale_changed", Callable(self, "_on_morale_changed")) + update_label(GameData.get_morale()) + +func _on_life_changed(new_morale: int) -> void: + update_label(new_morale) + +func update_label(new_morale: int) -> void: + text = "Morale:" + str(new_morale) diff --git a/scenes/UI/morale.gd.uid b/scenes/UI/morale.gd.uid new file mode 100644 index 0000000..2424396 --- /dev/null +++ b/scenes/UI/morale.gd.uid @@ -0,0 +1 @@ +uid://b8urrbmynk327 diff --git a/scenes/UI/ui.tscn b/scenes/UI/ui.tscn new file mode 100644 index 0000000..8e6a36b --- /dev/null +++ b/scenes/UI/ui.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=4 format=3 uid="uid://dycgp3yept14k"] + +[ext_resource type="Script" uid="uid://dtj2opmwvh4y1" path="res://scenes/UI/life.gd" id="1_suays"] +[ext_resource type="Script" uid="uid://b8urrbmynk327" path="res://scenes/UI/morale.gd" id="1_yb1mt"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nt14h"] +bg_color = Color(0, 0.0117647, 0.552941, 1) + +[node name="PanelContainer" type="PanelContainer"] +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 17.0 +grow_horizontal = 2 +size_flags_vertical = 0 +theme_override_styles/panel = SubResource("StyleBoxFlat_nt14h") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 2 +theme_override_constants/margin_left = 6 +theme_override_constants/margin_top = 0 + +[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"] +layout_mode = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/HBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = -3 + +[node name="Morale" type="Label" parent="MarginContainer/HBoxContainer/VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 8 +text = "Morale: 10" +script = ExtResource("1_yb1mt") + +[node name="Life" type="Label" parent="MarginContainer/HBoxContainer/VBoxContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 8 +text = "Life: 20" +script = ExtResource("1_suays") diff --git a/scenes/crawlers/soldier.gd b/scenes/crawlers/soldier.gd index 1bd7549..fe494e6 100644 --- a/scenes/crawlers/soldier.gd +++ b/scenes/crawlers/soldier.gd @@ -1,23 +1,27 @@ extends CharacterBody2D -@export var speed = 50.0 -@export var max_health = 40 -var _health = max_health +@export var worth : int = 5 +@export var damage : int = 1 +@export var speed : float = 50.0 +@export var max_health : float = 30.0 +var _health : float = max_health func _process(delta): get_parent().set_progress(get_parent().get_progress() + speed * delta) if get_parent().get_progress_ratio() == 1: + GameData.subtract_morale(damage) queue_free() func deal_damage(damage): _health -= damage if _health <= 0: + GameData.add_life(worth) queue_free() else: _update_color() func _update_color(): - var ratio : float = float(_health) / max_health + var ratio : float = _health / max_health var target_color = Color(1, ratio, ratio) $Sprite2D.modulate = target_color diff --git a/scenes/game_data/game_data.gd b/scenes/game_data/game_data.gd new file mode 100644 index 0000000..fd6a80e --- /dev/null +++ b/scenes/game_data/game_data.gd @@ -0,0 +1,29 @@ + +extends Node + +signal life_changed +signal morale_changed +var _life: int = 20 +var _morale: int = 10 + +func get_life() -> int: + return _life + +func add_life(amount: int): + _life += amount + emit_signal("life_changed", _life) + +func subtract_life(amount: int): + _life -= amount + emit_signal("life_changed", _life) + +func get_morale() -> int: + return _morale + +func add_morale(amount: int): + _morale += amount + emit_signal("morale_changed", _morale) + +func subtract_morale(amount: int): + _morale -= amount + emit_signal("life_changed", _morale) diff --git a/scenes/game_data/game_data.gd.uid b/scenes/game_data/game_data.gd.uid new file mode 100644 index 0000000..2c1f11b --- /dev/null +++ b/scenes/game_data/game_data.gd.uid @@ -0,0 +1 @@ +uid://c72ko8skbqiq5 |