diff options
Diffstat (limited to 'Stages/Wintermaul/HUD.gd')
-rw-r--r-- | Stages/Wintermaul/HUD.gd | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/Stages/Wintermaul/HUD.gd b/Stages/Wintermaul/HUD.gd index 6063b18..8457ab2 100644 --- a/Stages/Wintermaul/HUD.gd +++ b/Stages/Wintermaul/HUD.gd @@ -7,9 +7,7 @@ var selected_group := "": set(value): redraw_multiselect(selected_group, value) selected_group = value - redraw_select(selection_groups[selected_group][0].get_hud()) - -signal attack_value_changed(value: int) + redraw_select(selection_groups[selected_group][0]) @onready var time: Label = %Time @onready var money: Label = %Money @@ -43,19 +41,19 @@ func _ready(): # multi select %SelectionContainer.visible = false - %SelectionData.get_child(0).queue_free() %MultiSelectionContainer.visible = false Client.placed_tower.connect(func(tower: Tower): if tower.owner_id == multiplayer.get_unique_id(): tower.selected.connect(func(): - var hud_data = tower.get_hud() - var multi_select_hud_data = TextureRect.new() multi_select_hud_data.name = tower.name multi_select_hud_data.modulate = Color(0.5, 0.5, 0.5) + multi_select_hud_data.expand_mode = TextureRect.EXPAND_IGNORE_SIZE + multi_select_hud_data.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED + multi_select_hud_data.custom_minimum_size = Vector2(32, 64) var texture = AtlasTexture.new() - texture.atlas = preload("res://core_outdoor.png") - texture.region = Rect2(400, 432, 32, 48) + texture.atlas = preload("res://Towers/Assets/spritesheet.png") + texture.region = Rect2(5, 1, 62, 95) multi_select_hud_data.texture = texture if not tower.selection_group_id in selection_groups: @@ -67,14 +65,16 @@ func _ready(): %SelectionContainer.visible = true %MultiSelectionContainer.visible = false - redraw_select(hud_data) %MultiSelectionList.add_child(multi_select_hud_data) + selected_group = tower.selection_group_id elif Tower.selected_towers.size() > 1: %MultiSelectionContainer.visible = true %MultiSelectionList.add_child(multi_select_hud_data) redraw_multiselect("", selected_group) + + redraw_select(tower) ) tower.deselected.connect(func(): @@ -82,14 +82,15 @@ func _ready(): %SelectionContainer.visible = false %MultiSelectionContainer.visible = false - for child in %SelectionData.get_children(): - child.queue_free() for child in %MultiSelectionList.get_children(): child.queue_free() elif Tower.selected_towers.size() == 1: %MultiSelectionContainer.visible = false %SelectionContainer.visible = true - %MultiSelectionList.get_node(NodePath(tower.name)).queue_free() + + var node = %MultiSelectionList.get_node_or_null(NodePath(tower.name)) + if node: + node.queue_free() elif Tower.selected_towers.size() > 1: # only remove deselected tower from list var node = %MultiSelectionList.get_node_or_null(NodePath(tower.name)) @@ -116,11 +117,7 @@ func _ready(): %MultiSelectionList.get_node(NodePath(tower.name)).remove_from_group(previous_id) if tower.name == selection_groups[tower.selection_group_id][0].name: - redraw_select(tower.get_hud()) - ) - - tower.attack_value_changed.connect(func(value: int): - attack_value_changed.emit(value) + redraw_select(tower) ) ) @@ -144,11 +141,8 @@ func _input(event: InputEvent): selected_group = keys[(current_idx + 1) % keys.size()] -func redraw_select(hud_data: Control): - for node in %SelectionData.get_children(): - node.queue_free() - - %SelectionData.add_child(hud_data) +func redraw_select(tower: Tower): + %TowerData.current_tower = tower func redraw_multiselect(previous_group: String, new_group: String): @@ -163,10 +157,14 @@ func redraw_multiselect(previous_group: String, new_group: String): for node in get_tree().get_nodes_in_group(previous_group): node.modulate = Color(0.5, 0.5, 0.5) - Client.current_stage.get_node("%Towers/" + node.name).is_highlighted = false + var tower = Client.current_stage.get_node_or_null("%Towers/" + node.name) + if tower: + tower.is_highlighted = false for node in get_tree().get_nodes_in_group(new_group): node.modulate = Color(1.0, 1.0, 1.0) - Client.current_stage.get_node("%Towers/" + node.name).is_highlighted = true + var tower = Client.current_stage.get_node_or_null("%Towers/" + node.name) + if tower: + tower.is_highlighted = true func get_ordered_group_keys() -> Array: |