return player.bits.check_bits(self.required_bits)
def perform_action(self, board, location):
- raise NotImplementedError("TODO")
+ raise NotImplementedError(
+ "%s does not implement perform_action()." % (type(self).__name__,))
def check_and_clear_MSB(self, player):
if player.bits.check_bit(BITS.MSB):
class LoseHealthOrMSB(LocationAction):
- TEXT = "Lose health or MSB."
+ TEXT = "Lose HEALTH or MSB."
USES_MSB = True
def perform_action(self, board, location):
class LoseHealthOrMSBAndSetBits(LocationAction):
- TEXT = "Lose health or MSB, then set bits specified by this location."
+ TEXT = "Lose HEALTH or MSB, then set bits specified by this location."
USES_MSB = True
def perform_action(self, board, location):
class GainHealthAndClearBitsOrMSB(LocationAction):
- TEXT = "Gain health, then clear bits specified by this location or MSB."
+ TEXT = "Gain HEALTH, then clear bits specified by this location or MSB."
USES_MSB = True
def perform_action(self, board, location):
board.shift_locations(self.data['direction'])
-class AllowChessMove(LocationAction) :
+class AllowChessMove(LocationAction):
TEXT = "Move like a %(chesspiece_name)s for one turn."
def perform_action(self, board, location):
'SOUTH': (1, 'glyphs/arrow_down.png'),
'EAST': (1, 'glyphs/arrow_right.png'),
'WEST': (1, 'glyphs/arrow_left.png'),
+ 'HEALTH': (1, 'glyphs/health.png'),
+ 'WIN': (1, 'glyphs/win.png'),
+ 'KEY': (1, 'glyphs/key.png'),
+ 'MSB': (1, 'glyphs/msb.png'),
}
line_count = 0
for line in self.text.splitlines():
current_words = []
- for word in line.split():
+ remaining_words = line.split()
+ while remaining_words:
+ word = remaining_words[0]
suffix = ''
if word[-1] in '.,':
suffix = word[-1]
if words_fit(current_words):
if markup_data is not None:
size = self.font.size(
- ' '.join(current_words[:-1]) + ' ')
+ ' '.join(current_words[:-1] + ['']))
pos = (size[0] * EIGHT_BIT_SCALE,
size[1] * line_count * EIGHT_BIT_SCALE)
pos = (pos[0] + self.padding, pos[1] + self.padding)
image_map[pos] = resources.get_image(
markup_data[1],
transforms=(EIGHT_BIT, blender(self.colour)))
- continue
+ remaining_words.pop(0)
else:
line_count += 1
yield ' '.join(current_words[:-1])
- current_words = current_words[-1:]
+ current_words = []
if current_words and words_fit(current_words):
yield ' '.join(current_words)