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 }))
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}))
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 }))
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())
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 }))