summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/Kenney Blocks.ttfbin0 -> 30508 bytes
-rw-r--r--assets/Kenney Blocks.ttf.import35
-rw-r--r--assets/Kenney High Square.ttfbin0 -> 25004 bytes
-rw-r--r--assets/Kenney High Square.ttf.import35
-rw-r--r--assets/Kenney High.ttfbin0 -> 27824 bytes
-rw-r--r--assets/Kenney High.ttf.import35
-rw-r--r--assets/Kenney Mini Square Mono.ttfbin0 -> 24612 bytes
-rw-r--r--assets/Kenney Mini Square Mono.ttf.import35
-rw-r--r--assets/Kenney Mini Square.ttfbin0 -> 23996 bytes
-rw-r--r--assets/Kenney Mini Square.ttf.import35
-rw-r--r--assets/Kenney Mini.ttfbin0 -> 26156 bytes
-rw-r--r--assets/Kenney Mini.ttf.import35
-rw-r--r--assets/Kenney Pixel Square.ttfbin0 -> 25568 bytes
-rw-r--r--assets/Kenney Pixel Square.ttf.import35
-rw-r--r--assets/Kenney Pixel.ttfbin0 -> 28276 bytes
-rw-r--r--assets/Kenney Pixel.ttf.import35
-rw-r--r--assets/Kenney Rocket Square.ttfbin0 -> 24800 bytes
-rw-r--r--assets/Kenney Rocket Square.ttf.import35
-rw-r--r--assets/Kenney Rocket.ttfbin0 -> 27364 bytes
-rw-r--r--assets/Kenney Rocket.ttf.import35
-rw-r--r--scenes/Main.tscn8
-rw-r--r--scenes/UI/cursor.gd24
-rw-r--r--scenes/UI/life.gd11
-rw-r--r--scenes/UI/life.gd.uid1
-rw-r--r--scenes/UI/morale.gd11
-rw-r--r--scenes/UI/morale.gd.uid1
-rw-r--r--scenes/UI/ui.tscn39
-rw-r--r--scenes/crawlers/soldier.gd12
-rw-r--r--scenes/game_data/game_data.gd29
-rw-r--r--scenes/game_data/game_data.gd.uid1
30 files changed, 473 insertions, 14 deletions
diff --git a/assets/Kenney Blocks.ttf b/assets/Kenney Blocks.ttf
new file mode 100644
index 0000000..e26959f
--- /dev/null
+++ b/assets/Kenney Blocks.ttf
Binary files differ
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
new file mode 100644
index 0000000..cef588d
--- /dev/null
+++ b/assets/Kenney High Square.ttf
Binary files differ
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
new file mode 100644
index 0000000..14f8b14
--- /dev/null
+++ b/assets/Kenney High.ttf
Binary files differ
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
new file mode 100644
index 0000000..33c1fd6
--- /dev/null
+++ b/assets/Kenney Mini Square Mono.ttf
Binary files differ
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
new file mode 100644
index 0000000..5f2c5bb
--- /dev/null
+++ b/assets/Kenney Mini Square.ttf
Binary files differ
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
new file mode 100644
index 0000000..5cbfd37
--- /dev/null
+++ b/assets/Kenney Mini.ttf
Binary files differ
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
new file mode 100644
index 0000000..e540208
--- /dev/null
+++ b/assets/Kenney Pixel Square.ttf
Binary files differ
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
new file mode 100644
index 0000000..e6978d7
--- /dev/null
+++ b/assets/Kenney Pixel.ttf
Binary files differ
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
new file mode 100644
index 0000000..ca788bb
--- /dev/null
+++ b/assets/Kenney Rocket Square.ttf
Binary files differ
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
new file mode 100644
index 0000000..ea53b8c
--- /dev/null
+++ b/assets/Kenney Rocket.ttf
Binary files differ
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