online multiplayer chess game (note server currently down)
Diffstat (limited to 'piece/Piece.gd')
-rw-r--r--piece/Piece.gd30
1 files changed, 16 insertions, 14 deletions
diff --git a/piece/Piece.gd b/piece/Piece.gd
index 3196b7c..92fee38 100644
--- a/piece/Piece.gd
+++ b/piece/Piece.gd
@@ -15,18 +15,20 @@ onready var rotate = $RotatePlayer
# for pawn promotion
signal promotion_decided(promote_to)
+var b
+
func size() -> void: # size the control
- rect_size = Globals.grid.piece_size
+ rect_size = b.piece_size
rect_pivot_offset = rect_size / 2
- rect_position = Chess.algebraic2vec(position) * Globals.grid.piece_size
- sprite.flip_v = Globals.grid.flipped
- sprite.flip_h = Globals.grid.flipped
+ rect_position = Chess.algebraic2vec(position) * b.piece_size
+ sprite.flip_v = b.flipped
+ sprite.flip_h = b.flipped
func _ready():
load_texture()
- background.color = Globals.grid.overlay_color
+ background.color = b.overlay_color
if type == Chess.KING:
Events.connect("turn_over", self, "check_in_check")
@@ -36,14 +38,14 @@ func _ready():
func turn_over():
- if Globals.grid.chess.turn == Globals.team:
- background.color = Globals.grid.overlay_color
+ if b.is_my_turn():
+ background.color = b.overlay_color
else:
- background.color = Globals.grid.premove_color
+ background.color = b.premove_color
func check_in_check():
- check.visible = Globals.grid.chess.__king_attacked(color)
+ check.visible = b.chess.__king_attacked(color)
func _pressed(p: String) -> void:
@@ -72,7 +74,7 @@ func open_promotion_previews(darken: ColorRect):
newsprite.connect("pressed", self, "_pressed", [p])
previews.add_child(newsprite)
- var rect = Rect2(rect_global_position, Vector2(Globals.grid.piece_size.x, Globals.grid.piece_size.y * 4))
+ var rect = Rect2(rect_global_position, Vector2(b.piece_size.x, b.piece_size.y * 4))
popup.popup(rect)
yield(self, "promotion_decided")
darken.hide()
@@ -93,8 +95,8 @@ func move(to: String, synchronized := false) -> Piece:
yield(get_tree(), "idle_frame")
name = "%s-%s" % [type, to]
- Globals.grid.set_piece(position, null)
- Globals.grid.set_piece(to, self)
+ b.set_piece(position, null)
+ b.set_piece(to, self)
var go_to = Chess.algebraic2vec(to)
var signresult := int(sign(Chess.algebraic2vec(position).x - go_to.x))
@@ -105,13 +107,13 @@ func move(to: String, synchronized := false) -> Piece:
anim.play("Move")
position = to
var tween = create_tween().set_trans(Tween.TRANS_BACK)
- tween.tween_property(self, @"rect_position", go_to * Globals.grid.piece_size, 0.3)
+ tween.tween_property(self, @"rect_position", go_to * b.piece_size, 0.3)
if synchronized:
yield(tween, "finished")
return self
func took() -> void:
- Globals.grid.set_piece(position, null)
+ b.set_piece(position, null)
frame.hide()
anim.play("Took")