added clicking on enemies in the wave viewer
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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"]
|
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user