online multiplayer chess game (note server currently down)
Diffstat (limited to 'Piece.gd')
| -rw-r--r-- | Piece.gd | 49 |
1 files changed, 41 insertions, 8 deletions
@@ -1,23 +1,56 @@ extends Node2D -class_name Piece +class_name Piece, "res://assets/california/wP.png" +var real_position = Vector2.ZERO var white := true var realname = "pawn" +var has_moved = false var sprite -onready var colorrect= $ColorRect +onready var colorrect = $ColorRect + + +func _ready(): + colorrect.color = Globals.grid.overlay_color + colorrect.rect_size = Globals.grid.piece_size + func move(newpos: Vector2): - global_position = newpos + has_moved = true + global_position = newpos * Globals.grid.piece_size + func clicked(): colorrect.show() + create_circles() print(realname, " was clicked") -func spot(position): + +func clear_clicked(): colorrect.hide() - if position: - print("spot ", position) + Globals.grid.clear_circles() -func _ready(): - colorrect.rect_size = Globals.piece_size
\ No newline at end of file + +func moveto(position): # called when already clicked, and clicked again + Globals.grid.matrix[real_position.y][real_position.x] = null + Globals.grid.matrix[position.y][position.x] = self + real_position = position + move(position) + + +func create_circles(): + # for motion + match realname: + "pawn": + var carray = [real_position - Vector2(0, 1)] + if !has_moved: + carray.append(real_position - Vector2(0, 2)) + set_circle(carray) + + +func set_circle(positions: Array): + for i in range(len(positions)): + var pos = positions[i] + if Globals.grid.matrix[pos.y][pos.x]: + continue + Globals.grid.background_matrix[pos.x][pos.y].set_circle(true) |