From 6ffc9d3ba9947cf95ed65e8c37d6efc7b0160645 Mon Sep 17 00:00:00 2001 From: Kilokem Date: Wed, 30 Apr 2025 00:46:12 +0200 Subject: [PATCH] Mortar first act --- Assets/Bullets/mortarbullet (1).png | Bin 0 -> 4362 bytes Assets/Bullets/mortarbullet (1).png.import | 34 ++++++++++++ Assets/Bullets/mortarbullet (2).png | Bin 0 -> 1978 bytes Assets/Bullets/mortarbullet (2).png.import | 34 ++++++++++++ Assets/Bullets/mortarbullet (3).png | Bin 0 -> 2116 bytes Assets/Bullets/mortarbullet (3).png.import | 34 ++++++++++++ Assets/Bullets/mortarbullet (4).png | Bin 0 -> 2278 bytes Assets/Bullets/mortarbullet (4).png.import | 34 ++++++++++++ Assets/Bullets/mortarbullet (5).png | Bin 0 -> 2041 bytes Assets/Bullets/mortarbullet (5).png.import | 34 ++++++++++++ Assets/Bullets/mortarbullet (6).png | Bin 0 -> 1011 bytes Assets/Bullets/mortarbullet (6).png.import | 34 ++++++++++++ Assets/Towers/Mortar part (1).png | Bin 0 -> 4984 bytes Assets/Towers/Mortar part (1).png.import | 34 ++++++++++++ Assets/Towers/Mortar part (2).png | Bin 0 -> 15984 bytes Assets/Towers/Mortar part (2).png.import | 34 ++++++++++++ Assets/Towers/Mortar part (3).png | Bin 0 -> 3499 bytes Assets/Towers/Mortar part (3).png.import | 34 ++++++++++++ Game/Bullets/bullet.gd | 37 +++++++++++-- Game/Bullets/rock.tscn | 59 +++++++++++++++++++++ Game/Towers/mortar_tower.tscn | 48 +++++++++++++++++ Game/Towers/towers.gd | 22 ++++++-- Game/sidepanel.gd | 9 ++++ 23 files changed, 474 insertions(+), 7 deletions(-) create mode 100644 Assets/Bullets/mortarbullet (1).png create mode 100644 Assets/Bullets/mortarbullet (1).png.import create mode 100644 Assets/Bullets/mortarbullet (2).png create mode 100644 Assets/Bullets/mortarbullet (2).png.import create mode 100644 Assets/Bullets/mortarbullet (3).png create mode 100644 Assets/Bullets/mortarbullet (3).png.import create mode 100644 Assets/Bullets/mortarbullet (4).png create mode 100644 Assets/Bullets/mortarbullet (4).png.import create mode 100644 Assets/Bullets/mortarbullet (5).png create mode 100644 Assets/Bullets/mortarbullet (5).png.import create mode 100644 Assets/Bullets/mortarbullet (6).png create mode 100644 Assets/Bullets/mortarbullet (6).png.import create mode 100644 Assets/Towers/Mortar part (1).png create mode 100644 Assets/Towers/Mortar part (1).png.import create mode 100644 Assets/Towers/Mortar part (2).png create mode 100644 Assets/Towers/Mortar part (2).png.import create mode 100644 Assets/Towers/Mortar part (3).png create mode 100644 Assets/Towers/Mortar part (3).png.import create mode 100644 Game/Bullets/rock.tscn create mode 100644 Game/Towers/mortar_tower.tscn diff --git a/Assets/Bullets/mortarbullet (1).png b/Assets/Bullets/mortarbullet (1).png new file mode 100644 index 0000000000000000000000000000000000000000..0c26843c15a48f757f37c4282ad236b1a6d4deaa GIT binary patch literal 4362 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 Ef>eP|H~;_u literal 0 HcmV?d00001 diff --git a/Assets/Bullets/mortarbullet (1).png.import b/Assets/Bullets/mortarbullet (1).png.import new file mode 100644 index 0000000..6a30a84 --- /dev/null +++ b/Assets/Bullets/mortarbullet (1).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://t8y1d33eiffp" +path="res://.godot/imported/mortarbullet (1).png-bd02e86efaecc04294db5598a8ff4941.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Bullets/mortarbullet (1).png" +dest_files=["res://.godot/imported/mortarbullet (1).png-bd02e86efaecc04294db5598a8ff4941.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Bullets/mortarbullet (2).png b/Assets/Bullets/mortarbullet (2).png new file mode 100644 index 0000000000000000000000000000000000000000..bbd5084d47871a2a1fdca3cd1e767cdc55a5cdfb GIT binary patch literal 1978 zcmV;r2SxaaP)~&NH4C>Ncf-K&g!-7X==qvA1{^_? z*IIGd=-gtCh06T}P*I+@Ri_ z1r|%3cD_9`6?PZA4L6*f5SR;!%SF+IP3#K2eO8a^bAAut!L2P zJp``j{rCdYkeqB`zuT>e5FZG_lg=Rs&c70mDMj#22)-}e`sOH-k0{QE<0PlDYI%+q zL6JRr)D6YOSuln1Okiaj=pSWc9mYO+I{wuwD9g)$zaDhS(`XmVRvhC9`iu$^t%kpZ zE-4S~bigKi68k$d>n)f=kCNA|DT%NlZ7p~@2iY}YbHRCd*fj`GUyg!rVpe`saX6YZ zEyc??S`9#xo#972e*tDK$Q)#2vjOP!O~7ny3``@?OpNKAts9^Ky*ocNktKzz!U>IO??w%UlnEU{E*FmYe`P-bn|*(4ZYK#hJm~JFNZQ zH8cU^QvqFZLXVe49pk(TYM_bcC>Gs=qgt%-+j1S~NI13BcMVK1=WYGHHf+`yd63KjJDi16Tcq_}eQwy@rj323_OUbL+d zgjO`>z-M|SJT@MZK3=GNrV!L;llfUTVhzC@f_r({uLuLiDJSw0RwIL!D6(EU8nTKO zCRWrOsn!HWZL)p5Jsk`l?BO)2nupUH4LhIH7(y+U;heJug-&L+>P4Z#we%HnUY@rZ zL&e5`6C21J{Iu5xm)l;*x1Yd8>-aN7vXYk@aL|q%;@8OQO$3mG$_k~;d5Byw(DfB6 z@GC-3Q&N7pcN;qzS^wxH1FjT~G8IIK0wz3sQUaxdFX9d`%9{qWB2Tp@pd>#dBxo{M zzYj9(YhZdd$chZNdKmyd^H>Pbz}J$Sj`}E)x5OlE$#HQtKW77c`_*1Z#2D9V@cUV? z|G;|?k5%rzyPuV7vW>PxHBpPAseqB#!F{~L^zE;b}d;B4>J1Lq#9mEVpg&Y^l69`n$uV^g|CsHiArGXg`qn2&meI-|ND{|E`X{KIU`al!}(sZLd79o5~qGkc+= zVtnr_d6y|WVN^AB4FZ;Gs*aIVJpx_%X~BXgH`(Q%8fAXJ+|mIT|9QmzrrmCB^+3xV z7jvWvT(_O%ZDABDyRfS<$1NnO93sBSS*Ahcl1`kBtkS432eZeLHZLvClV+q>-m9!iCK(?1*9}7wMCu zym`>TH#I+J@}lj<5F>*Ym#!&sn$$8(TNTdwd{c`WUC!Z7rQ&G}Ly5-13v+~McE{#* zYC>1>V#RC*L*w@IJ}o?zT=JN>y3=*ws@Eyb1y|Dp48nu-g-@w?y6%YBL4=`CokZR>orSI zduPB-6%e5rexBe7>)`a{TcXQv2=(CI`3s*S+{nW}oxg$leV7#yVk8PVMGlM3C*n`e zA$4nq*FR0)@v>8`Ka>2Xyd+ZLfJMBuOWzSGwkyT?=jC}|i8aCL3pY`m&1n+B*J_0D77{Y#_*3wKeE5m;HGnTB}ye`>Bh~;qE!X z^J!UTS|#Ao{zsu{9k|p0E5qHwYhVXTmS$7 M07*qoM6N<$f+j7acmMzZ literal 0 HcmV?d00001 diff --git a/Assets/Bullets/mortarbullet (2).png.import b/Assets/Bullets/mortarbullet (2).png.import new file mode 100644 index 0000000..8ac8636 --- /dev/null +++ b/Assets/Bullets/mortarbullet (2).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cinql8footbvf" +path="res://.godot/imported/mortarbullet (2).png-279c67fc247930242862398e474b1704.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Bullets/mortarbullet (2).png" +dest_files=["res://.godot/imported/mortarbullet (2).png-279c67fc247930242862398e474b1704.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Bullets/mortarbullet (3).png b/Assets/Bullets/mortarbullet (3).png new file mode 100644 index 0000000000000000000000000000000000000000..dafd454e0a4a5b67e8ee37e705d942e2fc363d0f GIT binary patch literal 2116 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 literal 0 HcmV?d00001 diff --git a/Assets/Bullets/mortarbullet (6).png.import b/Assets/Bullets/mortarbullet (6).png.import new file mode 100644 index 0000000..33df6e3 --- /dev/null +++ b/Assets/Bullets/mortarbullet (6).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://uc2ib201l7kd" +path="res://.godot/imported/mortarbullet (6).png-bdeb165e64ca987fc7c17fa91fd2e302.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Bullets/mortarbullet (6).png" +dest_files=["res://.godot/imported/mortarbullet (6).png-bdeb165e64ca987fc7c17fa91fd2e302.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Towers/Mortar part (1).png b/Assets/Towers/Mortar part (1).png new file mode 100644 index 0000000000000000000000000000000000000000..10d22b06ea1d693ea04215124f2b9f8129cd034a GIT binary patch literal 4984 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 Z7yvpPT5}Uz#Ss7i002ovPDHLkV1ne@h>!pP literal 0 HcmV?d00001 diff --git a/Assets/Towers/Mortar part (3).png.import b/Assets/Towers/Mortar part (3).png.import new file mode 100644 index 0000000..e46125c --- /dev/null +++ b/Assets/Towers/Mortar part (3).png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkgih7tl654v1" +path="res://.godot/imported/Mortar part (3).png-2df41141f9b4f6965bc7b31fab6c02f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Towers/Mortar part (3).png" +dest_files=["res://.godot/imported/Mortar part (3).png-2df41141f9b4f6965bc7b31fab6c02f0.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/Game/Bullets/bullet.gd b/Game/Bullets/bullet.gd index 089cf76..a745a95 100644 --- a/Game/Bullets/bullet.gd +++ b/Game/Bullets/bullet.gd @@ -5,6 +5,19 @@ var speed var hitpoint var distancetaken = 0 +#For the mortar, to create a nice bezier curve! +var starterpos = 0 +var targetpos = 0 +var midpoint = 0 +var t = 0.0 +var duration = 0.5 + +func _ready() -> void: + starterpos = global_position + targetpos = target.global_position + midpoint = (targetpos + starterpos) / 2 + midpoint.y -= 200 #height of the curve! + func set_targe(_target : Node2D) -> void: target = _target @@ -14,8 +27,15 @@ func set_speed(_speed: int) -> void: func set_hitpoint(_hitpoint: int) -> void: hitpoint = _hitpoint + func _process(delta: float) -> void: - if target and speed > 0: + if name.contains("Rock"): + t += delta / duration + position = bezier(t) + if t >= 1.0: + get_node("CharacterBody2D/AnimatedSprite2D").play("hit") + set_process(false) + elif target and speed > 0: # Get the direction vector from the bullet to the target var direction = (target.get_parent().get_parent().get_position() - position).normalized() @@ -44,8 +64,17 @@ func target_reached() -> void: if name.contains("Magic"): if randf() < 0.5: target.get_parent().set_progress(max(target.get_parent().get_progress() - 60, 0)) - - - + target.get_parent().enemy_hurt(hitpoint) queue_free() + + +func bezier(t: float): + var q0 = starterpos.lerp(midpoint, t) + var q1 = midpoint.lerp(targetpos, t) + return q0.lerp(q1, t) + + + +func _on_animated_sprite_2d_animation_finished() -> void: + queue_free() diff --git a/Game/Bullets/rock.tscn b/Game/Bullets/rock.tscn new file mode 100644 index 0000000..a68880e --- /dev/null +++ b/Game/Bullets/rock.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=10 format=3 uid="uid://cwcgq1vk643ha"] + +[ext_resource type="Script" uid="uid://dqvdgdobuo2rf" path="res://Game/Bullets/bullet.gd" id="1_yml18"] +[ext_resource type="Texture2D" uid="uid://t8y1d33eiffp" path="res://Assets/Bullets/mortarbullet (1).png" id="2_yml18"] +[ext_resource type="Texture2D" uid="uid://cinql8footbvf" path="res://Assets/Bullets/mortarbullet (2).png" id="3_tjven"] +[ext_resource type="Texture2D" uid="uid://xm4gs3h00bk1" path="res://Assets/Bullets/mortarbullet (3).png" id="4_av0br"] +[ext_resource type="Texture2D" uid="uid://crf32to6tlkux" path="res://Assets/Bullets/mortarbullet (4).png" id="5_c612l"] +[ext_resource type="Texture2D" uid="uid://bbu8u4h7vpqwa" path="res://Assets/Bullets/mortarbullet (5).png" id="6_m5188"] +[ext_resource type="Texture2D" uid="uid://uc2ib201l7kd" path="res://Assets/Bullets/mortarbullet (6).png" id="7_lr72h"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_yml18"] +size = Vector2(18, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_yml18"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("2_yml18") +}], +"loop": true, +"name": &"default", +"speed": 2.0 +}, { +"frames": [{ +"duration": 1.0, +"texture": ExtResource("3_tjven") +}, { +"duration": 1.0, +"texture": ExtResource("4_av0br") +}, { +"duration": 1.0, +"texture": ExtResource("5_c612l") +}, { +"duration": 1.0, +"texture": ExtResource("6_m5188") +}, { +"duration": 1.0, +"texture": ExtResource("7_lr72h") +}], +"loop": false, +"name": &"hit", +"speed": 8.0 +}] + +[node name="Rock" type="Node2D"] +script = ExtResource("1_yml18") + +[node name="CharacterBody2D" type="CharacterBody2D" parent="."] +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] +shape = SubResource("RectangleShape2D_yml18") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="CharacterBody2D"] +scale = Vector2(0.4, 0.4) +sprite_frames = SubResource("SpriteFrames_yml18") +autoplay = "default" + +[connection signal="animation_finished" from="CharacterBody2D/AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_finished"] diff --git a/Game/Towers/mortar_tower.tscn b/Game/Towers/mortar_tower.tscn new file mode 100644 index 0000000..a7defcd --- /dev/null +++ b/Game/Towers/mortar_tower.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=7 format=3 uid="uid://uqxd2lii1xba"] + +[ext_resource type="Script" uid="uid://dil41a1ymo0ua" path="res://Game/Towers/towers.gd" id="1_bhlym"] +[ext_resource type="Texture2D" uid="uid://dkgih7tl654v1" path="res://Assets/Towers/Mortar part (3).png" id="1_sq58r"] +[ext_resource type="Texture2D" uid="uid://cm33n3xc81rpj" path="res://Assets/Towers/Mortar part (2).png" id="2_bhlym"] +[ext_resource type="Texture2D" uid="uid://cxtluaplpd8hg" path="res://Assets/Towers/Mortar part (1).png" id="3_82ftk"] + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_cfdf4"] +radius = 29.0 +height = 88.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhlym"] +size = Vector2(367.125, 172.25) + +[node name="MortarTower" type="Node2D"] +script = ExtResource("1_bhlym") + +[node name="CharacterBody2D" type="CharacterBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] +position = Vector2(0, 17) +shape = SubResource("CapsuleShape2D_cfdf4") + +[node name="Area2D" type="Area2D" parent="CharacterBody2D"] +position = Vector2(2, 20) +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D/Area2D"] +position = Vector2(-1, -68) +shape = SubResource("RectangleShape2D_bhlym") + +[node name="MortarPart(3)" type="Sprite2D" parent="CharacterBody2D"] +position = Vector2(0.800001, 18.6) +scale = Vector2(0.4, 0.4) +texture = ExtResource("1_sq58r") + +[node name="MortarPart(2)" type="Sprite2D" parent="CharacterBody2D"] +position = Vector2(4.40004, 18) +scale = Vector2(0.4, 0.4) +texture = ExtResource("2_bhlym") + +[node name="MortarPart(1)" type="Sprite2D" parent="CharacterBody2D"] +position = Vector2(0.800001, 31.6) +scale = Vector2(0.4, 0.4) +texture = ExtResource("3_82ftk") + +[node name="Timer" type="Timer" parent="."] +autostart = true diff --git a/Game/Towers/towers.gd b/Game/Towers/towers.gd index 91f0602..c609e82 100644 --- a/Game/Towers/towers.gd +++ b/Game/Towers/towers.gd @@ -9,10 +9,11 @@ var target = null const ARROW = preload("res://Game/Bullets/arrow.tscn") const MAGIC = preload("res://Game/Bullets/magic.tscn") +const ROCK = preload("res://Game/Bullets/rock.tscn") func _ready() -> void: follower = true - get_node("CharacterBody2D/Area2D").connect("body_entered", Callable(self, "choose_target")) + get_node("CharacterBody2D/Area2D").body_entered.connect(choose_target) get_node("Timer").timeout.connect(shoot) set_process_input(true) set_properties() @@ -33,6 +34,9 @@ func set_properties() -> void: get_node("Timer").wait_time = 2.0 bulletSpeed = 450 hitpoint = 10 + if self.name.contains("MortarTower"): #??? not sure if necessary yet + get_node("Timer").wait_time = 5 + hitpoint = 10 func get_if_moving_state(): return follower @@ -46,11 +50,11 @@ func choose_target(body : Node2D) -> void: if not follower: var surroinding_enemies = get_node("CharacterBody2D/Area2D").get_overlapping_bodies() target = surroinding_enemies[0] - if self.name.contains("ArcherTower") or self.name.contains("BombTower"): + if self.name.contains("ArcherTower"): for i in surroinding_enemies: if i.get_parent().get_progress() > target.get_parent().get_progress(): target = i - if self.name.contains("WizardTower"): + if self.name.contains("WizardTower") or self.name.contains("MortarTower"): for i in surroinding_enemies: if i.get_parent().get_progress() < target.get_parent().get_progress(): target = i @@ -60,6 +64,7 @@ func shoot() -> void: if target != null: if self.name.contains("ArcherTower"): var arrow = ARROW.instantiate() + arrow.name = "Arrow" + str(randi()) arrow.position = self.position arrow.set_speed(bulletSpeed) arrow.set_targe(target) @@ -68,9 +73,20 @@ func shoot() -> void: if self.name.contains("WizardTower"): var magic = MAGIC.instantiate() + magic.name = "Magic" + str(randi()) magic.position = self.position magic.set_speed(bulletSpeed) magic.set_targe(target) magic.set_hitpoint(hitpoint) get_parent().add_child(magic) + + if self.name.contains("MortarTower"): + var rock = ROCK.instantiate() + rock.name = "Rock" + str(randi()) + rock.position = self.position + rock.set_speed(bulletSpeed) + rock.set_targe(target) + rock.set_hitpoint(hitpoint) + get_parent().add_child(rock) + pass diff --git a/Game/sidepanel.gd b/Game/sidepanel.gd index a61c109..e54b031 100644 --- a/Game/sidepanel.gd +++ b/Game/sidepanel.gd @@ -17,6 +17,8 @@ const ARCHER_TOWER = preload("res://Game/Towers/archer_tower.tscn") @onready var wizardtowerspawn: Button = $HBoxContainer4/HBoxContainer2/Button3 const WIZARD_TOWER = preload("res://Game/Towers/wizard_tower.tscn") +@onready var mortartowerspawn: Button = $HBoxContainer4/HBoxContainer2/Button4 +const MORTAR_TOWER = preload("res://Game/Towers/mortar_tower.tscn") @onready var delete_tower_button: Button = $HBoxContainer4/HBoxContainer5/Button4 const DELETER = preload("res://Game/Accesories/deleter.tscn") @@ -29,6 +31,7 @@ func _ready() -> void: wallspawner.connect("button_down", Spawn_Wall) archertowerspawn.connect("button_up", Spawn_Archer) wizardtowerspawn.connect("button_up", Spawn_wizard) + mortartowerspawn.connect("button_up", Spawn_Mortar) delete_tower_button.connect("button_up", Spawn_Deleter) func set_Lifes(amount) -> void: @@ -71,6 +74,12 @@ func Spawn_wizard() -> void: tower.name = "WizardTower-" + str(randi()) get_parent().add_child(tower) pass + +func Spawn_Mortar() -> void: + var tower = MORTAR_TOWER.instantiate() + tower.name = "MortarTower-" + str(randi()) + get_parent().add_child(tower) + pass func Spawn_Deleter() -> void: var deleter = DELETER.instantiate()