Added level selection
This commit is contained in:
@@ -16,6 +16,7 @@ var _corruption_x: float
|
||||
@onready var player : Player = $Player
|
||||
@onready var pause_menu : PauseMenu = $%PauseMenu
|
||||
@onready var game_over_menu : GameOverMenu = $%GameOverMenu
|
||||
@onready var completion_menu : CompletionMenu = $%CompletionMenu
|
||||
@onready var health_bar : HealthBar = $%HealthBar
|
||||
|
||||
@onready var corruption_timer : Timer = $CorruptionTimer
|
||||
@@ -33,6 +34,7 @@ func _ready() -> void:
|
||||
_corruption_x = initial_corruption_x
|
||||
pause_menu.hide()
|
||||
game_over_menu.hide()
|
||||
completion_menu.hide()
|
||||
|
||||
health_bar.initialize(player.MAX_HEALTH, player.MAX_HEALTH)
|
||||
player.health_changed.connect(health_bar.set_current_value)
|
||||
@@ -94,6 +96,17 @@ func _show_game_over() -> void:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
|
||||
|
||||
func _complete_level(player_position: Vector2) -> void:
|
||||
SoundManager.play_sfx_stream(SoundManager.sfx_stream_level_completed, player_position)
|
||||
get_tree().paused = true
|
||||
completion_menu.show()
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
|
||||
if SaveManager.completed_levels <= LevelManager.current_level_index:
|
||||
SaveManager.completed_levels = LevelManager.current_level_index + 1
|
||||
SaveManager.save()
|
||||
|
||||
|
||||
func _on_corruption_timer_timeout() -> void:
|
||||
if not player:
|
||||
corruption_timer.stop()
|
||||
@@ -114,3 +127,8 @@ func _on_death_fall_timer_timeout() -> void:
|
||||
|
||||
func _on_destruction_timer_timeout() -> void:
|
||||
_show_game_over()
|
||||
|
||||
|
||||
func _on_level_end_body_entered(body: Node2D) -> void:
|
||||
if body is Player:
|
||||
_complete_level(player.global_position)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://b1x0tmnf7hx7h" path="res://game/hud/health_bar.tscn" id="6_x8k35"]
|
||||
[ext_resource type="PackedScene" uid="uid://cl7vqh8j2f5py" path="res://game/menu/game_over_menu.tscn" id="7_l0xih"]
|
||||
[ext_resource type="PackedScene" uid="uid://bafplnd2un011" path="res://game/effects/code.tscn" id="8_b7vts"]
|
||||
[ext_resource type="PackedScene" uid="uid://dbnpcpwbw7f8q" path="res://game/menu/completion_menu.tscn" id="10_8xgvj"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_6b8cu"]
|
||||
resource_name = "Beams"
|
||||
@@ -1199,8 +1200,13 @@ glow_intensity = 4.0
|
||||
glow_hdr_threshold = 0.5
|
||||
glow_hdr_scale = 4.0
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_bhunq"]
|
||||
|
||||
[node name="AbstractLevel" type="Node2D" unique_id=1001045799]
|
||||
script = ExtResource("1_o2mui")
|
||||
initial_corruption_x = null
|
||||
corruption_speed = null
|
||||
desctruction_offset = null
|
||||
|
||||
[node name="Player" parent="." unique_id=763780926 instance=ExtResource("2_r0ht6")]
|
||||
|
||||
@@ -1242,6 +1248,9 @@ process_mode = 2
|
||||
unique_name_in_owner = true
|
||||
process_mode = 2
|
||||
|
||||
[node name="CompletionMenu" parent="CanvasLayer" unique_id=1435656270 instance=ExtResource("10_8xgvj")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="CorruptionTimer" type="Timer" parent="." unique_id=783383429]
|
||||
wait_time = 0.5
|
||||
|
||||
@@ -1254,7 +1263,15 @@ one_shot = true
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=310371888]
|
||||
environment = SubResource("Environment_bhunq")
|
||||
|
||||
[node name="LevelEnd" type="Area2D" parent="." unique_id=1444951079]
|
||||
collision_layer = 0
|
||||
collision_mask = 2
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="LevelEnd" unique_id=1314456096]
|
||||
shape = SubResource("RectangleShape2D_bhunq")
|
||||
|
||||
[connection signal="dead" from="Player" to="." method="_on_player_dead"]
|
||||
[connection signal="timeout" from="CorruptionTimer" to="." method="_on_corruption_timer_timeout"]
|
||||
[connection signal="timeout" from="DestructionTimer" to="." method="_on_destruction_timer_timeout"]
|
||||
[connection signal="timeout" from="DeathFallTimer" to="." method="_on_death_fall_timer_timeout"]
|
||||
[connection signal="body_entered" from="LevelEnd" to="." method="_on_level_end_body_entered"]
|
||||
|
||||
@@ -10,12 +10,13 @@ viewport_path = NodePath("CanvasLayer/CodeViewport")
|
||||
[node name="TestLevel" unique_id=1001045799 instance=ExtResource("1_46m3m")]
|
||||
initial_corruption_x = -500.0
|
||||
corruption_speed = 10.0
|
||||
desctruction_offset = 100.0
|
||||
|
||||
[node name="Player" parent="." index="0" unique_id=763780926]
|
||||
position = Vector2(0, -38)
|
||||
|
||||
[node name="TileMapLayer" parent="." index="1" unique_id=502099522]
|
||||
tile_map_data = PackedByteArray("AAAMAP//AAAFAAoAAAAMAP7/AAALAAYAAAAMAP3/AAAIAAYAAAAMAPz/AAAKAAYAAAAMAPv/AAADAAYAAAAMAPr/AAAGAAYAAAAMAPn/AAABAAYAAAAMAPj/AAAIAAYAAAAMAPf/AAAFAAYAAAAMAPb/AAAIAAYAAAAMAPX/AAALAAYAAAAMAPT/AAALAAYAAAAMAPP/AAADAAYAAAAMAPL/AAACAAYAAAAMAPH/AAAFAAYAAAAMAPD/AAABAAYAAAAAAPn/AAADAAQAAAAAAPj/AAAKAAYAAAAAAPf/AAACAAYAAAAAAPb/AAADAAYAAAAAAPX/AAAJAAYAAAAAAPT/AAADAAYAAAAAAPP/AAAIAAYAAAAAAPL/AAAKAAYAAAAAAPH/AAAGAAYAAAAAAPD/AAAJAAYAAAAAAO//AAAJAAYAAAD0////AAAGAAcAAAD0//7/AAAGAAYAAAD0//3/AAABAAYAAAD0//z/AAAGAAYAAAD0//v/AAAFAAYAAAD0//r/AAAHAAYAAAD0//n/AAAHAAYAAAD0//j/AAACAAYAAAD0//f/AAAEAAYAAAD0//b/AAABAAYAAAD0//X/AAABAAYAAAD0//T/AAAIAAYAAAD0//P/AAALAAYAAAD0//L/AAAFAAYAAAD0//H/AAAGAAYAAAD0//D/AAAKAAYAAAD0/+//AAAGAAYAAAD0/+7/AAAKAAYAAAD0/+3/AAAJAAYAAAD0/+z/AAALAAYAAAD0/+v/AAAAAAYAAAD0/+r/AAAIAAYAAAD0/+n/AAAFAAYAAAD0/+j/AAAIAAYAAAD0/+b/AAAEAAYAAAD0/+f/AAADAAYAAAAMAO//AAAIAAYAAAAMAO7/AAACAAYAAAAMAO3/AAAHAAYAAAAMAOz/AAAJAAYAAAAMAOv/AAAFAAYAAAAMAOr/AAALAAYAAAAMAOn/AAADAAYAAAAMAOj/AAAGAAYAAAAMAOf/AAAFAAYAAAAAAO7/AAABAAYAAAAAAO3/AAALAAYAAAAAAOz/AAAKAAYAAAAAAOv/AAAIAAYAAAAAAOr/AAADAAYAAAAAAOn/AAAEAAYAAAAAAOj/AAACAAYAAAAAAOf/AAAAAAYAAAAAAOb/AAAEAAYAAAAMAOb/AAAFAAYAAAAMAOX/AAAJAAgAAAANAOX/AAAIAAUAAAAOAOX/AAAAAAUAAAAPAOX/AAACAAUAAAAQAOX/AAAAAAUAAAARAOX/AAAHAAUAAAASAOX/AAAHAAUAAAATAOX/AAACAAUAAAAUAOX/AAAKAAUAAAAVAOX/AAAKAAUAAAAWAOX/AAAGAAUAAAAXAOX/AAALAAUAAAAYAOX/AAAKAAUAAAAZAOX/AAAAAAUAAAAaAOX/AAADAAUAAAAbAOX/AAAFAAUAAAD0/+X/AAAKAAkAAADz/+X/AAAFAAUAAADy/+X/AAAGAAUAAADx/+X/AAAJAAUAAADw/+X/AAAHAAUAAADv/+X/AAABAAUAAADu/+X/AAAIAAUAAADt/+X/AAAKAAUAAADs/+X/AAAHAAUAAADr/+X/AAAHAAUAAADq/+X/AAABAAUAAADp/+X/AAAKAAUAAADo/+X/AAAIAAUAAADn/+X/AAABAAUAAADm/+X/AAALAAUAAADl/+X/AAAHAAUAAAAAAOX/AAAAAAYAAAAAAOT/AAALAAYAAAAAAOP/AAACAAYAAAAAAOL/AAAEAAYAAAAAAOH/AAAHAAYAAAAAAOD/AAADAAYAAAAAAN//AAAGAAYAAAAAAN7/AAAEAAYAAAAAAN3/AAABAAYAAAAAANz/AAAKAAYAAAAAANv/AAADAAYAAAAAANr/AAACAAMAAAALAP//AAAHAAUAAAAKAP//AAAFAAUAAAAJAP//AAACAAUAAAAIAP//AAAIAAUAAAAHAP//AAAAAAUAAAAGAP//AAABAAUAAAAFAP//AAAJAAUAAAAEAP//AAALAAUAAAADAP//AAAEAAUAAAACAP//AAADAAUAAAABAP//AAAJAAUAAAAAAP//AAAJAAUAAAD/////AAAJAAUAAAD+////AAACAAUAAAD9////AAADAAUAAAD8////AAAGAAUAAAD7////AAACAAUAAAD6////AAAIAAUAAAD5////AAACAAUAAAD4////AAAHAAUAAAD3////AAACAAUAAAD2////AAAKAAUAAAD1////AAAEAAUAAADk/+X/AAAGAAUAAADj/+X/AAAKAAUAAADi/+X/AAACAAUAAADh/+X/AAAFAAUAAADg/+X/AAAGAAUAAADf/+X/AAAKAAUAAADe/+X/AAAIAAUAAADd/+X/AAAKAAUAAADc/+X/AAAIAAUAAADb/+X/AAAEAAUAAADa/+X/AAABAAUAAADZ/+X/AAAKAAUAAADY/+X/AAAAAAUAAADX/+X/AAAGAAUAAADW/+X/AAAKAAUAAADV/+X/AAAJAAUAAADU/+X/AAABAAUAAADT/+X/AAAEAAUAAADS/+X/AAALAAUAAADR/+X/AAACAAUAAADQ/+X/AAAJAAUAAADP/+X/AAAAAAUAAADO/+X/AAAJAAUAAADN/+X/AAAAAAUAAADM/+X/AAAKAAUAAADL/+X/AAACAAUAAADK/+X/AAABAAUAAADJ/+X/AAAJAAUAAADI/+X/AAAFAAUAAADH/+X/AAAAAAEAAAAcAOX/AAAFAAUAAAAdAOX/AAACAAUAAAAeAOX/AAAEAAUAAAAfAOX/AAACAAUAAAAgAOX/AAACAAUAAAAhAOX/AAACAAUAAAAiAOX/AAAJAAUAAAAjAOX/AAAGAAUAAAAkAOX/AAAAAAUAAAAlAOX/AAAEAAUAAAAmAOX/AAAKAAUAAAAnAOX/AAAKAAUAAAAoAOX/AAAEAAUAAAApAOX/AAADAAIAAAA=")
|
||||
tile_map_data = PackedByteArray("AAAMAP//AAAFAAoAAAAMAP7/AAALAAYAAAAMAP3/AAAIAAYAAAAMAPz/AAAKAAYAAAAMAPv/AAADAAYAAAAMAPr/AAAGAAYAAAAMAPn/AAABAAYAAAAMAPj/AAAIAAYAAAAMAPf/AAAFAAYAAAAMAPb/AAAIAAYAAAAMAPX/AAALAAYAAAAMAPT/AAALAAYAAAAMAPP/AAADAAYAAAAMAPL/AAACAAYAAAAMAPH/AAAFAAYAAAAMAPD/AAABAAYAAAAAAPn/AAADAAQAAAAAAPj/AAAKAAYAAAAAAPf/AAACAAYAAAAAAPb/AAADAAYAAAAAAPX/AAAJAAYAAAAAAPT/AAADAAYAAAAAAPP/AAAIAAYAAAAAAPL/AAAKAAYAAAAAAPH/AAAGAAYAAAAAAPD/AAAJAAYAAAAAAO//AAAJAAYAAAD0////AAAGAAcAAAD0//7/AAAGAAYAAAD0//3/AAABAAYAAAD0//z/AAAGAAYAAAD0//v/AAAFAAYAAAD0//r/AAAHAAYAAAD0//n/AAAHAAYAAAD0//j/AAACAAYAAAD0//f/AAAEAAYAAAD0//b/AAABAAYAAAD0//X/AAABAAYAAAD0//T/AAAIAAYAAAD0//P/AAALAAYAAAD0//L/AAAFAAYAAAD0//H/AAAGAAYAAAD0//D/AAAKAAYAAAD0/+//AAAGAAYAAAD0/+7/AAAKAAYAAAD0/+3/AAAJAAYAAAD0/+z/AAALAAYAAAD0/+v/AAAAAAYAAAD0/+r/AAAIAAYAAAD0/+n/AAAFAAYAAAD0/+j/AAAIAAYAAAD0/+b/AAAEAAYAAAD0/+f/AAADAAYAAAAMAO//AAAIAAYAAAAMAO7/AAACAAYAAAAMAO3/AAAHAAYAAAAMAOz/AAAJAAYAAAAMAOv/AAAFAAYAAAAMAOr/AAALAAYAAAAMAOn/AAADAAYAAAAMAOj/AAAGAAYAAAAMAOf/AAAFAAYAAAAAAO7/AAABAAYAAAAAAO3/AAALAAYAAAAAAOz/AAAKAAYAAAAAAOv/AAAIAAYAAAAAAOr/AAADAAYAAAAAAOn/AAAEAAYAAAAAAOj/AAACAAYAAAAAAOf/AAAAAAYAAAAAAOb/AAAEAAYAAAAMAOb/AAAFAAYAAAAMAOX/AAAJAAgAAAANAOX/AAAIAAUAAAAOAOX/AAAAAAUAAAAPAOX/AAACAAUAAAAQAOX/AAAAAAUAAAARAOX/AAAHAAUAAAASAOX/AAAHAAUAAAATAOX/AAACAAUAAAAUAOX/AAAKAAUAAAAVAOX/AAAKAAUAAAAWAOX/AAAGAAUAAAAXAOX/AAALAAUAAAAYAOX/AAAKAAUAAAAZAOX/AAAAAAUAAAAaAOX/AAADAAUAAAAbAOX/AAAFAAUAAAD0/+X/AAAKAAkAAADz/+X/AAAFAAUAAADy/+X/AAAGAAUAAADx/+X/AAAJAAUAAADw/+X/AAAHAAUAAADv/+X/AAABAAUAAADu/+X/AAAIAAUAAADt/+X/AAAKAAUAAADs/+X/AAAHAAUAAADr/+X/AAAHAAUAAADq/+X/AAABAAUAAADp/+X/AAAKAAUAAADo/+X/AAAIAAUAAADn/+X/AAABAAUAAADm/+X/AAALAAUAAADl/+X/AAAHAAUAAAAAAOX/AAAAAAYAAAAAAOT/AAALAAYAAAAAAOP/AAACAAYAAAAAAOL/AAAEAAYAAAAAAOH/AAAHAAYAAAAAAOD/AAADAAYAAAAAAN//AAAGAAYAAAAAAN7/AAAEAAYAAAAAAN3/AAABAAYAAAAAANz/AAAKAAYAAAAAANv/AAADAAYAAAAAANr/AAACAAMAAAALAP//AAAHAAUAAAAKAP//AAAFAAUAAAAJAP//AAACAAUAAAAIAP//AAAIAAUAAAAHAP//AAAAAAUAAAAGAP//AAABAAUAAAAFAP//AAAJAAUAAAAEAP//AAALAAUAAAADAP//AAAEAAUAAAACAP//AAADAAUAAAABAP//AAAJAAUAAAAAAP//AAAJAAUAAAD/////AAAJAAUAAAD+////AAACAAUAAAD9////AAADAAUAAAD8////AAAGAAUAAAD7////AAACAAUAAAD6////AAAIAAUAAAD5////AAACAAUAAAD4////AAAHAAUAAAD3////AAACAAUAAAD2////AAAKAAUAAAD1////AAAEAAUAAADk/+X/AAAGAAUAAADj/+X/AAAKAAUAAADi/+X/AAACAAUAAADh/+X/AAAFAAUAAADg/+X/AAAGAAUAAADf/+X/AAAKAAUAAADe/+X/AAAIAAUAAADd/+X/AAAKAAUAAADc/+X/AAAIAAUAAADb/+X/AAAEAAUAAADa/+X/AAABAAUAAADZ/+X/AAAKAAUAAADY/+X/AAAAAAUAAADX/+X/AAAGAAUAAADW/+X/AAAKAAUAAADV/+X/AAAJAAUAAADU/+X/AAABAAUAAADT/+X/AAAEAAUAAADS/+X/AAALAAUAAADR/+X/AAACAAUAAADQ/+X/AAAJAAUAAADP/+X/AAAAAAUAAADO/+X/AAAJAAUAAADN/+X/AAAAAAUAAADM/+X/AAAKAAUAAADL/+X/AAACAAUAAADK/+X/AAABAAUAAADJ/+X/AAAJAAUAAADI/+X/AAAFAAUAAADH/+X/AAAAAAEAAAAcAOX/AAAFAAUAAAAdAOX/AAACAAUAAAAeAOX/AAAEAAUAAAAfAOX/AAACAAUAAAAgAOX/AAACAAUAAAAhAOX/AAACAAUAAAAiAOX/AAAJAAUAAAAjAOX/AAAGAAUAAAAkAOX/AAAAAAUAAAAlAOX/AAAEAAUAAAAmAOX/AAAKAAUAAAAnAOX/AAAKAAUAAAAoAOX/AAAEAAUAAAApAOX/AAADAAIAAAAsAOX/AAAAAAQAAAAsAOT/AAAJAAYAAAAsAOP/AAALAAYAAAAsAOL/AAAKAAYAAAAsAOH/AAAJAAYAAAAsAOD/AAAGAAYAAAAsAN//AAAJAAYAAAAsAN7/AAADAAYAAAAsAN3/AAALAAYAAAAsANz/AAACAAYAAAAsANv/AAAGAAMAAAA=")
|
||||
|
||||
[node name="Turret" parent="Turrets" parent_id_path=PackedInt32Array(491073452) index="0" unique_id=328367237 instance=ExtResource("2_giiqr")]
|
||||
position = Vector2(606, -432)
|
||||
@@ -29,3 +30,6 @@ offset_bottom = -55.0
|
||||
|
||||
[node name="CodeSprite" parent="CanvasLayer" parent_id_path=PackedInt32Array(1125559156) index="1" unique_id=1152584149]
|
||||
texture = SubResource("ViewportTexture_giiqr")
|
||||
|
||||
[node name="LevelEnd" parent="." index="9" unique_id=1444951079]
|
||||
position = Vector2(688, -419)
|
||||
|
||||
Reference in New Issue
Block a user