Browse Source

:sparkles: floor changes color according to health

Felix Bytow 11 tháng trước cách đây
mục cha
commit
04847ee53a
32 tập tin đã thay đổi với 385 bổ sung63 xóa
  1. BIN
      assets/audio/explosionCrunch_000.ogg
  2. 0 19
      assets/audio/explosionCrunch_000.ogg.import
  3. BIN
      assets/audio/explosion_1.wav
  4. 24 0
      assets/audio/explosion_1.wav.import
  5. BIN
      assets/audio/explosion_2.wav
  6. 24 0
      assets/audio/explosion_2.wav.import
  7. 1 1
      assets/scenes/explosion.gd
  8. 88 9
      assets/scenes/explosion.tscn
  9. 2 2
      assets/scenes/health_bar.tscn
  10. 20 0
      assets/scenes/room.gd
  11. 24 0
      assets/scenes/room.tscn
  12. BIN
      assets/textures/game_background.jpg
  13. BIN
      assets/textures/just_storefront.jpg
  14. 0 0
      assets/textures/room/Light_Overlay.png
  15. 4 4
      assets/textures/room/Light_Overlay.png.import
  16. BIN
      assets/textures/room/base_floor_green.png
  17. 34 0
      assets/textures/room/base_floor_green.png.import
  18. BIN
      assets/textures/room/base_floor_orange.png
  19. 34 0
      assets/textures/room/base_floor_orange.png.import
  20. BIN
      assets/textures/room/base_floor_purple.png
  21. 34 0
      assets/textures/room/base_floor_purple.png.import
  22. BIN
      assets/textures/room/base_floor_red.png
  23. 34 0
      assets/textures/room/base_floor_red.png.import
  24. BIN
      assets/textures/room/base_floor_yellow.png
  25. 34 0
      assets/textures/room/base_floor_yellow.png.import
  26. BIN
      assets/textures/room/decoration.png
  27. 4 4
      assets/textures/room/decoration.png.import
  28. BIN
      assets/textures/room/floor.png
  29. 4 4
      assets/textures/room/floor.png.import
  30. 4 0
      project.godot
  31. 4 2
      screens/game.gd
  32. 12 18
      screens/game.tscn

BIN
assets/audio/explosionCrunch_000.ogg


+ 0 - 19
assets/audio/explosionCrunch_000.ogg.import

@@ -1,19 +0,0 @@
-[remap]
-
-importer="oggvorbisstr"
-type="AudioStreamOggVorbis"
-uid="uid://c8e6a4uxb6qql"
-path="res://.godot/imported/explosionCrunch_000.ogg-c9ff69c56ef904833ba5fe9eb13012b4.oggvorbisstr"
-
-[deps]
-
-source_file="res://assets/audio/explosionCrunch_000.ogg"
-dest_files=["res://.godot/imported/explosionCrunch_000.ogg-c9ff69c56ef904833ba5fe9eb13012b4.oggvorbisstr"]
-
-[params]
-
-loop=false
-loop_offset=0
-bpm=0
-beat_count=0
-bar_beats=4

BIN
assets/audio/explosion_1.wav


+ 24 - 0
assets/audio/explosion_1.wav.import

@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://8lflu2km62jc"
+path="res://.godot/imported/explosion_1.wav-1841ebbd1ef0d82e93c2a6835b8816b2.sample"
+
+[deps]
+
+source_file="res://assets/audio/explosion_1.wav"
+dest_files=["res://.godot/imported/explosion_1.wav-1841ebbd1ef0d82e93c2a6835b8816b2.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=0

BIN
assets/audio/explosion_2.wav


+ 24 - 0
assets/audio/explosion_2.wav.import

@@ -0,0 +1,24 @@
+[remap]
+
+importer="wav"
+type="AudioStreamWAV"
+uid="uid://uet8fl1medm2"
+path="res://.godot/imported/explosion_2.wav-1a3cbc215bfb1e0848089d52e78892bc.sample"
+
+[deps]
+
+source_file="res://assets/audio/explosion_2.wav"
+dest_files=["res://.godot/imported/explosion_2.wav-1a3cbc215bfb1e0848089d52e78892bc.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=0

+ 1 - 1
assets/scenes/explosion.gd

@@ -1,5 +1,5 @@
 extends Node2D
 class_name Explosion
 
-func _animation_finished():
+func _on_animation_finished(_anim_name: String) -> void:
 	queue_free()

+ 88 - 9
assets/scenes/explosion.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=10 format=3 uid="uid://dg4lfkqrtedxg"]
+[gd_scene load_steps=13 format=3 uid="uid://dg4lfkqrtedxg"]
 
 [ext_resource type="Texture2D" uid="uid://bgtpy7rkgpt5v" path="res://assets/textures/explosion/explosion_animation_1.png" id="1_co4ui"]
 [ext_resource type="Script" path="res://assets/scenes/explosion.gd" id="1_q2lxq"]
@@ -7,7 +7,7 @@
 [ext_resource type="Texture2D" uid="uid://cb5p6rrecjihx" path="res://assets/textures/explosion/explosion_animation_4.png" id="4_mq835"]
 [ext_resource type="Texture2D" uid="uid://cuxeht00edohj" path="res://assets/textures/explosion/explosion_animation_5.png" id="5_phsaf"]
 [ext_resource type="Texture2D" uid="uid://dftc3x7vfop46" path="res://assets/textures/explosion/explosion_animation_6.png" id="6_llvbn"]
-[ext_resource type="AudioStream" uid="uid://c8e6a4uxb6qql" path="res://assets/audio/explosionCrunch_000.ogg" id="7_x5vbv"]
+[ext_resource type="AudioStream" uid="uid://8lflu2km62jc" path="res://assets/audio/explosion_1.wav" id="8_x0t21"]
 
 [sub_resource type="SpriteFrames" id="SpriteFrames_yqenh"]
 animations = [{
@@ -32,21 +32,100 @@ animations = [{
 }],
 "loop": false,
 "name": &"default",
-"speed": 10.0
+"speed": 20.0
 }]
 
+[sub_resource type="Animation" id="Animation_03hgi"]
+resource_name = "explosion"
+length = 0.6
+tracks/0/type = "audio"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("AudioStreamPlayer")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"clips": [{
+"end_offset": 0.9,
+"start_offset": 0.19,
+"stream": ExtResource("8_x0t21")
+}],
+"times": PackedFloat32Array(0)
+}
+tracks/0/use_blend = false
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("AnimatedSprite2D:frame")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5),
+"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
+"update": 1,
+"values": [0, 1, 2, 3, 4, 5]
+}
+tracks/2/type = "value"
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/path = NodePath("AudioStreamPlayer:volume_db")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/keys = {
+"times": PackedFloat32Array(0, 0.6),
+"transitions": PackedFloat32Array(1, 1),
+"update": 0,
+"values": [0.0, -80.0]
+}
+
+[sub_resource type="Animation" id="Animation_3m7yr"]
+length = 0.001
+tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/path = NodePath("AnimatedSprite2D:frame")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 1,
+"values": [1]
+}
+tracks/1/type = "value"
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/path = NodePath("AudioStreamPlayer:volume_db")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/keys = {
+"times": PackedFloat32Array(0),
+"transitions": PackedFloat32Array(1),
+"update": 0,
+"values": [-80.0]
+}
+
+[sub_resource type="AnimationLibrary" id="AnimationLibrary_opklp"]
+_data = {
+"RESET": SubResource("Animation_3m7yr"),
+"explosion": SubResource("Animation_03hgi")
+}
+
 [node name="Explosion" type="Node2D"]
 script = ExtResource("1_q2lxq")
 
 [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
 scale = Vector2(0.6, 0.6)
 sprite_frames = SubResource("SpriteFrames_yqenh")
-autoplay = "default"
-frame = 5
-frame_progress = 1.0
+frame = 1
 
 [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
-stream = ExtResource("7_x5vbv")
-autoplay = true
+volume_db = -80.0
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
+libraries = {
+"": SubResource("AnimationLibrary_opklp")
+}
+autoplay = "explosion"
 
-[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_animation_finished"]
+[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_finished"]

+ 2 - 2
assets/scenes/health_bar.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=14 format=3 uid="uid://bnoxyhq2ha6r1"]
+[gd_scene load_steps=14 format=3 uid="uid://odwutyui6q5g"]
 
 [ext_resource type="Script" path="res://assets/scenes/health_bar.gd" id="1_pe8px"]
 [ext_resource type="Texture2D" uid="uid://edktycyiq13w" path="res://assets/textures/health_bar/hbtrue_11.png" id="2_yle5t"]
@@ -51,7 +51,7 @@ animations = [{
 "speed": 0.0
 }]
 
-[node name="HealthBar" type="Node2D"]
+[node name="HealthBar" type="Node2D" groups=["health_bar"]]
 scale = Vector2(0.5, 0.5)
 script = ExtResource("1_pe8px")
 

+ 20 - 0
assets/scenes/room.gd

@@ -0,0 +1,20 @@
+extends Node2D
+class_name Room
+
+const COLORS: Array[CompressedTexture2D] = [
+	preload("res://assets/textures/room/base_floor_red.png"),
+	preload("res://assets/textures/room/base_floor_orange.png"),
+	preload("res://assets/textures/room/base_floor_yellow.png"),
+	preload("res://assets/textures/room/base_floor_green.png"),
+	preload("res://assets/textures/room/base_floor_purple.png"),
+]
+
+@onready var base_floor: Sprite2D = $BaseFloor
+
+func _ready():
+	var health_bar: HealthBar = get_tree().get_first_node_in_group("health_bar")
+	if health_bar != null:
+		health_bar.health_changed.connect(_on_life_changed)
+
+func _on_life_changed(new_life: int):
+	base_floor.texture = COLORS[(new_life - 1) / 2]

+ 24 - 0
assets/scenes/room.tscn

@@ -0,0 +1,24 @@
+[gd_scene load_steps=5 format=3 uid="uid://c27ceu18q8eyr"]
+
+[ext_resource type="Texture2D" uid="uid://boslm7kvr428t" path="res://assets/textures/room/floor.png" id="1_c6dw2"]
+[ext_resource type="Script" path="res://assets/scenes/room.gd" id="1_jfu8v"]
+[ext_resource type="Texture2D" uid="uid://c5dkf0wijq3d" path="res://assets/textures/room/decoration.png" id="2_181l8"]
+[ext_resource type="Texture2D" uid="uid://d4nqjfqxlw3px" path="res://assets/textures/room/base_floor_purple.png" id="2_tiddr"]
+
+[node name="Room" type="Node2D"]
+script = ExtResource("1_jfu8v")
+
+[node name="Floor" type="Sprite2D" parent="."]
+position = Vector2(640, 360)
+scale = Vector2(0.5, 0.5)
+texture = ExtResource("1_c6dw2")
+
+[node name="BaseFloor" type="Sprite2D" parent="."]
+position = Vector2(640, 360)
+scale = Vector2(0.5, 0.5)
+texture = ExtResource("2_tiddr")
+
+[node name="Decoration" type="Sprite2D" parent="."]
+position = Vector2(640, 360)
+scale = Vector2(0.5, 0.5)
+texture = ExtResource("2_181l8")

BIN
assets/textures/game_background.jpg


BIN
assets/textures/just_storefront.jpg


+ 0 - 0
assets/textures/Light_Overlay.png → assets/textures/room/Light_Overlay.png


+ 4 - 4
assets/textures/just_storefront.jpg.import → assets/textures/room/Light_Overlay.png.import

@@ -2,16 +2,16 @@
 
 importer="texture"
 type="CompressedTexture2D"
-uid="uid://bsmaqakafb1h"
-path="res://.godot/imported/just_storefront.jpg-9fac345414e18e3b975a0e8a72b0b67e.ctex"
+uid="uid://ceelbowk0q0rl"
+path="res://.godot/imported/Light_Overlay.png-661d9a94f270a65e61813bcc1f222faa.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://assets/textures/just_storefront.jpg"
-dest_files=["res://.godot/imported/just_storefront.jpg-9fac345414e18e3b975a0e8a72b0b67e.ctex"]
+source_file="res://assets/textures/room/Light_Overlay.png"
+dest_files=["res://.godot/imported/Light_Overlay.png-661d9a94f270a65e61813bcc1f222faa.ctex"]
 
 [params]
 

BIN
assets/textures/room/base_floor_green.png


+ 34 - 0
assets/textures/room/base_floor_green.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dpou5dexbku7q"
+path="res://.godot/imported/base_floor_green.png-e69be991170c0ad9b56ffbd843de8e86.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/room/base_floor_green.png"
+dest_files=["res://.godot/imported/base_floor_green.png-e69be991170c0ad9b56ffbd843de8e86.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

BIN
assets/textures/room/base_floor_orange.png


+ 34 - 0
assets/textures/room/base_floor_orange.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bcqs8xhfptk6d"
+path="res://.godot/imported/base_floor_orange.png-4dced842fcbd16ca87ac1b04710660f9.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/room/base_floor_orange.png"
+dest_files=["res://.godot/imported/base_floor_orange.png-4dced842fcbd16ca87ac1b04710660f9.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

BIN
assets/textures/room/base_floor_purple.png


+ 34 - 0
assets/textures/room/base_floor_purple.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d4nqjfqxlw3px"
+path="res://.godot/imported/base_floor_purple.png-e1c2f1990d5d8704d2daa4eb00168b0a.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/room/base_floor_purple.png"
+dest_files=["res://.godot/imported/base_floor_purple.png-e1c2f1990d5d8704d2daa4eb00168b0a.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

BIN
assets/textures/room/base_floor_red.png


+ 34 - 0
assets/textures/room/base_floor_red.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d35iw7pyb173q"
+path="res://.godot/imported/base_floor_red.png-5f9bd79cbad79a465a566541a5158d0b.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/room/base_floor_red.png"
+dest_files=["res://.godot/imported/base_floor_red.png-5f9bd79cbad79a465a566541a5158d0b.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

BIN
assets/textures/room/base_floor_yellow.png


+ 34 - 0
assets/textures/room/base_floor_yellow.png.import

@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d2scy5jfymmwm"
+path="res://.godot/imported/base_floor_yellow.png-338112d4eb7d2776752b77d0bb1bbcba.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/textures/room/base_floor_yellow.png"
+dest_files=["res://.godot/imported/base_floor_yellow.png-338112d4eb7d2776752b77d0bb1bbcba.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1

BIN
assets/textures/room/decoration.png


+ 4 - 4
assets/textures/Light_Overlay.png.import → assets/textures/room/decoration.png.import

@@ -2,16 +2,16 @@
 
 importer="texture"
 type="CompressedTexture2D"
-uid="uid://r2ph4fobqo17"
-path="res://.godot/imported/Light_Overlay.png-c126c153354ab9ab26e1c0dded29affd.ctex"
+uid="uid://c5dkf0wijq3d"
+path="res://.godot/imported/decoration.png-031f59a8610a054f004fddc025eb2920.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://assets/textures/Light_Overlay.png"
-dest_files=["res://.godot/imported/Light_Overlay.png-c126c153354ab9ab26e1c0dded29affd.ctex"]
+source_file="res://assets/textures/room/decoration.png"
+dest_files=["res://.godot/imported/decoration.png-031f59a8610a054f004fddc025eb2920.ctex"]
 
 [params]
 

BIN
assets/textures/room/floor.png


+ 4 - 4
assets/textures/game_background.jpg.import → assets/textures/room/floor.png.import

@@ -2,16 +2,16 @@
 
 importer="texture"
 type="CompressedTexture2D"
-uid="uid://djifkreeh0nb4"
-path="res://.godot/imported/game_background.jpg-a1756e58683dd66cf73724e4dedf1ebf.ctex"
+uid="uid://boslm7kvr428t"
+path="res://.godot/imported/floor.png-e1804e5f0ff635ae78351e277f3637d7.ctex"
 metadata={
 "vram_texture": false
 }
 
 [deps]
 
-source_file="res://assets/textures/game_background.jpg"
-dest_files=["res://.godot/imported/game_background.jpg-a1756e58683dd66cf73724e4dedf1ebf.ctex"]
+source_file="res://assets/textures/room/floor.png"
+dest_files=["res://.godot/imported/floor.png-e1804e5f0ff635ae78351e277f3637d7.ctex"]
 
 [params]
 

+ 4 - 0
project.godot

@@ -19,6 +19,10 @@ config/features=PackedStringArray("4.2", "GL Compatibility")
 GlobalInput="*res://assets/autoload/global_input.gd"
 Config="*res://assets/autoload/config.gd"
 
+[debug]
+
+gdscript/warnings/integer_division=0
+
 [display]
 
 window/size/viewport_width=1280

+ 4 - 2
screens/game.gd

@@ -1,9 +1,9 @@
 extends Node2D
 
 @onready var health_bar: HealthBar = $HealthBar
+@onready var overlay: CanvasLayer = $Overlay
 @onready var transition: Transition = $Overlay/Transition
 @onready var spawn_timer: Timer = $Timer
-@onready var base_hit_sound: AudioStreamPlayer = $BaseHitSound
 
 @onready var main_menu: PackedScene = load("res://screens/main_menu.tscn")
 @onready var bot_scene: PackedScene = load("res://assets/scenes/bot.tscn")
@@ -15,6 +15,7 @@ extends Node2D
 ]
 
 func _ready() -> void:
+	overlay.visible = true
 	transition.slide_out()
 	await transition.game_fully_visible
 	spawn_bot()
@@ -23,9 +24,11 @@ func _process(_delta: float) -> void:
 	if Input.is_action_pressed("ui_cancel"):
 		var tree = get_tree()
 		transition.text = ""
+		tree.paused = true
 		transition.slide_in()
 		await transition.game_fully_hidden
 		tree.change_scene_to_packed(main_menu)
+		tree.paused = false
 		
 func spawn_bot() -> void:
 	var spawn = spawn_points.pick_random()
@@ -37,7 +40,6 @@ func _on_timer_timeout() -> void:
 	spawn_bot()
 
 func base_hit() -> void:
-	base_hit_sound.play()
 	health_bar.health -= 1
 	if health_bar.health == 0:
 		spawn_timer.stop()

+ 12 - 18
screens/game.tscn

@@ -1,11 +1,10 @@
-[gd_scene load_steps=9 format=3 uid="uid://c483fkssc36s"]
+[gd_scene load_steps=8 format=3 uid="uid://c483fkssc36s"]
 
 [ext_resource type="Script" path="res://screens/game.gd" id="1_4dd0q"]
-[ext_resource type="Texture2D" uid="uid://djifkreeh0nb4" path="res://assets/textures/game_background.jpg" id="2_qk61j"]
-[ext_resource type="PackedScene" path="res://assets/scenes/health_bar.tscn" id="2_x77og"]
-[ext_resource type="Texture2D" uid="uid://r2ph4fobqo17" path="res://assets/textures/Light_Overlay.png" id="3_86s7d"]
+[ext_resource type="Texture2D" uid="uid://ceelbowk0q0rl" path="res://assets/textures/room/Light_Overlay.png" id="2_px5xi"]
+[ext_resource type="PackedScene" uid="uid://odwutyui6q5g" path="res://assets/scenes/health_bar.tscn" id="2_x77og"]
+[ext_resource type="PackedScene" uid="uid://c27ceu18q8eyr" path="res://assets/scenes/room.tscn" id="3_hm7l7"]
 [ext_resource type="PackedScene" uid="uid://ce8cu4romympf" path="res://assets/scenes/transition.tscn" id="4_yc6k4"]
-[ext_resource type="AudioStream" uid="uid://c8e6a4uxb6qql" path="res://assets/audio/explosionCrunch_000.ogg" id="6_ufcvu"]
 
 [sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_yhw6y"]
 blend_mode = 1
@@ -17,20 +16,17 @@ size = Vector2(472, 288)
 [node name="Game" type="Node2D"]
 script = ExtResource("1_4dd0q")
 
-[node name="Background" type="Sprite2D" parent="."]
-z_index = -10
-position = Vector2(640, 360)
-scale = Vector2(0.5, 0.5)
-texture = ExtResource("2_qk61j")
+[node name="Room" parent="." instance=ExtResource("3_hm7l7")]
 
 [node name="Light-Overlay" type="Sprite2D" parent="."]
+visible = false
 material = SubResource("CanvasItemMaterial_yhw6y")
 position = Vector2(640, 360)
 scale = Vector2(0.5, 0.5)
-texture = ExtResource("3_86s7d")
+texture = ExtResource("2_px5xi")
 
 [node name="HealthBar" parent="." instance=ExtResource("2_x77og")]
-position = Vector2(640, 58)
+position = Vector2(640, 73)
 
 [node name="Timer" type="Timer" parent="."]
 wait_time = 3.5
@@ -38,6 +34,7 @@ autostart = true
 
 [node name="Overlay" type="CanvasLayer" parent="."]
 layer = 10
+visible = false
 
 [node name="Transition" parent="Overlay" instance=ExtResource("4_yc6k4")]
 
@@ -49,16 +46,13 @@ position = Vector2(639, 509)
 shape = SubResource("RectangleShape2D_p2163")
 
 [node name="EnemySpawn_1" type="Marker2D" parent="." groups=["spawner"]]
-position = Vector2(63, 424)
+position = Vector2(48, 426)
 
 [node name="EnemySpawn_2" type="Marker2D" parent="." groups=["spawner"]]
-position = Vector2(1222, 424)
+position = Vector2(1234, 424)
 
 [node name="EnemySpawn_3" type="Marker2D" parent="." groups=["spawner"]]
-position = Vector2(641, 144)
-
-[node name="BaseHitSound" type="AudioStreamPlayer" parent="."]
-stream = ExtResource("6_ufcvu")
+position = Vector2(641, 207)
 
 [connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
 [connection signal="area_entered" from="Base" to="." method="_on_base_area_entered"]