コード例 #1
0
ファイル: player.py プロジェクト: artemzdor/Hunt-the-Wumpus
def create_player_dialogs(entity: Entity) -> List[ComponentDialogRender]:
    from src.systems.ui.info import SystemInfo
    from src.systems.word.move import SystemMove
    from src.systems.ui.system_exit import SystemExit
    from src.systems.unit.inventory import SystemInventory

    renderings: List[ComponentDialogRender] = [
        ComponentDialogRender(system_type=SystemInfo,
                              entity_id=entity.get_uuid(),
                              component=Component,
                              next_dialog=entity.get_uuid()),
        ComponentDialogRender(system_type=SystemExit,
                              entity_id=entity.get_uuid(),
                              component=Component,
                              next_dialog=entity.get_uuid()),
        ComponentDialogRender(system_type=SystemMove,
                              entity_id=entity.get_uuid(),
                              component=ComponentPosition,
                              next_dialog=entity.get_uuid()),
        ComponentDialogRender(system_type=SystemInventory,
                              entity_id=entity.get_uuid(),
                              component=ComponentInventory,
                              next_dialog=entity.get_uuid()),
    ]
    return renderings
コード例 #2
0
def new_welcome() -> Entity:
    components: Dict[Type[Component], Component] = {
        ComponentWelcome: ComponentWelcome()
    }
    entity: Entity = Entity(
        components=components
    )
    return entity
コード例 #3
0
 def enable_potion(self, scene: Scene, item_entity_id: UUID,
                   component_inventory: ComponentInventory,
                   component_potion: ComponentPotion,
                   player: Entity) -> None:
     if system := scene.get_system(SystemUnitHealthy):
         system: SystemUnitHealthy
         system.add_healthy(healthy=component_potion.hp,
                            entity_id=player.get_uuid(),
                            scene=scene)
コード例 #4
0
ファイル: items.py プロジェクト: artemzdor/Hunt-the-Wumpus
def new_entity_items(scene: Scene, player: Entity) -> UUID:
    entity: Entity = Entity(
        tags=["Items"]
    )
    renderings: List[ComponentDialogRender] = [
        ComponentDialogRender(
            system_type=SystemItem,
            entity_id=player.get_uuid(),
            component=ComponentInventory,
            next_dialog=player.get_uuid()
        ),
    ]
    dialog: ComponentDialog = ComponentDialog(
        renderings=renderings
    )
    entity.add_component(dialog)
    scene.add_entity(entity=entity)
    return entity.get_uuid()
コード例 #5
0
def new_base_dialog() -> Entity:
    from src.systems.ui.system_exit import SystemExit
    entity: Entity = Entity()
    renderings: List[ComponentDialogRender] = [
        ComponentDialogRender(system_type=SystemExit,
                              entity_id=entity.get_uuid(),
                              component=Component,
                              next_dialog=entity.get_uuid())
    ]
    dialog: ComponentDialog = ComponentDialog(renderings=renderings)
    entity.add_component(dialog)

    return entity
コード例 #6
0
ファイル: world.py プロジェクト: artemzdor/Hunt-the-Wumpus
def new_world(width: int, height: int) -> Entity:
    """Создать мир с начальными пустышками картой"""
    word: List[List[List[Entity]]] = _new_word_coordinates(width=width,
                                                           height=height)

    components: Dict[Type[Component], Component] = {
        ComponentCoordinates:
        ComponentCoordinates(
            word=word,
            width=width,
            height=height,
        )
    }
    entity: Entity = Entity(components=components, tags=["word"])
    return entity
コード例 #7
0
ファイル: potion.py プロジェクト: artemzdor/Hunt-the-Wumpus
def create_item_potion(scene: Scene, hp: int = 100) -> Entity:
    entity: Entity = Entity()
    renderings: List[ComponentDialogRender] = [
        ComponentDialogRender(
            system_type=SystemPotion,
            entity_id=entity.get_uuid(),
            component=ComponentDialog,
            next_dialog=entity.get_uuid()
        )
    ]
    entity.add_component(ComponentItem(
        name=f"Зелье воставноления жизней {hp}",
        system_type=SystemPotion
    ))
    entity.add_component(ComponentDialog(renderings=renderings))
    entity.add_component(ComponentPotion(hp=hp))
    scene.add_entity(entity=entity)
    return entity
コード例 #8
0
ファイル: player.py プロジェクト: artemzdor/Hunt-the-Wumpus
def create_player_entity(scene: Scene) -> Entity:
    entity: Entity = Entity(tags=["player"])

    renderings: List[ComponentDialogRender] = create_player_dialogs(
        entity=entity)

    dialog: ComponentDialog = ComponentDialog(renderings=renderings)

    entity_items: UUID = new_entity_items(scene=scene, player=entity)
    entity_potion: Entity = create_item_potion(scene=scene)
    items: List[UUID] = [entity_potion.get_uuid()]

    components: List[Component] = [
        ComponentUnitHealthy(healthy=50, healthy_max=100, revival=0),
        ComponentPosition(x=0, y=0, speed=1),
        ComponentInventory(items=items,
                           entity_items=entity_items,
                           next_dialog=entity.get_uuid()), dialog
    ]

    for component in components:
        entity.add_component(component)

    return entity
コード例 #9
0
 def add_entity(self, entity: Entity) -> bool:
     if type(entity) in self.entities:
         return False
     self.entities[entity.get_uuid()] = entity
     return True
コード例 #10
0
ファイル: world.py プロジェクト: artemzdor/Hunt-the-Wumpus
def _new_word_coordinates(width: int, height: int) -> List[List[List[Entity]]]:
    """Генерим карту мира заполняет Entity пустышками"""
    coordinates: List[List[List[Entity]]] = [[[Entity()] for _ in range(width)]
                                             for _ in range(height)]
    return coordinates