extends Node2D var pentagram: Pentagram var runes: Array var drag = false func _ready(): self.pentagram = Pentagram.new() add_child(self.pentagram) for idx in self.pentagram.indexes: var x = randf_range(0, 512) var y = randf_range(0, 512) add_rune(Vector2(x, y), Color.DARK_RED, idx) func add_rune(pos, color, idx): var rune = Rune.new(color, idx) add_child(rune) self.runes.push_back(rune) rune.global_position = pos func _process(_delta): var mouse = get_global_mouse_position() for r in self.runes: if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) and not self.drag: if mouse.distance_squared_to(r.global_position) <= r.radius * r.radius: r.drag = true r.matches = false r.queue_redraw() self.drag = true else: r.drag = false self.drag = false if not r.drag: r.global_position = self.pentagram.snap(r.global_position, 96) if self.pentagram.snaped: r.matches = self.pentagram.snap_addr == r.idx r.queue_redraw() else: r.global_position = mouse