Merge branch 'master' of git://ctpug.org.za/naja
authorDavid Sharpe <decoydavid@gmail.com>
Sat, 17 May 2014 19:56:12 +0000 (21:56 +0200)
committerDavid Sharpe <decoydavid@gmail.com>
Sat, 17 May 2014 19:56:12 +0000 (21:56 +0200)
1  2 
naja/actions.py

diff --combined naja/actions.py
index 7ae189e0b1c1db50f4ea1c576fbb1b9222fd4f18,89c43f81abb049f42923658d7f0cc9763ab5535e..f5b03a0e4399e3715c2d0cee3ffd5feeec5a15d4
@@@ -77,10 -77,6 +77,10 @@@ class LocationAction(object)
                  'data': self.data,
                  'action_class': self.__class__.__name__}
  
 +    def take_damage(self, board):
 +        sound.play_sound('awwww.ogg')
 +        board.lose_health()
 +
  
  class DoNothing(LocationAction):
      TEXT = "No effect."
@@@ -96,7 -92,8 +96,7 @@@ class LoseHealthOrMSB(LocationAction)
  
      def perform_action(self, board, location):
          if not self.check_and_clear_MSB(board.player):
 -            sound.play_sound('awwww.ogg')
 -            board.lose_health()
 +            self.take_damage(board)
  
  
  class SetBits(LocationAction):
@@@ -115,15 -112,6 +115,15 @@@ class ClearBits(LocationAction)
          board.player.bits.clear_bits(location.bitwise_operand)
  
  
 +class ClearBitsAndHealth(LocationAction):
 +    TEXT = "Clear %(location_bits)s and {HEALTH}."
 +    GLYPHS = (ACTION_GLYPHS.CLEAR_BITS, ACTION_GLYPHS.DAMAGE)
 +
 +    def perform_action(self, board, location):
 +        board.player.bits.clear_bits(location.bitwise_operand)
 +        self.take_damage(board)
 +
 +
  class ToggleBits(LocationAction):
      TEXT = "Toggle %(location_bits)s."
      GLYPHS = (ACTION_GLYPHS.TOGGLE_BITS,)
          board.player.bits.toggle_bits(location.bitwise_operand)
  
  
 +class ToggleBitsAndHarm(LocationAction):
 +    TEXT = "Toggle %(location_bits)s and lose {HEALTH}."
 +    GLYPHS = (ACTION_GLYPHS.TOGGLE_BITS, ACTION_GLYPHS.DAMAGE)
 +
 +    def perform_action(self, board, location):
 +        board.player.bits.toggle_bits(location.bitwise_operand)
 +        self.take_damage(board)
 +
 +
  class GenericBits(LocationAction):
      GLYPHS = (ACTION_GLYPHS.SET_BITS, ACTION_GLYPHS.CLEAR_BITS)
  
              parts.append("Lose {HEALTH}.")
          for template, bits in [
                  ('Set %s.', self.set_bits), ('Clear %s.', self.clear_bits),
-                 ('Toggle %s', self.toggle_bits)]:
+                 ('Toggle %s.', self.toggle_bits)]:
              if bits:
                  parts.append(template % (bit_glyphs(bits)))
          if self.once: