added clicking on enemies in the wave viewer
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
class_name Enemy
|
||||
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 scene: PackedScene
|
||||
@export var icon: Texture
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
class_name EnemyRow
|
||||
extends VBoxContainer
|
||||
|
||||
signal enemy_clicked(enemy: Enemy)
|
||||
|
||||
@export var wave_label: Label
|
||||
@export var enemy_hbox: HBoxContainer
|
||||
|
||||
var last_pressed_button: Button
|
||||
|
||||
|
||||
func set_wave(wave: int) -> void:
|
||||
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:
|
||||
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 enemy_button: Button = Button.new()
|
||||
enemy_button.icon = enemy.icon
|
||||
enemy_button.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
|
||||
enemy_button.icon_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
enemy_button.custom_minimum_size = Vector2(32, 32)
|
||||
enemy_button.pressed.connect(on_button_pressed.bind(enemy))
|
||||
container.add_child(enemy_button)
|
||||
var amount_label: Label = Label.new()
|
||||
amount_label.size_flags_horizontal = 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.text = str(num)
|
||||
container.add_child(amount_label)
|
||||
|
||||
|
||||
func on_button_pressed(enemy: Enemy) -> void:
|
||||
enemy_clicked.emit(enemy)
|
||||
|
||||
@@ -70,35 +70,6 @@ size_flags_vertical = 1
|
||||
step = 0.01
|
||||
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="."]
|
||||
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="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="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"]
|
||||
|
||||
@@ -33,6 +33,7 @@ alignment = 2
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
mouse_filter = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_c3kb6")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer/PanelContainer"]
|
||||
|
||||
@@ -5,12 +5,16 @@ signal closed()
|
||||
|
||||
@export var wave_vbox: VBoxContainer
|
||||
@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:
|
||||
var i: int = starting_wave_number
|
||||
for wave: Wave in waves:
|
||||
var enemy_row: EnemyRow = enemy_row_scene.instantiate() as EnemyRow
|
||||
enemy_row.enemy_clicked.connect(set_enemy_desc)
|
||||
wave_vbox.add_child(enemy_row)
|
||||
enemy_row.set_wave(i)
|
||||
i += 1
|
||||
@@ -42,6 +46,12 @@ func group_to_count(group: EnemyCard) -> int:
|
||||
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:
|
||||
closed.emit()
|
||||
queue_free()
|
||||
|
||||
@@ -10,7 +10,7 @@ content_margin_top = 2.0
|
||||
content_margin_right = 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
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
@@ -20,6 +20,9 @@ grow_vertical = 2
|
||||
script = ExtResource("1_0v4fq")
|
||||
wave_vbox = NodePath("PanelContainer/VBoxContainer/HBoxContainer/ScrollContainer/Waves")
|
||||
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="."]
|
||||
layout_mode = 1
|
||||
@@ -54,22 +57,22 @@ layout_mode = 2
|
||||
size_flags_horizontal = 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
|
||||
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
|
||||
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)
|
||||
layout_mode = 2
|
||||
texture = ExtResource("2_tptaq")
|
||||
expand_mode = 1
|
||||
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
|
||||
size_flags_vertical = 3
|
||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_0v4fq")
|
||||
|
||||
Reference in New Issue
Block a user