ClearBits action
[naja.git] / naja / actions.py
index c0f19c634cf62443bd2af5bce8bf145bd7098a59..dc8f3e6af74077bd8afdd58028b270af07030e80 100644 (file)
@@ -46,7 +46,11 @@ class LocationAction(object):
             substitutions['location_bits'] = bit_glyphs(
                 location.bitwise_operand)
 
-        return self.TEXT % substitutions
+        text = self.TEXT
+        if self.data.get('message', None) is not None:
+            text = self.data['message']
+
+        return text % substitutions
 
     def check_available(self, player):
         return player.bits.check_bits(self.required_bits)
@@ -94,6 +98,14 @@ class SetBits(LocationAction):
         board.player.bits.set_bits(location.bitwise_operand)
 
 
+class ClearBits(LocationAction):
+    TEXT = "Clear %(location_bits)s."
+    GLYPHS = (ACTION_GLYPHS.CLEAR_BITS,)
+
+    def perform_action(self, board, location):
+        board.player.bits.clear_bits(location.bitwise_operand)
+
+
 class ToggleBits(LocationAction):
     TEXT = "Toggle %(location_bits)s."
     GLYPHS = (ACTION_GLYPHS.TOGGLE_BITS,)