diff --git a/scenes/test_scene_haze.tscn b/scenes/test_scene_haze.tscn index d11d72e..b3653a9 100644 --- a/scenes/test_scene_haze.tscn +++ b/scenes/test_scene_haze.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://dxsp66qpvm65b"] +[gd_scene load_steps=19 format=3 uid="uid://dxsp66qpvm65b"] [ext_resource type="PackedScene" uid="uid://q2fys6o0jy6w" path="res://objects/starfield/starfield.tscn" id="1_4oowd"] [ext_resource type="PackedScene" uid="uid://c714s5d7d5765" path="res://objects/player/player.tscn" id="2_j8ivh"] @@ -9,6 +9,8 @@ [ext_resource type="Script" uid="uid://vus1a0flwtnm" path="res://systems/bullets/bullet_preset.gd" id="6_sle1e"] [ext_resource type="Texture2D" uid="uid://cgqgb84k38tbe" path="res://graphics/bullets/normal_bullet/test_bullet_overlay.png" id="7_sle1e"] [ext_resource type="Script" uid="uid://t5lnmlng1vey" path="res://systems/bullets/spawn_patterns/spread_pattern.gd" id="8_sle1e"] +[ext_resource type="Script" uid="uid://drxrjgbmeglwp" path="res://systems/bullets/spawn_patterns/stacked_spawn_pattern.gd" id="9_c0i5a"] +[ext_resource type="Script" uid="uid://b00hsbakgtsi0" path="res://systems/bullets/spawn_patterns/targetted_spawn_pattern.gd" id="9_sle1e"] [sub_resource type="Resource" id="Resource_c0i5a"] script = ExtResource("4_4oowd") @@ -31,10 +33,22 @@ metadata/_custom_type_script = "uid://0ognvvq2ncd7" [sub_resource type="Resource" id="Resource_uu3sg"] script = ExtResource("8_sle1e") bullet_count = 3 -bullet_speed = 60.0 spread = 1.0471975511965976 metadata/_custom_type_script = "uid://t5lnmlng1vey" +[sub_resource type="Resource" id="Resource_etmxr"] +script = ExtResource("9_c0i5a") +pattern = SubResource("Resource_uu3sg") +stack_count = 6 +min_speed = 60.0 +max_speed = 180.0 +metadata/_custom_type_script = "uid://drxrjgbmeglwp" + +[sub_resource type="Resource" id="Resource_377ep"] +script = ExtResource("9_sle1e") +pattern = SubResource("Resource_etmxr") +metadata/_custom_type_script = "uid://b00hsbakgtsi0" + [sub_resource type="Resource" id="Resource_hxqcc"] script = ExtResource("6_sle1e") behavior = SubResource("Resource_t1bs8") @@ -42,9 +56,9 @@ hitbox_size = Vector2i(6, 6) base_graphics = Array[ExtResource("4_4oowd")]([SubResource("Resource_c0i5a")]) overlay_graphics = Array[ExtResource("4_4oowd")]([SubResource("Resource_1xo0o")]) colors = Array[Color]([Color(1, 0, 0, 1), Color(0, 0, 1, 1), Color(0, 1, 0, 1), Color(1, 1, 0, 1)]) -pattern = SubResource("Resource_uu3sg") +pattern = SubResource("Resource_377ep") rounds = 99999999 -round_delay = 0.2 +round_delay = 0.75 metadata/_custom_type_script = "uid://vus1a0flwtnm" [node name="TestScene" type="Node"] diff --git a/systems/bullets/spawn_patterns/spawn_pattern_randomizer.gd b/systems/bullets/spawn_patterns/randomized_spawn_pattern.gd similarity index 96% rename from systems/bullets/spawn_patterns/spawn_pattern_randomizer.gd rename to systems/bullets/spawn_patterns/randomized_spawn_pattern.gd index 554628c..622be7b 100644 --- a/systems/bullets/spawn_patterns/spawn_pattern_randomizer.gd +++ b/systems/bullets/spawn_patterns/randomized_spawn_pattern.gd @@ -1,5 +1,5 @@ @tool -class_name SpawnPatternRandomizer +class_name RandomizedSpawnPattern extends BulletSpawnPattern ## Randomizes properties of a child [BulletSpawnPattern] each [member iteration]. ## diff --git a/systems/bullets/spawn_patterns/spawn_pattern_randomizer.gd.uid b/systems/bullets/spawn_patterns/randomized_spawn_pattern.gd.uid similarity index 100% rename from systems/bullets/spawn_patterns/spawn_pattern_randomizer.gd.uid rename to systems/bullets/spawn_patterns/randomized_spawn_pattern.gd.uid diff --git a/systems/bullets/spawn_patterns/spawn_pattern_stacker.gd b/systems/bullets/spawn_patterns/stacked_spawn_pattern.gd similarity index 96% rename from systems/bullets/spawn_patterns/spawn_pattern_stacker.gd rename to systems/bullets/spawn_patterns/stacked_spawn_pattern.gd index 1731443..993058a 100644 --- a/systems/bullets/spawn_patterns/spawn_pattern_stacker.gd +++ b/systems/bullets/spawn_patterns/stacked_spawn_pattern.gd @@ -1,5 +1,5 @@ @tool -class_name SpawnPatternStacker +class_name StackedSpawnPattern extends BulletSpawnPattern ## Spawns a pattern in a "stack". The pattern will be spawned multiple ## times at once with a varying [code]bullet_speed[/code]. diff --git a/systems/bullets/spawn_patterns/spawn_pattern_stacker.gd.uid b/systems/bullets/spawn_patterns/stacked_spawn_pattern.gd.uid similarity index 100% rename from systems/bullets/spawn_patterns/spawn_pattern_stacker.gd.uid rename to systems/bullets/spawn_patterns/stacked_spawn_pattern.gd.uid diff --git a/systems/bullets/spawn_patterns/targetted_spawn_pattern.gd b/systems/bullets/spawn_patterns/targetted_spawn_pattern.gd new file mode 100644 index 0000000..b893aa4 --- /dev/null +++ b/systems/bullets/spawn_patterns/targetted_spawn_pattern.gd @@ -0,0 +1,15 @@ +class_name TargettedSpawnPattern +extends BulletSpawnPattern + + +@export var pattern: BulletSpawnPattern + + +func _spawn_bullets(bullet_set: BulletSet, preset: BulletPreset) -> void: + var original_spawn_rotation = bullet_set.spawn_rotation + var player = bullet_set.get_tree().get_first_node_in_group(&"player") as Player + if player: + var local_player_pos = bullet_set.to_local(player.global_position) + bullet_set.spawn_rotation = local_player_pos.angle() + pattern.spawn_bullets(bullet_set, preset) + bullet_set.spawn_rotation = original_spawn_rotation diff --git a/systems/bullets/spawn_patterns/targetted_spawn_pattern.gd.uid b/systems/bullets/spawn_patterns/targetted_spawn_pattern.gd.uid new file mode 100644 index 0000000..e206eab --- /dev/null +++ b/systems/bullets/spawn_patterns/targetted_spawn_pattern.gd.uid @@ -0,0 +1 @@ +uid://b00hsbakgtsi0