online multiplayer chess game (note server currently down)
Diffstat (limited to 'piece/Piece.gd')
| -rw-r--r-- | piece/Piece.gd | 30 |
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") |