Beispiel #1
0
    def test_mobs(self):
        level = Level(25, 25)
        level.up_stairs_pos = Pos(1, 1)
        world = World([level])

        mob = level.mobs[2, 2] = Mob(Pos(2, 2), 0, mobinfo['orc'])
        mob.move_to(Pos(3, 3))
        self.assertNotIn((2, 2), level.mobs)
        self.assertEquals(mob, level.mobs.get((3, 3)))

        self.assertEquals(level.mobs.get(world.levels[0].up_stairs_pos),
                          world.player)
Beispiel #2
0
    def test_out_of_bounds(self):
        level = Level(100, 100)

        self.assertNotIn((100, 100), level)
        self.assertNotIn((-1, -1), level)
        self.assertIn((50, 50), level)

        self.assertEquals(level[(-1, -1)].name, 'stone wall')
        self.assertTrue(level[(-1, -1)].blocked)
        self.assertTrue(level[(-1, -1)].opaque)
        self.assertFalse(level[(-1, -1)].explored)

        self.assertEquals(level[(101, 101)].name, 'stone wall')
        self.assertTrue(level[(101, 101)].blocked)
        self.assertTrue(level[(101, 101)].opaque)
        self.assertFalse(level[(101, 101)].explored)
Beispiel #3
0
    def __init__(self, data, level_title, level_file, player_health, win_func,
                 lose_func, return_to_picker_func, restart_me_func):
        super(LevelScreen, self).__init__()

        # Store props
        self.screen_size = data.get_screen_size()
        self.level_title = level_title
        self._on_win_func = win_func
        self._on_lose_func = lose_func
        self._screen_manager = data.get_screen_manager()
        self._return_to_picker_func = return_to_picker_func
        self._restart_me_func = restart_me_func

        # Create a level object
        self.my_level = Level(level_file, player_health)
        self.my_level.init()

        # Create a camera object
        surface = data.get_surface()
        level_size = self.my_level.get_size()
        self._camera_factory = lambda rect: Camera(surface.get_rect(
        ), rect, level_size[0], level_size[1], _settings.SLACK_X, _settings.
                                                   SLACK_Y)
        self.camera = self._camera_factory(self.my_level.player.rect)

        # Create dependencies and overlay renderers
        self.sprite_renderer = SpriteRenderer(surface)
        self.shape_renderer = ShapeRenderer(surface)
        self.health_bar = HealthBar(self.shape_renderer, self.screen_size,
                                    self.my_level.player)
        self.level_rings = LevelRings(self.sprite_renderer)

        # Initialize key handling
        self.up = self.down = self.left = self.right = False

        # Create an array for all of the fired entities from attackers
        self.entities = []
Beispiel #4
0
 def load_level(self):
     self.level = Level()
     if os.path.exists(Level.get_filename(self.level_nr)):
         self.level.load(Level.get_filename(self.level_nr))