Set up power up spawner to test weapon collection functions.

This commit is contained in:
Henry Faber 2026-06-30 13:50:31 +01:00
parent 3ec8cb8095
commit 8fe05e0c70
8 changed files with 156 additions and 2 deletions

View file

@ -5,6 +5,7 @@ class_name Player extends Area2D
@onready var movement_component: MovementComponent = %MovementComponent
@onready var shoot_component: ShootComponent = %ShootComponent
@onready var weapon_component: WeaponComponent = %WeaponComponent
@onready var powerup_spawner := _find_powerup_spawner()
# Get the viewport size for positioning
@onready var screensize = get_viewport().content_scale_size
@ -55,3 +56,20 @@ func _process(delta) -> void:
if input_component.cycle_weapon:
weapon_component.cycle_weapon()
$EffectsComponent.apply_effect(flash_effect)
func _on_help_box_area_entered(area: Area2D) -> void:
# Check if the colliding area is a powerup pickup.
if not area.has_meta("weapon_shot"):
return
var weapon_shot: WeaponShot = area.get_meta("weapon_shot")
weapon_component.collect_weapon(weapon_shot)
powerup_spawner.pickup_collected()
area.queue_free()
func _find_powerup_spawner() -> PowerUpSpawner:
# The spawner is a sibling under Level — find it by searching parent.
var level: Node2D = get_parent() as Node2D
if level == null:
return null
return level.get_node_or_null("PowerupSpawner") as PowerUpSpawner

View file

@ -128,7 +128,11 @@ shape = SubResource("RectangleShape2D_qlg0r")
disabled = true
debug_color = Color(1, 0.5058824, 0.21960784, 0.41960785)
[node name="HelpBox" type="CollisionShape2D" parent="." unique_id=938667427]
[node name="HelpBoxArea" type="Area2D" parent="." unique_id=938667427]
collision_layer = 2
collision_mask = 1
[node name="HelpBoxShape" type="CollisionShape2D" parent="HelpBoxArea" unique_id=938667428]
position = Vector2(0, 3)
shape = SubResource("RectangleShape2D_tuyoq")
debug_color = Color(0, 1, 0, 0.41960785)
@ -174,4 +178,5 @@ script = ExtResource("12_effcomp")
target_node = NodePath("../Ship")
metadata/_custom_type_script = "uid://65d3hbrpm21x"
[connection signal="area_entered" from="HelpBoxArea" to="." method="_on_help_box_area_entered"]
[connection signal="timeout" from="WeaponCooldown" to="." method="_on_weapon_cooldown_timeout"]

View file

@ -0,0 +1,19 @@
[gd_scene format=3 uid="uid://du5nub2keaty3"]
[ext_resource type="Script" uid="uid://qf6mgn4117o" path="res://scripts/power_up_spawner.gd" id="1_85wk8"]
[ext_resource type="Script" uid="uid://7n1itonn35fm" path="res://scripts/weapon_shot.gd" id="2_07x44"]
[ext_resource type="Resource" uid="uid://b75ae840k03dy" path="res://resources/player_weapon_resources/stock.tres" id="3_0eev3"]
[ext_resource type="Resource" uid="uid://cck3gmnhu5agc" path="res://resources/player_weapon_resources/tri.tres" id="4_qqjui"]
[ext_resource type="Resource" uid="uid://ds53sryglmf27" path="res://resources/player_weapon_resources/spread.tres" id="5_mwa7c"]
[ext_resource type="Resource" uid="uid://bhc6aja38vyr" path="res://resources/player_weapon_resources/vanguard.tres" id="6_vphcr"]
[ext_resource type="Resource" uid="uid://c41aoyka7nfr8" path="res://resources/player_weapon_resources/vanguard+.tres" id="7_g67dp"]
[node name="PowerUpSpawner" type="Node2D" unique_id=1191463626]
script = ExtResource("1_85wk8")
all_weapon_shots = Array[ExtResource("2_07x44")]([ExtResource("3_0eev3"), ExtResource("4_qqjui"), ExtResource("5_mwa7c"), ExtResource("6_vphcr"), ExtResource("7_g67dp")])
[node name="SpawnTimer" type="Timer" parent="." unique_id=173111015]
wait_time = 5.0
autostart = true
[connection signal="timeout" from="SpawnTimer" to="." method="_on_spawn_timer_timeout"]

View file

@ -6,6 +6,7 @@
[ext_resource type="PackedScene" uid="uid://c3scm07fgpkcp" path="res://scenes/notification_display.tscn" id="3_71j4m"]
[ext_resource type="PackedScene" uid="uid://6wq3ynesnsha" path="res://scenes/player.tscn" id="3_k0juu"]
[ext_resource type="Script" uid="uid://eblemtukrey6" path="res://scripts/utility/fps_display.gd" id="4_qfnet"]
[ext_resource type="PackedScene" uid="uid://du5nub2keaty3" path="res://scenes/power_up_spawner.tscn" id="7_i7141"]
[node name="World" type="Node2D" unique_id=1317852169]
@ -92,3 +93,5 @@ hframes = 4
frame = 3
[node name="Player" parent="Level" unique_id=652131079 instance=ExtResource("3_k0juu")]
[node name="PowerupSpawner" parent="Level" unique_id=1191463626 instance=ExtResource("7_i7141")]