online multiplayer chess game (note server currently down)
Diffstat (limited to 'Piece.gd')
-rw-r--r--Piece.gd49
1 files changed, 41 insertions, 8 deletions
diff --git a/Piece.gd b/Piece.gd
index b132395..45d8d1c 100644
--- a/Piece.gd
+++ b/Piece.gd
@@ -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)