X-Git-Url: https://git.ctpug.org.za/?p=naja.git;a=blobdiff_plain;f=naja%2Factions.py;h=5701109fec37a31959b73c9fe02b2cd77772a9df;hp=9513a0a32ad2bb15843220049e98e49ce69f62be;hb=e329ac961000595f819bfa145c8d150641c2aece;hpb=448fa9a626f9bcb3d484dac73738060f9a867cc8 diff --git a/naja/actions.py b/naja/actions.py index 9513a0a..5701109 100644 --- a/naja/actions.py +++ b/naja/actions.py @@ -16,6 +16,9 @@ class LocationAction(object): self.required_bits = required_bits self.data = data + def sanity_check(self, location): + pass + def get_glyphs(self): return self.GLYPHS @@ -153,6 +156,16 @@ class GenericBits(LocationAction): self.acquire_win = self.data.get('acquire_win', False) self.lose_health = self.data.get('lose_health', False) + def sanity_check(self, location): + missing_bits = set() + missing_bits.update(self.set_bits - set(location.bitwise_operand)) + missing_bits.update(self.clear_bits - set(location.bitwise_operand)) + missing_bits.update(self.toggle_bits - set(location.bitwise_operand)) + if missing_bits: + raise ValueError( + "Location %s missing bits %r" + % (location.card_name, sorted(list(missing_bits)))) + def perform_action(self, board, location): bits = board.player.bits bits.set_bits(self.set_bits)