added wave viewer which required adding determinism to wave generation

This commit is contained in:
2025-11-06 22:16:59 +11:00
parent 19b5589b27
commit 3cb37faf4b
38 changed files with 438 additions and 312 deletions

View File

@@ -1,20 +1,27 @@
class_name EnemyBox
extends HBoxContainer
class_name EnemyRow
extends VBoxContainer
@export var wave_label: Label
@export var enemy_hbox: HBoxContainer
func set_wave(wave: int) -> void:
$WaveLabel.text = tr("LABEL_WAVE").format({Wave_Number = str(wave)})
wave_label.text = tr("LABEL_WAVE").format({Wave_Number = str(wave)})
func add_enemy_tag(enemy: Enemy, num: int) -> void:
for x: int in num:
var enemy_tex: TextureRect = TextureRect.new()
enemy_tex.texture = enemy.sprite
enemy_tex.custom_minimum_size = Vector2(80, 80)
add_child(enemy_tex)
#var name_label: Label = Label.new()
#name_label.text = enemy.title
#var num_label: Label = Label.new()
#num_label.text = str(num)
#add_child(name_label)
#add_child(num_label)
var container: MarginContainer = MarginContainer.new()
enemy_hbox.add_child(container)
var enemy_tex: TextureRect = TextureRect.new()
enemy_tex.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
enemy_tex.texture = enemy.icon
enemy_tex.custom_minimum_size = Vector2(32, 32)
enemy_tex.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED
container.add_child(enemy_tex)
var amount_label: Label = Label.new()
amount_label.size_flags_horizontal = Control.SIZE_EXPAND_FILL
amount_label.size_flags_vertical = Control.SIZE_EXPAND_FILL
amount_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT
amount_label.vertical_alignment = VERTICAL_ALIGNMENT_BOTTOM
amount_label.text = str(num)
container.add_child(amount_label)

View File

@@ -2,9 +2,19 @@
[ext_resource type="Script" uid="uid://b0h5oewxd48lv" path="res://UI/Menus/GameEndScreen/enemy_row.gd" id="1_th4b3"]
[node name="EnemyRow" type="HBoxContainer"]
[node name="EnemyRow" type="VBoxContainer" node_paths=PackedStringArray("wave_label", "enemy_hbox")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_th4b3")
wave_label = NodePath("WaveLabel")
enemy_hbox = NodePath("Enemies")
[node name="WaveLabel" type="Label" parent="."]
layout_mode = 2
text = "LABEL_WAVE"
[node name="Enemies" type="HBoxContainer" parent="."]
layout_mode = 2

View File

@@ -23,7 +23,7 @@ func _ready() -> void:
func set_wave() -> void:
for wave_key: int in game_manager.stats.enemies_undefeated:
var spawned_box: EnemyBox = box.instantiate() as EnemyBox
var spawned_box: EnemyRow = box.instantiate() as EnemyRow
undefeated_enemies.add_child(spawned_box)
spawned_box.set_wave(wave_key)
for enemy_key: Enemy in game_manager.stats.enemies_undefeated[wave_key]:

View File

@@ -10,13 +10,11 @@ streams_count = 1
stream_0/stream = ExtResource("3_ro1yg")
[node name="GameEndScreen" type="PanelContainer" node_paths=PackedStringArray("outcome_label", "winrate_label", "total_games_label", "total_wins_label", "total_losses_label", "undefeated_enemies")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 150.0
offset_top = 100.0
offset_right = -150.0
offset_bottom = -100.0
anchors_preset = -1
anchor_left = 0.05
anchor_top = 0.05
anchor_right = 0.95
anchor_bottom = 0.95
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_oa7nq")
@@ -26,14 +24,13 @@ winrate_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer/WinRa
total_games_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer2/WinRateLabel3")
total_wins_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer3/WinRateLabel4")
total_losses_label = NodePath("VBoxContainer/Labels/VBoxContainer/HBoxContainer4/WinRateLabel5")
undefeated_enemies = NodePath("VBoxContainer/UndefeatedEnemies")
undefeated_enemies = NodePath("VBoxContainer/ScrollContainer/UndefeatedEnemies")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="Labels" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
alignment = 1
[node name="OutcomeLabel" type="Label" parent="VBoxContainer/Labels"]
@@ -114,7 +111,11 @@ text = "0"
horizontal_alignment = 2
vertical_alignment = 1
[node name="UndefeatedEnemies" type="VBoxContainer" parent="VBoxContainer"]
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="UndefeatedEnemies" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
layout_mode = 2
size_flags_vertical = 3