diff options
Diffstat (limited to 'scripts/gui_turret_detail.gd')
-rw-r--r-- | scripts/gui_turret_detail.gd | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/scripts/gui_turret_detail.gd b/scripts/gui_turret_detail.gd new file mode 100644 index 0000000..df89c14 --- /dev/null +++ b/scripts/gui_turret_detail.gd @@ -0,0 +1,63 @@ +extends Panel + +var hbox_labels +var hbox_global +var _turret_values : Resource = load("res://scenes/gui/gui_turret_values.tscn") +var load_turrets : Node + +var gui : Control + +func _fetch (): + if gui == null: gui = get_parent() + if hbox_labels != null: return; + hbox_labels = $"hbox_global/hbox_labels" + hbox_global = $"hbox_global" + + var root = get_tree().root.get_child(0) + load_turrets = root.get_node("saveload").get_node("load_turrets") + if !load_turrets.loaded: yield(load_turrets, "done_loading") + + +func refresh (turret : Dictionary, upgraded : Dictionary = {}): + _fetch() + if upgraded == null: rect_min_size.x = 200 + else: rect_min_size.x = 230 + + get_node("name_label").text = "name: " + turret.name + + var dict = { + "damage": turret.get("damage", "-"), + "range": turret.get("range", "-"), + "turn speed": turret.get("turn_speed", "-"), + "cooldown": turret.get("cooldown", "-"), + "projectile": turret.get("projectile", {}).get("type", "-"), + "spread": turret.get("projectile", {}).get("spread", "-"), + "projectile speed": turret.get("projectile", {}).get("speed", "-"), + "projectiles per shot": turret.get("projectile", {}).get("amount", "-"), + "modules": turret.get("modules_max", "-"), + } + + var base_values = hbox_global.get_node("hbox_values") + for k in dict: + base_values.get_node(k).text = str(dict[k]); + +func _process(delta): + _fetch() + + var info = null; + + var hovering = gui.bottom_bar.turret_picker.hovering + if gui.player.highlight != null: + info = gui.player.highlight.info + elif gui.player.sel.type == "turrets": + info = load_turrets.info[gui.player.sel.name] + elif hovering != "": + info = load_turrets.info[hovering] + elif gui.player.placer.colliding \ + and "turrets" in gui.player.placer.colliding_group: + info = gui.player.placer.colliding_node.info + + if info != null: + refresh(info) + self.visible = true + else: self.visible = false |