summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Stages/Goal/Goal.tscn12
-rw-r--r--Stages/Goal/goal.gd2
-rw-r--r--Stages/Spawn/spawn.gd4
-rw-r--r--Stages/world_01.tscn2
-rw-r--r--UI/Assets/ButtonBackground.krabin0 -> 93789 bytes
-rw-r--r--UI/Assets/ButtonBackground.kra~bin0 -> 83270 bytes
-rw-r--r--UI/Assets/ButtonBlocker.pngbin0 -> 311 bytes
-rw-r--r--UI/Assets/ButtonBlocker.png.import34
-rw-r--r--UI/Assets/ButtonDigger.pngbin0 -> 279 bytes
-rw-r--r--UI/Assets/ButtonDigger.png.import34
-rw-r--r--UI/Assets/ButtonFloater.pngbin0 -> 349 bytes
-rw-r--r--UI/Assets/ButtonFloater.png.import34
-rw-r--r--UI/Assets/ButtonMiner.pngbin0 -> 286 bytes
-rw-r--r--UI/Assets/ButtonMiner.png.import34
-rw-r--r--UI/Assets/ButtonMinus.pngbin0 -> 197 bytes
-rw-r--r--UI/Assets/ButtonMinus.png.import34
-rw-r--r--UI/Assets/ButtonPlus.pngbin0 -> 217 bytes
-rw-r--r--UI/Assets/ButtonPlus.png.import34
-rwxr-xr-xUI/Assets/Minimal3x5.ttfbin0 -> 10612 bytes
-rw-r--r--UI/Assets/Minimal3x5.ttf.import34
-rwxr-xr-xUI/Assets/Minimal5x5Monospaced.ttfbin0 -> 10036 bytes
-rw-r--r--UI/Assets/Minimal5x5Monospaced.ttf.import34
-rwxr-xr-xUI/Assets/Minimal5x7.ttfbin0 -> 14584 bytes
-rw-r--r--UI/Assets/Minimal5x7.ttf.import34
-rw-r--r--UI/HUD.tscn121
-rw-r--r--UI/hud.gd26
-rw-r--r--UI/theme.tres7
-rw-r--r--Units/Assets/.digger-12.png-autosave.krabin76238 -> 0 bytes
-rw-r--r--Units/Assets/exit-01.pngbin0 -> 155 bytes
-rw-r--r--Units/Assets/exit-01.png.import34
-rw-r--r--Units/Assets/exit-01.png~bin0 -> 154 bytes
-rw-r--r--Units/Assets/exit-02.pngbin0 -> 177 bytes
-rw-r--r--Units/Assets/exit-02.png.import34
-rw-r--r--Units/Assets/exit-03.pngbin0 -> 180 bytes
-rw-r--r--Units/Assets/exit-03.png.import34
-rw-r--r--Units/Assets/exit-04.pngbin0 -> 169 bytes
-rw-r--r--Units/Assets/exit-04.png.import34
-rw-r--r--Units/Assets/exit-05.pngbin0 -> 149 bytes
-rw-r--r--Units/Assets/exit-05.png.import34
-rw-r--r--Units/Assets/exit-06.pngbin0 -> 150 bytes
-rw-r--r--Units/Assets/exit-06.png.import34
-rw-r--r--Units/Assets/exit-07.pngbin0 -> 133 bytes
-rw-r--r--Units/Assets/exit-07.png.import34
-rw-r--r--Units/Assets/floater-01.pngbin0 -> 193 bytes
-rw-r--r--Units/Assets/floater-01.png.import34
-rw-r--r--Units/Assets/floater-02.pngbin0 -> 195 bytes
-rw-r--r--Units/Assets/floater-02.png.import34
-rw-r--r--Units/Assets/floater-03.pngbin0 -> 219 bytes
-rw-r--r--Units/Assets/floater-03.png.import34
-rw-r--r--Units/Assets/floater-04.pngbin0 -> 219 bytes
-rw-r--r--Units/Assets/floater-04.png.import34
-rw-r--r--Units/Assets/floater-05.pngbin0 -> 224 bytes
-rw-r--r--Units/Assets/floater-05.png.import34
-rw-r--r--Units/Assets/floater-06.pngbin0 -> 216 bytes
-rw-r--r--Units/Assets/floater-06.png.import34
-rw-r--r--Units/Assets/floater-07.pngbin0 -> 230 bytes
-rw-r--r--Units/Assets/floater-07.png.import34
-rw-r--r--Units/Assets/floater-08.pngbin0 -> 210 bytes
-rw-r--r--Units/Assets/floater-08.png.import34
-rw-r--r--Units/Assets/miner-01.pngbin0 -> 159 bytes
-rw-r--r--Units/Assets/miner-01.png.import34
-rw-r--r--Units/Assets/miner-01.png~bin0 -> 174 bytes
-rw-r--r--Units/Assets/miner-02.pngbin0 -> 158 bytes
-rw-r--r--Units/Assets/miner-02.png.import34
-rw-r--r--Units/Assets/miner-02.png~bin0 -> 158 bytes
-rw-r--r--Units/Assets/miner-03.pngbin0 -> 164 bytes
-rw-r--r--Units/Assets/miner-03.png.import34
-rw-r--r--Units/Assets/miner-04.pngbin0 -> 155 bytes
-rw-r--r--Units/Assets/miner-04.png.import34
-rw-r--r--Units/Assets/miner-05.pngbin0 -> 159 bytes
-rw-r--r--Units/Assets/miner-05.png.import34
-rw-r--r--Units/Assets/miner-05.png~bin0 -> 182 bytes
-rw-r--r--Units/Assets/miner-06.pngbin0 -> 162 bytes
-rw-r--r--Units/Assets/miner-06.png.import34
-rw-r--r--Units/Assets/miner-07.pngbin0 -> 167 bytes
-rw-r--r--Units/Assets/miner-07.png.import34
-rw-r--r--Units/Assets/miner-08.pngbin0 -> 159 bytes
-rw-r--r--Units/Assets/miner-08.png.import34
-rw-r--r--Units/Assets/miner-09.pngbin0 -> 164 bytes
-rw-r--r--Units/Assets/miner-09.png.import34
-rw-r--r--Units/Assets/miner-10.pngbin0 -> 164 bytes
-rw-r--r--Units/Assets/miner-10.png.import34
-rw-r--r--Units/Assets/miner-11.pngbin0 -> 164 bytes
-rw-r--r--Units/Assets/miner-11.png.import34
-rw-r--r--Units/Assets/miner-12.pngbin0 -> 161 bytes
-rw-r--r--Units/Assets/miner-12.png.import34
-rw-r--r--Units/Assets/miner-13.pngbin0 -> 160 bytes
-rw-r--r--Units/Assets/miner-13.png.import34
-rw-r--r--Units/Assets/miner-14.pngbin0 -> 162 bytes
-rw-r--r--Units/Assets/miner-14.png.import34
-rw-r--r--Units/Assets/miner-15.pngbin0 -> 167 bytes
-rw-r--r--Units/Assets/miner-15.png.import34
-rw-r--r--Units/Assets/miner-16.pngbin0 -> 169 bytes
-rw-r--r--Units/Assets/miner-16.png.import34
-rw-r--r--Units/Assets/miner-17.pngbin0 -> 170 bytes
-rw-r--r--Units/Assets/miner-17.png.import34
-rw-r--r--Units/Assets/miner-17.png~bin0 -> 165 bytes
-rw-r--r--Units/Assets/miner-18.pngbin0 -> 171 bytes
-rw-r--r--Units/Assets/miner-18.png.import34
-rw-r--r--Units/Assets/miner.pngbin0 -> 842 bytes
-rw-r--r--Units/Assets/miner.png.import34
-rw-r--r--Units/Default.tscn26
-rw-r--r--Units/Digger.tscn2
-rw-r--r--Units/Miner.tscn222
-rw-r--r--Units/default.gd41
-rw-r--r--Units/digger.gd2
-rw-r--r--Units/miner.gd46
-rw-r--r--Units/unit.gd2
-rw-r--r--Units/units_sprite_frames.tres167
-rw-r--r--animation_player.gd8
-rw-r--r--animation_player.tscn6
-rw-r--r--game.gd2
-rw-r--r--project.godot8
113 files changed, 2124 insertions, 44 deletions
diff --git a/Stages/Goal/Goal.tscn b/Stages/Goal/Goal.tscn
index 2e208ec..bb5de7b 100644
--- a/Stages/Goal/Goal.tscn
+++ b/Stages/Goal/Goal.tscn
@@ -1,6 +1,7 @@
-[gd_scene load_steps=10 format=3 uid="uid://erjn41cnb3ha"]
+[gd_scene load_steps=11 format=3 uid="uid://erjn41cnb3ha"]
[ext_resource type="Script" path="res://Stages/Goal/goal.gd" id="1_olpsd"]
+[ext_resource type="PackedScene" uid="uid://bj8j72hwnt6mo" path="res://animated_sprite.tscn" id="2_5nfwa"]
[ext_resource type="Texture2D" uid="uid://dfd06s7jdcoh2" path="res://Stages/Goal/Assets/goal-01.png" id="2_fv7o7"]
[ext_resource type="Texture2D" uid="uid://cc5dx2nohiq0e" path="res://Stages/Goal/Assets/goal-02.png" id="3_55ojj"]
[ext_resource type="Texture2D" uid="uid://cllb8yhfyxo2c" path="res://Stages/Goal/Assets/goal-03.png" id="4_vme42"]
@@ -8,7 +9,7 @@
[ext_resource type="Texture2D" uid="uid://crfbfk6vwy5vg" path="res://Stages/Goal/Assets/goal-05.png" id="6_iyyas"]
[ext_resource type="Texture2D" uid="uid://rrwn2c4rwgvx" path="res://Stages/Goal/Assets/goal-06.png" id="7_dvlyc"]
-[sub_resource type="SpriteFrames" id="SpriteFrames_0huga"]
+[sub_resource type="SpriteFrames" id="SpriteFrames_mhkqq"]
animations = [{
"frames": [{
"duration": 1.0,
@@ -35,15 +36,14 @@ animations = [{
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7oxgv"]
-size = Vector2(8, 2)
+size = Vector2(4, 2)
[node name="Goal" type="Node2D"]
script = ExtResource("1_olpsd")
-[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
+[node name="AnimatedSprite" parent="." instance=ExtResource("2_5nfwa")]
texture_filter = 1
-sprite_frames = SubResource("SpriteFrames_0huga")
-frame_progress = 0.883034
+sprite_frames = SubResource("SpriteFrames_mhkqq")
centered = false
[node name="Area2D" type="Area2D" parent="."]
diff --git a/Stages/Goal/goal.gd b/Stages/Goal/goal.gd
index 6854d7a..934a071 100644
--- a/Stages/Goal/goal.gd
+++ b/Stages/Goal/goal.gd
@@ -2,7 +2,7 @@ extends Node2D
func _ready() -> void:
- $AnimatedSprite2D.play("default")
+ $AnimatedSprite.play("default")
func _on_area_2d_body_entered(body: Node2D) -> void:
diff --git a/Stages/Spawn/spawn.gd b/Stages/Spawn/spawn.gd
index fd7309a..0189632 100644
--- a/Stages/Spawn/spawn.gd
+++ b/Stages/Spawn/spawn.gd
@@ -16,7 +16,7 @@ func _ready() -> void:
$AnimatedSprite.play("default")
$AnimatedSprite.animation_finished.connect(func():
- _on_spawn_timer_timeout()
+ #_on_spawn_timer_timeout()
$SpawnTimer.start()
)
@@ -28,5 +28,5 @@ func _on_spawn_timer_timeout() -> void:
get_tree().current_scene.add_child(unit)
spawned_count += 1
- if spawned_count == spawn_count:
+ if spawned_count >= spawn_count:
$SpawnTimer.stop()
diff --git a/Stages/world_01.tscn b/Stages/world_01.tscn
index 577c4b2..3f8f06f 100644
--- a/Stages/world_01.tscn
+++ b/Stages/world_01.tscn
@@ -24,7 +24,7 @@ clip_children = 1
tile_map_data = PackedByteArray("AAABAAwAAgAAAAAAAAACAAwAAgABAAAAAAADAAwAAgABAAAAAAAEAAwAAgABAAAAAAAFAAwAAgABAAAAAAAGAAwAAgABAAAAAAAHAAwAAgABAAAAAAAIAAwAAgABAAAAAAAJAAwAAgABAAAAAAAKAAwAAgABAAAAAAALAAwAAgABAAAAAAAMAAwAAgABAAAAAAANAAwAAgABAAAAAAAOAAwAAgABAAAAAAAPAAwAAgABAAAAAAAQAAwAAgABAAAAAAARAAwAAgAAAAAAAAABAAsAAgAAAAAAAAARAAsAAgAAAAAAAAA=")
[node name="Spawn" parent="." instance=ExtResource("2_r2f03")]
-position = Vector2(31, 21)
+position = Vector2(32, 16)
spawn_count = 50
spawn_frequency = 1.0
diff --git a/UI/Assets/ButtonBackground.kra b/UI/Assets/ButtonBackground.kra
new file mode 100644
index 0000000..01cc26c
--- /dev/null
+++ b/UI/Assets/ButtonBackground.kra
Binary files differ
diff --git a/UI/Assets/ButtonBackground.kra~ b/UI/Assets/ButtonBackground.kra~
new file mode 100644
index 0000000..064553c
--- /dev/null
+++ b/UI/Assets/ButtonBackground.kra~
Binary files differ
diff --git a/UI/Assets/ButtonBlocker.png b/UI/Assets/ButtonBlocker.png
new file mode 100644
index 0000000..ec22fe8
--- /dev/null
+++ b/UI/Assets/ButtonBlocker.png
Binary files differ
diff --git a/UI/Assets/ButtonBlocker.png.import b/UI/Assets/ButtonBlocker.png.import
new file mode 100644
index 0000000..a6911b5
--- /dev/null
+++ b/UI/Assets/ButtonBlocker.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://nypt5ybs2yjf"
+path="res://.godot/imported/ButtonBlocker.png-d66206ffe9f20f0f85ae0b6c22af2b39.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://UI/Assets/ButtonBlocker.png"
+dest_files=["res://.godot/imported/ButtonBlocker.png-d66206ffe9f20f0f85ae0b6c22af2b39.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/UI/Assets/ButtonDigger.png b/UI/Assets/ButtonDigger.png
new file mode 100644
index 0000000..7ee9cfc
--- /dev/null
+++ b/UI/Assets/ButtonDigger.png
Binary files differ
diff --git a/UI/Assets/ButtonDigger.png.import b/UI/Assets/ButtonDigger.png.import
new file mode 100644
index 0000000..09303ad
--- /dev/null
+++ b/UI/Assets/ButtonDigger.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bg118k8yia0bf"
+path="res://.godot/imported/ButtonDigger.png-cf1dd6a1dee88b883e19f2a938ecbc0f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://UI/Assets/ButtonDigger.png"
+dest_files=["res://.godot/imported/ButtonDigger.png-cf1dd6a1dee88b883e19f2a938ecbc0f.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/UI/Assets/ButtonFloater.png b/UI/Assets/ButtonFloater.png
new file mode 100644
index 0000000..d0e64e3
--- /dev/null
+++ b/UI/Assets/ButtonFloater.png
Binary files differ
diff --git a/UI/Assets/ButtonFloater.png.import b/UI/Assets/ButtonFloater.png.import
new file mode 100644
index 0000000..a0b7c01
--- /dev/null
+++ b/UI/Assets/ButtonFloater.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://61yuhqwes5hw"
+path="res://.godot/imported/ButtonFloater.png-364d4a5ae4f59f72e8dbcd6e4acdf464.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://UI/Assets/ButtonFloater.png"
+dest_files=["res://.godot/imported/ButtonFloater.png-364d4a5ae4f59f72e8dbcd6e4acdf464.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/UI/Assets/ButtonMiner.png b/UI/Assets/ButtonMiner.png
new file mode 100644
index 0000000..bb68cea
--- /dev/null
+++ b/UI/Assets/ButtonMiner.png
Binary files differ
diff --git a/UI/Assets/ButtonMiner.png.import b/UI/Assets/ButtonMiner.png.import
new file mode 100644
index 0000000..a53d8fe
--- /dev/null
+++ b/UI/Assets/ButtonMiner.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0hcl4yvb02wx"
+path="res://.godot/imported/ButtonMiner.png-0b2051c793e78ca1483fddf34f005852.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://UI/Assets/ButtonMiner.png"
+dest_files=["res://.godot/imported/ButtonMiner.png-0b2051c793e78ca1483fddf34f005852.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/UI/Assets/ButtonMinus.png b/UI/Assets/ButtonMinus.png
new file mode 100644
index 0000000..7b92c6e
--- /dev/null
+++ b/UI/Assets/ButtonMinus.png
Binary files differ
diff --git a/UI/Assets/ButtonMinus.png.import b/UI/Assets/ButtonMinus.png.import
new file mode 100644
index 0000000..800ee7a
--- /dev/null
+++ b/UI/Assets/ButtonMinus.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dg3qtw0fdjmt5"
+path="res://.godot/imported/ButtonMinus.png-075f05033dd6f4e8e4951b5b8912d54d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://UI/Assets/ButtonMinus.png"
+dest_files=["res://.godot/imported/ButtonMinus.png-075f05033dd6f4e8e4951b5b8912d54d.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/UI/Assets/ButtonPlus.png b/UI/Assets/ButtonPlus.png
new file mode 100644
index 0000000..6f6cdfa
--- /dev/null
+++ b/UI/Assets/ButtonPlus.png
Binary files differ
diff --git a/UI/Assets/ButtonPlus.png.import b/UI/Assets/ButtonPlus.png.import
new file mode 100644
index 0000000..8d2e06b
--- /dev/null
+++ b/UI/Assets/ButtonPlus.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://wreo4yu472g8"
+path="res://.godot/imported/ButtonPlus.png-c9cec6fda7ce360ae8e870c082ee9ece.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://UI/Assets/ButtonPlus.png"
+dest_files=["res://.godot/imported/ButtonPlus.png-c9cec6fda7ce360ae8e870c082ee9ece.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/UI/Assets/Minimal3x5.ttf b/UI/Assets/Minimal3x5.ttf
new file mode 100755
index 0000000..3024b74
--- /dev/null
+++ b/UI/Assets/Minimal3x5.ttf
Binary files differ
diff --git a/UI/Assets/Minimal3x5.ttf.import b/UI/Assets/Minimal3x5.ttf.import
new file mode 100644
index 0000000..14b7f6a
--- /dev/null
+++ b/UI/Assets/Minimal3x5.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://crgfw6f835m3m"
+path="res://.godot/imported/Minimal3x5.ttf-dc2b1be58f03aff5eeaba82a04186949.fontdata"
+
+[deps]
+
+source_file="res://UI/Assets/Minimal3x5.ttf"
+dest_files=["res://.godot/imported/Minimal3x5.ttf-dc2b1be58f03aff5eeaba82a04186949.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/UI/Assets/Minimal5x5Monospaced.ttf b/UI/Assets/Minimal5x5Monospaced.ttf
new file mode 100755
index 0000000..8ef9fa1
--- /dev/null
+++ b/UI/Assets/Minimal5x5Monospaced.ttf
Binary files differ
diff --git a/UI/Assets/Minimal5x5Monospaced.ttf.import b/UI/Assets/Minimal5x5Monospaced.ttf.import
new file mode 100644
index 0000000..fb4b92d
--- /dev/null
+++ b/UI/Assets/Minimal5x5Monospaced.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://cj1xpi1laoqjn"
+path="res://.godot/imported/Minimal5x5Monospaced.ttf-a0848cfd04130d05a79e1d59149440f6.fontdata"
+
+[deps]
+
+source_file="res://UI/Assets/Minimal5x5Monospaced.ttf"
+dest_files=["res://.godot/imported/Minimal5x5Monospaced.ttf-a0848cfd04130d05a79e1d59149440f6.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/UI/Assets/Minimal5x7.ttf b/UI/Assets/Minimal5x7.ttf
new file mode 100755
index 0000000..7372987
--- /dev/null
+++ b/UI/Assets/Minimal5x7.ttf
Binary files differ
diff --git a/UI/Assets/Minimal5x7.ttf.import b/UI/Assets/Minimal5x7.ttf.import
new file mode 100644
index 0000000..1285d08
--- /dev/null
+++ b/UI/Assets/Minimal5x7.ttf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontFile"
+uid="uid://deqwl54q7v6ss"
+path="res://.godot/imported/Minimal5x7.ttf-06e99207940c6ab1948789ba6cea9b9b.fontdata"
+
+[deps]
+
+source_file="res://UI/Assets/Minimal5x7.ttf"
+dest_files=["res://.godot/imported/Minimal5x7.ttf-06e99207940c6ab1948789ba6cea9b9b.fontdata"]
+
+[params]
+
+Rendering=null
+antialiasing=1
+generate_mipmaps=false
+disable_embedded_bitmaps=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+allow_system_fallback=true
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+oversampling=0.0
+Fallbacks=null
+fallbacks=[]
+Compress=null
+compress=true
+preload=[]
+language_support={}
+script_support={}
+opentype_features={}
diff --git a/UI/HUD.tscn b/UI/HUD.tscn
index 5d4ac5b..b060ce3 100644
--- a/UI/HUD.tscn
+++ b/UI/HUD.tscn
@@ -1,13 +1,128 @@
-[gd_scene load_steps=2 format=3 uid="uid://d0mlxe0gcctle"]
+[gd_scene load_steps=9 format=3 uid="uid://d0mlxe0gcctle"]
[ext_resource type="Script" path="res://UI/hud.gd" id="1_rpghv"]
+[ext_resource type="Texture2D" uid="uid://nypt5ybs2yjf" path="res://UI/Assets/ButtonBlocker.png" id="2_6o4l1"]
+[ext_resource type="Theme" uid="uid://lpvaxe35v64b" path="res://UI/theme.tres" id="2_he3is"]
+[ext_resource type="Texture2D" uid="uid://bg118k8yia0bf" path="res://UI/Assets/ButtonDigger.png" id="3_585t4"]
+[ext_resource type="Texture2D" uid="uid://wreo4yu472g8" path="res://UI/Assets/ButtonPlus.png" id="4_dku02"]
+[ext_resource type="Texture2D" uid="uid://c0hcl4yvb02wx" path="res://UI/Assets/ButtonMiner.png" id="5_5j5y4"]
+[ext_resource type="Texture2D" uid="uid://dg3qtw0fdjmt5" path="res://UI/Assets/ButtonMinus.png" id="5_ybavg"]
+[ext_resource type="Texture2D" uid="uid://61yuhqwes5hw" path="res://UI/Assets/ButtonFloater.png" id="6_qnbw6"]
[node name="HUD" type="CanvasLayer"]
script = ExtResource("1_rpghv")
[node name="Score" type="Label" parent="."]
unique_name_in_owner = true
+texture_filter = 1
offset_left = 4.0
-offset_right = 14.0
-offset_bottom = 23.0
+offset_top = 4.0
+offset_right = 10.0
+offset_bottom = 14.0
+theme = ExtResource("2_he3is")
text = "0"
+
+[node name="Speed" type="Label" parent="."]
+unique_name_in_owner = true
+texture_filter = 1
+anchors_preset = 1
+anchor_left = 1.0
+anchor_right = 1.0
+offset_left = -8.0
+offset_top = 4.0
+offset_right = -4.0
+offset_bottom = 14.0
+grow_horizontal = 0
+theme = ExtResource("2_he3is")
+
+[node name="HBoxContainer" type="HBoxContainer" parent="."]
+anchors_preset = 12
+anchor_top = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 0
+theme = ExtResource("2_he3is")
+theme_override_constants/separation = 0
+
+[node name="ButtonBlocker" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("2_6o4l1")
+stretch_mode = 5
+
+[node name="ButtonDigger" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("3_585t4")
+stretch_mode = 5
+
+[node name="ButtonMiner" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("5_5j5y4")
+stretch_mode = 5
+
+[node name="ButtonBasher" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("3_585t4")
+stretch_mode = 5
+
+[node name="ButtonFloater" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("6_qnbw6")
+stretch_mode = 5
+
+[node name="ButtonBuilder" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("3_585t4")
+stretch_mode = 5
+
+[node name="ButtonClimber" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("3_585t4")
+stretch_mode = 5
+
+[node name="ButtonPlus" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("4_dku02")
+stretch_mode = 5
+
+[node name="ButtonMinus" type="TextureRect" parent="HBoxContainer"]
+texture_filter = 1
+custom_minimum_size = Vector2(16, 16)
+layout_mode = 2
+mouse_default_cursor_shape = 2
+texture = ExtResource("5_ybavg")
+stretch_mode = 5
+
+[connection signal="gui_input" from="HBoxContainer/ButtonBlocker" to="." method="_on_button_blocker_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonDigger" to="." method="_on_button_digger_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonMiner" to="." method="_on_button_miner_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonBasher" to="." method="_on_button_digger_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonFloater" to="." method="_on_button_digger_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonBuilder" to="." method="_on_button_digger_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonClimber" to="." method="_on_button_digger_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonPlus" to="." method="_on_button_plus_gui_input"]
+[connection signal="gui_input" from="HBoxContainer/ButtonMinus" to="." method="_on_button_minus_gui_input"]
diff --git a/UI/hud.gd b/UI/hud.gd
index d5f7cc3..909dfa6 100644
--- a/UI/hud.gd
+++ b/UI/hud.gd
@@ -5,3 +5,29 @@ func _ready() -> void:
Game.score_changed.connect(func():
%Score.text = str(Game.score)
)
+
+ Game.speed_changed.connect(func():
+ %Speed.text = str(Game.speed).pad_decimals(1) + "x"
+ )
+
+
+func _on_button_blocker_gui_input(event: InputEvent) -> void:
+ if event.is_action_pressed("select"):
+ Game.selected_unit_type = preload("res://Units/Blocker.tscn")
+
+func _on_button_digger_gui_input(event: InputEvent) -> void:
+ if event.is_action_pressed("select"):
+ Game.selected_unit_type = preload("res://Units/Digger.tscn")
+
+func _on_button_miner_gui_input(event: InputEvent) -> void:
+ if event.is_action_pressed("select"):
+ Game.selected_unit_type = preload("res://Units/Miner.tscn")
+
+
+func _on_button_plus_gui_input(event: InputEvent) -> void:
+ if event.is_action_pressed("select"):
+ Game.speed = min(Game.speed + 0.5, 5)
+
+func _on_button_minus_gui_input(event: InputEvent) -> void:
+ if event.is_action_pressed("select"):
+ Game.speed = max(Game.speed - 0.5, 0.5)
diff --git a/UI/theme.tres b/UI/theme.tres
new file mode 100644
index 0000000..151ae16
--- /dev/null
+++ b/UI/theme.tres
@@ -0,0 +1,7 @@
+[gd_resource type="Theme" load_steps=2 format=3 uid="uid://lpvaxe35v64b"]
+
+[ext_resource type="FontFile" uid="uid://deqwl54q7v6ss" path="res://UI/Assets/Minimal5x7.ttf" id="1_vykgj"]
+
+[resource]
+Label/font_sizes/font_size = 16
+Label/fonts/font = ExtResource("1_vykgj")
diff --git a/Units/Assets/.digger-12.png-autosave.kra b/Units/Assets/.digger-12.png-autosave.kra
deleted file mode 100644
index 48ea609..0000000
--- a/Units/Assets/.digger-12.png-autosave.kra
+++ /dev/null
Binary files differ
diff --git a/Units/Assets/exit-01.png b/Units/Assets/exit-01.png
new file mode 100644
index 0000000..175b033
--- /dev/null
+++ b/Units/Assets/exit-01.png
Binary files differ
diff --git a/Units/Assets/exit-01.png.import b/Units/Assets/exit-01.png.import
new file mode 100644
index 0000000..f7bd2f9
--- /dev/null
+++ b/Units/Assets/exit-01.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://km0awugqhka1"
+path="res://.godot/imported/exit-01.png-0863c7409d2c6dd7fb6c225a9e7116e4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/exit-01.png"
+dest_files=["res://.godot/imported/exit-01.png-0863c7409d2c6dd7fb6c225a9e7116e4.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/Units/Assets/exit-01.png~ b/Units/Assets/exit-01.png~
new file mode 100644
index 0000000..bf796f0
--- /dev/null
+++ b/Units/Assets/exit-01.png~
Binary files differ
diff --git a/Units/Assets/exit-02.png b/Units/Assets/exit-02.png
new file mode 100644
index 0000000..0979bad
--- /dev/null
+++ b/Units/Assets/exit-02.png
Binary files differ
diff --git a/Units/Assets/exit-02.png.import b/Units/Assets/exit-02.png.import
new file mode 100644
index 0000000..525e53b
--- /dev/null
+++ b/Units/Assets/exit-02.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c70rxgiloh6s1"
+path="res://.godot/imported/exit-02.png-abe167099db0ac732a886a46d2b7edc7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/exit-02.png"
+dest_files=["res://.godot/imported/exit-02.png-abe167099db0ac732a886a46d2b7edc7.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/Units/Assets/exit-03.png b/Units/Assets/exit-03.png
new file mode 100644
index 0000000..14b40a7
--- /dev/null
+++ b/Units/Assets/exit-03.png
Binary files differ
diff --git a/Units/Assets/exit-03.png.import b/Units/Assets/exit-03.png.import
new file mode 100644
index 0000000..331eed7
--- /dev/null
+++ b/Units/Assets/exit-03.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://mrmawi142ibv"
+path="res://.godot/imported/exit-03.png-489c6ada6bd328b1f5fe15921bbaf327.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/exit-03.png"
+dest_files=["res://.godot/imported/exit-03.png-489c6ada6bd328b1f5fe15921bbaf327.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/Units/Assets/exit-04.png b/Units/Assets/exit-04.png
new file mode 100644
index 0000000..d18817d
--- /dev/null
+++ b/Units/Assets/exit-04.png
Binary files differ
diff --git a/Units/Assets/exit-04.png.import b/Units/Assets/exit-04.png.import
new file mode 100644
index 0000000..183ea45
--- /dev/null
+++ b/Units/Assets/exit-04.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cqjjaulvtegxb"
+path="res://.godot/imported/exit-04.png-193db9992e158eea1d873e72b300594f.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/exit-04.png"
+dest_files=["res://.godot/imported/exit-04.png-193db9992e158eea1d873e72b300594f.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/Units/Assets/exit-05.png b/Units/Assets/exit-05.png
new file mode 100644
index 0000000..7ef4697
--- /dev/null
+++ b/Units/Assets/exit-05.png
Binary files differ
diff --git a/Units/Assets/exit-05.png.import b/Units/Assets/exit-05.png.import
new file mode 100644
index 0000000..542f2e6
--- /dev/null
+++ b/Units/Assets/exit-05.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://xtfk6fv2mm80"
+path="res://.godot/imported/exit-05.png-44f179e53257db44b4ae94afa1a9f160.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/exit-05.png"
+dest_files=["res://.godot/imported/exit-05.png-44f179e53257db44b4ae94afa1a9f160.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/Units/Assets/exit-06.png b/Units/Assets/exit-06.png
new file mode 100644
index 0000000..66b4ea0
--- /dev/null
+++ b/Units/Assets/exit-06.png
Binary files differ
diff --git a/Units/Assets/exit-06.png.import b/Units/Assets/exit-06.png.import
new file mode 100644
index 0000000..cf36dc8
--- /dev/null
+++ b/Units/Assets/exit-06.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ib60b2gtdyy7"
+path="res://.godot/imported/exit-06.png-da3501b992b47e7b9c01a52ccb9b18df.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/exit-06.png"
+dest_files=["res://.godot/imported/exit-06.png-da3501b992b47e7b9c01a52ccb9b18df.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/Units/Assets/exit-07.png b/Units/Assets/exit-07.png
new file mode 100644
index 0000000..e079ac3
--- /dev/null
+++ b/Units/Assets/exit-07.png
Binary files differ
diff --git a/Units/Assets/exit-07.png.import b/Units/Assets/exit-07.png.import
new file mode 100644
index 0000000..04afb53
--- /dev/null
+++ b/Units/Assets/exit-07.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b16d1f48vhjxe"
+path="res://.godot/imported/exit-07.png-bed70776eab1d37f3bdb6027612c62b9.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/exit-07.png"
+dest_files=["res://.godot/imported/exit-07.png-bed70776eab1d37f3bdb6027612c62b9.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/Units/Assets/floater-01.png b/Units/Assets/floater-01.png
new file mode 100644
index 0000000..edbd94f
--- /dev/null
+++ b/Units/Assets/floater-01.png
Binary files differ
diff --git a/Units/Assets/floater-01.png.import b/Units/Assets/floater-01.png.import
new file mode 100644
index 0000000..eb8180b
--- /dev/null
+++ b/Units/Assets/floater-01.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c0pfwxt1j6icl"
+path="res://.godot/imported/floater-01.png-01403e940d12506e35c907d8b0d622e7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-01.png"
+dest_files=["res://.godot/imported/floater-01.png-01403e940d12506e35c907d8b0d622e7.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/Units/Assets/floater-02.png b/Units/Assets/floater-02.png
new file mode 100644
index 0000000..5e22a29
--- /dev/null
+++ b/Units/Assets/floater-02.png
Binary files differ
diff --git a/Units/Assets/floater-02.png.import b/Units/Assets/floater-02.png.import
new file mode 100644
index 0000000..e60554a
--- /dev/null
+++ b/Units/Assets/floater-02.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b8yxomichoy45"
+path="res://.godot/imported/floater-02.png-15f4dbca6e071f53daf2618ba209d334.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-02.png"
+dest_files=["res://.godot/imported/floater-02.png-15f4dbca6e071f53daf2618ba209d334.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/Units/Assets/floater-03.png b/Units/Assets/floater-03.png
new file mode 100644
index 0000000..e7da511
--- /dev/null
+++ b/Units/Assets/floater-03.png
Binary files differ
diff --git a/Units/Assets/floater-03.png.import b/Units/Assets/floater-03.png.import
new file mode 100644
index 0000000..ec56c74
--- /dev/null
+++ b/Units/Assets/floater-03.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://blnv33e1x2j17"
+path="res://.godot/imported/floater-03.png-76d13dc15208b9fe1828dcbb1d89f3d0.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-03.png"
+dest_files=["res://.godot/imported/floater-03.png-76d13dc15208b9fe1828dcbb1d89f3d0.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/Units/Assets/floater-04.png b/Units/Assets/floater-04.png
new file mode 100644
index 0000000..3ea849f
--- /dev/null
+++ b/Units/Assets/floater-04.png
Binary files differ
diff --git a/Units/Assets/floater-04.png.import b/Units/Assets/floater-04.png.import
new file mode 100644
index 0000000..84d8dba
--- /dev/null
+++ b/Units/Assets/floater-04.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dxviaylicgatg"
+path="res://.godot/imported/floater-04.png-7637f3e96b50a721cbe6e10cdf0653ca.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-04.png"
+dest_files=["res://.godot/imported/floater-04.png-7637f3e96b50a721cbe6e10cdf0653ca.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/Units/Assets/floater-05.png b/Units/Assets/floater-05.png
new file mode 100644
index 0000000..e5cf011
--- /dev/null
+++ b/Units/Assets/floater-05.png
Binary files differ
diff --git a/Units/Assets/floater-05.png.import b/Units/Assets/floater-05.png.import
new file mode 100644
index 0000000..04420a4
--- /dev/null
+++ b/Units/Assets/floater-05.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bxssmwt7av2us"
+path="res://.godot/imported/floater-05.png-d7d9a9de4ed4bb0ab9be407363e8ff27.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-05.png"
+dest_files=["res://.godot/imported/floater-05.png-d7d9a9de4ed4bb0ab9be407363e8ff27.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/Units/Assets/floater-06.png b/Units/Assets/floater-06.png
new file mode 100644
index 0000000..dc3de2d
--- /dev/null
+++ b/Units/Assets/floater-06.png
Binary files differ
diff --git a/Units/Assets/floater-06.png.import b/Units/Assets/floater-06.png.import
new file mode 100644
index 0000000..47476d2
--- /dev/null
+++ b/Units/Assets/floater-06.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://8l70fbfaoqpm"
+path="res://.godot/imported/floater-06.png-32529fa20986ea31f2695b55a9dca242.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-06.png"
+dest_files=["res://.godot/imported/floater-06.png-32529fa20986ea31f2695b55a9dca242.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/Units/Assets/floater-07.png b/Units/Assets/floater-07.png
new file mode 100644
index 0000000..6bcf142
--- /dev/null
+++ b/Units/Assets/floater-07.png
Binary files differ
diff --git a/Units/Assets/floater-07.png.import b/Units/Assets/floater-07.png.import
new file mode 100644
index 0000000..5d8cb56
--- /dev/null
+++ b/Units/Assets/floater-07.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://u1mvjyxqder6"
+path="res://.godot/imported/floater-07.png-006d0d9308cee33de35b818b4b6845c7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-07.png"
+dest_files=["res://.godot/imported/floater-07.png-006d0d9308cee33de35b818b4b6845c7.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/Units/Assets/floater-08.png b/Units/Assets/floater-08.png
new file mode 100644
index 0000000..c3c77b8
--- /dev/null
+++ b/Units/Assets/floater-08.png
Binary files differ
diff --git a/Units/Assets/floater-08.png.import b/Units/Assets/floater-08.png.import
new file mode 100644
index 0000000..7e593cc
--- /dev/null
+++ b/Units/Assets/floater-08.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bg64xkr3swdpv"
+path="res://.godot/imported/floater-08.png-2dc09b522459d8ebaf073c37d9de8e39.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/floater-08.png"
+dest_files=["res://.godot/imported/floater-08.png-2dc09b522459d8ebaf073c37d9de8e39.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/Units/Assets/miner-01.png b/Units/Assets/miner-01.png
new file mode 100644
index 0000000..fbfe3aa
--- /dev/null
+++ b/Units/Assets/miner-01.png
Binary files differ
diff --git a/Units/Assets/miner-01.png.import b/Units/Assets/miner-01.png.import
new file mode 100644
index 0000000..fbf77f1
--- /dev/null
+++ b/Units/Assets/miner-01.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cdcue71m3y4fn"
+path="res://.godot/imported/miner-01.png-dbdbc65ffdb08aa0f3361e58b05a2883.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-01.png"
+dest_files=["res://.godot/imported/miner-01.png-dbdbc65ffdb08aa0f3361e58b05a2883.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/Units/Assets/miner-01.png~ b/Units/Assets/miner-01.png~
new file mode 100644
index 0000000..f0d0132
--- /dev/null
+++ b/Units/Assets/miner-01.png~
Binary files differ
diff --git a/Units/Assets/miner-02.png b/Units/Assets/miner-02.png
new file mode 100644
index 0000000..3f8c3aa
--- /dev/null
+++ b/Units/Assets/miner-02.png
Binary files differ
diff --git a/Units/Assets/miner-02.png.import b/Units/Assets/miner-02.png.import
new file mode 100644
index 0000000..1d944c9
--- /dev/null
+++ b/Units/Assets/miner-02.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bj4l04n47ldsc"
+path="res://.godot/imported/miner-02.png-d413b9840ceba9a4601a64d519af319b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-02.png"
+dest_files=["res://.godot/imported/miner-02.png-d413b9840ceba9a4601a64d519af319b.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/Units/Assets/miner-02.png~ b/Units/Assets/miner-02.png~
new file mode 100644
index 0000000..3f8c3aa
--- /dev/null
+++ b/Units/Assets/miner-02.png~
Binary files differ
diff --git a/Units/Assets/miner-03.png b/Units/Assets/miner-03.png
new file mode 100644
index 0000000..44d4d0a
--- /dev/null
+++ b/Units/Assets/miner-03.png
Binary files differ
diff --git a/Units/Assets/miner-03.png.import b/Units/Assets/miner-03.png.import
new file mode 100644
index 0000000..60bedf0
--- /dev/null
+++ b/Units/Assets/miner-03.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cq50ixm3jk5ob"
+path="res://.godot/imported/miner-03.png-f7b2ba42a3813524599209159ad6b2a3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-03.png"
+dest_files=["res://.godot/imported/miner-03.png-f7b2ba42a3813524599209159ad6b2a3.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/Units/Assets/miner-04.png b/Units/Assets/miner-04.png
new file mode 100644
index 0000000..1063bac
--- /dev/null
+++ b/Units/Assets/miner-04.png
Binary files differ
diff --git a/Units/Assets/miner-04.png.import b/Units/Assets/miner-04.png.import
new file mode 100644
index 0000000..0777905
--- /dev/null
+++ b/Units/Assets/miner-04.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://tii2a3253xgy"
+path="res://.godot/imported/miner-04.png-dc9ae35cefcc4e796d3e0ec3f419d72a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-04.png"
+dest_files=["res://.godot/imported/miner-04.png-dc9ae35cefcc4e796d3e0ec3f419d72a.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/Units/Assets/miner-05.png b/Units/Assets/miner-05.png
new file mode 100644
index 0000000..16b33b9
--- /dev/null
+++ b/Units/Assets/miner-05.png
Binary files differ
diff --git a/Units/Assets/miner-05.png.import b/Units/Assets/miner-05.png.import
new file mode 100644
index 0000000..7cc6a95
--- /dev/null
+++ b/Units/Assets/miner-05.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://nxf6pu06ifoi"
+path="res://.godot/imported/miner-05.png-13764f421132186e15a1e02d68fe841a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-05.png"
+dest_files=["res://.godot/imported/miner-05.png-13764f421132186e15a1e02d68fe841a.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/Units/Assets/miner-05.png~ b/Units/Assets/miner-05.png~
new file mode 100644
index 0000000..ff14406
--- /dev/null
+++ b/Units/Assets/miner-05.png~
Binary files differ
diff --git a/Units/Assets/miner-06.png b/Units/Assets/miner-06.png
new file mode 100644
index 0000000..766f905
--- /dev/null
+++ b/Units/Assets/miner-06.png
Binary files differ
diff --git a/Units/Assets/miner-06.png.import b/Units/Assets/miner-06.png.import
new file mode 100644
index 0000000..825c58e
--- /dev/null
+++ b/Units/Assets/miner-06.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b7p40arswwtmg"
+path="res://.godot/imported/miner-06.png-a451e2e005e7933b9c6411399285a53a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-06.png"
+dest_files=["res://.godot/imported/miner-06.png-a451e2e005e7933b9c6411399285a53a.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/Units/Assets/miner-07.png b/Units/Assets/miner-07.png
new file mode 100644
index 0000000..93656a0
--- /dev/null
+++ b/Units/Assets/miner-07.png
Binary files differ
diff --git a/Units/Assets/miner-07.png.import b/Units/Assets/miner-07.png.import
new file mode 100644
index 0000000..7851301
--- /dev/null
+++ b/Units/Assets/miner-07.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bdfy84jag4fgw"
+path="res://.godot/imported/miner-07.png-4fa400e6f6f8c648380eb83168c446a3.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-07.png"
+dest_files=["res://.godot/imported/miner-07.png-4fa400e6f6f8c648380eb83168c446a3.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/Units/Assets/miner-08.png b/Units/Assets/miner-08.png
new file mode 100644
index 0000000..d10a0f5
--- /dev/null
+++ b/Units/Assets/miner-08.png
Binary files differ
diff --git a/Units/Assets/miner-08.png.import b/Units/Assets/miner-08.png.import
new file mode 100644
index 0000000..3356f08
--- /dev/null
+++ b/Units/Assets/miner-08.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ghgrmytmqvn0"
+path="res://.godot/imported/miner-08.png-715f5b9484f9241750d735a09ca1e646.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-08.png"
+dest_files=["res://.godot/imported/miner-08.png-715f5b9484f9241750d735a09ca1e646.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/Units/Assets/miner-09.png b/Units/Assets/miner-09.png
new file mode 100644
index 0000000..0fdbc5d
--- /dev/null
+++ b/Units/Assets/miner-09.png
Binary files differ
diff --git a/Units/Assets/miner-09.png.import b/Units/Assets/miner-09.png.import
new file mode 100644
index 0000000..fdaa1c9
--- /dev/null
+++ b/Units/Assets/miner-09.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c31xmruam02e7"
+path="res://.godot/imported/miner-09.png-5bf82a3c8da3aa24c7a3b6cf5e1618b4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-09.png"
+dest_files=["res://.godot/imported/miner-09.png-5bf82a3c8da3aa24c7a3b6cf5e1618b4.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/Units/Assets/miner-10.png b/Units/Assets/miner-10.png
new file mode 100644
index 0000000..0fdbc5d
--- /dev/null
+++ b/Units/Assets/miner-10.png
Binary files differ
diff --git a/Units/Assets/miner-10.png.import b/Units/Assets/miner-10.png.import
new file mode 100644
index 0000000..dea2467
--- /dev/null
+++ b/Units/Assets/miner-10.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bcgmr7dw6psa7"
+path="res://.godot/imported/miner-10.png-3eda4bef9f70b3a13ad2d182466887b7.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-10.png"
+dest_files=["res://.godot/imported/miner-10.png-3eda4bef9f70b3a13ad2d182466887b7.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/Units/Assets/miner-11.png b/Units/Assets/miner-11.png
new file mode 100644
index 0000000..0fdbc5d
--- /dev/null
+++ b/Units/Assets/miner-11.png
Binary files differ
diff --git a/Units/Assets/miner-11.png.import b/Units/Assets/miner-11.png.import
new file mode 100644
index 0000000..c9dc559
--- /dev/null
+++ b/Units/Assets/miner-11.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://beim7nay76ft1"
+path="res://.godot/imported/miner-11.png-f3412fa209353187c62c28fdad2bb1a8.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-11.png"
+dest_files=["res://.godot/imported/miner-11.png-f3412fa209353187c62c28fdad2bb1a8.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/Units/Assets/miner-12.png b/Units/Assets/miner-12.png
new file mode 100644
index 0000000..fd8d804
--- /dev/null
+++ b/Units/Assets/miner-12.png
Binary files differ
diff --git a/Units/Assets/miner-12.png.import b/Units/Assets/miner-12.png.import
new file mode 100644
index 0000000..ce7242d
--- /dev/null
+++ b/Units/Assets/miner-12.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://kuxb32jwbnjx"
+path="res://.godot/imported/miner-12.png-cf5a6f06cdae64f00a78f003fff30abd.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-12.png"
+dest_files=["res://.godot/imported/miner-12.png-cf5a6f06cdae64f00a78f003fff30abd.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/Units/Assets/miner-13.png b/Units/Assets/miner-13.png
new file mode 100644
index 0000000..205f567
--- /dev/null
+++ b/Units/Assets/miner-13.png
Binary files differ
diff --git a/Units/Assets/miner-13.png.import b/Units/Assets/miner-13.png.import
new file mode 100644
index 0000000..6129824
--- /dev/null
+++ b/Units/Assets/miner-13.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://4kwui6eycr25"
+path="res://.godot/imported/miner-13.png-15ea5a74984c07450785ca6d602d432b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-13.png"
+dest_files=["res://.godot/imported/miner-13.png-15ea5a74984c07450785ca6d602d432b.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/Units/Assets/miner-14.png b/Units/Assets/miner-14.png
new file mode 100644
index 0000000..ca8e445
--- /dev/null
+++ b/Units/Assets/miner-14.png
Binary files differ
diff --git a/Units/Assets/miner-14.png.import b/Units/Assets/miner-14.png.import
new file mode 100644
index 0000000..bceb495
--- /dev/null
+++ b/Units/Assets/miner-14.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b328uxltil0v0"
+path="res://.godot/imported/miner-14.png-e9253be63df5817a5c6537b003289263.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-14.png"
+dest_files=["res://.godot/imported/miner-14.png-e9253be63df5817a5c6537b003289263.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/Units/Assets/miner-15.png b/Units/Assets/miner-15.png
new file mode 100644
index 0000000..5c1dbb0
--- /dev/null
+++ b/Units/Assets/miner-15.png
Binary files differ
diff --git a/Units/Assets/miner-15.png.import b/Units/Assets/miner-15.png.import
new file mode 100644
index 0000000..463fd47
--- /dev/null
+++ b/Units/Assets/miner-15.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bvbw2uuk37k0v"
+path="res://.godot/imported/miner-15.png-206839ad578beed00541671555ef6c73.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-15.png"
+dest_files=["res://.godot/imported/miner-15.png-206839ad578beed00541671555ef6c73.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/Units/Assets/miner-16.png b/Units/Assets/miner-16.png
new file mode 100644
index 0000000..af24c95
--- /dev/null
+++ b/Units/Assets/miner-16.png
Binary files differ
diff --git a/Units/Assets/miner-16.png.import b/Units/Assets/miner-16.png.import
new file mode 100644
index 0000000..ad810dd
--- /dev/null
+++ b/Units/Assets/miner-16.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://blbvuk0ysy035"
+path="res://.godot/imported/miner-16.png-ea653bf928c468540f6af8cb4d5f122c.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-16.png"
+dest_files=["res://.godot/imported/miner-16.png-ea653bf928c468540f6af8cb4d5f122c.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/Units/Assets/miner-17.png b/Units/Assets/miner-17.png
new file mode 100644
index 0000000..2e83167
--- /dev/null
+++ b/Units/Assets/miner-17.png
Binary files differ
diff --git a/Units/Assets/miner-17.png.import b/Units/Assets/miner-17.png.import
new file mode 100644
index 0000000..75be327
--- /dev/null
+++ b/Units/Assets/miner-17.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bdjuadrtwmlxp"
+path="res://.godot/imported/miner-17.png-6828f98791ae4e1a3da62b23935d9bb4.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-17.png"
+dest_files=["res://.godot/imported/miner-17.png-6828f98791ae4e1a3da62b23935d9bb4.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/Units/Assets/miner-17.png~ b/Units/Assets/miner-17.png~
new file mode 100644
index 0000000..f6a94ab
--- /dev/null
+++ b/Units/Assets/miner-17.png~
Binary files differ
diff --git a/Units/Assets/miner-18.png b/Units/Assets/miner-18.png
new file mode 100644
index 0000000..5a6be57
--- /dev/null
+++ b/Units/Assets/miner-18.png
Binary files differ
diff --git a/Units/Assets/miner-18.png.import b/Units/Assets/miner-18.png.import
new file mode 100644
index 0000000..6886465
--- /dev/null
+++ b/Units/Assets/miner-18.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://iqrg1kd6173l"
+path="res://.godot/imported/miner-18.png-8a255799a2808285b0b97ca1979cb808.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner-18.png"
+dest_files=["res://.godot/imported/miner-18.png-8a255799a2808285b0b97ca1979cb808.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/Units/Assets/miner.png b/Units/Assets/miner.png
new file mode 100644
index 0000000..3f4ce73
--- /dev/null
+++ b/Units/Assets/miner.png
Binary files differ
diff --git a/Units/Assets/miner.png.import b/Units/Assets/miner.png.import
new file mode 100644
index 0000000..e8e9c02
--- /dev/null
+++ b/Units/Assets/miner.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bxhe4q74coogc"
+path="res://.godot/imported/miner.png-9b55a197f252cfb0f08e2bb41aa6e174.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Units/Assets/miner.png"
+dest_files=["res://.godot/imported/miner.png-9b55a197f252cfb0f08e2bb41aa6e174.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/Units/Default.tscn b/Units/Default.tscn
index 1e33862..38bcc9c 100644
--- a/Units/Default.tscn
+++ b/Units/Default.tscn
@@ -4,12 +4,14 @@
[ext_resource type="PackedScene" uid="uid://bj8j72hwnt6mo" path="res://animated_sprite.tscn" id="2_5hewh"]
[ext_resource type="SpriteFrames" uid="uid://diwyagjvsgq0i" path="res://Units/units_sprite_frames.tres" id="2_y5w2o"]
-[sub_resource type="RectangleShape2D" id="RectangleShape2D_j6kqi"]
-size = Vector2(4, 9)
+[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_p461f"]
+radius = 2.0
+height = 9.0
[node name="Default" type="CharacterBody2D"]
collision_mask = 256
input_pickable = true
+safe_margin = 0.01
script = ExtResource("1_kguyl")
[node name="AnimatedSprite" parent="." instance=ExtResource("2_5hewh")]
@@ -21,15 +23,25 @@ offset = Vector2(-3, -5)
[node name="NavigationShape" type="CollisionShape2D" parent="."]
position = Vector2(0, 0.5)
-shape = SubResource("RectangleShape2D_j6kqi")
+shape = SubResource("CapsuleShape2D_p461f")
-[node name="RayLeft" type="RayCast2D" parent="."]
-position = Vector2(0, 4)
+[node name="RayWallLeft" type="RayCast2D" parent="."]
+position = Vector2(0, 3)
target_position = Vector2(-3, 0)
collision_mask = 258
-[node name="RayRight" type="RayCast2D" parent="."]
-position = Vector2(0, 4)
+[node name="RaySlopeLeft" type="RayCast2D" parent="."]
+position = Vector2(0, 5)
+target_position = Vector2(-3, 0)
+collision_mask = 258
+
+[node name="RayWallRight" type="RayCast2D" parent="."]
+position = Vector2(0, 3)
+target_position = Vector2(4, 0)
+collision_mask = 258
+
+[node name="RaySlopeRight" type="RayCast2D" parent="."]
+position = Vector2(0, 5)
target_position = Vector2(4, 0)
collision_mask = 258
diff --git a/Units/Digger.tscn b/Units/Digger.tscn
index 819a969..f5db103 100644
--- a/Units/Digger.tscn
+++ b/Units/Digger.tscn
@@ -15,7 +15,7 @@ script = ExtResource("1_gtw36")
texture_filter = 1
sprite_frames = ExtResource("2_hf257")
animation = &"dig"
-frame_progress = 0.487318
+frame_progress = 0.183831
centered = false
offset = Vector2(-7, -10)
diff --git a/Units/Miner.tscn b/Units/Miner.tscn
new file mode 100644
index 0000000..28ebac7
--- /dev/null
+++ b/Units/Miner.tscn
@@ -0,0 +1,222 @@
+[gd_scene load_steps=9 format=3 uid="uid://i5s3jsgofbg4"]
+
+[ext_resource type="Script" path="res://Units/miner.gd" id="1_x7v12"]
+[ext_resource type="PackedScene" uid="uid://bj8j72hwnt6mo" path="res://animated_sprite.tscn" id="2_47g82"]
+[ext_resource type="SpriteFrames" uid="uid://diwyagjvsgq0i" path="res://Units/units_sprite_frames.tres" id="3_fgjfm"]
+[ext_resource type="PackedScene" uid="uid://bi2ndv451jpww" path="res://animation_player.tscn" id="4_1ydpk"]
+
+[sub_resource type="RectangleShape2D" id="RectangleShape2D_j6kqi"]
+size = Vector2(4, 10)
+
+[sub_resource type="Animation" id="Animation_glqtg"]
+resource_name = "mine"
+length = 1.8
+loop_mode = 1
+step = 0.1
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("AnimatedSprite:animation")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 1,
+"values": [&"mine"]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("AnimatedSprite:frame")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7),
+"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
+"update": 1,
+"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("PickaxePolygon:position")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0, 0.1, 0.2, 1.6, 1.7),
+"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
+"update": 1,
+"values": [Vector2(3, -1), Vector2(0, 0), Vector2(-1, 0), Vector2(-3, -1), Vector2(-2, -2)]
+}
+tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath("PickaxePolygon:rotation")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"times": PackedFloat32Array(0, 0.1, 0.2, 1.6, 1.7),
+"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
+"update": 1,
+"values": [-1.5708, 0.0, 1.5708, 0.785398, 0.0]
+}
+tracks/4/type = "method"
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/path = NodePath(".")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/keys = {
+"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8),
+"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
+"values": [{
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}, {
+"args": [],
+"method": &"mine"
+}]
+}
+
+[sub_resource type="Animation" id="Animation_2xcaf"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("AnimatedSprite:animation")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 1,
+"values": [&"mine"]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("AnimatedSprite:frame")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 1,
+"values": [1]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("PickaxePolygon:position")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [Vector2(0, 0)]
+}
+tracks/3/type = "value"
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/path = NodePath("PickaxePolygon:rotation")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [0.0]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_1jt7m"]
+_data = {
+"RESET": SubResource("Animation_2xcaf"),
+"mine": SubResource("Animation_glqtg")
+}
+
+[node name="Miner" type="CharacterBody2D"]
+collision_mask = 256
+script = ExtResource("1_x7v12")
+
+[node name="AnimatedSprite" parent="." instance=ExtResource("2_47g82")]
+texture_filter = 1
+sprite_frames = ExtResource("3_fgjfm")
+animation = &"mine"
+frame = 1
+centered = false
+offset = Vector2(-7, -8)
+
+[node name="NavigationShape" type="CollisionShape2D" parent="."]
+position = Vector2(-1, 0)
+shape = SubResource("RectangleShape2D_j6kqi")
+
+[node name="RayGround" type="RayCast2D" parent="."]
+target_position = Vector2(7, 7)
+collision_mask = 256
+
+[node name="RayForward" type="RayCast2D" parent="."]
+target_position = Vector2(8, 0)
+collision_mask = 256
+
+[node name="AnimationPlayer" parent="." instance=ExtResource("4_1ydpk")]
+deterministic = true
+libraries = {
+"": SubResource("AnimationLibrary_1jt7m")
+}
+
+[node name="PickaxePolygon" type="Polygon2D" parent="."]
+color = Color(1, 1, 1, 0)
+polygon = PackedVector2Array(-1, -8, -1, -4, 2, -4, 2, -3, 3, -3, 3, -1, 7, -1, 7, -6, 7, -8, 5, -8)
diff --git a/Units/default.gd b/Units/default.gd
index 23987c3..bd571a8 100644
--- a/Units/default.gd
+++ b/Units/default.gd
@@ -10,40 +10,39 @@ func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity.x = 0
velocity += get_gravity() * delta * Game.speed
- $AnimatedSprite.play("fall")
+ if velocity.y > (get_gravity().y / 10):
+ $AnimatedSprite.play("fall")
- if $RayLeft.is_colliding():
+ if $RayWallLeft.is_colliding():
direction = Vector2.RIGHT
- elif $RayRight.is_colliding():
+ elif $RayWallRight.is_colliding():
direction = Vector2.LEFT
if is_on_floor():
+ if (
+ ($RaySlopeLeft.is_colliding() and not $RayWallLeft.is_colliding()) or
+ ($RaySlopeRight.is_colliding() and not $RayWallRight.is_colliding())
+ ):
+ position.y -= 10 * delta * Game.speed
+ position.x += 10 * direction.x * delta * Game.speed
+
velocity.x = direction.x * speed * delta * Game.speed
$AnimatedSprite.play("walk")
$AnimatedSprite.flip_h = direction.x < 0
move_and_slide()
- var collision = get_last_slide_collision()
- if collision:
- var collider = collision.get_collider() as TileMapLayer
- if collider is TileMapLayer:
- var cell = collider.get_cell_tile_data(collider.get_coords_for_body_rid(collision.get_collider_rid())) as TileData
- cell.set_collision_polygon_points(0, 0, PackedVector2Array([
- Vector2(-7,-7), Vector2(-7,7), Vector2(7,7), Vector2(7,-7)
- ]))
func _on_input_event(_viewport: Node, event: InputEvent, _shape_idx: int) -> void:
- if event.is_action_pressed("select"):
- get_viewport().set_input_as_handled()
- var blocker = preload("res://Units/Blocker.tscn").instantiate()
- blocker.position = global_position
- get_tree().current_scene.add_child(blocker)
- queue_free()
- if event.is_action_pressed("select2"):
+ if event.is_action_pressed("select") and Game.selected_unit_type:
get_viewport().set_input_as_handled()
- var blocker = preload("res://Units/Digger.tscn").instantiate()
- blocker.position = global_position
- get_tree().current_scene.add_child(blocker)
+
+ var unit = Game.selected_unit_type.instantiate()
+ unit.position = global_position
+
+ if "direction" in unit:
+ unit.direction = direction
+
+ get_tree().current_scene.add_child(unit)
queue_free()
diff --git a/Units/digger.gd b/Units/digger.gd
index 29a8275..a215185 100644
--- a/Units/digger.gd
+++ b/Units/digger.gd
@@ -32,7 +32,7 @@ func _physics_process(delta: float) -> void:
func _on_tick_timer_timeout() -> void:
- var size = Vector2($NavigationShape.shape.size.x + 4, 4)
+ var size = Vector2($NavigationShape.shape.size.x + 4, 3) # y ungerade
Game.erase_map(
PackedVector2Array([
diff --git a/Units/miner.gd b/Units/miner.gd
new file mode 100644
index 0000000..ac8d0b4
--- /dev/null
+++ b/Units/miner.gd
@@ -0,0 +1,46 @@
+extends Unit
+
+
+var direction := Vector2.RIGHT
+
+
+func _ready():
+ $AnimationPlayer.play("mine")
+ scale = Vector2(direction.x, 1)
+
+ $RayGround.force_raycast_update()
+ $RayForward.force_raycast_update()
+
+
+func _physics_process(delta: float) -> void:
+ if not is_on_floor():
+ velocity += get_gravity() * delta * Game.speed
+
+ velocity.x = direction.x * 100 * delta * Game.speed
+
+ if not $RayGround.is_colliding() and not $RayForward.is_colliding():
+ var default = load("res://Units/Default.tscn").instantiate()
+ default.global_position = global_position
+ default.direction = direction
+ get_tree().current_scene.add_child(default)
+ queue_free()
+
+ move_and_slide()
+
+
+func mine() -> void:
+ var points = []
+ for point: Vector2 in $PickaxePolygon.polygon:
+ points.append(
+ global_position +
+ ($PickaxePolygon.position * Vector2(direction.x, 1)) +
+ (point.rotated($PickaxePolygon.rotation) * Vector2(direction.x, 1))
+ )
+
+ (func():
+ Game.erase_map(
+ PackedVector2Array(points),
+ get_tree().current_scene.get_node("GroundCollision"),
+ get_tree().current_scene.get_node("Map")
+ )
+ ).call_deferred()
diff --git a/Units/unit.gd b/Units/unit.gd
index 05a2b7d..ca946dc 100644
--- a/Units/unit.gd
+++ b/Units/unit.gd
@@ -5,6 +5,8 @@ extends CharacterBody2D
func enter_goal(goal_center: Vector2):
set_physics_process(false)
+ $AnimatedSprite.play("exit")
+
var tween = get_tree().create_tween()
tween.tween_property(self, "position", goal_center, 1.0 / Game.speed)
tween.tween_property(self, "scale", Vector2(0.1, 0.1), 1.0 / Game.speed)
diff --git a/Units/units_sprite_frames.tres b/Units/units_sprite_frames.tres
index 9de7d52..680b88e 100644
--- a/Units/units_sprite_frames.tres
+++ b/Units/units_sprite_frames.tres
@@ -1,4 +1,4 @@
-[gd_resource type="SpriteFrames" load_steps=35 format=3 uid="uid://diwyagjvsgq0i"]
+[gd_resource type="SpriteFrames" load_steps=61 format=3 uid="uid://diwyagjvsgq0i"]
[ext_resource type="Texture2D" uid="uid://b83lx3sg8gy3a" path="res://Units/Assets/block-01.png" id="1_r18gm"]
[ext_resource type="Texture2D" uid="uid://b6lxu22gho4h6" path="res://Units/Assets/walk-01.png" id="1_rqt5u"]
@@ -34,6 +34,86 @@
[ext_resource type="Texture2D" uid="uid://5ytob6fb7xg1" path="res://Units/Assets/digger-10.png" id="16_mv4ra"]
[ext_resource type="Texture2D" uid="uid://dgyaiolxqewej" path="res://Units/Assets/digger-11.png" id="17_8mltx"]
[ext_resource type="Texture2D" uid="uid://lk8pl2yionqq" path="res://Units/Assets/digger-12.png" id="18_yspw3"]
+[ext_resource type="Texture2D" uid="uid://km0awugqhka1" path="res://Units/Assets/exit-01.png" id="19_jlc3w"]
+[ext_resource type="Texture2D" uid="uid://c70rxgiloh6s1" path="res://Units/Assets/exit-02.png" id="20_s72v2"]
+[ext_resource type="Texture2D" uid="uid://mrmawi142ibv" path="res://Units/Assets/exit-03.png" id="21_qt3oa"]
+[ext_resource type="Texture2D" uid="uid://cqjjaulvtegxb" path="res://Units/Assets/exit-04.png" id="22_wkiiu"]
+[ext_resource type="Texture2D" uid="uid://xtfk6fv2mm80" path="res://Units/Assets/exit-05.png" id="23_apw3q"]
+[ext_resource type="Texture2D" uid="uid://ib60b2gtdyy7" path="res://Units/Assets/exit-06.png" id="24_idv5a"]
+[ext_resource type="Texture2D" uid="uid://b16d1f48vhjxe" path="res://Units/Assets/exit-07.png" id="25_ayva2"]
+[ext_resource type="Texture2D" uid="uid://bxhe4q74coogc" path="res://Units/Assets/miner.png" id="34_5sy4j"]
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_tpeqv"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(0, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_l0f3d"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(12, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_tx2x8"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(24, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_f8iqh"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(36, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_km4kg"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(48, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_qyqxf"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(60, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_wkpgh"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(72, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_e3om0"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(84, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_4iy2o"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(96, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_105bb"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(108, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_ukqf3"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(120, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_ligfc"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(132, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_m5aib"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(144, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_0xrh5"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(156, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_fs4qd"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(168, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_vhrl5"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(180, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_61s1k"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(192, 0, 12, 13)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_71ygu"]
+atlas = ExtResource("34_5sy4j")
+region = Rect2(204, 0, 12, 13)
[resource]
animations = [{
@@ -103,6 +183,32 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
+"texture": ExtResource("19_jlc3w")
+}, {
+"duration": 1.0,
+"texture": ExtResource("20_s72v2")
+}, {
+"duration": 1.0,
+"texture": ExtResource("21_qt3oa")
+}, {
+"duration": 1.0,
+"texture": ExtResource("22_wkiiu")
+}, {
+"duration": 1.0,
+"texture": ExtResource("23_apw3q")
+}, {
+"duration": 1.0,
+"texture": ExtResource("24_idv5a")
+}, {
+"duration": 1.0,
+"texture": ExtResource("25_ayva2")
+}],
+"loop": false,
+"name": &"exit",
+"speed": 6.0
+}, {
+"frames": [{
+"duration": 1.0,
"texture": ExtResource("9_0mfdb")
}, {
"duration": 1.0,
@@ -132,6 +238,65 @@ animations = [{
}, {
"frames": [{
"duration": 1.0,
+"texture": SubResource("AtlasTexture_tpeqv")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_l0f3d")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_tx2x8")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_f8iqh")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_km4kg")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_qyqxf")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_wkpgh")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_e3om0")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_4iy2o")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_105bb")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_ukqf3")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_ligfc")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_m5aib")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_0xrh5")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_fs4qd")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_vhrl5")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_61s1k")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_71ygu")
+}],
+"loop": true,
+"name": &"mine",
+"speed": 10.0
+}, {
+"frames": [{
+"duration": 1.0,
"texture": ExtResource("1_rqt5u")
}, {
"duration": 1.0,
diff --git a/animation_player.gd b/animation_player.gd
new file mode 100644
index 0000000..c3b4d7d
--- /dev/null
+++ b/animation_player.gd
@@ -0,0 +1,8 @@
+extends AnimationPlayer
+
+
+func _ready() -> void:
+ speed_scale = Game.speed
+ Game.speed_changed.connect(func():
+ speed_scale = Game.speed
+ )
diff --git a/animation_player.tscn b/animation_player.tscn
new file mode 100644
index 0000000..c176414
--- /dev/null
+++ b/animation_player.tscn
@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=3 uid="uid://bi2ndv451jpww"]
+
+[ext_resource type="Script" path="res://animation_player.gd" id="1_sf0h6"]
+
+[node name="AnimationPlayer" type="AnimationPlayer"]
+script = ExtResource("1_sf0h6")
diff --git a/game.gd b/game.gd
index 4e6074f..c628524 100644
--- a/game.gd
+++ b/game.gd
@@ -13,6 +13,8 @@ var score := 0 :
score = value
score_changed.emit()
+var selected_unit_type: PackedScene
+
func erase_map(points: PackedVector2Array, collision_container: StaticBody2D, visibility_container: Node2D):
var collision_polygons = collision_container.get_children()
diff --git a/project.godot b/project.godot
index eec8314..db101ce 100644
--- a/project.godot
+++ b/project.godot
@@ -25,6 +25,14 @@ window/size/viewport_width=320
window/size/viewport_height=240
window/stretch/mode="viewport"
+[file_customization]
+
+folder_colors={
+"res://Stages/": "yellow",
+"res://UI/": "gray",
+"res://Units/": "green"
+}
+
[input]
select={