Move-if-MSB actions.
[naja.git] / naja / actions.py
index 9f3b221b3af18cf033093465d0306a9ec1ddab93..464b3ae285482c2b6d3967d8687c39759bd78308 100644 (file)
@@ -185,3 +185,14 @@ class AllowChessMove(LocationAction):
         if self.data['chesspiece'] in CHESS_PIECES:
             chesspiece = CHESS_PIECES[self.data['chesspiece']]
             board.allow_chess_move(chesspiece)
+
+
+class AllowChessMoveIfMSB(LocationAction):
+    TEXT = "Clear {MSB} and move like a %(chesspiece_name)s for one turn."
+    MSB_GLYPH = ACTION_GLYPHS.MOVEMENT
+
+    def perform_action(self, board, location):
+        if self.data['chesspiece'] in CHESS_PIECES:
+            if self.check_and_clear_MSB(board.player):
+                chesspiece = CHESS_PIECES[self.data['chesspiece']]
+                board.allow_chess_move(chesspiece)