added endless mode support to the wave viewer

This commit is contained in:
2026-02-07 09:07:00 +11:00
parent 9453389853
commit 8f14012fff
41 changed files with 145 additions and 344 deletions

View File

@@ -1,5 +1,7 @@
class_name GameEndScreen extends PanelContainer
signal pressed_continue()
@export var box: PackedScene
@export var outcome_label: Label
@@ -12,6 +14,11 @@ class_name GameEndScreen extends PanelContainer
var game_manager: GameManager
func won_game() -> void:
$VBoxContainer/Buttons/ContinueButton.visible = true
$VBoxContainer/Buttons/PlayButton.visible = false
func _ready() -> void:
winrate_label.text = str(Data.save_data.winrate) + "%"
total_games_label.text = str(Data.save_data.wins + Data.save_data.losses)
@@ -49,3 +56,8 @@ func _on_play_button_pressed() -> void:
func _on_button_mouse_entered() -> void:
$AudioStreamPlayer.play()
func _on_continue_button_pressed() -> void:
pressed_continue.emit()
queue_free()

View File

@@ -123,6 +123,11 @@ size_flags_vertical = 3
layout_mode = 2
alignment = 2
[node name="ContinueButton" type="Button" parent="VBoxContainer/Buttons" unique_id=1143038936]
visible = false
layout_mode = 2
text = "BUTTON_CONTINUE"
[node name="PlayButton" type="Button" parent="VBoxContainer/Buttons" unique_id=774071211]
layout_mode = 2
text = "BUTTON_RESTART"
@@ -135,6 +140,8 @@ text = "BUTTON_MAIN_MENU"
stream = SubResource("AudioStreamRandomizer_dram5")
bus = &"SFX"
[connection signal="mouse_entered" from="VBoxContainer/Buttons/ContinueButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/Buttons/ContinueButton" to="." method="_on_continue_button_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/Buttons/PlayButton" to="." method="_on_button_mouse_entered"]
[connection signal="pressed" from="VBoxContainer/Buttons/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="mouse_entered" from="VBoxContainer/Buttons/QuitButton" to="." method="_on_button_mouse_entered"]

View File

@@ -1,6 +1,6 @@
class_name MainMenuLevelSelector extends PanelContainer
signal level_selected(specs: LevelSpecs)
signal level_selected(specs: LevelSpecs, side_chosen: int)
var side: int = 0
@@ -8,12 +8,12 @@ var side: int = 0
func _on_button_pressed() -> void:
side = 0
$VBoxContainer/Label.text = "Standard Campaign Mode"
$VBoxContainer/Label.text = tr("LABEL_CAMPAIGN_DESC")
func _on_button_2_pressed() -> void:
side = 1
$VBoxContainer/Label.text = "Endless Mode with random waves and all unlocked equipment"
$VBoxContainer/Label.text = tr("LABEL_ENDLESS_DESC")
func _ready() -> void:
@@ -27,4 +27,4 @@ func _ready() -> void:
func start_level(level: int) -> void:
level_selected.emit(levels[level])
level_selected.emit(levels[level], side)

View File

@@ -118,9 +118,9 @@ func generate_seed() -> void:
gamemode.rng_seed = randi()
func level_selected(level: LevelSpecs) -> void:
func level_selected(level: LevelSpecs, side: int) -> void:
generate_seed()
gamemode.endless = false
gamemode.endless = true if side == 1 else false
gamemode.daily = false
game.level_specs = level
start_game()

View File

@@ -1,5 +1,6 @@
[gd_scene format=3 uid="uid://8yv7excojcg0"]
[ext_resource type="Texture2D" uid="uid://mt6liu1hi15j" path="res://ingame_logo.png" id="2_14tm0"]
[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"]
@@ -53,15 +54,16 @@ grow_horizontal = 2
grow_vertical = 2
color = Color(0.5176471, 0.60784316, 0.89411765, 1)
[node name="TitleLabel" type="Label" parent="." unique_id=1731106766]
[node name="TextureRect" type="TextureRect" parent="." unique_id=57227105]
layout_mode = 1
anchors_preset = -1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 0.5
anchor_bottom = 1.0
grow_horizontal = 2
text = "TITLE_GAME_NAME"
horizontal_alignment = 1
vertical_alignment = 1
grow_vertical = 2
mouse_filter = 2
texture = ExtResource("2_14tm0")
stretch_mode = 5
[node name="MainControls" type="VBoxContainer" parent="." unique_id=923552840]
custom_minimum_size = Vector2(80, 0)
@@ -455,7 +457,7 @@ text = "BUTTON_BACK"
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer" unique_id=654891125]
layout_mode = 2
text = "Standard Campaign Mode"
text = "LABEL_CAMPAIGN_DESC"
horizontal_alignment = 1
vertical_alignment = 1