def test_portal_has_icons(self): """ Test that portal created by adder has two icons set One to display and another to be used by opposite end """ level = (LevelBuilder() .with_size((20, 20)) .with_floor_tile(self.floor_rock) .with_wall_tile(self.wall_empty) .build()) level_generator = mock() for loc_y in range(8, 12): for loc_x in range(8, 12): add_location_tag(level, (loc_x, loc_y), 'room') portal_adder = PortalAdder((1, 2), 'room', level_generator, False, self.rng) portal_adder.add_portal(level) portals = [] for loc_y in range(8, 12): for loc_x in range(8, 12): temp = get_portal(level, (loc_x, loc_y)) if temp: portals.append(temp) portal = portals[0] assert_that(portal.icon, is_(equal_to(1))) assert_that(portal.other_end_icon, is_(equal_to(2)))
def test_portal_has_icons(self): """ Test that portal created by adder has two icons set One to display and another to be used by opposite end """ level = (LevelBuilder().with_size((20, 20)).with_floor_tile( self.floor_rock).with_wall_tile(self.wall_empty).build()) level_generator = mock() for loc_y in range(8, 12): for loc_x in range(8, 12): add_location_tag(level, (loc_x, loc_y), 'room') portal_adder = PortalAdder((1, 2), 'room', level_generator, False, self.rng) portal_adder.add_portal(level) portals = [] for loc_y in range(8, 12): for loc_x in range(8, 12): temp = get_portal(level, (loc_x, loc_y)) if temp: portals.append(temp) portal = portals[0] assert_that(portal.icon, is_(equal_to(1))) assert_that(portal.other_end_icon, is_(equal_to(2)))
def test_add_stairs_to_room(self): """ Test that stairs can be added to a room """ level = (LevelBuilder() .with_size((20, 20)) .with_floor_tile(self.floor_rock) .with_wall_tile(self.wall_empty) .build()) for loc_y in range(8, 12): for loc_x in range(8, 12): add_location_tag(level, (loc_x, loc_y), 'room') portal_adder = PortalAdder((1, 2), 'room', mock(), False, self.rng) portal_adder.add_portal(level) portals = [] for loc_y in range(8, 12): for loc_x in range(8, 12): temp = get_portal(level, (loc_x, loc_y)) if temp: portals.append(temp) assert_that(portals, has_length(1)) portal = portals[0] assert_that(located_in_room(portal), is_(True))
def test_add_stairs_to_room(self): """ Test that stairs can be added to a room """ level = (LevelBuilder().with_size((20, 20)).with_floor_tile( self.floor_rock).with_wall_tile(self.wall_empty).build()) for loc_y in range(8, 12): for loc_x in range(8, 12): add_location_tag(level, (loc_x, loc_y), 'room') portal_adder = PortalAdder((1, 2), 'room', mock(), False, self.rng) portal_adder.add_portal(level) portals = [] for loc_y in range(8, 12): for loc_x in range(8, 12): temp = get_portal(level, (loc_x, loc_y)) if temp: portals.append(temp) assert_that(portals, has_length(1)) portal = portals[0] assert_that(located_in_room(portal), is_(True))
def setup(self): """ Setup the test case """ self.floor_rock = 1 self.wall_empty = None self.rng = Random() self.level = (LevelBuilder() .with_size((60, 40)) .with_floor_tile(self.floor_rock) .with_wall_tile(self.wall_empty) .build()) add_location_tag(self.level, (10, 10), 'room') for x_loc in range(11, 30): add_location_tag(self.level, (x_loc, 10), 'corridor') item_config = ItemConfigurations(Random()) item_config.add_item( ItemConfiguration(name = 'dagger', cost = 2, weight = 1, icons = [500], types = ['weapon', 'light weapon', 'melee', 'simple weapon'], rarity = 'common', weapon_configration = WeaponConfiguration( damage = [(2, 'piercing'), (2, 'slashing')], critical_range = 11, critical_damage = 2, weapon_class = 'simple'))) item_config.add_item( ItemConfiguration(name = 'red potion', cost = 150, weight = 1, icons = [100], types = ['potion'], rarity = 'rare', effect_handles = [EffectHandle( trigger = 'on drink', effect = 'cure medium wounds', parameters = None, charges = 1)])) self.item_generator = ItemGenerator(item_config) self.configuration = [item_by_name(3, 4, 'dagger'), item_by_type(1, 1, 'potion')] self.item_adder = ItemAdder(self.item_generator, self.configuration, self.rng) self.item_adder.add_items(self.level)
def setup(self): """ Setup the test case """ self.floor_rock = 1 self.wall_empty = None self.rng = Random() self.level = (LevelBuilder().with_size((60, 40)).with_floor_tile( self.floor_rock).with_wall_tile(self.wall_empty).build()) add_location_tag(self.level, (10, 10), 'room') for x_loc in range(11, 30): add_location_tag(self.level, (x_loc, 10), 'corridor') item_config = ItemConfigurations(Random()) item_config.add_item( ItemConfiguration( name='dagger', cost=2, weight=1, icons=[500], types=['weapon', 'light weapon', 'melee', 'simple weapon'], rarity='common', weapon_configration=WeaponConfiguration( damage=[(2, 'piercing'), (2, 'slashing')], critical_range=11, critical_damage=2, weapon_class='simple'))) item_config.add_item( ItemConfiguration(name='red potion', cost=150, weight=1, icons=[100], types=['potion'], rarity='rare', effect_handles=[ EffectHandle(trigger='on drink', effect='cure medium wounds', parameters=None, charges=1) ])) self.item_generator = ItemGenerator(item_config) self.configuration = [ item_by_name(3, 4, 'dagger'), item_by_type(1, 1, 'potion') ] self.item_adder = ItemAdder(self.item_generator, self.configuration, self.rng) self.item_adder.add_items(self.level)
def test_get_rooms(self): """ Test that level can report what areas of it are marked as being room """ add_location_tag(self.level, (5, 5), 'room') add_location_tag(self.level, (5, 6), 'room') add_location_tag(self.level, (8, 8), 'room') add_location_tag(self.level, (9, 8), 'room') rooms = get_locations_by_tag(self.level, 'room') assert_that(rooms, contains_inanyorder((5, 5), (5, 6), (8, 8), (9, 8)))
def test_get_rooms(self): """ Test that level can report what areas of it are marked as being room """ add_location_tag(self.level, (5, 5), 'room') add_location_tag(self.level, (5, 6), 'room') add_location_tag(self.level, (8, 8), 'room') add_location_tag(self.level, (9, 8), 'room') rooms = get_locations_by_tag(self.level, 'room') assert_that(rooms, contains_inanyorder((5, 5), (5, 6), (8, 8), (9, 8)))
def test_get_locations_by_type_does_not_report_all_locations(self): """ Test that getting locations by type does not return all locations """ add_location_tag(self.level, (5, 5), 'room') add_location_tag(self.level, (5, 6), 'room') add_location_tag(self.level, (8, 8), 'room') add_location_tag(self.level, (9, 8), 'room') add_location_tag(self.level, (6, 5), 'corridor') add_location_tag(self.level, (6, 6), 'corridor') add_location_tag(self.level, (6, 7), 'corridor') add_location_tag(self.level, (6, 8), 'corridor') rooms = get_locations_by_tag(self.level, 'room') assert_that(rooms, contains_inanyorder((5, 5), (5, 6), (8, 8), (9, 8)))
def test_get_locations_by_type_does_not_report_all_locations(self): """ Test that getting locations by type does not return all locations """ add_location_tag(self.level, (5, 5), 'room') add_location_tag(self.level, (5, 6), 'room') add_location_tag(self.level, (8, 8), 'room') add_location_tag(self.level, (9, 8), 'room') add_location_tag(self.level, (6, 5), 'corridor') add_location_tag(self.level, (6, 6), 'corridor') add_location_tag(self.level, (6, 7), 'corridor') add_location_tag(self.level, (6, 8), 'corridor') rooms = get_locations_by_tag(self.level, 'room') assert_that(rooms, contains_inanyorder((5, 5), (5, 6), (8, 8), (9, 8)))