Exemplo n.º 1
0
    def create_boss(self):
        def en_collision(state, e1, e2):
            if e2.contains_component(Player):
                combat = e1.get_component(InitiateCombat)
                state.combat_launch_entity = e1
                combat.on_interact(state)
                self.combat_mechanic.enemies[1] = copy.copy(
                    e1.get_component(InitiateCombat).combat_entities[0])
                self.combat_mechanic.enemies[1].get_component(
                    Stats).reinit_HP()

        return Entity('Boss').add_component(
            Combat(copy.deepcopy(self.load_combat_images.obtain('Boss'))),
            Stats(10, (4, 8, 3, 1)), Position(None, None, None),
            AlignedBox(-4.5, -4.5, 4.5, 4.5), Collider(en_collision),
            GridMovement(C.PLAYER_WALK_RELOAD),
            Orientable(C.DIRECTION_E, C.PLAYER_WALK_RELOAD),
            Sprite({
                tuple(self.load_images.obtain_entity('Boss', 1)):
                lambda e: e.get_component(Orientable).orientation == C.
                DIRECTION_N,
                tuple(self.load_images.obtain_entity('Boss', 1)):
                lambda e: e.get_component(Orientable
                                          ).orientation == C.DIRECTION_O,
                tuple(self.load_images.obtain_entity('Boss', 1)):
                lambda e: e.get_component(Orientable
                                          ).orientation == C.DIRECTION_S,
                tuple(self.load_images.obtain_entity('Boss', 1)):
                lambda e: True
            }))
Exemplo n.º 2
0
 def create_devil(self):
     sprite_img = self.load_combat_images.obtain('Devil')
     sprite_img.width = 48
     sprite_img.height = 48
     return Entity('Devil').add_component(
         Combat(copy.deepcopy(self.load_combat_images.obtain('Devil'))),
         Stats(20, (0.2, 0, 2, 1)), Position(None, None, None),
         AlignedBox(-0.5, -0.5, 0.5, 0.5),
         GridMovement(C.PLAYER_WALK_RELOAD),
         Orientable(C.DIRECTION_E, C.PLAYER_WALK_RELOAD),
         Sprite({sprite_img: lambda e: True}))
Exemplo n.º 3
0
 def create_npc_dialogue(self):
     return Entity().add_component(
         Position(None, None, None), AlignedBox(-0.5, -0.5, 0.5, 0.5),
         GridMovement(C.PLAYER_WALK_RELOAD),
         Orientable(C.DIRECTION_O, C.PLAYER_WALK_RELOAD),
         Sprite({
             tuple(self.load_images.obtain_entity('NPC Intro', 3)):
             lambda e: e.get_component(Orientable
                                       ).orientation == C.DIRECTION_N,
             tuple(self.load_images.obtain_entity('NPC Intro', 1)):
             lambda e: e.get_component(Orientable
                                       ).orientation == C.DIRECTION_O,
             tuple(self.load_images.obtain_entity('NPC Intro', 0)):
             lambda e: e.get_component(Orientable).orientation == C.
             DIRECTION_S,
             tuple(self.load_images.obtain_entity('NPC Intro', 2)):
             lambda e: True
         }))
Exemplo n.º 4
0
 def create_player(self):
     return Entity().add_component(
         Stats(5), Inventory(), Controllable(),
         GridMovement(C.PLAYER_WALK_RELOAD),
         Orientable(C.DIRECTION_O, C.PLAYER_WALK_RELOAD),
         Position(None, None, None), AlignedBox(-0.5, -0.5, 0.5, 0.5),
         Sprite({
             tuple(self.load_images.obtain_entity('Player', 3)):
             lambda e: e.get_component(Orientable
                                       ).orientation == C.DIRECTION_N,
             tuple(self.load_images.obtain_entity('Player', 1)):
             lambda e: e.get_component(Orientable).orientation == C.
             DIRECTION_O,
             tuple(self.load_images.obtain_entity('Player', 0)):
             lambda e: e.get_component(Orientable
                                       ).orientation == C.DIRECTION_S,
             tuple(self.load_images.obtain_entity('Player', 2)):
             lambda e: True
         }), Player())
Exemplo n.º 5
0
 def create_wolf(self):
     return Entity('Wolf').add_component(
         Combat(copy.deepcopy(self.load_combat_images.obtain('Wolf'))),
         Stats(30, (0.2, 0, 3, 1)), Position(None, None, None),
         AlignedBox(-0.5, -0.5, 0.5, 0.5),
         GridMovement(C.PLAYER_WALK_RELOAD),
         Orientable(C.DIRECTION_E, C.PLAYER_WALK_RELOAD),
         Sprite({
             tuple(self.load_images.obtain_entity('Wolf', 3)):
             lambda e: e.get_component(Orientable).orientation == C.
             DIRECTION_N,
             tuple(self.load_images.obtain_entity('Wolf', 1)):
             lambda e: e.get_component(Orientable
                                       ).orientation == C.DIRECTION_O,
             tuple(self.load_images.obtain_entity('Wolf', 0)):
             lambda e: e.get_component(Orientable
                                       ).orientation == C.DIRECTION_S,
             tuple(self.load_images.obtain_entity('Wolf', 2)):
             lambda e: True
         }))