'wins': 0,
}
+ def update_state(self, state):
+ self.health = state['health']
+ self.wins = state['wins']
+
+ def lose_health(self):
+ self.health -= 1
+ # TODO: Check win/lose
+
class LocationCard(object):
"""
A particular set of options available on a location.
"""
- def __init__(self, bitwise_operation, bitwise_operand, actions):
- self.bitwise_operation = bitwise_operation
+ def __init__(self, bitwise_operand, actions):
self.bitwise_operand = bitwise_operand
self.actions = actions
def generate_location_actions():
raise NotImplementedError("TODO")
- def apply_bitwise_operation(self, player):
- operator = {
- 'SET': player.bits.set_bits,
- 'CLEAR': player.bits.clear_bits,
- 'TOGGLE': player.bits.toggle_bits,
- }[self.bitwise_operation]
- operator(self.bitwise_operand)
-
class LocationAction(object):
"""
An action that may be performed on a location.
"""
- REQUIRED_BITS = frozenset()
+ TEXT = None
- def __init__(self, **data):
+ def __init__(self, required_bits, **data):
+ self.required_bits = required_bits
self.data = data
def check_available(self, player):
- return player.bits.check_bits(self.REQUIRED_BITS)
+ return player.bits.check_bits(self.required_bits)
def perform_action(self, player, board):
raise NotImplementedError("TODO")
+
+ def check_and_clear_MSB(self, player):
+ if player.bits.check_bit(BITS.MSB):
+ player.bits.clear_bit(BITS.MSB)
+ return True
+ else:
+ return False