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)
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)
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 = []
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))