+ self.once = self.data.get('once', False)
+ self.acquire_win = self.data.get('acquire_win', False)
+ self.lose_health = self.data.get('lose_health', False)
+ self.gain_health = self.data.get('gain_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))))