class_name PrototypeMap extends Node2D signal dialog_triggered(dialog_map: DialogMap, map_points_to_show: Array[int], precondition: String) signal shown_points_changed(new_shown_points: Array[int]) signal map_closed const DIALOG_MAP = preload("res://dialog/dialog_map.tscn") var shown_points: Array[int]: set(new_value): shown_points = new_value shown_points_changed.emit(shown_points) var next_points_to_unlock: Array[int] = [] func _ready(): for point in shown_points: _get_map_point(point).is_shown_on_map = true func _on_map_point_clicked(): if not $MapPoint2.is_shown_on_map: _trigger_dialog(0, [1], "dark_cut_completed") func _on_map_point_2_clicked(): if not $MapPoint3.is_shown_on_map: _trigger_dialog(1, [2,3]) func _on_map_point_3_clicked(): _trigger_dialog(2) func _on_map_point_4_clicked(): _trigger_dialog(3) func _trigger_dialog(map_point_number: int, map_points_to_show: Array[int] = [], precondition: String = ""): var dialog_map: DialogMap = DIALOG_MAP.instantiate() dialog_map.map_point_number = map_point_number dialog_triggered.emit(dialog_map, map_points_to_show, precondition) func show_map_point(map_points_to_show: Array[int]): if map_points_to_show.is_empty(): return for point in map_points_to_show: _get_map_point(point).is_shown_on_map = true shown_points.append_array(map_points_to_show) func _get_map_point(map_point_number: int) -> MapPoint: return get_node("MapPoint%s"% (map_point_number+1)) as MapPoint func _on_close_map_button_pressed(): map_closed.emit()