Added first setup of level-based system

This commit is contained in:
2026-02-05 05:03:53 +11:00
parent 2bacff5b7d
commit 067d8c29af
57 changed files with 906 additions and 82 deletions

View File

@@ -0,0 +1,30 @@
class_name MainMenuLevelSelector extends PanelContainer
signal level_selected(specs: LevelSpecs)
var side: int = 0
@export var levels: Array[LevelSpecs] = []
func _on_button_pressed() -> void:
side = 0
$VBoxContainer/Label.text = "Standard Campaign Mode"
func _on_button_2_pressed() -> void:
side = 1
$VBoxContainer/Label.text = "Endless Mode with random waves and all unlocked equipment"
func _ready() -> void:
var i: int = 0
for level: LevelSpecs in levels:
i += 1
var button: Button = Button.new()
button.text = "Level " + str(i)
$VBoxContainer.add_child(button)
button.pressed.connect(start_level.bind(i - 1))
func start_level(level: int) -> void:
level_selected.emit(levels[level])

View File

@@ -0,0 +1 @@
uid://bwsw4oq150v3p

View File

@@ -104,6 +104,7 @@ func open_game_menu() -> void:
func _on_back_button_pressed() -> void:
main_controls.visible = true
game_select_menu.visible = false
func generate_seed() -> void:
@@ -117,6 +118,14 @@ func generate_seed() -> void:
gamemode.rng_seed = randi()
func level_selected(level: LevelSpecs) -> void:
generate_seed()
gamemode.endless = false
gamemode.daily = false
game.level_specs = level
start_game()
func _on_standard_button_pressed() -> void:
generate_seed()
gamemode.endless = false

View File

@@ -2,6 +2,10 @@
[ext_resource type="Script" uid="uid://ci8vq73u23viy" path="res://UI/Menus/MainMenu/main_menu.gd" id="2_ivytu"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://UI/drop_003.ogg" id="5_cwn2i"]
[ext_resource type="Script" uid="uid://bwsw4oq150v3p" path="res://UI/Menus/MainMenu/level_selecter_main_menu.gd" id="8_qshe4"]
[ext_resource type="Script" uid="uid://dalgif6huggwg" path="res://Scripts/Resources/level_specs.gd" id="9_nt3t4"]
[ext_resource type="Resource" uid="uid://b67b70x1uf2el" path="res://Level1/specs.tres" id="10_kjkav"]
[ext_resource type="Resource" uid="uid://dffoufw4bnfn7" path="res://Level2/specs.tres" id="11_kjkav"]
[ext_resource type="Texture2D" uid="uid://cr1ucbuw3iotp" path="res://Assets/Textures/first_win_achievements.png" id="15_74epv"]
[ext_resource type="Script" uid="uid://cjr0pbqisd51v" path="res://UI/Menus/MainMenu/achievements_menu.gd" id="15_sv1gy"]
[ext_resource type="Texture2D" uid="uid://cpa1hl36xfplg" path="res://Assets/Textures/first_scroll_seen.png" id="16_sv1gy"]
@@ -33,8 +37,7 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("2_ivytu")
bg_level = NodePath("")
game_select_menu = NodePath("GameSelectMenu")
game_select_menu = NodePath("PanelContainer")
main_controls = NodePath("MainControls")
seed_entry = NodePath("GameSelectMenu/VBoxContainer/HBoxContainer2/LineEdit")
profile_controls = NodePath("ProfileManager")
@@ -424,6 +427,49 @@ text = "BUTTON_CANCEL"
layout_mode = 2
text = "BUTTON_CONFIRM"
[node name="PanelContainer" type="PanelContainer" parent="." unique_id=1673631030]
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -6.0
offset_top = -6.0
offset_right = 6.0
offset_bottom = 6.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("8_qshe4")
levels = Array[ExtResource("9_nt3t4")]([ExtResource("10_kjkav"), ExtResource("11_kjkav")])
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer" unique_id=507718308]
layout_mode = 2
[node name="Button" type="Button" parent="PanelContainer/VBoxContainer" unique_id=2127573853]
layout_mode = 2
size_flags_horizontal = 0
text = "BUTTON_BACK"
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer" unique_id=654891125]
layout_mode = 2
text = "Standard Campaign Mode"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer" unique_id=776357424]
layout_mode = 2
alignment = 1
[node name="Button" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer" unique_id=1722538738]
layout_mode = 2
text = "A-SIDE"
[node name="Button2" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer" unique_id=708845101]
layout_mode = 2
text = "B-SIDE"
[connection signal="mouse_entered" from="MainControls/PlayButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="MainControls/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="mouse_entered" from="MainControls/ModsButton" to="." method="_on_button_mouse_entered"]
@@ -445,3 +491,7 @@ text = "BUTTON_CONFIRM"
[connection signal="pressed" from="AchievementsMenu/VBoxContainer/HBoxContainer/Button" to="." method="_on_achievements_back_button_pressed"]
[connection signal="pressed" from="ModsMenu/VBoxContainer/HBoxContainer/CancelMods" to="." method="_on_cancel_mods_pressed"]
[connection signal="pressed" from="ModsMenu/VBoxContainer/HBoxContainer/ConfirmMods" to="." method="_on_confirm_mods_pressed"]
[connection signal="level_selected" from="PanelContainer" to="." method="level_selected"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/Button" to="." method="_on_back_button_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/HBoxContainer/Button" to="PanelContainer" method="_on_button_pressed"]
[connection signal="pressed" from="PanelContainer/VBoxContainer/HBoxContainer/Button2" to="PanelContainer" method="_on_button_2_pressed"]