Example #1
0
    def test_it_should_draw_a_screen_around_a_point(self):
        s = Screen()
        map_size = [10, 10]
        screen_size = [3, 3]
        selected_point = [1, 1]

        expected = [
            [(0, 0), (1, 0), (2, 0)],
            [(0, 1), (1, 1), (2, 1)],
            [(0, 2), (1, 2), (2, 2)],
        ]
        assert expected == s.draw(map_size, screen_size, selected_point)
Example #2
0
    def test_it_should_not_draw_past_the_top_left(self):
        s = Screen()
        map_size = [10, 10]
        screen_size = [3, 3]
        selected_point = [0, 9]

        expected = [
            [(0, 7), (1, 7), (2, 7)],
            [(0, 8), (1, 8), (2, 8)],
            [(0, 9), (1, 9), (2, 9)],
        ]
        assert expected == s.draw(map_size, screen_size, selected_point)
Example #3
0
 def test_it_should_draw_an_even_size_screen(self):
     s = Screen()
     map_size = [4, 4]
     screen_size = [4, 4]
     selected_point = [0, 0]
     expected = [
         [(0, 0), (1, 0), (2, 0), (3, 0)],
         [(0, 1), (1, 1), (2, 1), (3, 1)],
         [(0, 2), (1, 2), (2, 2), (3, 2)],
         [(0, 3), (1, 3), (2, 3), (3, 3)],
     ]
     assert expected == s.draw(map_size, screen_size, selected_point)
Example #4
0
    def test_it_should_not_draw_past_the_bottom_right(self):
        s = Screen()
        map_size = [10, 10]
        screen_size = [3, 3]
        selected_point = [9, 9]

        expected = [
            [(7, 7), (8, 7), (9, 7)],
            [(7, 8), (8, 8), (9, 8)],
            [(7, 9), (8, 9), (9, 9)],
        ]
        assert expected == s.draw(map_size, screen_size, selected_point)
Example #5
0
    def test_it_should_not_draw_past_the_top_right(self):
        s = Screen()
        map_size = [10, 10]
        screen_size = [3, 3]
        selected_point = [9, 0]

        expected = [
            [(7, 0), (8, 0), (9, 0)],
            [(7, 1), (8, 1), (9, 1)],
            [(7, 2), (8, 2), (9, 2)],
        ]
        assert expected == s.draw(map_size, screen_size, selected_point)
Example #6
0
    def test_it_should_draw_an_even_size_sub_screen(self):
        s = Screen()
        map_size = [6, 6]
        screen_size = [4, 4]
        selected_point = [5, 5]

        expected = [
            [(2, 2), (3, 2), (4, 2), (5, 2)],
            [(2, 3), (3, 3), (4, 3), (5, 3)],
            [(2, 4), (3, 4), (4, 4), (5, 4)],
            [(2, 5), (3, 5), (4, 5), (5, 5)],
        ]
        assert expected == s.draw(map_size, screen_size, selected_point)
Example #7
0
 def __init__(self):
   Scene.__init__(self)
   self._screen = Screen()
   self._player = PlayerCharacter()
   self._floor = CurrentFloor()
   self._sight = Sight(self._player)
   self._floor.put_monster(Monster())
Example #8
0
class DungeonScene(Scene):
  def __init__(self):
    Scene.__init__(self)
    self._screen = Screen()
    self._player = PlayerCharacter()
    self._floor = CurrentFloor()
    self._sight = Sight(self._player)
    self._floor.put_monster(Monster())

  def initialize(self):
    self._screen.clear()

  def update(self):
    self._floor.update_monsters()
    self.draw()
    self.control(self._screen.read_key())

  def control(self, key):
    if   key == 'l': self.walk_player(Direction.EAST)
    elif key == 'h': self.walk_player(Direction.WEST)
    elif key == 'k': self.walk_player(Direction.NORTH)
    elif key == 'j': self.walk_player(Direction.SOUTH)
    elif key == 'y': self.walk_player(Direction.NORTH_WEST)
    elif key == 'u': self.walk_player(Direction.NORTH_EAST)
    elif key == 'b': self.walk_player(Direction.SOUTH_WEST)
    elif key == 'n': self.walk_player(Direction.SOUTH_EAST)
    elif key == '>': self.down_stairs()

  def walk_player(self, direction):
    self._floor.walk_character(direction, self._player)

  def down_stairs(self):
    if not self._floor.is_down_stairs_at(self._player.position()):
      return
    if not self._floor.is_last_floor():
      self._floor.next()
      self._screen.clear()
    else:
      GameScene.change(EndingScene())

  def draw(self):
    self._sight.draw(self._screen)
    self._player.draw(self._screen)
Example #9
0
class TitleScene(Scene):
  def __init__(self):
    Scene.__init__(self)
    self._screen = Screen()

  def initialize(self):
    self._screen.clear()
    self._screen.write('*** Rogue Rebuild ***')
    self._screen.move((0, 0))

  def update(self):
    key = self._screen.read_key()
    GameScene.change(DungeonScene())
Example #10
0
 def __init__(self):
   Scene.__init__(self)
   self._screen = Screen()
Example #11
0
class EndingScene(Scene):
  def __init__(self):
    Scene.__init__(self)
    self._screen = Screen()

  def initialize(self):
    self._screen.clear()
    self._screen.set_color(Color.RED)
    self._screen.write('You Won!!')
    self._screen.move((0, 1))
    self._screen.set_color(Color.YELLOW)
    self._screen.write('-- Press Any Key --')

  def update(self):
    key = self._screen.read_key()
    Game.over()