Ejemplo n.º 1
0
    def _draw_mods(self, player: Player) -> None:

        for idx, loc in enumerate(self.mod_rects):
            r = self.mod_rects[loc]
            col = settings.HUDDARK
            if self.selected_mod == idx:
                col = settings.RED
            pg.draw.rect(self.screen, col, r, 2)

        for idx, loc in enumerate(player.inventory.active_mods):
            mod = player.inventory.active_mods[loc]
            img = mod.equipped_image

            img = pg.transform.scale(img, (50, 50))

            img = self._draw_cooldown(mod.ability.cooldown_fraction, img)

            img_rect = img.get_rect()
            img_rect.center = self.mod_rects[loc].center
            self.screen.blit(img, img_rect)

            title_font = images.get_font(images.ZOMBIE_FONT)
            draw_text(self.screen,
                      str(idx + 1),
                      title_font,
                      20,
                      settings.WHITE,
                      img_rect.x,
                      img_rect.y,
                      align="center")

            if mod.stackable:
                self._draw_mod_ammo(img_rect, mod, title_font)
Ejemplo n.º 2
0
    def _draw_backpack(self, player: Player) -> None:
        if self._backpack_hidden:
            return

        self._draw_backpack_base()

        for idx, rect in enumerate(self.backpack_rects):
            color = settings.HUDDARK
            if self.selected_item == idx:
                color = settings.RED
            pg.draw.rect(self.screen, color, rect, 2)

        for idx, item_mod in enumerate(player.inventory.backpack):
            if not player.inventory.backpack.slot_occupied(idx):
                continue
            rect = self.backpack_rects[idx]
            img = item_mod.backpack_image
            img_rect = img.get_rect()
            img_rect.center = rect.center

            self.screen.blit(img, img_rect)

            if item_mod.stackable:
                self._draw_mod_ammo(img_rect, item_mod,
                                    images.get_font(images.ZOMBIE_FONT))
Ejemplo n.º 3
0
    def _pause_game(self) -> None:
        title_font = images.get_font(images.ZOMBIE_FONT)
        self.screen.blit(self._dim_screen, (0, 0))
        draw_text(self.screen,
                  "Paused",
                  title_font,
                  105,
                  settings.RED,
                  settings.WIDTH / 2,
                  settings.HEIGHT / 2,
                  align="center")

        pg.display.flip()
        self._wait_for_key()
        self._paused = False
Ejemplo n.º 4
0
    def draw(self) -> None:
        self.screen.fill(settings.BLACK)

        title_font = images.get_font(images.IMPACTED_FONT)

        num_lines = len(self._text_lines) + 1
        for idx, text in enumerate(self._text_lines, 0):
            draw_utils.draw_text(self.screen,
                                 text,
                                 title_font,
                                 24,
                                 settings.WHITE,
                                 settings.WIDTH / 2,
                                 settings.HEIGHT * (idx + 1) / num_lines,
                                 align="center")
        pg.display.flip()
Ejemplo n.º 5
0
 def _game_over(self) -> None:
     self.screen.fill(settings.BLACK)
     title_font = images.get_font(images.ZOMBIE_FONT)
     draw_text(self.screen,
               "GAME OVER",
               title_font,
               100,
               settings.RED,
               settings.WIDTH / 2,
               settings.HEIGHT / 2,
               align="center")
     draw_text(self.screen,
               "Press a key to start",
               title_font,
               75,
               settings.WHITE,
               settings.WIDTH / 2,
               settings.HEIGHT * 3 / 4,
               align="center")
     pg.display.flip()
Ejemplo n.º 6
0
    def __init__(self) -> None:
        super().__init__()

        dim_screen = pg.Surface(self.screen.get_size()).convert_alpha()
        dim_screen.fill((0, 0, 0, 180))

        self.camera: Camera = Camera(800, 600)

        self._hud = HUD()

        self._draw_debug = False
        self._night = False
        self.draw_teleport_text = False

        self._fog = pg.Surface((settings.WIDTH, settings.HEIGHT))
        self._fog.fill(settings.NIGHT_COLOR)

        # lighting effect for night mode
        self._light_mask = images.get_image(images.LIGHT_MASK)
        self._light_rect = self._light_mask.get_rect()

        self.title_font = images.get_font(images.ZOMBIE_FONT)
Ejemplo n.º 7
0
    def __init__(self, party: Party) -> None:
        super().__init__()

        dim_screen = pg.Surface(self.screen.get_size()).convert_alpha()
        dim_screen.fill((0, 0, 0, 180))

        self.camera: Camera = Camera(800, 600)

        self._draw_debug = False
        self.draw_teleport_text = False

        self._fog = pg.Surface((settings.WIDTH, settings.HEIGHT))
        self._fog.fill(settings.NIGHT_COLOR)

        # lighting effect for night mode
        self._light_mask = images.get_image(images.LIGHT_MASK)
        self._light_rect = self._light_mask.get_rect()

        self.title_font = images.get_font(images.ZOMBIE_FONT)

        self._party = party
        self._initiative_tracker = InitiativeTracker(party)

        self._move_options: List[pg.Surface] = []
Ejemplo n.º 8
0
    def _draw_teleport_text(self) -> None:

        font = images.get_font(images.ZOMBIE_FONT)
        draw_utils.draw_text(self.screen, 'Press T to continue', font, 16,
                             settings.GREEN, 16, 8)