Esempio n. 1
0
 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))
Esempio n. 2
0
    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
Esempio n. 4
0
    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))
Esempio n. 6
0
    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'
Esempio n. 7
0
 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]
                                                      }
Esempio n. 8
0
    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
Esempio n. 10
0
    def save(self):
        tree = Entity.save(self)

        # Save state
        state = etree.SubElement(tree, 'state')
        state.text = str(self.opened)

        return tree
Esempio n. 11
0
    def save(self):
        tree = Entity.save(self)

        # Save state
        state = etree.SubElement(tree, 'state')
        state.text = str(self.interaction == {})

        return tree
Esempio n. 12
0
 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)
Esempio n. 13
0
    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))
Esempio n. 15
0
    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
Esempio n. 16
0
    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
Esempio n. 20
0
 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
Esempio n. 21
0
 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
Esempio n. 22
0
 def __init__(self, name, pos, sprite, interaction=None):
     Entity.__init__(self, name, pos, sprite)
     self.sprite_name = sprite
     self.interaction = interaction
Esempio n. 23
0
 def __init__(self, name, pos, sprite, interaction={}):
     Entity.__init__(self, name, pos, sprite)
     self.interaction = interaction
Esempio n. 24
0
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]
                                                         }
Esempio n. 25
0
 def __init__(self, pos_first, sprite):
     Entity.__init__(self, "Portal", pos_first, sprite)
     self.linked_to = None
Esempio n. 26
0
 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