added clicking on enemies in the wave viewer

This commit is contained in:
2025-11-15 18:10:17 +11:00
parent 1a261dd0aa
commit b98f246b71
6 changed files with 36 additions and 43 deletions

View File

@@ -1,7 +1,8 @@
class_name Enemy class_name Enemy
extends Resource extends Resource
@export var title: String = "dog" @export var title: String = "enemy name goes here"
@export var description: String = "enemy description goes here"
@export var target_type: Data.EnemyType @export var target_type: Data.EnemyType
@export var scene: PackedScene @export var scene: PackedScene
@export var icon: Texture @export var icon: Texture

View File

@@ -1,9 +1,13 @@
class_name EnemyRow class_name EnemyRow
extends VBoxContainer extends VBoxContainer
signal enemy_clicked(enemy: Enemy)
@export var wave_label: Label @export var wave_label: Label
@export var enemy_hbox: HBoxContainer @export var enemy_hbox: HBoxContainer
var last_pressed_button: Button
func set_wave(wave: int) -> void: func set_wave(wave: int) -> void:
wave_label.text = tr("LABEL_WAVE").format({Wave_Number = str(wave)}) wave_label.text = tr("LABEL_WAVE").format({Wave_Number = str(wave)})
@@ -12,12 +16,13 @@ func set_wave(wave: int) -> void:
func add_enemy_tag(enemy: Enemy, num: int) -> void: func add_enemy_tag(enemy: Enemy, num: int) -> void:
var container: MarginContainer = MarginContainer.new() var container: MarginContainer = MarginContainer.new()
enemy_hbox.add_child(container) enemy_hbox.add_child(container)
var enemy_tex: TextureRect = TextureRect.new() var enemy_button: Button = Button.new()
enemy_tex.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST enemy_button.icon = enemy.icon
enemy_tex.texture = enemy.icon enemy_button.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
enemy_tex.custom_minimum_size = Vector2(32, 32) enemy_button.icon_alignment = HORIZONTAL_ALIGNMENT_CENTER
enemy_tex.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED enemy_button.custom_minimum_size = Vector2(32, 32)
container.add_child(enemy_tex) enemy_button.pressed.connect(on_button_pressed.bind(enemy))
container.add_child(enemy_button)
var amount_label: Label = Label.new() var amount_label: Label = Label.new()
amount_label.size_flags_horizontal = Control.SIZE_EXPAND_FILL amount_label.size_flags_horizontal = Control.SIZE_EXPAND_FILL
amount_label.size_flags_vertical = Control.SIZE_EXPAND_FILL amount_label.size_flags_vertical = Control.SIZE_EXPAND_FILL
@@ -25,3 +30,7 @@ func add_enemy_tag(enemy: Enemy, num: int) -> void:
amount_label.vertical_alignment = VERTICAL_ALIGNMENT_BOTTOM amount_label.vertical_alignment = VERTICAL_ALIGNMENT_BOTTOM
amount_label.text = str(num) amount_label.text = str(num)
container.add_child(amount_label) container.add_child(amount_label)
func on_button_pressed(enemy: Enemy) -> void:
enemy_clicked.emit(enemy)

View File

@@ -70,35 +70,6 @@ size_flags_vertical = 1
step = 0.01 step = 0.01
scrollable = false scrollable = false
[node name="MouseSens2" type="HBoxContainer" parent="."]
layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="MouseSens2"]
layout_mode = 2
size_flags_horizontal = 3
text = "OPTION_MOUSE_SENSITIVITY"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HBoxContainer" type="HBoxContainer" parent="MouseSens2"]
layout_mode = 2
size_flags_horizontal = 3
[node name="SpinBox" type="SpinBox" parent="MouseSens2/HBoxContainer"]
layout_mode = 2
theme_override_icons/updown = SubResource("ImageTexture_03x6q")
step = 0.01
alignment = 1
update_on_text_changed = true
[node name="HSlider" type="HSlider" parent="MouseSens2/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
step = 0.01
scrollable = false
[node name="ToggleSprint" type="HBoxContainer" parent="."] [node name="ToggleSprint" type="HBoxContainer" parent="."]
layout_mode = 2 layout_mode = 2
@@ -218,5 +189,3 @@ text = "OPTION_STATUS_DAMAGE"
[connection signal="item_selected" from="Resolution/HBoxContainer/OptionButton" to="." method="_on_option_button_item_selected"] [connection signal="item_selected" from="Resolution/HBoxContainer/OptionButton" to="." method="_on_option_button_item_selected"]
[connection signal="value_changed" from="MouseSens/HBoxContainer/SpinBox" to="." method="_on_mouse_sens_spin_box_value_changed"] [connection signal="value_changed" from="MouseSens/HBoxContainer/SpinBox" to="." method="_on_mouse_sens_spin_box_value_changed"]
[connection signal="value_changed" from="MouseSens/HBoxContainer/HSlider" to="." method="_on_mouse_sens_h_slider_value_changed"] [connection signal="value_changed" from="MouseSens/HBoxContainer/HSlider" to="." method="_on_mouse_sens_h_slider_value_changed"]
[connection signal="value_changed" from="MouseSens2/HBoxContainer/SpinBox" to="." method="_on_spin_box_value_changed"]
[connection signal="value_changed" from="MouseSens2/HBoxContainer/HSlider" to="." method="_on_h_slider_value_changed"]

View File

@@ -33,6 +33,7 @@ alignment = 2
modulate = Color(1, 1, 1, 0) modulate = Color(1, 1, 1, 0)
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_c3kb6") theme_override_styles/panel = SubResource("StyleBoxFlat_c3kb6")
[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer/PanelContainer"] [node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer/PanelContainer"]

View File

@@ -5,12 +5,16 @@ signal closed()
@export var wave_vbox: VBoxContainer @export var wave_vbox: VBoxContainer
@export var enemy_row_scene: PackedScene @export var enemy_row_scene: PackedScene
@export var enemy_icon_tex: TextureRect
@export var enemy_name_label: Label
@export var enemy_desc_label: RichTextLabel
func set_waves(waves: Array[Wave], starting_wave_number: int) -> void: func set_waves(waves: Array[Wave], starting_wave_number: int) -> void:
var i: int = starting_wave_number var i: int = starting_wave_number
for wave: Wave in waves: for wave: Wave in waves:
var enemy_row: EnemyRow = enemy_row_scene.instantiate() as EnemyRow var enemy_row: EnemyRow = enemy_row_scene.instantiate() as EnemyRow
enemy_row.enemy_clicked.connect(set_enemy_desc)
wave_vbox.add_child(enemy_row) wave_vbox.add_child(enemy_row)
enemy_row.set_wave(i) enemy_row.set_wave(i)
i += 1 i += 1
@@ -42,6 +46,12 @@ func group_to_count(group: EnemyCard) -> int:
return count return count
func set_enemy_desc(enemy: Enemy) -> void:
enemy_name_label.text = tr(enemy.title)
enemy_icon_tex.texture = enemy.icon
enemy_desc_label.text = tr(enemy.description)
func _on_button_2_pressed() -> void: func _on_button_2_pressed() -> void:
closed.emit() closed.emit()
queue_free() queue_free()

View File

@@ -10,7 +10,7 @@ content_margin_top = 2.0
content_margin_right = 2.0 content_margin_right = 2.0
content_margin_bottom = 2.0 content_margin_bottom = 2.0
[node name="WaveViewer" type="Control" node_paths=PackedStringArray("wave_vbox")] [node name="WaveViewer" type="Control" node_paths=PackedStringArray("wave_vbox", "enemy_icon_tex", "enemy_name_label", "enemy_desc_label")]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -20,6 +20,9 @@ grow_vertical = 2
script = ExtResource("1_0v4fq") script = ExtResource("1_0v4fq")
wave_vbox = NodePath("PanelContainer/VBoxContainer/HBoxContainer/ScrollContainer/Waves") wave_vbox = NodePath("PanelContainer/VBoxContainer/HBoxContainer/ScrollContainer/Waves")
enemy_row_scene = ExtResource("2_lbx3o") enemy_row_scene = ExtResource("2_lbx3o")
enemy_icon_tex = NodePath("PanelContainer/VBoxContainer/HBoxContainer/EnemyDescription/TextureRect")
enemy_name_label = NodePath("PanelContainer/VBoxContainer/HBoxContainer/EnemyDescription/Label")
enemy_desc_label = NodePath("PanelContainer/VBoxContainer/HBoxContainer/EnemyDescription/RichTextLabel")
[node name="PanelContainer" type="PanelContainer" parent="."] [node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 1 layout_mode = 1
@@ -54,22 +57,22 @@ layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 3 size_flags_vertical = 3
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer"] [node name="EnemyDescription" type="VBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/HBoxContainer/VBoxContainer"] [node name="Label" type="Label" parent="PanelContainer/VBoxContainer/HBoxContainer/EnemyDescription"]
layout_mode = 2 layout_mode = 2
text = "Big dawg" text = "Big dawg"
[node name="TextureRect" type="TextureRect" parent="PanelContainer/VBoxContainer/HBoxContainer/VBoxContainer"] [node name="TextureRect" type="TextureRect" parent="PanelContainer/VBoxContainer/HBoxContainer/EnemyDescription"]
custom_minimum_size = Vector2(64, 64) custom_minimum_size = Vector2(64, 64)
layout_mode = 2 layout_mode = 2
texture = ExtResource("2_tptaq") texture = ExtResource("2_tptaq")
expand_mode = 1 expand_mode = 1
stretch_mode = 5 stretch_mode = 5
[node name="RichTextLabel" type="RichTextLabel" parent="PanelContainer/VBoxContainer/HBoxContainer/VBoxContainer"] [node name="RichTextLabel" type="RichTextLabel" parent="PanelContainer/VBoxContainer/HBoxContainer/EnemyDescription"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
theme_override_styles/normal = SubResource("StyleBoxEmpty_0v4fq") theme_override_styles/normal = SubResource("StyleBoxEmpty_0v4fq")