ld55/src2/Game/game.gd

44 lines
1.0 KiB
GDScript

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