def __init__(self, name, pos, sprite, sprite_empty, effect, times): Entity.__init__(self, name, pos, sprite) self.effect = effect self.times = times self.sprite_empty = pg.transform.scale( pg.image.load(sprite_empty).convert_alpha(), (TILE_SIZE, TILE_SIZE))
def __init__(self, screen_width, screen_height): Entity.__init__(self, screen_width, 0, Icicle.name) # Take off 7 for a buffer on the bottom self.counted = False self.ice_blocks = [] # at what point in num_blocks we add the gap num_possible_gaps = int(screen_height / Ice.image_height) - 6 gap = random.randint(1, num_possible_gaps) num_blocks = 0 height = 0 while height < screen_height: # Add the middle pieces if we reach the gap point if num_blocks == gap: self.ice_blocks.append(Ice(Ice.image_bottom, screen_width, height, Ice.icicle_type)) top = height height += Icicle.gap_size bottom = height self.gap_range = (top, bottom) self.ice_blocks.append(Ice(Ice.image_top, screen_width, height, Ice.icicle_type)) else: self.ice_blocks.append(Ice(Ice.image_base, screen_width, height, Ice.icicle_type)) num_blocks += 1 height += Ice.image_height
def __init__(self, pos, sprite_close, sprite_open, potential_items): Entity.__init__(self, "Chest", pos, sprite_close) self.sprite_open_link = sprite_open self.sprite_close_link = sprite_close self.sprite_open = pg.transform.scale(pg.image.load(sprite_open).convert_alpha(), (TILE_SIZE, TILE_SIZE)) self.item = Chest.determine_item(potential_items) self.opened = False
def one_entity(self, request): self.test_entity = Entity(1, 2, 1, 50, 1) def teardown(): del self.test_entity request.addfinalizer(teardown) return 'add test_entity'
def test_init_entity(self): name = 'entity' pos = (3, 2) sprite = 'imgs/dungeon_crawl/monster/angel.png' entity = Entity(name, pos, sprite) self.assertEqual(name, entity.name) self.assertEqual(pos, entity.pos) self.assertEqual('Entity', str(entity)) self.assertTrue(entity.is_on_pos(pos))
def tow_entity(self, request): self.test_entity1 = Entity(0, 0, 1, 50, 1) self.test_entity2 = Entity(3, 4, 2, 50, 1) def teardown(): del self.test_entity1 del self.test_entity2 request.addfinalizer(teardown) return 'add test_entity1 and test_entity2'
def test_get_in_range(self, one_entity): test_list = ( Entity(0, 0, 1, 50, 1), Entity(1, 1, 2, 50, 1), Entity(2, 2, 3, 50, 2), Entity(3, 3, 4, 50, 2), Entity(4, 4, 5, 50, 2) ) self.test_entity.VisionRange = lambda : 2 #mock assert self.test_entity.GetInRange(test_list) == { 2: test_list[1], 3: test_list[2] }
def save(self, tree_name): tree = Entity.save(self, tree_name) # Save state state = etree.SubElement(tree, 'state') state.text = str(self.interaction is None) # Save sprite sprite = etree.SubElement(tree, 'sprite') sprite.text = self.sprite_name # Save interaction if not self.interaction: etree.SubElement(tree, 'uninteractable') else: interaction = etree.SubElement(tree, 'interaction') talks = etree.SubElement(interaction, 'talks') for t in self.interaction['talks']: talk = etree.SubElement(talks, 'talk') talk.text = t if self.interaction['gold'] > 0: gold = etree.SubElement(interaction, 'gold') gold.text = str(self.interaction['gold']) if self.interaction['item'] is not None: item = etree.SubElement(interaction, 'item') item.text = self.interaction['item'].name return tree
def save(self, tree_name): tree = Entity.save(self, tree_name) # Save current hp hp = etree.SubElement(tree, 'currentHp') hp.text = str(self.hp) return tree
def save(self): tree = Entity.save(self) # Save state state = etree.SubElement(tree, 'state') state.text = str(self.opened) return tree
def save(self): tree = Entity.save(self) # Save state state = etree.SubElement(tree, 'state') state.text = str(self.interaction == {}) return tree
def nextArrival(self): self.core.increaseEntitiesSystem() entity = Entity(self.core.getCurrentShift()) if self.outputModule is not None: self.outputModule.nextArrival(entity) if self.core.currentTime < Constants.SIMULATION_FINAL_TIME: arrivalEvent = self.scheduleNextArrival() self.core.addEvent(arrivalEvent)
def save(self): tree = Entity.save(self) # Save remaining uses times = etree.SubElement(tree, 'times') times.text = str(self.times) return tree
def test_name_format(self): pos = random_pos() sprite = 'imgs/dungeon_crawl/monster/angel.png' name = 'test' entity = Entity(name, pos, sprite) self.assertEqual('Test', str(entity)) name = 'Test' entity = Entity(name, pos, sprite) self.assertEqual('Test', str(entity)) name = 'entity_test' entity = Entity(name, pos, sprite) self.assertEqual('Entity Test', str(entity)) name = '5entity_test_01' entity = Entity(name, pos, sprite) self.assertEqual('Entity Test', str(entity))
def save(self, tree_name): tree = Entity.save(self, tree_name) # Save sprite sprite = etree.SubElement(tree, 'sprite') sprite.text = self.sprite_name # Save if pick lock has been initiated if self.pick_lock_initiated: etree.SubElement(tree, 'pick_lock_initiated') return tree
def save(self, tree_name): tree = Entity.save(self, tree_name) # Save remaining uses times = etree.SubElement(tree, 'times') times.text = str(self.times) # Save type nature = etree.SubElement(tree, 'type') nature.text = self.name return tree
def test_position(self): name = 'test' sprite = 'imgs/dungeon_crawl/monster/angel.png' pos = random_pos() entity = Entity(name, pos, sprite) self.assertTrue(entity.is_on_pos(pos)) self.assertTrue(entity.is_on_pos((pos[0] + rd.randint(0, TILE_SIZE), pos[1] + rd.randint(0, TILE_SIZE)))) self.assertFalse(entity.is_on_pos((pos[0] - rd.randint(0, MAIN_WIN_WIDTH), pos[1]))) self.assertFalse(entity.is_on_pos((pos[0], pos[1] - rd.randint(0, MAIN_WIN_HEIGHT))))
def save(self, tree_name): tree = Entity.save(self, tree_name) # Save state state = etree.SubElement(tree, 'state') state.text = str(self.opened) # Save sprites closed = etree.SubElement(tree, 'closed') closed_sprite = etree.SubElement(closed, 'sprite') closed_sprite.text = self.sprite_close_link opened = etree.SubElement(tree, 'opened') opened_sprite = etree.SubElement(opened, 'sprite') opened_sprite.text = self.sprite_open_link # Save content content = etree.SubElement(tree, 'contains') item = etree.SubElement(content, 'item') item.text = self.item.name return tree
def __init__(self, name, pos_first, sprite): Entity.__init__(self, name, pos_first, sprite) self.linked_to = None
def __init__(self, name, pos, sprite, hp, defense, res): Entity.__init__(self, name, pos, sprite) self.hp_max = hp self.hp = hp self.defense = defense self.res = res
def test_entity_equal(self, one_entity): self.test_entity1 = Entity(1, 2, 1, 50, 1) self.test_entity2 = Entity(1, 2, 2, 50, 1) assert self.test_entity == self.test_entity1 assert self.test_entity != self.test_entity2
def __init__(self, name, pos, sprite, interaction=None): Entity.__init__(self, name, pos, sprite) self.sprite_name = sprite self.interaction = interaction
def __init__(self, name, pos, sprite, interaction={}): Entity.__init__(self, name, pos, sprite) self.interaction = interaction
class Test_Entity(): @pytest.fixture def one_entity(self, request): self.test_entity = Entity(1, 2, 1, 50, 1) def teardown(): del self.test_entity request.addfinalizer(teardown) return 'add test_entity' @pytest.fixture def tow_entity(self, request): self.test_entity1 = Entity(0, 0, 1, 50, 1) self.test_entity2 = Entity(3, 4, 2, 50, 1) def teardown(): del self.test_entity1 del self.test_entity2 request.addfinalizer(teardown) return 'add test_entity1 and test_entity2' def test_entity_equal(self, one_entity): self.test_entity1 = Entity(1, 2, 1, 50, 1) self.test_entity2 = Entity(1, 2, 2, 50, 1) assert self.test_entity == self.test_entity1 assert self.test_entity != self.test_entity2 def test_hash(self, one_entity): assert hash(self.test_entity) == self.test_entity._id def test_location_coordinats(self, one_entity): assert type(self.test_entity.Location()) == \ Location, 'Entity Location error' assert self.test_entity.X() == 1, 'Entity X error' assert self.test_entity.Y() == 2, 'Entity Y error' def test_entity_distance_to(self, tow_entity): assert self.test_entity1.DistanceTo( self.test_entity2) == 5, 'Entity Distance error' def test_id(self, one_entity): assert self.test_entity.ID() == 1, 'Entity ID error' def test_num_ships(self, one_entity): assert self.test_entity.NumShips() == 50, 'Entity NumShips error' assert self.test_entity.NumShips( 49) == 49, 'Entity NumShips with num error' # with pytest.raises(ValueError): # self.test_entity.NumShips(-1) def test_remove_ships(self, one_entity): self.test_entity.RemoveShips(1) assert self.test_entity.NumShips() == 49, 'Entity RemoveShips with '\ + 'nagetive error' with pytest.raises(ValueError): self.test_entity.RemoveShips(-1) self.test_entity.NumShips(1) with pytest.raises(ValueError): self.test_entity.RemoveShips(2) def test_add_ships(self, one_entity): self.test_entity.AddShips(1) assert self.test_entity.NumShips() == 51, 'Entity AddShips with '\ + 'nagetive error' with pytest.raises(ValueError): self.test_entity.AddShips(-1) def test_owner(self, one_entity): assert self.test_entity.Owner() == 1, 'Entity Owner error' assert self.test_entity.Owner(2) == 2, 'Entity Owner with num error' def test_vision_range(self, one_entity): with pytest.raises(NotImplementedError): self.test_entity.VisionRange() def test_tick(self, one_entity): with pytest.raises(NotImplementedError): self.test_entity.Tick() def test_vision_age(self, one_entity): assert self.test_entity.VisionAge() == 99999, 'Entity VisionAge error' assert self.test_entity.VisionAge(2) == 2, 'Entity VisionAge with '\ + 'num error' def test_is_in_vision(self, one_entity): assert self.test_entity.IsInVision() == False, 'Entity IsInVision '\ + 'age != 0 error' self.test_entity.VisionAge(0) assert self.test_entity.IsInVision() == True, 'Entity IsInVision '\ + 'age = 0 error' def test_get_in_range(self, one_entity): test_list = ( Entity(0, 0, 1, 50, 1), Entity(1, 1, 2, 50, 1), Entity(2, 2, 3, 50, 2), Entity(3, 3, 4, 50, 2), Entity(4, 4, 5, 50, 2) ) self.test_entity.VisionRange = lambda : 2 #mock assert self.test_entity.GetInRange(test_list) == { 2: test_list[1], 3: test_list[2] }
def __init__(self, pos_first, sprite): Entity.__init__(self, "Portal", pos_first, sprite) self.linked_to = None
def __init__(self, pos, sprite, pick_lock_initiated): Entity.__init__(self, "Door", pos, sprite) self.sprite_name = sprite self.pick_lock_initiated = pick_lock_initiated