diff --git a/src/Utils.gd b/src/Utils.gd index 0e2cb37..79b34a9 100644 --- a/src/Utils.gd +++ b/src/Utils.gd @@ -3,3 +3,11 @@ class_name Utils static func is_between(m, val, x): return (m < val) && (val <= x) + + +static func format_time(value): + var minutes: int = floor(value / 60) + var seconds_and_millis: float = value - minutes * 60 + var seconds: int = int(seconds_and_millis) + var millis: int = int((seconds_and_millis - seconds) * 1000) + return "%01d:%02d.%03d" % ([minutes, seconds, millis]) \ No newline at end of file diff --git a/src/behaviours/spawning/ShootWhenPossible.gd b/src/behaviours/spawning/ShootWhenPossible.gd index a627af2..c925c42 100644 --- a/src/behaviours/spawning/ShootWhenPossible.gd +++ b/src/behaviours/spawning/ShootWhenPossible.gd @@ -6,4 +6,4 @@ onready var parent = get_parent() func _process(_delta): - parent.shoot(parent.rotation) + parent.shoot(parent.parent.rotation) diff --git a/src/behaviours/spawning/SpawnOnShoot.tscn b/src/behaviours/spawning/SpawnOnShoot.tscn index 926c3bc..dafb543 100644 --- a/src/behaviours/spawning/SpawnOnShoot.tscn +++ b/src/behaviours/spawning/SpawnOnShoot.tscn @@ -10,5 +10,6 @@ script = ExtResource( 1 ) wait_time = 0.3 one_shot = true -[node name="Sound" type="AudioStreamPlayer2D" parent="."] +[node name="Sound" type="AudioStreamPlayer" parent="."] stream = ExtResource( 2 ) +volume_db = -8.0 diff --git a/src/entities/bullets/LaserBeam.tscn b/src/entities/bullets/LaserBeam.tscn new file mode 100644 index 0000000..96d2bf1 --- /dev/null +++ b/src/entities/bullets/LaserBeam.tscn @@ -0,0 +1,25 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://src/entities/bullets/AbstractBullet.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/entities/bullets/MeltinatorLaserBeam.png" type="Texture" id=2] +[ext_resource path="res://src/mechanics/Light.png" type="Texture" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 6, 1.5 ) + +[node name="LaserBeam" instance=ExtResource( 1 )] + +[node name="BulletMovement" parent="." index="0"] +movement_per_second = 800.0 + +[node name="Shape" type="CollisionShape2D" parent="." index="2"] +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="Shape" index="0"] +scale = Vector2( 12, 1 ) +texture = ExtResource( 2 ) + +[node name="Light" type="Light2D" parent="." index="3"] +texture = ExtResource( 3 ) +texture_scale = 0.15 +color = Color( 1, 0.294118, 0, 1 ) diff --git a/src/entities/bullets/MeltinatorLaserBeam.png.import b/src/entities/bullets/MeltinatorLaserBeam.png.import index 9597ad5..033dcab 100644 --- a/src/entities/bullets/MeltinatorLaserBeam.png.import +++ b/src/entities/bullets/MeltinatorLaserBeam.png.import @@ -19,7 +19,7 @@ compress/lossy_quality=0.7 compress/hdr_mode=0 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 +flags/repeat=1 flags/filter=true flags/mipmaps=false flags/anisotropic=false diff --git a/src/mechanics/Snowflake.png b/src/entities/bullets/Snowflake.png similarity index 100% rename from src/mechanics/Snowflake.png rename to src/entities/bullets/Snowflake.png diff --git a/src/mechanics/Snowflake.png.import b/src/entities/bullets/Snowflake.png.import similarity index 70% rename from src/mechanics/Snowflake.png.import rename to src/entities/bullets/Snowflake.png.import index ebde411..567af5f 100644 --- a/src/mechanics/Snowflake.png.import +++ b/src/entities/bullets/Snowflake.png.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/Snowflake.png-e248e372833c2aa730b5b6d333276836.stex" +path="res://.import/Snowflake.png-2ff4a87cc6064319f83f31f66c433ca5.stex" metadata={ "vram_texture": false } [deps] -source_file="res://src/mechanics/Snowflake.png" -dest_files=[ "res://.import/Snowflake.png-e248e372833c2aa730b5b6d333276836.stex" ] +source_file="res://src/entities/bullets/Snowflake.png" +dest_files=[ "res://.import/Snowflake.png-2ff4a87cc6064319f83f31f66c433ca5.stex" ] [params] diff --git a/src/entities/bullets/Snowflake.tscn b/src/entities/bullets/Snowflake.tscn new file mode 100644 index 0000000..6e941ed --- /dev/null +++ b/src/entities/bullets/Snowflake.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://src/entities/bullets/AbstractBullet.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/entities/bullets/Snowflake.png" type="Texture" id=2] +[ext_resource path="res://src/mechanics/Light.png" type="Texture" id=3] + +[sub_resource type="CircleShape2D" id=1] +radius = 8.0 + +[node name="Snowflake" instance=ExtResource( 1 )] + +[node name="Shape" type="CollisionShape2D" parent="." index="2"] +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="Shape" index="0"] +texture = ExtResource( 2 ) + +[node name="Light" type="Light2D" parent="Shape/Sprite" index="0"] +texture = ExtResource( 3 ) +texture_scale = 0.02 +color = Color( 0, 1, 0.976471, 1 ) diff --git a/src/entities/enemies/PathEnemy.tscn b/src/entities/enemies/PathEnemy.tscn index 831294c..7d0dbe5 100644 --- a/src/entities/enemies/PathEnemy.tscn +++ b/src/entities/enemies/PathEnemy.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=5 format=2] -[ext_resource path="res://src/entities/enemies/EnemySpider.png" type="Texture" id=1] +[ext_resource path="res://src/entities/enemies/EnemySpiderSanta.png" type="Texture" id=1] [ext_resource path="res://src/entities/enemies/AbstractEnemy.tscn" type="PackedScene" id=2] +[ext_resource path="res://src/mechanics/Light.png" type="Texture" id=3] [sub_resource type="CircleShape2D" id=1] radius = 33.0 @@ -13,3 +14,9 @@ shape = SubResource( 1 ) [node name="Sprite" type="Sprite" parent="Shape" index="0"] texture = ExtResource( 1 ) + +[node name="Light" type="Light2D" parent="Shape/Sprite" index="0"] +position = Vector2( 1, 0 ) +texture = ExtResource( 3 ) +texture_scale = 0.3 +color = Color( 0.666667, 0.901961, 0.878431, 1 ) diff --git a/src/levels/Game.gd b/src/levels/Game.gd index 4e44334..c495388 100644 --- a/src/levels/Game.gd +++ b/src/levels/Game.gd @@ -1,49 +1,38 @@ extends Node2D +signal started_main_menu(origin) +signal started_phase_one(origin) +signal started_phase_two(origin) +signal started_bad_ending(origin) +signal started_good_ending(origin) + + export(PackedScene) var main_menu = preload("res://src/levels/mainmenu/MainMenu.tscn") export(PackedScene) var phase_one = preload("res://src/levels/phaseone/PhaseOne.tscn") +export(PackedScene) var phase_two = preload("res://src/levels/phasetwo/PhaseTwo.tscn") export(PackedScene) var user_interface = preload("res://src/levels/ui/UserInterface.tscn") export(PackedScene) var bad_ending = preload("res://src/levels/endings/BadEnding.tscn") export(PackedScene) var good_ending = preload("res://src/levels/endings/GoodEnding.tscn") +var score + + func _ready(): print("Starting from the menu!") + start_menu() + + +func start_menu(): add_child(main_menu.instance()) # warning-ignore: RETURN_VALUE_DISCARDED $MainMenu/TheDarkNightUI/Play.connect("pressed", self, "_on_MainMenu_Play_pressed", []) + emit_signal("started_main_menu", self) -func _on_MainMenu_Play_pressed(): - $MainMenu.queue_free() - _on_Play_pressed() - - -func _on_Fire_died(_origin, _value): - $PhaseOne.queue_free() - $UserInterface.queue_free() - add_child(bad_ending.instance()) - # warning-ignore: RETURN_VALUE_DISCARDED - $BadEnding/TheDarkNightUI/Play.connect("pressed", self, "_on_BadEnding_Replay_pressed", []) - - -func _on_Player_died(_origin, _value): - print("Should display a bad end...") - $PhaseOne.queue_free() - $UserInterface.queue_free() - add_child(bad_ending.instance()) - # warning-ignore: RETURN_VALUE_DISCARDED - $BadEnding/TheDarkNightUI/Play.connect("pressed", self, "_on_BadEnding_Replay_pressed", []) - - -func _on_BadEnding_Replay_pressed(): - $BadEnding.queue_free() - _on_Play_pressed() - - -func _on_Play_pressed(): - print("Moving to the first phase...") +func start_one(): + print("Phase one!") add_child(phase_one.instance()) add_child(user_interface.instance()) # warning-ignore: RETURN_VALUE_DISCARDED @@ -51,10 +40,55 @@ func _on_Play_pressed(): # warning-ignore: RETURN_VALUE_DISCARDED $PhaseOne/Entities/Fire/Firepit/Damageable.connect("health_changed", $Music, "_on_Fire_intensity_changed") # warning-ignore: RETURN_VALUE_DISCARDED - $PhaseOne/Entities/Fire/Firepit/Damageable.connect("health_reached_min", self, "_on_Fire_died") + $PhaseOne/Entities/Fire/Firepit/Damageable.connect("health_reached_min", self, "_on_Fire_died", [], CONNECT_ONESHOT) # warning-ignore: RETURN_VALUE_DISCARDED $UserInterface/TheDarkNightUI/MuteButton.connect("toggled", $Music, "_on_MuteButton_toggled") # warning-ignore: RETURN_VALUE_DISCARDED $PhaseOne/Entities/PhaseOnePlayer/Damageable.connect("health_changed", $UserInterface/TheDarkNightUI/HealthBar, "_on_PhaseOnePlayer_health_changed") # warning-ignore: RETURN_VALUE_DISCARDED - $PhaseOne/Entities/PhaseOnePlayer/Damageable.connect("health_reached_min", self, "_on_Player_died") + $PhaseOne/Entities/PhaseOnePlayer/Damageable.connect("health_reached_min", self, "_on_Player_died", [], CONNECT_ONESHOT) + emit_signal("started_phase_one", self) + + +func start_two(): + print("Phase two!") + add_child(phase_two.instance()) + emit_signal("started_phase_two", self) + + +func start_good(): + print("Good ending!!!") + add_child(good_ending.instance()) + emit_signal("started_good_ending", self) + + +func start_bad(): + print("Bad ending...") + score = $PhaseOne.survival_seconds + add_child(bad_ending.instance()) + # warning-ignore: RETURN_VALUE_DISCARDED + $BadEnding/TheDarkNightUI/Play.connect("pressed", self, "_on_BadEnding_Replay_pressed", []) + $BadEnding/TheDarkNightUI/Score.text = Utils.format_time(score) + emit_signal("started_bad_ending", self) + + +func _on_Fire_died(_origin, _value): + $PhaseOne.queue_free() + $UserInterface.queue_free() + start_bad() + + +func _on_Player_died(_origin, _value): + $PhaseOne.queue_free() + $UserInterface.queue_free() + start_bad() + + +func _on_MainMenu_Play_pressed(): + $MainMenu.queue_free() + start_one() + + +func _on_BadEnding_Replay_pressed(): + $BadEnding.queue_free() + start_one() diff --git a/src/levels/Game.tscn b/src/levels/Game.tscn index 5fe1e98..bfb952d 100644 --- a/src/levels/Game.tscn +++ b/src/levels/Game.tscn @@ -22,34 +22,31 @@ script = ExtResource( 11 ) [node name="Bell" type="AudioStreamPlayer" parent="Music"] stream = ExtResource( 20 ) volume_db = -80.0 -autoplay = true [node name="Choir" type="AudioStreamPlayer" parent="Music"] stream = ExtResource( 21 ) volume_db = -80.0 -autoplay = true [node name="Drum" type="AudioStreamPlayer" parent="Music"] stream = ExtResource( 19 ) volume_db = -80.0 -autoplay = true [node name="BossDrum" type="AudioStreamPlayer" parent="Music"] stream = ExtResource( 3 ) volume_db = -80.0 -autoplay = true [node name="BossGuitar" type="AudioStreamPlayer" parent="Music"] stream = ExtResource( 7 ) volume_db = -80.0 -autoplay = true [node name="FireCrackle" type="AudioStreamPlayer" parent="Music"] stream = ExtResource( 1 ) volume_db = -80.0 -autoplay = true [node name="Wind" type="AudioStreamPlayer" parent="Music"] stream = ExtResource( 2 ) volume_db = -80.0 -autoplay = true + +[connection signal="started_bad_ending" from="." to="Music" method="_on_Game_started_bad_ending"] +[connection signal="started_main_menu" from="." to="Music" method="_on_Game_started_main_menu"] +[connection signal="started_phase_one" from="." to="Music" method="_on_Game_started_phase_one"] diff --git a/src/levels/Music.gd b/src/levels/Music.gd index ee76dd8..fb9f2ad 100644 --- a/src/levels/Music.gd +++ b/src/levels/Music.gd @@ -8,13 +8,11 @@ export var bell_min: float = 40 export var bell_max: float = 100 export var drum_min: float = 100 export var drum_max: float = 160 +export var crackle_min: float = 0 +export var crackle_max: float = 170 export var muted: bool setget set_mute, get_mute -func _ready(): - update_state() - - func set_mute(value): var index = AudioServer.get_bus_index("Master") AudioServer.set_bus_mute(index, value) @@ -30,17 +28,48 @@ func update_state(): $Drum.bus = "Master" if $Drum.volume_db > -60 else "Mute" $BossDrum.bus = "Master" if $BossDrum.volume_db > -60 else "Mute" $BossGuitar.bus = "Master" if $BossGuitar.volume_db > -60 else "Mute" - $Wind.bus = "Master" if $Wind.volume_db > -60 else "Mute" $FireCrackle.bus = "Master" if $FireCrackle.volume_db > -60 else "Mute" - func _on_Fire_intensity_changed(_origin, value): $Choir.volume_db = (smoothstep(choir_min, choir_max, value) - 1) * 60 $Bell.volume_db = (smoothstep(bell_min, bell_max, value) - 1) * 60 $Drum.volume_db = (smoothstep(drum_min, drum_max, value) - 1) * 60 + $FireCrackle.volume_db = (smoothstep(crackle_min, crackle_max, value) - 1) * 60 update_state() func _on_MuteButton_toggled(button_pressed): set_mute(button_pressed) + + +func _on_Game_started_main_menu(_origin): + $Wind.play() + $Wind.volume_db = 0 + $Wind.bus = "Master" + $FireCrackle.play() + $FireCrackle.volume_db = 0 + $FireCrackle.bus = "Master" + +func _on_Game_started_phase_one(_origin): + $Wind.stop() + $FireCrackle.stop() + $Choir.play() + $Bell.play() + $Drum.play() + $BossDrum.play() + $BossGuitar.play() + $FireCrackle.play() + $FireCrackle.volume_db = -60 + update_state() + +func _on_Game_started_bad_ending(_origin): + $Choir.stop() + $Bell.stop() + $Drum.stop() + $BossDrum.stop() + $BossGuitar.stop() + $FireCrackle.stop() + $Wind.play() + $Wind.volume_db = 0 + $Wind.bus = "Master" diff --git a/src/levels/endings/BadEnding.tscn b/src/levels/endings/BadEnding.tscn index 273983e..03a2378 100644 --- a/src/levels/endings/BadEnding.tscn +++ b/src/levels/endings/BadEnding.tscn @@ -78,3 +78,13 @@ autowrap = true [node name="Credits" parent="TheDarkNightUI/LabelTitle" instance=ExtResource( 5 )] margin_top = 300.0 + +[node name="Score" type="Label" parent="TheDarkNightUI"] +margin_left = 341.0 +margin_top = -209.0 +margin_right = 505.0 +margin_bottom = -158.0 +custom_fonts/font = SubResource( 8 ) +text = "0:00.000" +align = 1 +autowrap = true diff --git a/src/levels/phasetwo/PhaseTwo.tscn b/src/levels/phasetwo/PhaseTwo.tscn new file mode 100644 index 0000000..b622eb4 --- /dev/null +++ b/src/levels/phasetwo/PhaseTwo.tscn @@ -0,0 +1,205 @@ +[gd_scene load_steps=27 format=2] + +[ext_resource path="res://src/mechanics/Darkness.tscn" type="PackedScene" id=1] +[ext_resource path="res://src/entities/fire/Fire.gd" type="Script" id=2] +[ext_resource path="res://src/behaviours/damage/Damageable.tscn" type="PackedScene" id=3] +[ext_resource path="res://src/mechanics/GrassDirtTileset.png" type="Texture" id=4] +[ext_resource path="res://src/entities/fire/FirePit.png" type="Texture" id=5] +[ext_resource path="res://src/mechanics/White.png" type="Texture" id=6] +[ext_resource path="res://src/mechanics/Light.png" type="Texture" id=7] +[ext_resource path="res://src/mechanics/Background.tscn" type="PackedScene" id=8] +[ext_resource path="res://src/behaviours/movement/PlayerMovement.tscn" type="PackedScene" id=9] +[ext_resource path="res://src/entities/players/CharacterFront.png" type="Texture" id=10] +[ext_resource path="res://src/entities/players/CharacterFrontLeft.png" type="Texture" id=11] +[ext_resource path="res://src/entities/bullets/LaserBeam.tscn" type="PackedScene" id=12] +[ext_resource path="res://src/behaviours/spawning/SpawnOnShoot.tscn" type="PackedScene" id=13] +[ext_resource path="res://src/behaviours/graphics/FourSidedSprite.gd" type="Script" id=14] +[ext_resource path="res://src/behaviours/spawning/ShootOnClick.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/behaviours/damage/FreeOnRequest.tscn" type="PackedScene" id=16] +[ext_resource path="res://src/entities/enemies/EnemySpiderSanta.png" type="Texture" id=17] +[ext_resource path="res://src/sounds/Laser.mp3" type="AudioStream" id=18] +[ext_resource path="res://src/behaviours/spawning/ShootWhenPossible.tscn" type="PackedScene" id=19] +[ext_resource path="res://src/entities/bullets/Snowflake.tscn" type="PackedScene" id=20] + +[sub_resource type="TileSet" id=1] +0/name = "GrassDirtTileset.png 0" +0/texture = ExtResource( 4 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 160, 160 ) +0/tile_mode = 2 +0/autotile/icon_coordinate = Vector2( 0, 0 ) +0/autotile/tile_size = Vector2( 32, 32 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 + +[sub_resource type="CapsuleShape2D" id=3] +radius = 9.0 +height = 14.0 + +[sub_resource type="SpriteFrames" id=2] +animations = [ { +"frames": [ ExtResource( 11 ) ], +"loop": true, +"name": "left", +"speed": 5.0 +}, { +"frames": [ ExtResource( 10 ) ], +"loop": true, +"name": "right", +"speed": 5.0 +}, { +"frames": [ ExtResource( 11 ) ], +"loop": true, +"name": "up", +"speed": 5.0 +}, { +"frames": [ ExtResource( 10 ) ], +"loop": true, +"name": "down", +"speed": 5.0 +} ] + +[sub_resource type="CircleShape2D" id=6] +radius = 33.0 + +[sub_resource type="CapsuleShape2D" id=4] +radius = 20.0 +height = 10.0 + +[sub_resource type="ParticlesMaterial" id=5] +emission_shape = 2 +emission_box_extents = Vector3( 640, 1, 1 ) +flag_disable_z = true +gravity = Vector3( 0, 198, 0 ) +orbit_velocity = 0.0 +orbit_velocity_random = 0.0 +damping = 10.0 +scale = 0.12 +scale_random = 0.1 + +[node name="PhaseTwo" type="CanvasLayer"] +layer = 0 + +[node name="Background" parent="." instance=ExtResource( 8 )] +tile_set = SubResource( 1 ) +tile_data = PoolIntArray( 0, 0, 131074, 1, 0, 131074, 2, 0, 131074, 3, 0, 131074, 4, 0, 131074, 5, 0, 131074, 6, 0, 131074, 7, 0, 131074, 8, 0, 131074, 9, 0, 131074, 10, 0, 131074, 11, 0, 131074, 12, 0, 131074, 13, 0, 131074, 14, 0, 131074, 15, 0, 131074, 16, 0, 131075, 17, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 21, 0, 0, 22, 0, 0, 23, 0, 131073, 24, 0, 131074, 25, 0, 131074, 26, 0, 131074, 27, 0, 131074, 28, 0, 131074, 29, 0, 131074, 30, 0, 131074, 31, 0, 131074, 32, 0, 131074, 33, 0, 131074, 34, 0, 131074, 35, 0, 131074, 36, 0, 131074, 37, 0, 131074, 38, 0, 131074, 39, 0, 131074, 65536, 0, 131074, 65537, 0, 131074, 65538, 0, 131074, 65539, 0, 131074, 65540, 0, 131074, 65541, 0, 131074, 65542, 0, 131074, 65543, 0, 131074, 65544, 0, 131074, 65545, 0, 131074, 65546, 0, 131074, 65547, 0, 131074, 65548, 0, 131074, 65549, 0, 131074, 65550, 0, 131074, 65551, 0, 131074, 65552, 0, 131075, 65553, 0, 0, 65554, 0, 0, 65555, 0, 0, 65556, 0, 0, 65557, 0, 0, 65558, 0, 0, 65559, 0, 131073, 65560, 0, 131074, 65561, 0, 131074, 65562, 0, 131074, 65563, 0, 131074, 65564, 0, 131074, 65565, 0, 131074, 65566, 0, 131074, 65567, 0, 131074, 65568, 0, 131074, 65569, 0, 131074, 65570, 0, 131074, 65571, 0, 131074, 65572, 0, 131074, 65573, 0, 131074, 65574, 0, 131074, 65575, 0, 131074, 131072, 0, 131074, 131073, 0, 131074, 131074, 0, 131074, 131075, 0, 131074, 131076, 0, 131074, 131077, 0, 131074, 131078, 0, 131074, 131079, 0, 131074, 131080, 0, 131074, 131081, 0, 131074, 131082, 0, 131074, 131083, 0, 131074, 131084, 0, 131074, 131085, 0, 131074, 131086, 0, 131074, 131087, 0, 131074, 131088, 0, 131075, 131089, 0, 0, 131090, 0, 0, 131091, 0, 0, 131092, 0, 0, 131093, 0, 0, 131094, 0, 0, 131095, 0, 131073, 131096, 0, 131074, 131097, 0, 131074, 131098, 0, 131074, 131099, 0, 131074, 131100, 0, 131074, 131101, 0, 131074, 131102, 0, 131074, 131103, 0, 131074, 131104, 0, 131074, 131105, 0, 131074, 131106, 0, 131074, 131107, 0, 131074, 131108, 0, 131074, 131109, 0, 131074, 131110, 0, 131074, 131111, 0, 131074, 196608, 0, 131074, 196609, 0, 131074, 196610, 0, 131074, 196611, 0, 131074, 196612, 0, 131074, 196613, 0, 131074, 196614, 0, 131074, 196615, 0, 131074, 196616, 0, 131074, 196617, 0, 131074, 196618, 0, 131074, 196619, 0, 131074, 196620, 0, 131074, 196621, 0, 131074, 196622, 0, 131074, 196623, 0, 131074, 196624, 0, 131075, 196625, 0, 0, 196626, 0, 0, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 0, 0, 196631, 0, 131073, 196632, 0, 131074, 196633, 0, 131074, 196634, 0, 131074, 196635, 0, 131074, 196636, 0, 131074, 196637, 0, 131074, 196638, 0, 131074, 196639, 0, 131074, 196640, 0, 131074, 196641, 0, 131074, 196642, 0, 131074, 196643, 0, 131074, 196644, 0, 131074, 196645, 0, 131074, 196646, 0, 131074, 196647, 0, 131074, 262144, 0, 131074, 262145, 0, 131074, 262146, 0, 131074, 262147, 0, 131074, 262148, 0, 131074, 262149, 0, 131074, 262150, 0, 131074, 262151, 0, 131074, 262152, 0, 131074, 262153, 0, 131074, 262154, 0, 131074, 262155, 0, 131074, 262156, 0, 131074, 262157, 0, 131074, 262158, 0, 131074, 262159, 0, 131074, 262160, 0, 131075, 262161, 0, 0, 262162, 0, 0, 262163, 0, 0, 262164, 0, 0, 262165, 0, 0, 262166, 0, 0, 262167, 0, 131073, 262168, 0, 131074, 262169, 0, 131074, 262170, 0, 131074, 262171, 0, 131074, 262172, 0, 131074, 262173, 0, 131074, 262174, 0, 131074, 262175, 0, 131074, 262176, 0, 131074, 262177, 0, 131074, 262178, 0, 131074, 262179, 0, 131074, 262180, 0, 131074, 262181, 0, 131074, 262182, 0, 131074, 262183, 0, 131074, 327680, 0, 131074, 327681, 0, 131074, 327682, 0, 131074, 327683, 0, 131074, 327684, 0, 131074, 327685, 0, 131074, 327686, 0, 131074, 327687, 0, 131074, 327688, 0, 131074, 327689, 0, 131074, 327690, 0, 131074, 327691, 0, 131074, 327692, 0, 131074, 327693, 0, 131074, 327694, 0, 131074, 327695, 0, 131074, 327696, 0, 131075, 327697, 0, 0, 327698, 0, 0, 327699, 0, 0, 327700, 0, 0, 327701, 0, 0, 327702, 0, 0, 327703, 0, 131073, 327704, 0, 131074, 327705, 0, 131074, 327706, 0, 131074, 327707, 0, 131074, 327708, 0, 131074, 327709, 0, 131074, 327710, 0, 131074, 327711, 0, 131074, 327712, 0, 131074, 327713, 0, 131074, 327714, 0, 131074, 327715, 0, 131074, 327716, 0, 131074, 327717, 0, 131074, 327718, 0, 131074, 327719, 0, 131074, 393216, 0, 196610, 393217, 0, 196610, 393218, 0, 196610, 393219, 0, 196610, 393220, 0, 196610, 393221, 0, 196610, 393222, 0, 196610, 393223, 0, 196610, 393224, 0, 196610, 393225, 0, 196610, 393226, 0, 196610, 393227, 0, 196610, 393228, 0, 196610, 393229, 0, 196610, 393230, 0, 196610, 393231, 0, 196610, 393232, 0, 196611, 393233, 0, 0, 393234, 0, 0, 393235, 0, 0, 393236, 0, 0, 393237, 0, 0, 393238, 0, 0, 393239, 0, 196609, 393240, 0, 196610, 393241, 0, 196610, 393242, 0, 196610, 393243, 0, 196610, 393244, 0, 196610, 393245, 0, 196610, 393246, 0, 196610, 393247, 0, 196610, 393248, 0, 196610, 393249, 0, 196610, 393250, 0, 196610, 393251, 0, 196610, 393252, 0, 196610, 393253, 0, 196610, 393254, 0, 196610, 393255, 0, 196610, 458752, 0, 0, 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 0, 0, 458763, 0, 0, 458764, 0, 0, 458765, 0, 0, 458766, 0, 0, 458767, 0, 0, 458768, 0, 0, 458769, 0, 0, 458770, 0, 0, 458771, 0, 0, 458772, 0, 0, 458773, 0, 0, 458774, 0, 0, 458775, 0, 0, 458776, 0, 0, 458777, 0, 0, 458778, 0, 0, 458779, 0, 0, 458780, 0, 0, 458781, 0, 0, 458782, 0, 0, 458783, 0, 0, 458784, 0, 0, 458785, 0, 0, 458786, 0, 0, 458787, 0, 0, 458788, 0, 0, 458789, 0, 0, 458790, 0, 0, 458791, 0, 0, 524288, 0, 0, 524289, 0, 0, 524290, 0, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524297, 0, 0, 524298, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, 0, 0, 524302, 0, 0, 524303, 0, 0, 524304, 0, 0, 524305, 0, 0, 524306, 0, 0, 524307, 0, 0, 524308, 0, 0, 524309, 0, 0, 524310, 0, 0, 524311, 0, 0, 524312, 0, 0, 524313, 0, 0, 524314, 0, 0, 524315, 0, 0, 524316, 0, 0, 524317, 0, 0, 524318, 0, 0, 524319, 0, 0, 524320, 0, 0, 524321, 0, 0, 524322, 0, 0, 524323, 0, 0, 524324, 0, 0, 524325, 0, 0, 524326, 0, 0, 524327, 0, 0, 589824, 0, 0, 589825, 0, 0, 589826, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589835, 0, 0, 589836, 0, 0, 589837, 0, 0, 589838, 0, 0, 589839, 0, 0, 589840, 0, 0, 589841, 0, 0, 589842, 0, 0, 589843, 0, 0, 589844, 0, 0, 589845, 0, 0, 589846, 0, 0, 589847, 0, 0, 589848, 0, 0, 589849, 0, 0, 589850, 0, 0, 589851, 0, 0, 589852, 0, 0, 589853, 0, 0, 589854, 0, 0, 589855, 0, 0, 589856, 0, 0, 589857, 0, 0, 589858, 0, 0, 589859, 0, 0, 589860, 0, 0, 589861, 0, 0, 589862, 0, 0, 589863, 0, 0, 655360, 0, 0, 655361, 0, 0, 655362, 0, 0, 655363, 0, 0, 655364, 0, 0, 655365, 0, 0, 655366, 0, 0, 655367, 0, 0, 655368, 0, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 0, 0, 655373, 0, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0, 655379, 0, 0, 655380, 0, 0, 655381, 0, 0, 655382, 0, 0, 655383, 0, 0, 655384, 0, 0, 655385, 0, 0, 655386, 0, 0, 655387, 0, 0, 655388, 0, 0, 655389, 0, 0, 655390, 0, 0, 655391, 0, 0, 655392, 0, 0, 655393, 0, 0, 655394, 0, 0, 655395, 0, 0, 655396, 0, 0, 655397, 0, 0, 655398, 0, 0, 655399, 0, 0, 720896, 0, 0, 720897, 0, 0, 720898, 0, 0, 720899, 0, 0, 720900, 0, 0, 720901, 0, 0, 720902, 0, 0, 720903, 0, 0, 720904, 0, 0, 720905, 0, 0, 720906, 0, 0, 720907, 0, 0, 720908, 0, 0, 720909, 0, 0, 720910, 0, 0, 720911, 0, 0, 720912, 0, 0, 720913, 0, 0, 720914, 0, 0, 720915, 0, 0, 720916, 0, 0, 720917, 0, 0, 720918, 0, 0, 720919, 0, 0, 720920, 0, 0, 720921, 0, 0, 720922, 0, 0, 720923, 0, 0, 720924, 0, 0, 720925, 0, 0, 720926, 0, 0, 720927, 0, 0, 720928, 0, 0, 720929, 0, 0, 720930, 0, 0, 720931, 0, 0, 720932, 0, 0, 720933, 0, 0, 720934, 0, 0, 720935, 0, 0, 786432, 0, 0, 786433, 0, 0, 786434, 0, 0, 786435, 0, 0, 786436, 0, 0, 786437, 0, 0, 786438, 0, 0, 786439, 0, 0, 786440, 0, 0, 786441, 0, 0, 786442, 0, 0, 786443, 0, 0, 786444, 0, 0, 786445, 0, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 0, 0, 786450, 0, 0, 786451, 0, 0, 786452, 0, 0, 786453, 0, 0, 786454, 0, 0, 786455, 0, 0, 786456, 0, 0, 786457, 0, 0, 786458, 0, 0, 786459, 0, 0, 786460, 0, 0, 786461, 0, 0, 786462, 0, 0, 786463, 0, 0, 786464, 0, 0, 786465, 0, 0, 786466, 0, 0, 786467, 0, 0, 786468, 0, 0, 786469, 0, 0, 786470, 0, 0, 786471, 0, 0, 851968, 0, 65538, 851969, 0, 65538, 851970, 0, 65538, 851971, 0, 65538, 851972, 0, 65538, 851973, 0, 65538, 851974, 0, 65538, 851975, 0, 65538, 851976, 0, 65538, 851977, 0, 65538, 851978, 0, 65538, 851979, 0, 65538, 851980, 0, 65538, 851981, 0, 65538, 851982, 0, 65538, 851983, 0, 65538, 851984, 0, 65539, 851985, 0, 0, 851986, 0, 0, 851987, 0, 0, 851988, 0, 0, 851989, 0, 0, 851990, 0, 0, 851991, 0, 65537, 851992, 0, 65538, 851993, 0, 65538, 851994, 0, 65538, 851995, 0, 65538, 851996, 0, 65538, 851997, 0, 65538, 851998, 0, 65538, 851999, 0, 65538, 852000, 0, 65538, 852001, 0, 65538, 852002, 0, 65538, 852003, 0, 65538, 852004, 0, 65538, 852005, 0, 65538, 852006, 0, 65538, 852007, 0, 65538, 917504, 0, 131074, 917505, 0, 131074, 917506, 0, 131074, 917507, 0, 131074, 917508, 0, 131074, 917509, 0, 131074, 917510, 0, 131074, 917511, 0, 131074, 917512, 0, 131074, 917513, 0, 131074, 917514, 0, 131074, 917515, 0, 131074, 917516, 0, 131074, 917517, 0, 131074, 917518, 0, 131074, 917519, 0, 131074, 917520, 0, 131075, 917521, 0, 0, 917522, 0, 0, 917523, 0, 0, 917524, 0, 0, 917525, 0, 0, 917526, 0, 0, 917527, 0, 131073, 917528, 0, 131074, 917529, 0, 131074, 917530, 0, 131074, 917531, 0, 131074, 917532, 0, 131074, 917533, 0, 131074, 917534, 0, 131074, 917535, 0, 131074, 917536, 0, 131074, 917537, 0, 131074, 917538, 0, 131074, 917539, 0, 131074, 917540, 0, 131074, 917541, 0, 131074, 917542, 0, 131074, 917543, 0, 131074, 983040, 0, 131074, 983041, 0, 131074, 983042, 0, 131074, 983043, 0, 131074, 983044, 0, 131074, 983045, 0, 131074, 983046, 0, 131074, 983047, 0, 131074, 983048, 0, 131074, 983049, 0, 131074, 983050, 0, 131074, 983051, 0, 131074, 983052, 0, 131074, 983053, 0, 131074, 983054, 0, 131074, 983055, 0, 131074, 983056, 0, 131075, 983057, 0, 0, 983058, 0, 0, 983059, 0, 0, 983060, 0, 0, 983061, 0, 0, 983062, 0, 0, 983063, 0, 131073, 983064, 0, 131074, 983065, 0, 131074, 983066, 0, 131074, 983067, 0, 131074, 983068, 0, 131074, 983069, 0, 131074, 983070, 0, 131074, 983071, 0, 131074, 983072, 0, 131074, 983073, 0, 131074, 983074, 0, 131074, 983075, 0, 131074, 983076, 0, 131074, 983077, 0, 131074, 983078, 0, 131074, 983079, 0, 131074, 1048576, 0, 131074, 1048577, 0, 131074, 1048578, 0, 131074, 1048579, 0, 131074, 1048580, 0, 131074, 1048581, 0, 131074, 1048582, 0, 131074, 1048583, 0, 131074, 1048584, 0, 131074, 1048585, 0, 131074, 1048586, 0, 131074, 1048587, 0, 131074, 1048588, 0, 131074, 1048589, 0, 131074, 1048590, 0, 131074, 1048591, 0, 131074, 1048592, 0, 131075, 1048593, 0, 0, 1048594, 0, 0, 1048595, 0, 0, 1048596, 0, 0, 1048597, 0, 0, 1048598, 0, 0, 1048599, 0, 131073, 1048600, 0, 131074, 1048601, 0, 131074, 1048602, 0, 131074, 1048603, 0, 131074, 1048604, 0, 131074, 1048605, 0, 131074, 1048606, 0, 131074, 1048607, 0, 131074, 1048608, 0, 131074, 1048609, 0, 131074, 1048610, 0, 131074, 1048611, 0, 131074, 1048612, 0, 131074, 1048613, 0, 131074, 1048614, 0, 131074, 1048615, 0, 131074, 1114112, 0, 131074, 1114113, 0, 131074, 1114114, 0, 131074, 1114115, 0, 131074, 1114116, 0, 131074, 1114117, 0, 131074, 1114118, 0, 131074, 1114119, 0, 131074, 1114120, 0, 131074, 1114121, 0, 131074, 1114122, 0, 131074, 1114123, 0, 131074, 1114124, 0, 131074, 1114125, 0, 131074, 1114126, 0, 131074, 1114127, 0, 131074, 1114128, 0, 131075, 1114129, 0, 0, 1114130, 0, 0, 1114131, 0, 0, 1114132, 0, 0, 1114133, 0, 0, 1114134, 0, 0, 1114135, 0, 131073, 1114136, 0, 131074, 1114137, 0, 131074, 1114138, 0, 131074, 1114139, 0, 131074, 1114140, 0, 131074, 1114141, 0, 131074, 1114142, 0, 131074, 1114143, 0, 131074, 1114144, 0, 131074, 1114145, 0, 131074, 1114146, 0, 131074, 1114147, 0, 131074, 1114148, 0, 131074, 1114149, 0, 131074, 1114150, 0, 131074, 1114151, 0, 131074, 1179648, 0, 131074, 1179649, 0, 131074, 1179650, 0, 131074, 1179651, 0, 131074, 1179652, 0, 131074, 1179653, 0, 131074, 1179654, 0, 131074, 1179655, 0, 131074, 1179656, 0, 131074, 1179657, 0, 131074, 1179658, 0, 131074, 1179659, 0, 131074, 1179660, 0, 131074, 1179661, 0, 131074, 1179662, 0, 131074, 1179663, 0, 131074, 1179664, 0, 131075, 1179665, 0, 0, 1179666, 0, 0, 1179667, 0, 0, 1179668, 0, 0, 1179669, 0, 0, 1179670, 0, 0, 1179671, 0, 131073, 1179672, 0, 131074, 1179673, 0, 131074, 1179674, 0, 131074, 1179675, 0, 131074, 1179676, 0, 131074, 1179677, 0, 131074, 1179678, 0, 131074, 1179679, 0, 131074, 1179680, 0, 131074, 1179681, 0, 131074, 1179682, 0, 131074, 1179683, 0, 131074, 1179684, 0, 131074, 1179685, 0, 131074, 1179686, 0, 131074, 1179687, 0, 131074, 1245184, 0, 131074, 1245185, 0, 131074, 1245186, 0, 131074, 1245187, 0, 131074, 1245188, 0, 131074, 1245189, 0, 131074, 1245190, 0, 131074, 1245191, 0, 131074, 1245192, 0, 131074, 1245193, 0, 131074, 1245194, 0, 131074, 1245195, 0, 131074, 1245196, 0, 131074, 1245197, 0, 131074, 1245198, 0, 131074, 1245199, 0, 131074, 1245200, 0, 131075, 1245201, 0, 0, 1245202, 0, 0, 1245203, 0, 0, 1245204, 0, 0, 1245205, 0, 0, 1245206, 0, 0, 1245207, 0, 131073, 1245208, 0, 131074, 1245209, 0, 131074, 1245210, 0, 131074, 1245211, 0, 131074, 1245212, 0, 131074, 1245213, 0, 131074, 1245214, 0, 131074, 1245215, 0, 131074, 1245216, 0, 131074, 1245217, 0, 131074, 1245218, 0, 131074, 1245219, 0, 131074, 1245220, 0, 131074, 1245221, 0, 131074, 1245222, 0, 131074, 1245223, 0, 131074 ) + +[node name="Darkness" parent="." instance=ExtResource( 1 )] + +[node name="Entities" type="Node" parent="."] + +[node name="PhaseTwoPlayer" type="KinematicBody2D" parent="Entities"] +position = Vector2( 647, 587 ) +collision_layer = 19 + +[node name="Shape" type="CollisionShape2D" parent="Entities/PhaseTwoPlayer"] +shape = SubResource( 3 ) + +[node name="FourSidedSprite" type="AnimatedSprite" parent="Entities/PhaseTwoPlayer/Shape"] +frames = SubResource( 2 ) +animation = "left" +script = ExtResource( 14 ) + +[node name="Listener" type="Listener2D" parent="Entities/PhaseTwoPlayer"] +current = true + +[node name="Damageable" parent="Entities/PhaseTwoPlayer" instance=ExtResource( 3 )] +max_health = 50.0 +health = 50.0 + +[node name="PlayerMovement" parent="Entities/PhaseTwoPlayer" instance=ExtResource( 9 )] + +[node name="SpawnOnShoot" parent="Entities/PhaseTwoPlayer" instance=ExtResource( 13 )] +spawning = ExtResource( 12 ) +container_name = "Bullets" + +[node name="Cooldown" parent="Entities/PhaseTwoPlayer/SpawnOnShoot" index="0"] +wait_time = 0.1 + +[node name="Sound" parent="Entities/PhaseTwoPlayer/SpawnOnShoot" index="1"] +stream = ExtResource( 18 ) + +[node name="ShootOnClick" parent="Entities/PhaseTwoPlayer/SpawnOnShoot" instance=ExtResource( 15 )] +rapid_fire_instances = 1 + +[node name="Light" type="Light2D" parent="Entities/PhaseTwoPlayer"] +texture = ExtResource( 7 ) +texture_scale = 0.1 +color = Color( 1, 1, 1, 0.12549 ) + +[node name="PhaseTwoBoss" type="KinematicBody2D" parent="Entities"] +position = Vector2( 640, 30 ) +collision_layer = 3 + +[node name="Shape" type="CollisionShape2D" parent="Entities/PhaseTwoBoss"] +shape = SubResource( 6 ) + +[node name="Sprite" type="Sprite" parent="Entities/PhaseTwoBoss/Shape"] +texture = ExtResource( 17 ) + +[node name="Light" type="Light2D" parent="Entities/PhaseTwoBoss/Shape/Sprite"] +position = Vector2( 1, 0 ) +texture = ExtResource( 7 ) +texture_scale = 0.3 +color = Color( 0.666667, 0.901961, 0.878431, 1 ) + +[node name="Damageable" parent="Entities/PhaseTwoBoss" instance=ExtResource( 3 )] +max_health = 5000.0 +health = 5000.0 + +[node name="FreeOnRequest" parent="Entities/PhaseTwoBoss" instance=ExtResource( 16 )] + +[node name="SpawnOnShoot" parent="Entities/PhaseTwoBoss" instance=ExtResource( 13 )] +spawning = ExtResource( 20 ) +container_name = "Bullets" + +[node name="Sound" parent="Entities/PhaseTwoBoss/SpawnOnShoot" index="1"] +stream = null + +[node name="ShootWhenPossible" parent="Entities/PhaseTwoBoss/SpawnOnShoot" instance=ExtResource( 19 )] + +[node name="Fire" type="Node2D" parent="Entities"] +position = Vector2( 640, 319 ) +script = ExtResource( 2 ) + +[node name="Firepit" type="StaticBody2D" parent="Entities/Fire"] + +[node name="Shape" type="CollisionShape2D" parent="Entities/Fire/Firepit"] +rotation = 1.5708 +shape = SubResource( 4 ) + +[node name="Sprite" type="Sprite" parent="Entities/Fire/Firepit/Shape"] +rotation = -1.5708 +texture = ExtResource( 5 ) + +[node name="Containers" type="Node" parent="Entities"] + +[node name="Bullets" type="Node" parent="Entities/Containers"] + +[node name="Pickups" type="Node" parent="Entities/Containers"] + +[node name="Particles2D" type="Particles2D" parent="."] +position = Vector2( 640, -120 ) +amount = 10000 +lifetime = 3.0 +visibility_rect = Rect2( -640, 0, 1280, 640 ) +process_material = SubResource( 5 ) +texture = ExtResource( 6 ) + +[connection signal="moved_in_direction" from="Entities/PhaseTwoPlayer/PlayerMovement" to="Entities/PhaseTwoPlayer/Shape/FourSidedSprite" method="_on_PlayerMovement_moved_in_direction"] +[connection signal="health_reached_min" from="Entities/PhaseTwoBoss/Damageable" to="Entities/PhaseTwoBoss/FreeOnRequest" method="_on_Damageable_health_reached_min"] + +[editable path="Entities/PhaseTwoPlayer/SpawnOnShoot"] +[editable path="Entities/PhaseTwoBoss/SpawnOnShoot"] diff --git a/src/levels/ui/TimeSurvived.gd b/src/levels/ui/TimeSurvived.gd index 553618d..1965a74 100644 --- a/src/levels/ui/TimeSurvived.gd +++ b/src/levels/ui/TimeSurvived.gd @@ -3,8 +3,4 @@ extends Label func _on_PhaseOne_survival_seconds_updated(_origin, value): # warning-ignore:NARROWING_CONVERSION - var minutes: int = floor(value / 60) - var seconds_and_millis: float = value - minutes * 60 - var seconds: int = int(seconds_and_millis) - var millis: int = int((seconds_and_millis - seconds) * 1000) - text = "%02d:%02d.%03d" % ([minutes, seconds, millis]) + text = Utils.format_time(value) diff --git a/src/mechanics/ScreenEdgeSpawner.tscn b/src/mechanics/ScreenEdgeSpawner.tscn deleted file mode 100644 index f8a00b8..0000000 --- a/src/mechanics/ScreenEdgeSpawner.tscn +++ /dev/null @@ -1,11 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://src/behaviours/spawning/SpawnEveryPeriod.tscn" type="PackedScene" id=1] -[ext_resource path="res://src/behaviours/movement/TeleportToScreenEdge.tscn" type="PackedScene" id=2] - -[node name="ScreenEdgeSpawner" instance=ExtResource( 1 )] - -[node name="TeleportToScreenEdge" parent="." index="1" instance=ExtResource( 2 )] - -[connection signal="spawned" from="." to="TeleportToScreenEdge" method="_handle_spawned"] -[connection signal="timeout" from="Period" to="TeleportToScreenEdge" method="teleport"] diff --git a/src/sounds/Laser.mp3 b/src/sounds/Laser.mp3 new file mode 100644 index 0000000..cd558d0 --- /dev/null +++ b/src/sounds/Laser.mp3 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6672073208779429ab3dc1cf15741dea34f8a3a3494e64568ccd1db9d51962d +size 5840 diff --git a/src/sounds/Laser.mp3.import b/src/sounds/Laser.mp3.import new file mode 100644 index 0000000..aff66e6 --- /dev/null +++ b/src/sounds/Laser.mp3.import @@ -0,0 +1,15 @@ +[remap] + +importer="mp3" +type="AudioStreamMP3" +path="res://.import/Laser.mp3-951a71780d829695ac5edcf737d3cc9c.mp3str" + +[deps] + +source_file="res://src/sounds/Laser.mp3" +dest_files=[ "res://.import/Laser.mp3-951a71780d829695ac5edcf737d3cc9c.mp3str" ] + +[params] + +loop=false +loop_offset=0