diff --git a/audio/sounds/spaghetti.ogg b/audio/sounds/spaghetti.ogg new file mode 100644 index 0000000..17f37d5 Binary files /dev/null and b/audio/sounds/spaghetti.ogg differ diff --git a/audio/sounds/spaghetti.ogg.import b/audio/sounds/spaghetti.ogg.import new file mode 100644 index 0000000..cc6e0f6 --- /dev/null +++ b/audio/sounds/spaghetti.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/spaghetti.ogg-0dfe2ae68627ff9bd860326d9e7db1b5.oggstr" + +[deps] + +source_file="res://audio/sounds/spaghetti.ogg" +dest_files=[ "res://.import/spaghetti.ogg-0dfe2ae68627ff9bd860326d9e7db1b5.oggstr" ] + +[params] + +loop=false +loop_offset=0 diff --git a/autoloads/audio.gd b/autoloads/audio.gd index cb420eb..20292ba 100644 --- a/autoloads/audio.gd +++ b/autoloads/audio.gd @@ -31,6 +31,7 @@ const a_select = preload("res://audio/sounds/select.wav") const a_confirm = preload("res://audio/sounds/confirm.wav") const a_bullet_barrage = preload("res://audio/sounds/bullet_barrage.ogg") const a_rainbow_laser = preload("res://audio/sounds/rainbow_laser.ogg") +const a_spaghetti = preload("res://audio/sounds/spaghetti.ogg") #Plays a sound func play_sound(snd,player): diff --git a/autoloads/debug.gd b/autoloads/debug.gd index 9356838..add1875 100644 --- a/autoloads/debug.gd +++ b/autoloads/debug.gd @@ -117,6 +117,22 @@ func _enter_code(): "MACOSX": var player = get_tree().get_nodes_in_group("player").pop_back() if player != null: Game.instance_node(load("res://objects/environment/beach_ball/beach_ball.tscn"),player.global_position.x,player.global_position.y - 8,Game.get_map()) + "YUMMY": + var player = get_tree().get_nodes_in_group("player").pop_back() + if player != null: + Game.instance_node( + preload("res://objects/environment/spaghetti/spaghetti.tscn"), + player.global_position.x, player.global_position.y - 12.0, + Game.get_map() + ) + "YUCKY": + var player = get_tree().get_nodes_in_group("player").pop_back() + if player != null: + var strand = preload("res://objects/environment/spaghetti/spaghetti.tscn").instance() + strand.global_position = player.global_position + Vector2(0.0, -12.0) + strand.get_node("Segment/Joint").disable_collision = false + strand.get_node("Segment/Line").default_color = Color(0xf53342ff) + Game.get_map().add_child(strand) "JUSTE": var player = get_tree().get_nodes_in_group("player").pop_back() if player != null: player.sprite.material.set_shader_param("border_color",Color.blue) diff --git a/objects/environment/spaghetti/spaghetti.gd b/objects/environment/spaghetti/spaghetti.gd new file mode 100644 index 0000000..7461548 --- /dev/null +++ b/objects/environment/spaghetti/spaghetti.gd @@ -0,0 +1,24 @@ +extends Node2D + + +export var segments: int = 8 + + +onready var segment: RigidBody2D = $Segment + + +func _ready() -> void: + var line = segment.get_node("Line") + line.default_color = line.default_color.darkened(rand_range(-0.1, 0.1)) + var last_segment = $Segment + for i in segments: + var new_segment = last_segment.duplicate(0) + add_child(new_segment) + new_segment.position.x -= 3.0 + var joint = last_segment.get_node("Joint") + joint.node_a = joint.get_path_to(last_segment) + joint.node_b = joint.get_path_to(new_segment) + new_segment.apply_central_impulse(Vector2(30.0, rand_range(-10.0, -100.0))) + last_segment = new_segment + position.x += 1.5 * float(segments) + Audio.play_sound(Audio.a_spaghetti, Audio.ac_boss) diff --git a/objects/environment/spaghetti/spaghetti.tscn b/objects/environment/spaghetti/spaghetti.tscn new file mode 100644 index 0000000..c97cc30 --- /dev/null +++ b/objects/environment/spaghetti/spaghetti.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://objects/environment/spaghetti/spaghetti.gd" type="Script" id=1] + +[sub_resource type="PhysicsMaterial" id=3] +friction = 0.25 + +[sub_resource type="CapsuleShape2D" id=1] +radius = 0.5 +height = 3.0 + +[node name="Spaghetti" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Segment" type="RigidBody2D" parent="."] +physics_material_override = SubResource( 3 ) + +[node name="Line" type="Line2D" parent="Segment"] +points = PoolVector2Array( -2, 0, 2, 0 ) +width = 1.0 +default_color = Color( 0.988235, 0.984314, 0.839216, 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Segment"] +rotation = 1.5708 +shape = SubResource( 1 ) + +[node name="Joint" type="PinJoint2D" parent="Segment"] +position = Vector2( -1.5, 0 )