gay lover

This commit is contained in:
pennyrigate 2026-01-01 19:06:17 -05:00
parent 4ff19610d3
commit f44f38b58c
9 changed files with 154 additions and 96 deletions

BIN
audio/sounds/graze.wav Normal file

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cnxsv3xnsxno6"
path="res://.godot/imported/graze.wav-f49f5311e710fd99ff3b969df7e75b99.sample"
[deps]
source_file="res://audio/sounds/graze.wav"
dest_files=["res://.godot/imported/graze.wav-f49f5311e710fd99ff3b969df7e75b99.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2

View file

@ -4,6 +4,7 @@ var speed = Vector2.ZERO
var bullet_speed = 2 var bullet_speed = 2
var angle = randf_range(-360,360) var angle = randf_range(-360,360)
var colors = [Color.RED,Color.BLUE,Color.GREEN,Color.YELLOW,] var colors = [Color.RED,Color.BLUE,Color.GREEN,Color.YELLOW,]
var grazed = false
func _ready() -> void: func _ready() -> void:
var color_choice = randi_range(0,colors.size() - 1) var color_choice = randi_range(0,colors.size() - 1)

View file

@ -49,7 +49,9 @@ animations = [{
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ic0v5"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_ic0v5"]
size = Vector2(8, 8) size = Vector2(8, 8)
[node name="TestBullet" type="Node2D"] [node name="TestBullet" type="Area2D"]
collision_layer = 8
collision_mask = 2
script = ExtResource("1_nd7f1") script = ExtResource("1_nd7f1")
[node name="Sprite" type="AnimatedSprite2D" parent="."] [node name="Sprite" type="AnimatedSprite2D" parent="."]
@ -66,11 +68,7 @@ frame_progress = 0.21053335
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."] [node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
rect = Rect2(-4, -4, 8, 8) rect = Rect2(-4, -4, 8, 8)
[node name="Area2D" type="Area2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
collision_layer = 8
collision_mask = 2
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("RectangleShape2D_ic0v5") shape = SubResource("RectangleShape2D_ic0v5")
[connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="queue_free"] [connection signal="screen_exited" from="VisibleOnScreenNotifier2D" to="." method="queue_free"]

View file

@ -1,7 +1,4 @@
[gd_scene load_steps=4 format=3 uid="uid://ykg8dydq006a"] [gd_scene load_steps=2 format=3 uid="uid://ykg8dydq006a"]
[ext_resource type="Script" uid="uid://bdcxqp8royr5u" path="res://objects/scoreitem/scoreitem_particles.gd" id="1_s0vci"]
[ext_resource type="AudioStream" uid="uid://bv6v7v5dtvoii" path="res://audio/sfx/graze.wav" id="2_55vho"]
[sub_resource type="Gradient" id="Gradient_aeam7"] [sub_resource type="Gradient" id="Gradient_aeam7"]
offsets = PackedFloat32Array(0, 0.513333, 1) offsets = PackedFloat32Array(0, 0.513333, 1)
@ -23,10 +20,5 @@ initial_velocity_max = 484.86
scale_amount_min = 1.5 scale_amount_min = 1.5
scale_amount_max = 2.5 scale_amount_max = 2.5
color_ramp = SubResource("Gradient_aeam7") color_ramp = SubResource("Gradient_aeam7")
script = ExtResource("1_s0vci")
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_55vho")
autoplay = true
[connection signal="finished" from="." to="." method="_on_finished"] [connection signal="finished" from="." to="." method="_on_finished"]

View file

@ -1,14 +1,15 @@
extends Node2D extends Node2D
@export var bullet_scene: PackedScene @export var bullet_scene: PackedScene
@onready var timer = $Timer
func _input(event: InputEvent) -> void: func _input(event: InputEvent) -> void:
if event.is_action_pressed("shoot"): if event.is_action_pressed("shoot"):
$Timer.start() if get_parent().can_shoot == true:
_on_timer_timeout() $Timer.start()
elif event.is_action_released("shoot"): _on_timer_timeout()
$Timer.stop() elif event.is_action_released("shoot"):
$Timer.stop()
func _on_timer_timeout() -> void: func _on_timer_timeout() -> void:

View file

@ -8,14 +8,19 @@ extends CharacterBody2D
@onready var startpos = position @onready var startpos = position
var can_die = true var can_die = true
var can_graze = true
var can_shoot = true
var can_move = true
var focused: bool: var focused: bool:
get(): return Input.is_action_pressed(&"focus") get(): return Input.is_action_pressed(&"focus")
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
print(can_die)
var input_dir = Input.get_vector(&"move_left", &"move_right", &"move_up", &"move_down").sign() var input_dir = Input.get_vector(&"move_left", &"move_right", &"move_up", &"move_down").sign()
velocity = input_dir.normalized() * (move_focused_speed if focused else move_normal_speed) if can_move:
velocity = input_dir.normalized() * (move_focused_speed if focused else move_normal_speed)
move_and_slide() move_and_slide()
@ -25,17 +30,33 @@ func _on_hurtbox_area_entered(area: Area2D) -> void:
%AnimationPlayer.play("respawn") %AnimationPlayer.play("respawn")
position = startpos position = startpos
CurrentGame.change_lives(-1) CurrentGame.change_lives(-1)
can_die = false set_invincible(true)
set_disabled(true)
func gover(): func set_disabled(truefalse: bool):
print("yeeeowtch!!!") velocity = Vector2.ZERO
%HurtboxShape.disabled = truefalse
%CollectionShape.disabled = truefalse
%GrazeShape.disabled = truefalse
can_shoot = !truefalse
can_move = !truefalse
if truefalse == true:
%PlayerBulletEmitter.timer.stop()
else:
if Input.is_action_pressed("shoot"):
%PlayerBulletEmitter.timer.start()
%PlayerBulletEmitter._on_timer_timeout()
func set_immobile(truefalse: bool):
can_move = truefalse
func set_invincible(truefalse: bool):
can_die = !truefalse
func _on_graze_box_area_entered(area: Area2D) -> void: func _on_graze_box_area_entered(area: Area2D) -> void:
%GrazeParticles.emitting = true if !area.grazed && can_graze:
CurrentGame.change_graze(1) area.grazed = true
%GrazeSound.play()
%GrazeParticles.emitting = true
CurrentGame.change_graze(1)
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
if anim_name == "respawn":
can_die = true

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://c714s5d7d5765"] [gd_scene load_steps=16 format=3 uid="uid://c714s5d7d5765"]
[ext_resource type="Script" uid="uid://bpo15kuxdmulu" path="res://objects/player/player.gd" id="1_cqmt1"] [ext_resource type="Script" uid="uid://bpo15kuxdmulu" path="res://objects/player/player.gd" id="1_cqmt1"]
[ext_resource type="Texture2D" uid="uid://cre6i8tsdlt7j" path="res://graphics/player/player_1.png" id="2_jnjyq"] [ext_resource type="Texture2D" uid="uid://cre6i8tsdlt7j" path="res://graphics/player/player_1.png" id="2_jnjyq"]
@ -6,6 +6,7 @@
[ext_resource type="PackedScene" uid="uid://bs0tv5ubqdjp0" path="res://objects/player/bullet_emitter/player_bullet_emitter.tscn" id="3_ssrue"] [ext_resource type="PackedScene" uid="uid://bs0tv5ubqdjp0" path="res://objects/player/bullet_emitter/player_bullet_emitter.tscn" id="3_ssrue"]
[ext_resource type="AudioStream" uid="uid://b3byh6su1b11r" path="res://audio/sounds/se_boom.wav" id="5_gnkmh"] [ext_resource type="AudioStream" uid="uid://b3byh6su1b11r" path="res://audio/sounds/se_boom.wav" id="5_gnkmh"]
[ext_resource type="PackedScene" uid="uid://ykg8dydq006a" path="res://objects/graze/graze_particles.tscn" id="6_xkryw"] [ext_resource type="PackedScene" uid="uid://ykg8dydq006a" path="res://objects/graze/graze_particles.tscn" id="6_xkryw"]
[ext_resource type="AudioStream" uid="uid://cnxsv3xnsxno6" path="res://audio/sounds/graze.wav" id="7_ow0dq"]
[sub_resource type="SpriteFrames" id="SpriteFrames_xkryw"] [sub_resource type="SpriteFrames" id="SpriteFrames_xkryw"]
animations = [{ animations = [{
@ -33,6 +34,33 @@ size = Vector2(22, 22)
[sub_resource type="CircleShape2D" id="CircleShape2D_gnkmh"] [sub_resource type="CircleShape2D" id="CircleShape2D_gnkmh"]
radius = 13.038404 radius = 13.038404
[sub_resource type="Animation" id="Animation_ow0dq"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Sprite2D:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Sprite2D:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_xkryw"] [sub_resource type="Animation" id="Animation_xkryw"]
resource_name = "respawn" resource_name = "respawn"
length = 5.0 length = 5.0
@ -61,32 +89,33 @@ tracks/1/keys = {
"update": 0, "update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1)] "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1), Color(0, 0, 0, 1), Color(1, 1, 1, 1)]
} }
tracks/2/type = "method"
[sub_resource type="Animation" id="Animation_ow0dq"] tracks/2/imported = false
length = 0.001 tracks/2/enabled = true
tracks/0/type = "value" tracks/2/path = NodePath(".")
tracks/0/imported = false tracks/2/interp = 1
tracks/0/enabled = true tracks/2/loop_wrap = true
tracks/0/path = NodePath("Sprite2D:visible") tracks/2/keys = {
tracks/0/interp = 1 "times": PackedFloat32Array(5),
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "values": [{
"values": [true] "args": [false],
"method": &"set_invincible"
}]
} }
tracks/1/type = "value" tracks/3/type = "method"
tracks/1/imported = false tracks/3/imported = false
tracks/1/enabled = true tracks/3/enabled = true
tracks/1/path = NodePath("Sprite2D:modulate") tracks/3/path = NodePath(".")
tracks/1/interp = 1 tracks/3/interp = 1
tracks/1/loop_wrap = true tracks/3/loop_wrap = true
tracks/1/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(1),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "values": [{
"values": [Color(1, 1, 1, 1)] "args": [false],
"method": &"set_disabled"
}]
} }
[sub_resource type="AnimationLibrary" id="AnimationLibrary_m4kly"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_m4kly"]
@ -104,7 +133,7 @@ move_focused_speed = 100.0
[node name="Sprite2D" type="AnimatedSprite2D" parent="."] [node name="Sprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_xkryw") sprite_frames = SubResource("SpriteFrames_xkryw")
autoplay = "default" autoplay = "default"
frame_progress = 0.6766526 frame_progress = 0.46678153
[node name="Collision" type="CollisionShape2D" parent="."] [node name="Collision" type="CollisionShape2D" parent="."]
position = Vector2(0, -0.5) position = Vector2(0, -0.5)
@ -112,13 +141,15 @@ shape = SubResource("RectangleShape2D_ssrue")
debug_color = Color(0.48012203, 0.5821042, 0.20594019, 0.41960785) debug_color = Color(0.48012203, 0.5821042, 0.20594019, 0.41960785)
[node name="PlayerBulletEmitter" parent="." instance=ExtResource("3_ssrue")] [node name="PlayerBulletEmitter" parent="." instance=ExtResource("3_ssrue")]
unique_name_in_owner = true
[node name="Hurtbox" type="Area2D" parent="."] [node name="Hurtbox" type="Area2D" parent="."]
position = Vector2(0, -1) position = Vector2(0, -1)
collision_layer = 2 collision_layer = 2
collision_mask = 8 collision_mask = 8
[node name="CollisionShape2D" type="CollisionShape2D" parent="Hurtbox"] [node name="HurtboxShape" type="CollisionShape2D" parent="Hurtbox"]
unique_name_in_owner = true
shape = SubResource("RectangleShape2D_ow0dq") shape = SubResource("RectangleShape2D_ow0dq")
debug_color = Color(1, 0, 0, 0.44313726) debug_color = Color(1, 0, 0, 0.44313726)
@ -126,7 +157,8 @@ debug_color = Color(1, 0, 0, 0.44313726)
collision_layer = 2 collision_layer = 2
collision_mask = 32 collision_mask = 32
[node name="CollisionShape2D" type="CollisionShape2D" parent="CollectionBox"] [node name="CollectionShape" type="CollisionShape2D" parent="CollectionBox"]
unique_name_in_owner = true
position = Vector2(0, -0.5) position = Vector2(0, -0.5)
shape = SubResource("RectangleShape2D_jnjyq") shape = SubResource("RectangleShape2D_jnjyq")
@ -134,18 +166,14 @@ shape = SubResource("RectangleShape2D_jnjyq")
position = Vector2(0, -1) position = Vector2(0, -1)
collision_mask = 8 collision_mask = 8
[node name="CollisionShape2D" type="CollisionShape2D" parent="GrazeBox"] [node name="GrazeShape" type="CollisionShape2D" parent="GrazeBox"]
unique_name_in_owner = true
shape = SubResource("CircleShape2D_gnkmh") shape = SubResource("CircleShape2D_gnkmh")
debug_color = Color(0.7740294, 0.14773864, 0.99999994, 0.41960785) debug_color = Color(0.7740294, 0.14773864, 0.99999994, 0.41960785)
[node name="DeathSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("5_gnkmh")
[node name="GrazeParticles" parent="." instance=ExtResource("6_xkryw")] [node name="GrazeParticles" parent="." instance=ExtResource("6_xkryw")]
unique_name_in_owner = true unique_name_in_owner = true
amount = 10 amount = 10
script = null
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
@ -153,6 +181,17 @@ libraries = {
&"": SubResource("AnimationLibrary_m4kly") &"": SubResource("AnimationLibrary_m4kly")
} }
[node name="Sounds" type="Node" parent="."]
[node name="DeathSound" type="AudioStreamPlayer" parent="Sounds"]
unique_name_in_owner = true
stream = ExtResource("5_gnkmh")
[node name="GrazeSound" type="AudioStreamPlayer" parent="Sounds"]
unique_name_in_owner = true
stream = ExtResource("7_ow0dq")
volume_db = -2.0
[connection signal="area_entered" from="Hurtbox" to="." method="_on_hurtbox_area_entered"] [connection signal="area_entered" from="Hurtbox" to="." method="_on_hurtbox_area_entered"]
[connection signal="area_entered" from="GrazeBox" to="." method="_on_graze_box_area_entered"] [connection signal="area_entered" from="GrazeBox" to="." method="_on_graze_box_area_entered"]
[connection signal="finished" from="GrazeParticles" to="." method="_on_cpu_particles_2d_finished"] [connection signal="finished" from="GrazeParticles" to="." method="_on_cpu_particles_2d_finished"]

View file

@ -1,47 +1,29 @@
[gd_scene load_steps=15 format=3 uid="uid://tt12jx4uauwn"] [gd_scene load_steps=11 format=3 uid="uid://tt12jx4uauwn"]
[ext_resource type="Texture2D" uid="uid://c50bfqprpitev" path="res://icon.svg" id="1_ufr73"] [ext_resource type="Texture2D" uid="uid://c50bfqprpitev" path="res://icon.svg" id="1_ufr73"]
[ext_resource type="PackedScene" uid="uid://c714s5d7d5765" path="res://objects/player/player.tscn" id="2_ikr60"] [ext_resource type="PackedScene" uid="uid://c714s5d7d5765" path="res://objects/player/player.tscn" id="2_ikr60"]
[ext_resource type="Script" uid="uid://cj2fj7snls8aa" path="res://systems/bullets/bullet_set.gd" id="3_hwssd"] [ext_resource type="Script" uid="uid://cj2fj7snls8aa" path="res://systems/bullets/bullet_set.gd" id="3_hwssd"]
[ext_resource type="Script" uid="uid://pn143vuxc7wp" path="res://systems/bullets/bullet_actions/despawn_action.gd" id="4_4ctm6"] [ext_resource type="Script" uid="uid://d238qii8i2byl" path="res://systems/bullets/spawn_patterns/line_pattern.gd" id="5_e0h7n"]
[ext_resource type="Script" uid="uid://dntp60my5f65m" path="res://systems/bullets/bullet_behaviors/simple_linear_behavior.gd" id="5_jwla8"] [ext_resource type="Script" uid="uid://dntp60my5f65m" path="res://systems/bullets/bullet_behaviors/simple_linear_behavior.gd" id="5_jwla8"]
[ext_resource type="Script" uid="uid://dtuc6qerbfset" path="res://systems/bullets/spawn_patterns/ring_pattern.gd" id="6_5wg4x"]
[ext_resource type="Script" uid="uid://vus1a0flwtnm" path="res://systems/bullets/bullet_preset.gd" id="7_qckwa"] [ext_resource type="Script" uid="uid://vus1a0flwtnm" path="res://systems/bullets/bullet_preset.gd" id="7_qckwa"]
[ext_resource type="Script" uid="uid://5scjonwmg8tw" path="res://systems/bullets/set_behaviors/rotation_set_behavior.gd" id="8_etx6j"]
[ext_resource type="Texture2D" uid="uid://du7gh3nk66mpo" path="res://graphics/bullets/normal_bullet/bullet_1.png" id="9_6buwp"] [ext_resource type="Texture2D" uid="uid://du7gh3nk66mpo" path="res://graphics/bullets/normal_bullet/bullet_1.png" id="9_6buwp"]
[sub_resource type="Resource" id="Resource_sle1e"] [sub_resource type="Resource" id="Resource_ntnp3"]
script = ExtResource("4_4ctm6")
metadata/_custom_type_script = "uid://pn143vuxc7wp"
[sub_resource type="Resource" id="Resource_c0i5a"]
script = ExtResource("5_jwla8") script = ExtResource("5_jwla8")
initial_speed = 128.0 initial_speed = 40.0
acceleration = -64.0 acceleration = 10.0
min_speed = 0.0
action_speed_clamped = SubResource("Resource_sle1e")
metadata/_custom_type_script = "uid://dntp60my5f65m" metadata/_custom_type_script = "uid://dntp60my5f65m"
[sub_resource type="Resource" id="Resource_cf1so"] [sub_resource type="Resource" id="Resource_es5vp"]
script = ExtResource("6_5wg4x") script = ExtResource("5_e0h7n")
bullet_count = 5 bullet_count = 1
metadata/_custom_type_script = "uid://dtuc6qerbfset" metadata/_custom_type_script = "uid://d238qii8i2byl"
[sub_resource type="Resource" id="Resource_4oowd"] [sub_resource type="Resource" id="Resource_ufr73"]
script = ExtResource("8_etx6j")
rotation_speed = -1.5707963267948966
spawn_rotation_speed = 6.283185307179586
metadata/_custom_type_script = "uid://5scjonwmg8tw"
[sub_resource type="Resource" id="Resource_uu3sg"]
script = ExtResource("7_qckwa") script = ExtResource("7_qckwa")
behavior = SubResource("Resource_c0i5a") behavior = SubResource("Resource_ntnp3")
textures = Array[Texture2D]([ExtResource("9_6buwp")]) textures = Array[Texture2D]([ExtResource("9_6buwp")])
hitbox_size = Vector2i(6, 6) pattern = SubResource("Resource_es5vp")
pattern = SubResource("Resource_cf1so")
rounds = 100000
round_delay = 0.5
set_behavior = SubResource("Resource_4oowd")
metadata/_custom_type_script = "uid://vus1a0flwtnm" metadata/_custom_type_script = "uid://vus1a0flwtnm"
[node name="TestScene" type="Node"] [node name="TestScene" type="Node"]
@ -56,5 +38,5 @@ position = Vector2(100, 99)
[node name="BulletSet" type="Node2D" parent="."] [node name="BulletSet" type="Node2D" parent="."]
position = Vector2(111, 152) position = Vector2(111, 152)
script = ExtResource("3_hwssd") script = ExtResource("3_hwssd")
preset = SubResource("Resource_uu3sg") preset = SubResource("Resource_ufr73")
metadata/_custom_type_script = "uid://cj2fj7snls8aa" metadata/_custom_type_script = "uid://cj2fj7snls8aa"