1from pychess.Utils.repr import reprColor, reprPiece
2
3
4class Piece:
5    def __init__(self, color, piece, captured=False):
6        self.color = color
7        self.piece = piece
8        self.captured = captured
9
10        # in crazyhouse we need to know this for later captures
11        self.promoted = False
12
13        self.opacity = 1.0
14        self.x = None
15        self.y = None
16
17    # Sign is a deprecated synonym for piece
18    def _set_sign(self, sign):
19        self.piece = sign
20
21    def _get_sign(self):
22        return self.piece
23
24    sign = property(_get_sign, _set_sign)
25
26    def __repr__(self):
27        represen = "<%s %s" % (reprColor[self.color], reprPiece[self.piece])
28        if self.opacity != 1.0:
29            represen += " Op:%0.1f" % self.opacity
30        if self.x is not None or self.y is not None:
31            if self.x is not None:
32                represen += " X:%0.1f" % self.x
33            else:
34                represen += " X:None"
35            if self.y is not None:
36                represen += " Y:%0.1f" % self.y
37            else:
38                represen += " Y:None"
39        represen += ">"
40        return represen
41