def __init__(self):
        State.__init__(self)
        self.update_scr = True
        self.screen = pygame.display.get_surface()
        gfx = data.load_gfx(
            ["highscore.png", "donateblood.png", "cursor3.png"])
        self.bg = gfx["highscore.png"]
        self.sprites = pygame.sprite.RenderUpdates()
        cursor = Cursor(gfx["cursor3.png"])
        self.sprites.add(cursor)
        self.next = StartMenu()
        deco = gfx["donateblood.png"]
        self.back = ClickArea([300, 565, 196, 27], (285, 565), deco,
                              (495, 565))

        lines = HIGHSCORE.keys()
        lines.sort(reverse=True)

        pos = (50, 145)
        x, y = pos
        for line in lines:
            t = TextLine(str(HIGHSCORE[line]["name"]))
            self.bg.blit(t, (x, y))
            t2 = TextLine(str(HIGHSCORE[line]["level"]).strip())
            self.bg.blit(t2, (x + 270, y))
            t3 = HighscoreText(line)
            self.bg.blit(t3, (x + 450, y))

            y += 40
    def __init__(self, req_tree, level=1):
        State.__init__(self)
        self.screen = pygame.display.get_surface()
        self.bg = self.screen.copy()
        images = data.load_gfx(["deathblossom.png"])
        self.cursor = Cursor(images["deathblossom.png"])
        self.sprites = pygame.sprite.RenderUpdates()
        self.sprites.add(self.cursor)

        img = data.load_image("perkboard.png")
        self.offset = utils.center(img.get_size(), (800, 600))
        self.bg.blit(img, self.offset)

        img = TextLine("Level: " + str(level))
        self.bg.blit(img, (600, 400))

        self.highlight = []
        for p in req_tree.keys():
            if req_tree[p] is True:
                ppos = perk[p]["pos"]
                x = self.offset[0] + ppos[0]
                y = self.offset[1] + ppos[1]
                self.bg.blit(perk[p]["img_p"], (x, y))
                self.highlight.append(ToolTipArea([x, y, 32, 32], p))
        self.tooltip = ToolTip()
        self.update_scr = True
    def __init__(self):
        State.__init__(self)
        self.next = StartMenu()
        self.screen = pygame.display.get_surface()
        self.gfx = data.load_gfx(
            ["credits.png", "cursor3.png", "creditssh.png"])

        self.bg = self.gfx["credits.png"]
        cursor = Cursor(self.gfx["cursor3.png"])
        self.sprites = pygame.sprite.RenderUpdates()
        self.sprites.add(cursor)
        self.crd = pygame.rect.Rect([375, 497, 50, 50])

        if SH_MODE[0]:
            self.bg.blit(self.gfx["creditssh.png"], (371, 493))
        self.update_scr = True
    def __init__(self):
        State.__init__(self)
        self.screen = pygame.display.get_surface()
        gfx = data.load_gfx([
            "donateblood.png", "titlescreen.png", "deathblossom.png",
            "cursor3.png"
        ])
        self.bg = gfx["titlescreen.png"]
        self.deco = gfx["donateblood.png"]

        self.sprites = pygame.sprite.RenderUpdates()
        cursor = Cursor(gfx["cursor3.png"])
        self.sprites.add(cursor)

        self.start = ClickArea([15, 15, 212, 30], (230, 15), self.deco)
        self.quitgame = ClickArea([604, 559, 184, 30], (582, 563), self.deco)
        self.help = ClickArea([12, 560, 80, 27], (100, 563), self.deco)
        self.highscore = ClickArea([602, 13, 188, 30], (580, 15), self.deco)
        self.crd = pygame.rect.Rect([385, 352, 112, 116])

        self.buttons = [self.start, self.quitgame, self.help, self.highscore]
        self.update_scr = True
    def __init__(self, name="Scavenger"):
        State.__init__(self)
        self.screen = pygame.display.get_surface()
        alpha_bg = self.screen.copy()
        alpha_bg.set_alpha(99)
        self.bg = pygame.Surface((800, 600))
        self.bg.fill((0, 0, 0))
        self.bg.blit(alpha_bg, (0, 0))
        self.perk = perk[name]

        gfx = data.load_gfx(
            ["newperk.png", "deathblossom.png", "donateblood.png"])
        deco = gfx["donateblood.png"]

        img = gfx["newperk.png"]
        pos = utils.center(img.get_size(), (800, 600))
        self.bg.blit(img, pos)

        img = self.perk["img_t"]
        x = utils.center(img.get_size(), (800, 600))[0]
        self.bg.blit(img, (x, pos[1] + 50))

        img = self.perk["img_p"]
        x = utils.center(img.get_size(), (800, 600))[0]
        self.bg.blit(img, (x, pos[1] + 75))

        img = TextArea(self.perk["desc"])
        x = utils.center(img.get_size(), (800, 600))[0]
        self.bg.blit(img, (x, pos[1] + 110))

        img = data.load_image("pause.png")
        self.bg.blit(img, (335, 525))

        self.update_scr = True
        cursor = Cursor(gfx["deathblossom.png"])
        self.sprites = pygame.sprite.RenderUpdates()
        self.sprites.add(cursor)
        self.cont = ClickArea([334, 408, 125, 25], (320, 408), deco,
                              (463, 408))
    def __init__(self, req_tree, level):
        State.__init__(self)
        self.screen = pygame.display.get_surface()
        self.req_tree = req_tree
        self.level = level

        alpha_bg = self.screen.copy()
        alpha_bg.set_alpha(99)
        self.bg = pygame.Surface((800, 600))
        self.bg.fill((0, 0, 0))
        self.bg.blit(alpha_bg, (0, 0))

        img_names = [
            "escmenu.png", "deathblossom.png", "donateblood.png", "pause.png"
        ]
        images = data.load_gfx(img_names)

        img = data.load_image("pause.png")
        self.bg.blit(img, (335, 525))
        self.deco = images["donateblood.png"]
        self.menu = images["escmenu.png"]
        self.menu_pos = utils.center(self.menu.get_size(), (800, 600))
        self.bg.blit(self.menu, self.menu_pos)
        self.cursor = Cursor(images["deathblossom.png"])

        self.sprites = pygame.sprite.RenderUpdates()
        self.sprites.add(self.cursor)
        self.update_scr = True

        self.cont = ClickArea([311, 217, 178, 25], (325, 220), self.deco,
                              (459, 220))
        self.perk = ClickArea([311, 278, 178, 25], (310, 280), self.deco,
                              (476, 280))
        self.surr = ClickArea([311, 339, 178, 25], (315, 342), self.deco,
                              (470, 342))
        self.buttons = [self.cont, self.perk, self.surr]