diff --git a/objects/enemies/belough/belough.gd b/objects/enemies/belough/belough.gd index a1b81c1..19b6095 100644 --- a/objects/enemies/belough/belough.gd +++ b/objects/enemies/belough/belough.gd @@ -6,4 +6,4 @@ func _physics_process(delta: float) -> void: func _on_timer_timeout() -> void: - shoot() + shoot(%Marker2D.global_position) diff --git a/objects/enemies/enemy.gd b/objects/enemies/enemy.gd index 319b0ca..26918e4 100644 --- a/objects/enemies/enemy.gd +++ b/objects/enemies/enemy.gd @@ -6,10 +6,10 @@ extends Node2D @export var projectile = preload("res://objects/projectile/enemy_projectile.tscn") @export var move_speed = 0.0 -func shoot(): +func shoot(pos): var Projectile = projectile.instantiate() Projectile.speed.x = shoot_speed.x + randf_range(-shoot_variance.x,shoot_variance.x) Projectile.speed.y = shoot_speed.y + randf_range(-shoot_variance.y,shoot_variance.y) - Projectile.position = %Marker2D.global_position + Projectile.position = pos get_parent().add_child(Projectile) diff --git a/objects/enemies/kith/kith.gd b/objects/enemies/kith/kith.gd index 235c9ea..41a63fb 100644 --- a/objects/enemies/kith/kith.gd +++ b/objects/enemies/kith/kith.gd @@ -5,4 +5,4 @@ func _ready() -> void: func _on_timer_timeout() -> void: - shoot() + shoot(%Marker2D.global_position) diff --git a/objects/enemies/spitting_fiend/spitting_fiend.gd b/objects/enemies/spitting_fiend/spitting_fiend.gd new file mode 100644 index 0000000..4067b1a --- /dev/null +++ b/objects/enemies/spitting_fiend/spitting_fiend.gd @@ -0,0 +1,25 @@ +extends Enemy + +@export var multi_shoot_speed = 0.0 + +func multi_shoot(): + shoot_speed.x = multi_shoot_speed + shoot_speed.y = 0.0 + shoot(%Right.global_position) + + shoot_speed.x = -multi_shoot_speed + shoot_speed.y = 0.0 + shoot(%Left.global_position) + + shoot_speed.y = multi_shoot_speed + shoot_speed.x = 0.0 + shoot(%Down.global_position) + + shoot_speed.y = -multi_shoot_speed + shoot_speed.x = 0.0 + shoot(%Up.global_position) + + + +func _on_timer_timeout() -> void: + multi_shoot() diff --git a/objects/enemies/spitting_fiend/spitting_fiend.gd.uid b/objects/enemies/spitting_fiend/spitting_fiend.gd.uid new file mode 100644 index 0000000..e61a1df --- /dev/null +++ b/objects/enemies/spitting_fiend/spitting_fiend.gd.uid @@ -0,0 +1 @@ +uid://dewgsa8je6l6l diff --git a/objects/enemies/spitting_fiend/spitting_fiend.tscn b/objects/enemies/spitting_fiend/spitting_fiend.tscn new file mode 100644 index 0000000..b395d40 --- /dev/null +++ b/objects/enemies/spitting_fiend/spitting_fiend.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=3 format=3 uid="uid://dfrj00ro4rm5l"] + +[ext_resource type="Script" uid="uid://dewgsa8je6l6l" path="res://objects/enemies/spitting_fiend/spitting_fiend.gd" id="1_mfr0l"] +[ext_resource type="Texture2D" uid="uid://bh178ledlvf3o" path="res://assets/graphics/spitting_fiend.png" id="2_34xv4"] + +[node name="SpittingFiend" type="Node2D"] +script = ExtResource("1_mfr0l") +multi_shoot_speed = 100.0 +shoot_speed = Vector2(100, 100) +metadata/_custom_type_script = "uid://d2k5tlvpqokqr" + +[node name="Timer" type="Timer" parent="."] +autostart = true + +[node name="Up" type="Marker2D" parent="."] +unique_name_in_owner = true +position = Vector2(0, -12) + +[node name="Right" type="Marker2D" parent="."] +unique_name_in_owner = true +position = Vector2(16, 2) + +[node name="Down" type="Marker2D" parent="."] +unique_name_in_owner = true +position = Vector2(1, 14) + +[node name="Left" type="Marker2D" parent="."] +unique_name_in_owner = true +position = Vector2(-14, 0) + +[node name="Sprite2D" type="Sprite2D" parent="."] +position = Vector2(1, 1) +texture = ExtResource("2_34xv4") + +[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]