Ejemplo n.º 1
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    class Card(pygame.sprite.Sprite):

        crdfr = []

        def __init__(self):
            super().__init__()

            image = pygame.image.load("Sprites\Misc\card\c1.png").convert()
            self.crdfr.append(image)
            image = pygame.image.load("Sprites\Misc\card\c2.png").convert()
            self.crdfr.append(image)
            image = pygame.image.load("Sprites\Misc\card\c3.png").convert()
            self.crdfr.append(image)
            image = pygame.image.load("Sprites\Misc\card\c4.png").convert()
            self.crdfr.append(image)
            image = pygame.image.load("Sprites\Misc\card\c5.png").convert()
            self.crdfr.append(image)

            self.image = self.crdfr[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.crdfr[cfr]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    gmprt = 0

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/cardshut.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/cards.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    poo = pygame.image.load("Sprites/Misc/poo/spoo1.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    crdd = pygame.image.load("Sprites/Misc/card/c1.png").convert()
    crdu = pygame.image.load("Sprites/Misc/card/c5.png").convert()
    poof = pygame.image.load("Sprites/Misc/obj/poof.png").convert()

    xlst = (24, 56, 88, 128, 160, 192)

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    sprlst = pygame.sprite.Group()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    cha = asprs[avars[3][5]][1]

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if gmprt == 0:
                if anifr < 8:
                    if anifr < 4:
                        spr = 9
                        screen.blit(
                            asprs[avars[3][5]][spr],
                            [(52 +
                              ((32 - asprs[avars[3][5]][spr].get_width()) //
                               2)),
                             (76 +
                              ((32 - asprs[avars[3][5]][spr].get_height()) //
                               2))])
                    else:
                        screen.blit(poof, [52, 76])
                elif anifr < 10:
                    cfr = anifr - 6
                    crdn = 0
                    while crdn < 24:
                        crd1 = Card()
                        crd1.rect.x = xlst[(crdn - (6 * (crdn // 6)))]
                        crd1.rect.y = 32 + (24 * (crdn // 6))
                        sprlst.add(crd1)
                        sprlst.update()
                        sprlst.draw(screen)
                        sprlst.empty()
                        crdn += 1
                    screen.blit(crdu, [56, 80])
                    screen.blit(cha, [(60 + ((16 - cha.get_width()) // 2)),
                                      (84 + ((16 - cha.get_height()) // 2))])
                elif anifr < 16:
                    crdn = 0
                    while crdn < 24:
                        screen.blit(crdu, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    crdn = 0
                    while crdn < 24:
                        screen.blit(poo,
                                    [(xlst[(crdn - (6 * (crdn // 6)))] + 4),
                                     (36 + (24 * (crdn // 6)))])
                        crdn += 1
                    screen.blit(crdu, [56, 80])
                    screen.blit(cha, [(60 + ((16 - cha.get_width()) // 2)),
                                      (84 + ((16 - cha.get_height()) // 2))])
                elif anifr < 19:
                    cfr = 19 - anifr
                    crdn = 0
                    while crdn < 24:
                        crd1 = Card()
                        crd1.rect.x = xlst[(crdn - (6 * (crdn // 6)))]
                        crd1.rect.y = 32 + (24 * (crdn // 6))
                        sprlst.add(crd1)
                        sprlst.update()
                        sprlst.draw(screen)
                        sprlst.empty()
                        crdn += 1
                else:
                    crdn = 0
                    while crdn < 24:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    if anifr == 23:
                        gmprt = 1
                        ccrd = 13
            elif gmprt == 1:
                if (((anifr - 1) / 3) - ((anifr - 1) // 3)) == 0:
                    c1 = ccrd
                    if c1 == 0:
                        c2 = randint((c1 + 1), 23)
                    elif c1 == 23:
                        c2 = randint(0, (c1 - 1))
                    else:
                        c2 = choice((randint(0, (c1 - 1)), randint((c1 + 1),
                                                                   23)))
                    ccrd = c2
                    cl = [c1, c2]
                    cl.sort()
                    crdn = 0
                    while crdn < cl[0]:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    crdn += 1
                    while crdn < cl[1]:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    crdn += 1
                    while crdn < 24:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    screen.blit(crdd, [(((xlst[(c1 - (6 * (c1 // 6)))]) +
                                         (xlst[(c2 - (6 * (c2 // 6)))])) // 2),
                                       (((32 + (24 * (c1 // 6))) +
                                         (32 + (24 * (c2 // 6)))) // 2)])
                else:
                    crdn = 0
                    while crdn < 24:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    if anifr == 23:
                        gmprt = 2
            elif gmprt == 2:
                crdn = 0
                while crdn < 24:
                    screen.blit(crdd, [
                        xlst[(crdn - (6 * (crdn // 6)))],
                        (32 + (24 * (crdn // 6)))
                    ])
                    crdn += 1
            elif gmprt == 3:
                crdn = 0
                if anifr < 12:
                    while crdn < chcrd:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    crdn += 1
                    while crdn < 24:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                elif anifr < 16:
                    while crdn < ccrd:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                    crdn += 1
                    while crdn < 24:
                        screen.blit(crdd, [
                            xlst[(crdn - (6 * (crdn // 6)))],
                            (32 + (24 * (crdn // 6)))
                        ])
                        crdn += 1
                if anifr < 3:
                    cfr = anifr + 1
                    crd1 = Card()
                    crd1.rect.x = xlst[(chcrd - (6 * (chcrd // 6)))]
                    crd1.rect.y = 32 + (24 * (chcrd // 6))
                    sprlst.add(crd1)
                    sprlst.update()
                    sprlst.draw(screen)
                    sprlst.empty()
                elif anifr < 12:
                    screen.blit(crdu, [
                        xlst[(chcrd - (6 * (chcrd // 6)))],
                        (32 + (24 * (chcrd // 6)))
                    ])
                    if chcrd == ccrd:
                        screen.blit(cha, [((xlst[(chcrd -
                                                  (6 * (chcrd // 6)))] + 4) +
                                           ((16 - cha.get_width()) // 2)),
                                          ((36 + (24 * (chcrd // 6))) +
                                           ((16 - cha.get_height()) // 2))])
                    else:
                        screen.blit(poo,
                                    [(xlst[(chcrd - (6 * (chcrd // 6)))] + 4),
                                     (36 + (24 * (chcrd // 6)))])
                elif anifr < 16:
                    if anifr < 14:
                        screen.blit(poof,
                                    [(xlst[(ccrd - (6 * (ccrd // 6)))] - 4),
                                     (28 + (24 * (ccrd // 6)))])
                    else:
                        if chcrd == ccrd:
                            spr = 5
                        else:
                            spr = 8
                        screen.blit(
                            asprs[avars[3][5]][spr],
                            [((xlst[(ccrd - (6 * (ccrd // 6)))] - 4) +
                              ((32 - asprs[avars[3][5]][spr].get_width()) //
                               2)),
                             ((28 + (24 * (ccrd // 6))) +
                              ((32 - asprs[avars[3][5]][spr].get_height()) //
                               2))])
                    if chcrd != ccrd:
                        screen.blit(crdu, [
                            xlst[(chcrd - (6 * (chcrd // 6)))],
                            (32 + (24 * (chcrd // 6)))
                        ])
                        screen.blit(poo,
                                    [(xlst[(chcrd - (6 * (chcrd // 6)))] + 4),
                                     (36 + (24 * (chcrd // 6)))])
                    if anifr == 15:
                        if chcrd == ccrd:
                            scr += 1
                            if scr == 6:
                                end = 1
                        else:
                            end = 1
                else:
                    if end == 1:
                        crdn = 0
                        if anifr < 18:
                            while crdn < ccrd:
                                screen.blit(poof,
                                            [(xlst[(crdn -
                                                    (6 * (crdn // 6)))] - 4),
                                             (28 + (24 * (crdn // 6)))])
                                crdn += 1
                            crdn += 1
                            while crdn < 24:
                                screen.blit(poof,
                                            [(xlst[(crdn -
                                                    (6 * (crdn // 6)))] - 4),
                                             (28 + (24 * (crdn // 6)))])
                                crdn += 1
                        if chcrd == ccrd:
                            spr = 5
                        else:
                            spr = 8
                        screen.blit(
                            asprs[avars[3][5]][spr],
                            [((xlst[(ccrd - (6 * (ccrd // 6)))] - 4) +
                              ((32 - asprs[avars[3][5]][spr].get_width()) //
                               2)),
                             ((28 + (24 * (ccrd // 6))) +
                              ((32 - asprs[avars[3][5]][spr].get_height()) //
                               2))])
                    else:
                        while crdn < ccrd:
                            screen.blit(crdd, [
                                xlst[(crdn - (6 * (crdn // 6)))],
                                (32 + (24 * (crdn // 6)))
                            ])
                            crdn += 1
                        crdn += 1
                        while crdn < 24:
                            screen.blit(crdd, [
                                xlst[(crdn - (6 * (crdn // 6)))],
                                (32 + (24 * (crdn // 6)))
                            ])
                            crdn += 1
                        if anifr < 18:
                            screen.blit(poof,
                                        [(xlst[(chcrd - (6 *
                                                         (chcrd // 6)))] - 4),
                                         (28 + (24 * (chcrd // 6)))])
                        elif anifr < 20:
                            screen.blit(crdu, [
                                xlst[(chcrd - (6 * (chcrd // 6)))],
                                (32 + (24 * (chcrd // 6)))
                            ])
                            screen.blit(cha,
                                        [((xlst[(chcrd -
                                                 (6 * (chcrd // 6)))] + 4) +
                                          ((16 - cha.get_width()) // 2)),
                                         ((36 + (24 * (chcrd // 6))) +
                                          ((16 - cha.get_height()) // 2))])
                        else:
                            cfr = 23 - anifr
                            crd1 = Card()
                            crd1.rect.x = xlst[(chcrd - (6 * (chcrd // 6)))]
                            crd1.rect.y = 32 + (24 * (chcrd // 6))
                            sprlst.add(crd1)
                            sprlst.update()
                            sprlst.draw(screen)
                            sprlst.empty()
                        if anifr == 23:
                            gmprt = 1
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 20), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 2:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 4:
                        screen.blit(good, [94, 48])
                    elif scr < 6:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    if gmprt == 2:
                        if 32 < mp[1] < 128:
                            a = 6 * ((mp[1] - 32) // 24)
                            b = -1
                            if 20 < mp[0] < 116:
                                b = (mp[0] - 20) // 32
                            elif 124 < mp[0] < 220:
                                b = ((mp[0] - 124) // 32) + 3
                            if b > -1:
                                chcrd = a + b
                                gmprt = 3
                                anifr = -1
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            if end == 1:
                play = False
                end = 3
                if (avars[avars[3][5]][17] + (scr // 2)) < 6:
                    avars[avars[3][5]][17] += (scr // 2)
                else:
                    avars[avars[3][5]][17] = 6
                if (avars[3][2] + (scr * 20)) < 99999:
                    avars[3][2] += (scr * 20)
                else:
                    avars[3][2] = 99999
                avars[avars[3][5]][5] += (scr // 2)
            elif end == 3:
                if scr < 6:
                    if scr < 2:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 2
0
def game(avars, asprs, screen):

    class Mnbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    chngsts = False

    spclk = False

    scr = 0

    ret = 1

    gmprt = 0

    btlt = ["up", "down", "right", "left"]

    prsb = 4

    tuts = True
    strt = False
    play = False
    end = 0

    seq = []

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/separt.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/separbg.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()
    
    s = pygame.image.load("Sprites/Food/Apple.png").convert()
    a = pygame.Surface([24, 24]).convert()
    a.fill((0, 255, 255))
    a.blit(s, [-48, 0])
    a.set_colorkey((0, 255, 255))
    
    s = pygame.image.load("Sprites/Food/Burger.png").convert()
    b = pygame.Surface([24, 24]).convert()
    b.fill((0, 255, 255))
    b.blit(s, [-48, 0])
    b.set_colorkey((0, 255, 255))

    gspr = [a, b,
            pygame.image.load("Sprites/Misc/obj/pbag.png").convert(), pygame.image.load("Sprites/Misc/obj/pbox.png").convert(),
            pygame.image.load("Sprites/Misc/obj/gbot.png").convert(), pygame.image.load("Sprites/Misc/obj/brbowl.png").convert(),
            pygame.image.load("Sprites/Misc/obj/petb.png").convert()]

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if gmprt == 0:
                spr = 11
                if anifr % 6 == 0:
                    if anifr > 0:
                        pygame.mixer.stop()
                        sound[6].play()
                    a = randint(0, 6)
                    seq.append(a)
                screen.blit(gspr[seq[(len(seq) - 1)]], [208, 80])
            elif gmprt == 1:
                spr = 3
            elif gmprt == 2:
                if prsb == (seq[len(seq) - 1] // 2):
                    spr = 5
                else:
                    spr = 7
                screen.blit(gspr[seq[(len(seq) - 1)]], [(8 + (40 * prsb)), 70])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], (spr == 11), 0), [(150 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 30), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(asprs[avars[3][5]][spr], [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 2:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 4:
                        screen.blit(good, [94, 48])
                    elif scr < 6:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN:
                if event.key in [303, 304]:
                    spclk = True
            if event.type == KEYUP:
                if event.key in [303, 304]:
                    spclk = False
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button + (spclk * (3 - (event.button > 2)))
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                if 24 < mp[1] < 136 and gmprt == 1 and (pb != 2 and pb < 6):
                    anifr = 19
                    prsb = [1, 3, 4, 5].index(pb)
                    gmprt = 2
                    pygame.mixer.stop()
                    sound[6].play()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if gmprt == 0:
                    gmprt = 1
                    pygame.mixer.stop()
                    sound[6].play()
                elif gmprt == 2:
                    if prsb == (seq[len(seq) - 1] // 2):
                        seq.pop(len(seq) - 1)
                        if len(seq) == 0:
                            scr += 1
                            if scr == 6:
                                gmprt = 3
                            else:
                                gmprt = 0
                        else:
                            gmprt = 1
                    else:
                        gmprt = 3
                if gmprt == 3:
                    end = 3
                    play = False
                    if (avars[avars[3][5]][17] + (scr // 2)) < 6:
                        avars[avars[3][5]][17] += (scr // 2)
                    else:
                        avars[avars[3][5]][17] = 6
                    if (avars[3][2] + (scr * 30)) < 99999:
                        avars[3][2] += (scr * 30)
                    else:
                        avars[3][2] = 99999
                    avars[avars[3][5]][7] += scr
            elif end == 3:
                if scr < 6:
                    if scr < 2:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return(avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 3
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    tuts = True
    strt = False
    play = False
    end = 0

    flg = -1
    npos = -1
    curr = -1

    def chsprs(chara):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "s.png")
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return (sprs)

    def setv():
        cval = []
        cspr = []
        for i in range(4):
            cval.append(randint(0, 1))
            cspr.append(chsprs(randint(297, 308)))
        return (cval, cspr)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/travelt.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/travel.png").convert()

    station = pygame.Surface((240, 160)).convert()
    i = pygame.image.load("Sprites/Misc/bg/job_1.png").convert()
    station.blit(i, [-480, -320])

    f = pygame.image.load("Sprites/Misc/obj/flags.png").convert()
    flags = [[], []]
    for i in range(4):
        n = pygame.Surface((24, 24)).convert()
        n.fill((0, 255, 255))
        n.blit(f, [-(24 * (i % 2)), -(24 * (i // 2))])
        n.set_colorkey((0, 255, 255))
        flags[i % 2].append(n)

    case = pygame.image.load("Sprites/Misc/obj/suitcase.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            if end == 0:
                screen.blit(station, [0, 0])
                for i in range(4):
                    screen.blit(
                        cspr[i][4 + (2 * ((anifr % 12 > 5) == (i % 2)))],
                        [(8 + (56 * i)), 98])
                    if cval[i] == 0:
                        screen.blit(case, [(40 + (56 * i)), 106])
            else:
                screen.blit(playbk, [0, 0])
                spr = [3, 5,
                       7][(curr > -1) + (curr > -1 and (cval[curr] != flg))]
                for i in [0, 1]:
                    screen.blit(flags[i][flg == i], [[80, 136][i], 102])
                if flg > -1:
                    screen.blit(cspr[curr][5 + (2 * (cval[curr] != flg))],
                                [(36 + (136 * flg)), 98])
                    if cval[curr] == 0:
                        screen.blit(case, [(68 + (136 * flg)), 106])
                screen.blit(
                    pygame.transform.flip(asprs[avars[3][5]][spr], (flg == 1),
                                          0), [104, 98])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 200), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                if pb in [1, 3] and (24 < mp[1] < 136) and play and end == 1:
                    npos = pb // 2
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
                cval, cspr = setv()
            elif play:
                if end == 0:
                    pygame.mixer.stop()
                    sound[2].play()
                    end = 1
                elif end == 1:
                    if (cval[curr] == flg) or curr == -1:
                        curr += 1
                        if curr == 4:
                            scr += 1
                            if scr == 12:
                                end = 3
                            else:
                                end = 0
                                cval, cspr = setv()
                                flg = -1
                                npos = -1
                                curr = -1
                        else:
                            flg = npos
                            npos = -1
                            pygame.mixer.stop()
                            sound[9 + (3 * (cval[curr] != flg))].play()
                    else:
                        end = 3
                    if end == 3:
                        play = False
                        if (avars[3][2] + (scr * 200)) < 99999:
                            avars[3][2] += (scr * 200)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][7] += ((scr * 4) // 3)
                        avars[avars[3][5]][9] += ((scr * 2) // 3)
            elif end == 3:
                if scr < 4:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 4
0
def game(avars, asprs, screen):

    class Mnbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    chngsts = False

    scr = 0

    ret = 1

    prsb = 4

    blnlst = [1, 0, 0, 0]
    shuffle(blnlst)

    bblnp = 0

    arpos = 0

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/hitbloont.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/hitbloonbg.png").convert()

    balloon = [[pygame.image.load("Sprites/Misc/obj/hitbbb.png").convert(), pygame.image.load("Sprites/Misc/obj/hitbbbp.png").convert()],
               [pygame.image.load("Sprites/Misc/obj/hitbgb.png").convert(), pygame.image.load("Sprites/Misc/obj/hitbgbp.png").convert()]]

    har = pygame.image.load("Sprites/Misc/txtbox/arrow1.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            screen.blit((fnt.render(("%02d" % scr), 1, (0, 0, 100))), [213, 106])
            spr = 3 + (1 * (anifr %12 > 5)) + (3 * (prsb < 4)) - (2 * (abs(arpos) == 3 and blnlst.index(1) == prsb and prsb != abs(bblnp)))
            for i in range(0, 4):
                screen.blit(balloon[blnlst[i]][(abs(arpos) == 3 and prsb == i and prsb != abs(bblnp))], [(22 + (60 * i)), 52])
            screen.blit(balloon[0][(abs(arpos) == 3 and prsb == abs(bblnp))], [(67 + (30 * abs(bblnp))), 76])
            screen.blit(har, [0, (32 + (8 * abs(arpos)))])
            screen.blit(pygame.transform.flip(har, 1, 0), [232, (32 + (8 * abs(arpos)))])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], 1, 0), [(3 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (101 + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 15), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(asprs[avars[3][5]][spr], [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    elif 32 < mp[1] < 88 and play and prsb == 4:
                        anifr = 17
                        prsb = mp[0] // 60
                        pygame.mixer.stop()
                        sound[(12 - (3 * (abs(arpos) == 3 and blnlst[prsb] == 1 and prsb != abs(bblnp))))].play()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play and prsb < 4:
                if abs(arpos) == 3 and blnlst[prsb] == 1 and prsb != abs(bblnp):
                    scr += 1
                    shuffle(blnlst)
                    prsb = 4
                    if scr == 12:
                        end = 3
                        play = False
                else:
                    end = 3
                    play = False
                if not play:
                    if (avars[avars[3][5]][17] + (scr // 4)) < 6:
                        avars[avars[3][5]][17] += (scr // 4)
                    else:
                        avars[avars[3][5]][17] = 6
                    if (avars[3][2] + (scr * 15)) < 99999:
                        avars[3][2] += (scr * 15)
                    else:
                        avars[3][2] = 99999
                    avars[avars[3][5]][8] += (scr * 2) // 3
            elif end == 3:
                if scr < 12:
                    if scr < 4:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return(avars, ret)
        if anifr % 6 == 0 and prsb == 4:
            bblnp += 1
            if bblnp == 3:
                bblnp = -3
        if anifr % 4 == 0 and prsb == 4:
            arpos += 1
            if arpos == 6:
                arpos = -6
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 5
0
def game(avars, asprs, screen):

    class Mnbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    chngsts = False

    scr = 0

    ret = 1

    rfl = randint(0, 5)
    fll = [randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5),
           randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5)]
    while fll.count(rfl) > 2:
        fll = [randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5),
               randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5)]

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/floristt.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/florist.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    flw = []
    f = pygame.image.load("Sprites/Misc/obj/flor.png")
    p = [[(255, 80, 80), (255, 255, 102), (80, 255, 80), (102, 255, 255), (80, 80, 255), (255, 102, 255)],
         [(240, 0, 0), (255, 240, 0), (0, 240, 0), (0, 240, 255), (0, 0, 240), (255, 0, 240)],
         [(204, 0, 0), (240, 204, 0), (0, 204, 0), (0, 204, 240), (0, 0, 204), (240, 0, 204)]]
    for i in range(6):
        l = pygame.Surface((24, 24))
        l.fill((0, 255, 255))
        f.set_palette_at(2, p[0][i])
        f.set_palette_at(3, p[1][i])
        f.set_palette_at(4, p[2][i])
        l.blit(f, [0, 0])
        l.set_colorkey((0, 255, 255))
        l.convert()
        flw.append(l)

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if end == 0:
                spr = 3 + (anifr % 12 > 5)
            elif end == 1:
                spr = 8
            else:
                spr = 5 + (2 * (fll.count(rfl) > 0))
            for i in range(8):
                if fll[i] > -1:
                    screen.blit(flw[fll[i]], [(3 + (30 * i)), 104])
            screen.blit(flw[rfl], [12, 36])
            screen.blit(asprs[avars[3][5]][spr], [200, 32])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 200), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(asprs[avars[3][5]][spr], [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    if (24 < mp[1] < 136) and play and end == 0:
                        pygame.mixer.stop()
                        sound[2].play()
                        l = mp[0] // 30
                        if fll[l] == rfl:
                            fll[l] = -1
                        else:
                            pygame.mixer.stop()
                            sound[12].play()
                            end = 1
                            anifr = 11
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < (23 + (24 * (play and end == 0))):
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if end == 0:
                    pygame.mixer.stop()
                    sound[9 + (3 * (fll.count(rfl) > 0))].play()
                    end = 2
                    anifr = 12
                else:
                    if end == 2 and fll.count(rfl) == 0:
                        end = 0
                        scr += 1
                        rfl = randint(0, 5)
                        fll = [randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5),
                               randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5)]
                        while fll.count(rfl) > 2:
                            fll = [randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5),
                                   randint(0, 5), randint(0, 5), randint(0, 5), randint(0, 5)]
                    if end > 0 or scr == 12:
                        end = 3
                        play = False
                        if (avars[3][2] + (scr * 200)) < 99999:
                            avars[3][2] += (scr * 200)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][6] += ((scr * 4) // 3)
                        avars[avars[3][5]][7] += ((scr * 2) // 3)
            elif end == 3:
                if scr < 4:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return(avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 6
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    tuts = True
    strt = False
    play = False
    end = 0

    face = 0
    item = randint(0, 7)

    def chsprs(chara):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "s.png")
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return (sprs)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/fest.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/festi.png").convert()

    helper = [
        chsprs(choice([221, 222, 251, 252])),
        chsprs(choice([221, 222, 251, 252]))
    ]

    plat = []
    p = pygame.image.load("Sprites/Misc/obj/fest.png").convert()
    for i in [0, 1]:
        j = pygame.Surface((32, 16)).convert()
        j.fill((0, 255, 255))
        j.blit(p, [-(i * 32), 0])
        j.set_colorkey((0, 255, 255))
        plat.append(j)

    obj = []
    l = [
        "ball", "trumpet", "yoyo", "plush", "IceCream", "Hotdog", "Onigiri",
        "Dango"
    ]
    for i in range(8):
        if i < 4:
            j = pygame.image.load("Sprites/Misc/item/" + l[i] +
                                  ".png").convert()
        else:
            p = pygame.image.load("Sprites/Food/" + l[i] + ".png").convert()
            j = pygame.Surface((24, 24)).convert()
            j.fill((0, 255, 255))
            j.blit(p, [0, 0])
            j.set_colorkey((0, 255, 255))
        obj.append(j)

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if anifr < 12:
                spr = 3 + (anifr > 5)
                hlp = 11
                screen.blit(obj[item], [108, 56])
            else:
                spr = 5 + (2 * (face != (item // 4)))
                hlp = spr
                screen.blit(obj[item], [(64 + (80 * face)), 88])
            screen.blit(plat[face], [104, 80])
            screen.blit(pygame.transform.flip(helper[0][hlp], 1, 0), [24, 98])
            screen.blit(helper[1][hlp], [184, 98])
            screen.blit(
                pygame.transform.flip(asprs[avars[3][5]][spr], face, 0),
                [104, 98])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 100), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 8:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 16:
                        screen.blit(good, [94, 48])
                    elif scr < 24:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
            if event.type == MOUSEMOTION and play and anifr < 12:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                face = mp[0] > 120
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
            if play and anifr == 12:
                pygame.mixer.stop()
                sound[9 + (3 * (face != (item // 4)))].play()
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if face == (item // 4):
                    scr += 1
                if (face != (item // 4)) or scr == 24:
                    end = 3
                    play = False
                    if (avars[3][2] + (scr * 100)) < 99999:
                        avars[3][2] += (scr * 100)
                    else:
                        avars[3][2] = 99999
                    avars[avars[3][5]][8] += ((scr * 2) // 3)
                    avars[avars[3][5]][7] += (scr // 3)
                item = randint(0, 7)
            elif end == 3:
                if scr < 8:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 7
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    cuo = -1
    cln = 0

    tuts = True
    strt = False
    play = False
    end = 0

    def chsprs(chara):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "s.png")
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return (sprs)

    def cinfo():
        hlen = randint(1, 10)
        flen = randint(0, (hlen - 1))
        ilb = pygame.Surface(((4 * (10 - hlen)), 16)).convert()
        flb = pygame.Surface(((4 * (10 - flen)), 16)).convert()
        ilb.fill((0, 0, 100))
        flb.fill((0, 0, 100))
        cspr = chsprs(randint(217, 228))
        return (hlen, flen, ilb, flb, cspr)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/hairt.png").convert()

    playbk = pygame.Surface((240, 160)).convert()
    f = pygame.image.load("Sprites/Misc/bg/job_1.png").convert()
    playbk.blit(f, [-720, -160])

    salon = pygame.image.load("Sprites/Misc/bg/hair.png").convert()

    hlen, flen, ilb, flb, cspr = cinfo()

    hobj = [[], []]
    hoi = pygame.image.load("Sprites/Misc/obj/hair.png").convert()
    for i in [0, 1, 2, 3]:
        a = pygame.Surface((24, 24)).convert()
        a.fill((0, 255, 255))
        a.blit(hoi, [-(24 * (i % 2)), -(24 * (i > 1))])
        a.set_colorkey((0, 255, 255))
        hobj[i > 1].append(a)

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(salon, [0, 0])
            if end == 0:
                spr = 11 + (anifr % 12 > 5)
                cs = 16
                if cuo > -1:
                    screen.blit(hobj[cuo][anifr % 12 > 5],
                                [(184 + (8 * (anifr % 12 > 5))), 72])
            else:
                spr = 7 - (2 * (hlen == cln == flen))
                cs = 8 - (3 * (hlen == cln == flen))
            screen.blit(ilb, [(48 - (ilb.get_width())), 64])
            screen.blit(flb, [(104 - (flb.get_width())), 64])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], 1, 0),
                        [152, 98])
            screen.blit(pygame.transform.flip(cspr[cs], 1, 0), [188, 86])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 400), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 2:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 4:
                        screen.blit(good, [94, 48])
                    elif scr < 6:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    if (104 < mp[1] < 136) and (mp[0] <
                                                112) and play and end == 0:
                        pygame.mixer.stop()
                        sound[2].play()
                        a = cuo
                        cuo = mp[0] > 55
                        if cuo:
                            cln += 1
                        else:
                            if a:
                                if cln == hlen:
                                    hlen -= 1
                                    cln = 0
                                else:
                                    end = 1
                                    anifr = 11
                                    pygame.mixer.stop()
                                    sound[12].play()
                            else:
                                hlen -= 1
                            if hlen < 0:
                                end = 1
                                anifr = 11
                                pygame.mixer.stop()
                                sound[12].play()
                if pb == 3 and (24 < mp[1] < 136) and play and end == 0:
                    end = 1
                    anifr = 11
                    pygame.mixer.stop()
                    sound[12 - (3 * (hlen == cln == flen))].play()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            if play and end == 1:
                if hlen == cln == flen:
                    end = 0
                    scr += 1
                    cuo = -1
                    cln = 0
                    hlen, flen, ilb, flb, cspr = cinfo()
                if end == 1 or scr == 6:
                    end = 3
                    play = False
                    if (avars[3][2] + (scr * 400)) < 99999:
                        avars[3][2] += (scr * 400)
                    else:
                        avars[3][2] = 99999
                    avars[avars[3][5]][6] += ((scr * 8) // 3)
                    avars[avars[3][5]][5] += ((scr * 4) // 3)
            elif end == 3:
                if scr < 2:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 8
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    look = 0
    hidp = randint(0, 3)

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/policet.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/police.png").convert()

    police = pygame.Surface((240, 160)).convert()
    j = pygame.image.load("Sprites/Misc/bg/job_1.png").convert()
    police.blit(j, [-720, -320])

    bank = pygame.Surface((240, 160)).convert()
    j = pygame.image.load("Sprites/Misc/bg/job_1.png").convert()
    bank.blit(j, [-960, 0])

    burglar = []
    b = pygame.image.load("Sprites/NPC/Burglar.png").convert()
    for i in range(4):
        j = pygame.Surface((32, 32)).convert()
        j.fill((0, 255, 255))
        j.blit(b, [-(32 * (i % 2)), -(32 * (i // 2))])
        j.set_colorkey((0, 255, 255))
        burglar.append(j)

    hide = []
    b = pygame.image.load("Sprites/Misc/bg/policeh.png").convert()
    for i in range(4):
        j = pygame.Surface((32, 32)).convert()
        j.blit(b, [-(32 * (i % 2)), -(32 * (i // 2))])
        hide.append(j)

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(police, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            if end == 0:
                screen.blit(bank, [0, 0])
                screen.blit(burglar[anifr % 12 > 5],
                            [(120 - (48 * (anifr // 6))),
                             (98 - (4 * (anifr % 12 < 6)))])
                y = 98 - (4 * (anifr % 12 < 6))
                x = 240 - (48 * (anifr // 6))
                spr = 11 + (2 * (anifr % 12 < 6))
            else:
                screen.blit(playbk, [0, 0])
                if end == 1:
                    screen.blit(
                        hide[hidp],
                        [[0, 78, 136, 200][hidp], [24, 74, 74, 86][hidp]])
                    spr = 6
                    x = 104
                    y = 98
                else:
                    screen.blit(
                        burglar[2 + (look == hidp)],
                        [[0, 48, 136, 200][hidp], [40, 80, 76, 62][hidp]])
                    spr = 5 + (2 * (look != hidp))
                    x = [16, 88, 112, 176][look]
                    y = 92
            screen.blit(
                pygame.transform.flip(asprs[avars[3][5]][spr], (look > 1), 0),
                [x, y])
        else:
            screen.blit(police, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 200), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if end == 0:
                    end = 1
                    pygame.mixer.stop()
                    sound[2].play()
                elif end == 1:
                    end = 2
                    p = pygame.mouse.get_pos()
                    d = (screen.get_size()[0] // 240)
                    p = ((p[0] // d), (p[1] // d))
                    look = p[0] // 60
                    pygame.mixer.stop()
                    sound[9 + (3 * (look != hidp))].play()
                else:
                    if look == hidp:
                        scr += 1
                        end = 0
                        look = 0
                        hidp = randint(0, 3)
                    if end == 2 or scr == 12:
                        end = 3
                        play = False
                        if (avars[3][2] + (scr * 200)) < 99999:
                            avars[3][2] += (scr * 200)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][7] += ((scr * 4) // 3)
                        avars[avars[3][5]][5] += ((scr * 2) // 3)
            elif end == 3:
                if scr < 4:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 9
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    gpos = 0

    chh = 0

    ret = 1

    clk = False

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/whackafoolt.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    fan1 = pygame.image.load("Sprites/Misc/obj/fan1.png").convert()
    fan2 = pygame.image.load("Sprites/Misc/obj/fan2.png").convert()

    fool1 = pygame.image.load("Sprites/Misc/obj/fool1.png").convert()
    fool2 = pygame.image.load("Sprites/Misc/obj/fool2.png").convert()

    poop1 = pygame.image.load("Sprites/Misc/obj/poop1.png").convert()
    poop2 = pygame.image.load("Sprites/Misc/obj/poop2.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/whackafool.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    sprlst = pygame.sprite.Group()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if anifr > 3:
                if objl[0] < 16:
                    if gpos == 2 and chh == objl[0]:
                        screen.blit(fool2,
                                    [(66 + (28 * (4 * ((objl[0] / 4) -
                                                       (objl[0] // 4))))),
                                     (40 + (24 * (objl[0] // 4)))])
                    else:
                        screen.blit(fool1,
                                    [(66 + (28 * (4 * ((objl[0] / 4) -
                                                       (objl[0] // 4))))),
                                     (40 + (24 * (objl[0] // 4)))])
                if objl[1] < 16:
                    if gpos == 2 and chh == objl[1]:
                        screen.blit(fool2,
                                    [(66 + (28 * (4 * ((objl[1] / 4) -
                                                       (objl[1] // 4))))),
                                     (40 + (24 * (objl[1] // 4)))])
                    else:
                        screen.blit(fool1,
                                    [(66 + (28 * (4 * ((objl[1] / 4) -
                                                       (objl[1] // 4))))),
                                     (40 + (24 * (objl[1] // 4)))])
                if objl[2] < 16:
                    if gpos == 3 and chh == objl[2]:
                        screen.blit(poop2,
                                    [(66 + (28 * (4 * ((objl[2] / 4) -
                                                       (objl[2] // 4))))),
                                     (40 + (24 * (objl[2] // 4)))])
                    else:
                        screen.blit(poop1,
                                    [(66 + (28 * (4 * ((objl[2] / 4) -
                                                       (objl[2] // 4))))),
                                     (40 + (24 * (objl[2] // 4)))])
                if objl[3] < 16:
                    if gpos == 3 and chh == objl[3]:
                        screen.blit(poop2,
                                    [(66 + (28 * (4 * ((objl[3] / 4) -
                                                       (objl[3] // 4))))),
                                     (40 + (24 * (objl[3] // 4)))])
                    else:
                        screen.blit(poop1,
                                    [(66 + (28 * (4 * ((objl[3] / 4) -
                                                       (objl[3] // 4))))),
                                     (40 + (24 * (objl[3] // 4)))])
                if objl[4] < 16:
                    if gpos == 3 and chh == objl[4]:
                        screen.blit(poop2,
                                    [(66 + (28 * (4 * ((objl[4] / 4) -
                                                       (objl[4] // 4))))),
                                     (40 + (24 * (objl[4] // 4)))])
                    else:
                        screen.blit(poop1,
                                    [(66 + (28 * (4 * ((objl[4] / 4) -
                                                       (objl[4] // 4))))),
                                     (40 + (24 * (objl[4] // 4)))])
            if gpos == 0:
                spr = 3
                sprx = 30
                fanx = 6
            elif gpos == 1:
                spr = 13
                sprx = 30 + (((42 + (28 * (4 * ((chh / 4) -
                                                (chh // 4))))) - 30) // 2)
                spry = spry + (((((32 + (24 * (chh // 4))))) - spry) // 2)
                fanx = 6 + (((42 + (28 * (4 * ((chh / 4) -
                                               (chh // 4))))) - 30) // 2)
                fany = spry + (((((40 + (24 * (chh // 4))))) - spry) // 2)
                if chh in objl:
                    if objl.index(chh) < 2:
                        gpos = 2
                        pygame.mixer.stop()
                        sound[6].play()
                    else:
                        gpos = 3
                        anifr = 17
                        pygame.mixer.stop()
                        sound[6].play()
                else:
                    gpos = 3
                    anifr = 17
            elif gpos == 2:
                spr = 5
                if chh in objl:
                    sprx = 42 + (28 * (4 * ((chh / 4) - (chh // 4))))
                    spry = 32 + (24 * (chh // 4))
                    fanx = 66 + (28 * (4 * ((chh / 4) - (chh // 4))))
                    fany = 40 + (24 * (chh // 4))
                    objl[objl.index(chh)] = 16
                else:
                    gpos = 4
                    if objl.count(16) == 2:
                        anifr = 0
                        scr += 1
            elif gpos == 3:
                spr = 9
                sprx = 42 + (28 * (4 * ((chh / 4) - (chh // 4))))
                spry = 32 + (24 * (chh // 4))
                fanx = 66 + (28 * (4 * ((chh / 4) - (chh // 4))))
                fany = 40 + (24 * (chh // 4))
            else:
                spr = 13
                sprx = 30 + ((sprx - 30) // 2)
                fanx = 62 + ((fanx - 30) // 2)
                gpos = 0
            screen.blit(
                pygame.transform.flip(asprs[avars[3][5]][spr],
                                      (gpos > 0 or sprx == 30), 0),
                [(sprx + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                 (spry + (32 - asprs[avars[3][5]][spr].get_height()))])
            if gpos == 2 or gpos == 3:
                screen.blit(fan2, [fanx, fany])
            else:
                screen.blit(fan1, [fanx, fany])
            screen.blit((fnt.render(("%02d" % scr), 1, (0, 0, 100))),
                        [219, 64])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 10), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    elif 64 < mp[0] < 176 and 40 < mp[
                            1] < 136 and gpos == 0 and play:
                        chh = (4 * ((mp[1] - 40) // 24)) + ((mp[0] - 64) // 28)
                        gpos = 1
                        if objl.count(16) == 1:
                            anifr = 6
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
            if play:
                if anifr == 4:
                    if scr < 12:
                        a = randint(0, 15)
                        b = a
                        while b == a:
                            b = randint(0, 15)
                        c = a
                        while c == a or c == b:
                            c = randint(0, 15)
                        d = a
                        while d == a or d == b or d == c:
                            d = randint(0, 15)
                        e = a
                        while e == a or e == b or e == c or e == d:
                            e = randint(0, 15)
                        f = a
                        while f == a or f == b or f == c or f == d or f == e:
                            f = randint(0, 15)
                        objl = [a, b, c, d, e, f]
                    else:
                        objl = [16, 16, 16, 16, 16, 16]
                        anifr = 23
        else:
            anifr = 0
            if strt:
                play = True
                objl = [16, 16, 16, 16, 16]
                strt = False
                spry = 80
                fany = 88
            elif play:
                play = False
                end = 3
                if (avars[avars[3][5]][17] + (scr // 4)) < 6:
                    avars[avars[3][5]][17] += (scr // 4)
                else:
                    avars[avars[3][5]][17] = 6
                if (avars[3][2] + (scr * 10)) < 99999:
                    avars[3][2] += (scr * 10)
                else:
                    avars[3][2] = 99999
                if (avars[avars[3][5]][18] - (scr // 4)) > 1:
                    avars[avars[3][5]][18] -= (scr // 4)
                else:
                    avars[avars[3][5]][18] = 1
                avars[avars[3][5]][8] += (scr // 4)
            elif end == 3:
                if scr < 12:
                    if scr < 4:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        if play:
            clock.tick(8)
        else:
            clock.tick(16)
        pygame.display.update()
Ejemplo n.º 10
0
def adop(avars, asprs, screen):

    class Txtbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box1.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    spclk = False

    ret = 1

    scr = 0
    sure = False
    cen = 0

    chngsts = False

    def drbx():
        tile = Txtbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 224:
            tx += 8
            drbx()
        tx = 232
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 96:
            tl = 3
            ty += 8
            drhl()

    def chsprs(chara, dirt, g):
        sprs = []
        if chara > 0:
            try:
                bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "b.png")
                ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "s.png")
                opal = []
                for i in range(32):
                    opal.append(ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, g, opal)
                if dirt:
                    bs = dirty.dirt(bs)
                ss = palette.palch(ss, g, opal)
            except:
                bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                ss = pygame.image.load("Sprites/NPC/Nazo.png")
                opal = []
                for i in range(32):
                    opal.append(ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, g, opal)
                ss = palette.palch(ss, g, opal)
            for i in range(3):
                a = pygame.Surface([16, 16])
                a.fill((0, 255, 255))
                a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
                a.set_colorkey((0, 255, 255))
                a.convert()
                sprs.append(a)
            s = (bs.get_width() // 4)
            for i in range(16):
                spr = pygame.Surface([s, s]).convert()
                spr.fill((0, 255, 255))
                spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
                spr.set_colorkey((0, 255, 255))
                sprs.append(spr)
        else:
            bs = pygame.image.load("Sprites/Eggs/egg_" + str(-chara) + "b.png")
            ss = pygame.image.load("Sprites/Eggs/egg_" + str(-chara) + "s.png")
            for i in range(2):
                a = pygame.Surface([16, 16])
                a.fill((0, 255, 255))
                a.blit(ss, [-(16 * (i % 2)), 0])
                a.set_colorkey((0, 255, 255))
                a.convert()
                sprs.append(a)
            for i in range(4):
                spr = pygame.Surface([24, 24]).convert()
                spr.fill((0, 255, 255))
                spr.blit(bs, [-(24 * (i % 2)), -(24 * (i // 2))])
                spr.set_colorkey((0, 255, 255))
                sprs.append(spr)
        return(sprs)

    def nchild(cen):
        negg = [eggl[cen]]
        if eggl[cen] < 9:
            negg.append(["no", "ma", "ku", "ku", "ma", "me", "me", "no"][eggl[cen] - 1])
            negg.append([choice(["ku", "me", "ma"]), "ku", "ku", "me", "ma", "me", "ma", "no"][eggl[cen] - 1])
        else:
            negg.append(ced[str(eggl[cen])])
            negg.append("")
        r = format(randint(0, 4294967295), '032b')
        r = r[:30] + '0' + r[31]
        negg.append(int(r, 2))
        return(negg)

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    eggl = []
    ced = {}
    for i in range(8):
        if avars[3][14][i] == '1':
            eggl.append(i + 1)
    for f in os.listdir("CCharacters"):
        if f.endswith(".txt") and (f != ("Names.txt")):
            n = open(("CCharacters/" + f), 'r')
            t = n.read()
            i = t.index('/')
            j = int(t[:i])
            if os.path.isfile("Sprites/Eggs/egg_" + str(j) + "b.png") and os.path.isfile("Sprites/Eggs/egg_" + str(j) + "s.png") and (8 < j < 16):
                eggl.append(j)
                ced.update({str(j): f[:(len(f) - 4)]})

    eggs = []
    for e in eggl:
        s = chsprs(-e, 0, 0)
        eggs.append(s)

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    suretx = fnt.render("SURE?", 1, (0, 0, 100))
    yest = fnt.render("YES", 1, (0, 0, 100))
    notx = fnt.render("NO", 1, (0, 0, 100))

    textbox = pygame.Surface([240, 112]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 104
    drhl()

    scrli = pygame.image.load("Sprites/Misc/txtbox/scrli.png").convert()

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        screen.blit(textbox, [0, 24])
        if not sure:
            screen.blit(scrli, [232, 128])
            for i in eggs[(scr * 24):((scr + 1) * 24)]:
                j = eggs.index(i) % 24
                screen.blit(i[2], [(14 + (27 * (j % 8))), (44 + (24 * (j // 8)))])
        else:
            screen.blit(suretx, [8, 66])
            screen.blit(yest, [107, 82])
            screen.blit(notx, [164, 82])
            screen.blit(eggs[cen][2], [108, 96])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN:
                if event.key in [303, 304]:
                    spclk = True
            if event.type == KEYUP:
                if event.key in [303, 304]:
                    spclk = False
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button + (spclk * (1 + (event.button > 2)))
                if pb in [2, 4]:
                    pygame.mixer.stop()
                    sound[2].play()
                    if scr != ((len(eggl) - 1) // 24):
                        scr += 1
                    else:
                        scr = 0
                elif pb == 5:
                    pygame.mixer.stop()
                    sound[2].play()
                    if scr != 0:
                        scr -= 1
                    else:
                        scr = ((len(eggl) - 1) // 24)
                elif pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if not sure:
                        if (14 < mp[0] < 221) and (((mp[0] - 14) % 27) < 24) and (44 < mp[1] < 116):
                            cen = ((mp[0] - 14) // 27) + (((mp[1] - 44) // 24) * 8) + (scr * 24)
                            if cen < len(eggl):
                                pygame.mixer.stop()
                                sound[3].play()
                                sure = True
                    elif 80 < mp[1] < 96:
                        if 164 < mp[0] < 188:
                            pygame.mixer.stop()
                            sound[4].play()
                            sure = False
                        elif 107 < mp[0] < 139:
                            pygame.mixer.stop()
                            sound[3].play()
                            negg = nchild(cen)
                            mate = []
                            avars = nextgen.bir(avars, asprs, mate, negg, screen)
                            return(avars, ret)
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            if avars[avars[3][5]][20] or not avars[avars[3][5]][21]:
                return(avars, ret)
            chngsts = False
        if anifr < 24:
            anifr += 1
        else:
            anifr = 0
        r = pygame.Surface([240, 160]).convert()
        r.blit(screen, [0, 0])
        r = pygame.transform.scale(r, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(r, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 11
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    dord = []

    pbt = False
    pprt = 4

    ret = 1

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/orderdiat.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/orderdia.png").convert()

    ddia = pygame.image.load("Sprites/Misc/obj/ddia.png").convert()
    bdia = pygame.image.load("Sprites/Misc/obj/bdia.png").convert()
    ldia = pygame.image.load("Sprites/Misc/obj/ldia.png").convert()
    gdia = pygame.image.load("Sprites/Misc/obj/gdia.png").convert()

    dial = [ddia, bdia, ldia, gdia]

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            screen.blit((fnt.render(("%02d" % scr), 1, (0, 0, 100))), [52, 58])
            if not pbt:
                if anifr < 8:
                    spr = 3
                    sprx = 40
                    spry = 98
                    if 0 in dlst:
                        screen.blit(ddia, [44, 100])
                    if 1 in dlst:
                        screen.blit(bdia, [50, 100])
                    if 2 in dlst:
                        screen.blit(ldia, [56, 100])
                    if 3 in dlst:
                        screen.blit(gdia, [62, 100])
                else:
                    spr = 4
                    if (anifr - 8) % 4 == 0:
                        a = choice(dlst)
                        dlst.pop(dlst.index(a))
                        dord.append(a)
                    spry = 90
                    sprx = 31 + (6 * dord[len(dord) - 1])
                    if 0 in dlst:
                        screen.blit(ddia, [44, 100])
                    if 1 in dlst:
                        screen.blit(bdia, [50, 100])
                    if 2 in dlst:
                        screen.blit(ldia, [56, 100])
                    if 3 in dlst:
                        screen.blit(gdia, [62, 100])
            if pbt:
                if pprt == 4:
                    spr = 3
                    sprx = 138
                    spry = 98
                else:
                    sprx = 84 + (36 * pprt)
                    spry = 90
                    if pprt == dord[0]:
                        spr = 5
                    else:
                        spr = 9
                if 0 in dlst:
                    screen.blit(ddia, [97, 92])
                if 1 in dlst:
                    screen.blit(bdia, [133, 92])
                if 2 in dlst:
                    screen.blit(ldia, [169, 92])
                if 3 in dlst:
                    screen.blit(gdia, [205, 92])
            screen.blit(asprs[avars[3][5]][spr],
                        [(sprx +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (spry + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 20), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 2:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 4:
                        screen.blit(good, [94, 48])
                    elif scr < 6:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    elif 24 < mp[1] < 136 and 82 < mp[
                            0] < 226 and play and pbt and pprt > 3:
                        pprt = (mp[0] - 82) // 36
                        anifr = 15
                        if pprt == dord[0]:
                            dlst.append(dord[0])
                            pygame.mixer.stop()
                            sound[9].play()
                        else:
                            pygame.mixer.stop()
                            sound[12].play()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                dlst = [0, 1, 2, 3]
                play = True
                strt = False
            elif play:
                if not pbt:
                    pbt = True
                elif pprt < 4:
                    if pprt == dord[0]:
                        dord.pop(0)
                        pprt = 4
                        if len(dord) == 0:
                            scr += 1
                            pbt = False
                    if (pprt != 4) or (scr == 6):
                        play = False
                        end = 3
                        if (avars[avars[3][5]][17] + (scr // 2)) < 3:
                            avars[avars[3][5]][17] += (scr // 2)
                        else:
                            avars[avars[3][5]][17] = 6
                        if (avars[3][2] + (scr * 20)) < 99999:
                            avars[3][2] += (scr * 20)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][9] += (scr // 2)
            elif end == 3:
                if scr < 6:
                    if scr < 2:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 12
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    tuts = True
    strt = False
    play = False
    end = 0

    life = [6, 6]

    omove = randint(0, 2)
    ymove = 0

    def chsprs(chara):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "s.png")
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return (sprs)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/martialt.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/martial.png").convert()

    heart = pygame.Surface((16, 16)).convert()
    heart.blit(playbk, [0, 0])

    opps = chsprs(choice([203, 204, 235, 238, 332, 349]))

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if end == 0:
                spr = [3, 6, 11][ymove]
                ops = [3, 6, 11][omove]
            elif end == 1:
                spr = [9, 8, 12][ymove]
                ops = [9, 8, 12][omove]
            else:
                spr = [5, 7][life[0] == 0]
                ops = [5, 7][life[1] == 0]
            for i in [0, 1]:
                for j in range(life[i]):
                    screen.blit(heart, [([8, 136][i] + (16 * j)), 36])
            screen.blit(opps[ops],
                        [(136 - (16 * (end == 1 and omove == 1))), 98])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], 1, 0),
                        [(72 + (16 * (end == 1 and ymove == 1))), 98])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 200), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                if end == 0 and play and (24 < mp[1] < 136) and pb in [1, 3]:
                    ymove = (pb // 2) + 1
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if end == 0:
                    end = 1
                    if 0 < (omove + ymove) < 4:
                        if (omove == 1 and ymove < 2) or (ymove == 1
                                                          and omove == 2):
                            life[0] -= 1
                        if (ymove == 1 and omove < 2) or (omove == 1
                                                          and ymove == 2):
                            life[1] -= 1
                    pygame.mixer.stop()
                    sound[4 - (1 in [omove, ymove])].play()
                elif end == 1:
                    if 0 in life:
                        end = 2
                        pygame.mixer.stop()
                        sound[9 + (3 * (life[0] == 0))].play()
                    else:
                        end = 0
                        pygame.mixer.stop()
                        sound[2].play()
                        ymove = 0
                        omove = randint(0, 2)
                elif end == 2:
                    scr = (2 * life[0])
                    end = 3
                    play = False
                    if (avars[3][2] + (scr * 200)) < 99999:
                        avars[3][2] += (scr * 200)
                    else:
                        avars[3][2] = 99999
                    avars[avars[3][5]][10] += ((scr * 4) // 3)
                    avars[avars[3][5]][6] += ((scr * 2) // 3)
            elif end == 3:
                if scr < 4:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 13
0
def wed(avars, asprs, fsprs, mate, screen):

    kr = True

    scr = 0

    chngsts = False

    def chsprs(chara, g):
        try:
            sprs = []
            if chara > 0:
                bs = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chara) + "b.png")
                ss = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chara) + "s.png")
            else:
                bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                ss = pygame.image.load("Sprites/NPC/Nazo.png")
            opal = []
            for i in range(32):
                opal.append(ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
            bs = palette.palch(bs, g, opal)
            ss = palette.palch(ss, g, opal)
            for i in range(3):
                a = pygame.Surface([16, 16])
                a.fill((0, 255, 255))
                a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
                a.set_colorkey((0, 255, 255))
                a.convert()
                sprs.append(a)
            s = (bs.get_width() // 4)
            for i in range(16):
                spr = pygame.Surface([s, s]).convert()
                spr.fill((0, 255, 255))
                spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
                spr.set_colorkey((0, 255, 255))
                sprs.append(spr)
        except:
            sprs = chsprs(0, g)
        return (sprs)

    def nchild():
        negg = []
        l = [
            choice([avars[avars[3][5]][12], avars[avars[3][5]][13]]),
            choice([mate[4], mate[5]])
        ]
        if ((mate[6] != avars[avars[3][5]][0]) and
            (mate[6] != avars[avars[3][5]][11])) or (mate[6] in [
                'no', 'ma', 'me', 'ku'
            ]):
            if "no" in l:
                if l.count("no") == 2:
                    negg.append(8)
                else:
                    negg.append(1)
                negg.append(l.pop(l.index("no")))
                negg.append(l[0])
            elif "ma" in l:
                if l.count("ma") == 2:
                    negg.append(5)
                    negg.append(l.pop(l.index("ma")))
                else:
                    if "me" in l:
                        negg.append(7)
                        negg.append(l.pop(l.index("me")))
                    else:
                        negg.append(2)
                        negg.append(l.pop(l.index("ma")))
                negg.append(l[0])
            elif "me" in l:
                if l.count("me") == 2:
                    negg.append(6)
                    negg.append(l.pop(l.index("me")))
                else:
                    negg.append(4)
                    negg.append(l.pop(l.index("ku")))
                negg.append(l[0])
            else:
                negg.append(3)
                negg.append(l.pop(l.index("ku")))
                negg.append(l[0])
        else:
            negg.append(avars[avars[3][5]][0])
            negg.append(ced[str(avars[avars[3][5]][0])])
            negg.append(0)
        y = format(avars[avars[3][5]][14], '032b')
        m = format(mate[3], '032b')
        a = (int(y[:16], 2) & int(m[:16], 2))
        b = ((int(y[:16], 2) ^ int(m[:16], 2)) & randint(0, 65535))
        r = format((a | b), '016b') + format(
            (int(y[16:28], 2) ^ int(m[16:28], 2)), '012b') + format(
                randint(0, 15), '04b')
        if (mate[0] != "PARK") and (mate[0] != avars[3][0]):
            r = r[:30] + '0' + r[31]
        #print('%08x' % int(y, 2))
        #print('%08x' % int(m, 2))
        #print('%08x' % int(r, 2))
        negg.append(int(r, 2))
        return (negg)

    ced = {}
    for f in os.listdir("CCharacters"):
        if f.endswith(".txt") and (f != ("Names.txt")):
            n = open(("CCharacters/" + f), 'r')
            t = n.read()
            i = t.index('/')
            j = int(t[:i])
            if os.path.isfile("Sprites/Eggs/egg_" + str(j) +
                              "b.png") and os.path.isfile("Sprites/Eggs/egg_" +
                                                          str(j) +
                                                          "s.png") and (8 < j <
                                                                        16):
                ced.update({str(j): f[:(len(f) - 4)]})

    ht = pygame.image.load("Sprites/Misc/emo/heart.png").convert()
    ht2 = pygame.image.load("Sprites/Misc/emo/heart2.png").convert()

    walk = pygame.image.load("Sprites/Misc/bg/marrwlk.png").convert()

    s, tm, w = weather.chktime(avars)

    mbk = pygame.image.load("Sprites/Misc/bg/marrsc.png").convert()

    scn = pygame.Surface([240, 160]).convert()
    scn.fill((0, 255, 255))
    scn.blit(mbk, [-(240 * s), -160])
    scn.set_colorkey((0, 255, 255))

    sky = []
    for i in [0, 1, 2, 3]:
        c = pygame.Surface([240, 160]).convert()
        c.blit(mbk, [-(240 * i), 0])
        sky.append(c)

    prevs = []
    for i in avars[avars[3][5]][24]:
        c = chsprs(i, avars[avars[3][5]][14])
        prevs.append(c)

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if scr == 0:
            screen.blit(walk, [0, 0])
            if anifr < 60:
                screen.blit(prevs[anifr // (60 // len(prevs))][11 + (2 * (anifr % 12 > 5))], [(240 - ((anifr // 6) * 20)), \
                                                                                              ((8 * (((anifr // (60 // len(prevs))) < 3) + ((anifr // (60 // len(prevs))) < 1))) \
                                                                                               + 98 + (2 * (anifr % 12 < 6)))])
                if (anifr % (60 // len(prevs))) == 0:
                    pygame.mixer.stop()
                    sound[3].play()
            elif anifr < 108:
                screen.blit(
                    pygame.transform.flip(
                        asprs[avars[3][5]][5 * (1 + (anifr % 12 > 5))], 1, 0),
                    [20, 100])
                screen.blit(fsprs[11 + (2 * (anifr % 12 > 5))],
                            [(240 - (((anifr - 60) // 6) * 20)),
                             (98 + (2 * (anifr % 12 < 6)))])
            elif anifr < 120:
                screen.blit(
                    pygame.transform.flip(asprs[avars[3][5]][15], 1, 0),
                    [20, 100])
                screen.blit(fsprs[15], [52, 100])
                if anifr == 108:
                    pygame.mixer.stop()
                    sound[9].play()
            else:
                screen.blit(asprs[avars[3][5]][11 + (2 * (anifr % 12 > 5))],
                            [(20 - (((anifr - 120) // 6) * 20)),
                             (98 + (2 * (anifr % 12 < 6)))])
                screen.blit(fsprs[11 + (2 * (anifr % 12 > 5))],
                            [(52 - (((anifr - 120) // 6) * 20)),
                             (98 + (2 * (anifr % 12 < 6)))])
        else:
            if anifr < 24:
                screen.blit(sky[0], [0, 0])
                screen.blit(scn, [0, 0])
                screen.blit([ht, ht2][anifr < 6], [112, 82])
                if anifr == 6:
                    pygame.mixer.stop()
                    sound[9].play()
                screen.blit(
                    pygame.transform.flip(
                        asprs[avars[3][5]][(15 - (3 * (anifr < 6)))], 1, 0),
                    [88, 104])
                screen.blit(fsprs[(15 - (3 * (anifr < 6)))], [120, 104])
            elif anifr < 84:
                i = (anifr - 24) / 6
                screen.blit(sky[1], [0, ((16 * i) - 160)])
                screen.blit(sky[0], [0, (16 * i)])
                screen.blit(scn, [0, (32 * i)])
                screen.blit(ht, [112, (82 + (32 * i))])
                screen.blit(
                    pygame.transform.flip(asprs[avars[3][5]][15], 1, 0),
                    [88, (104 + (32 * i))])
                screen.blit(fsprs[15], [120, (104 + (32 * i))])
            elif anifr < 96:
                screen.blit(sky[1], [0, 0])
            elif anifr < 102:
                if anifr == 96:
                    pygame.mixer.stop()
                    sound[3].play()
                screen.blit(sky[2], [0, 0])
            else:
                if anifr % 6 == 0:
                    pygame.mixer.stop()
                    sound[9].play()
                screen.blit(pygame.transform.flip(sky[3], (anifr % 12 < 6), 0),
                            [0, 0])
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 143:
            anifr += 1
        else:
            anifr = 0
            if scr == 0:
                scr = 1
            else:
                negg = nchild()
                #print(negg)
                e = avars[3][14]
                e = e[:(negg[0] - 1)] + '1' + e[(negg[0]):]
                avars[3][14] = e
                avars = nextgen.bir(avars, asprs, mate, negg, screen)
                return (avars)
        r = pygame.Surface([240, 160]).convert()
        r.blit(screen, [0, 0])
        r = pygame.transform.scale(
            r, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(r, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 14
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    vals = [0, 0, 0, 0]

    adc = 0

    wait = 0

    scard = 4
    ccard = 4

    cpos = [0, 0, 0, 0, 0]

    tuts = True
    strt = False
    play = False
    end = 0

    def genvals():
        vals = []
        vals.append(randint(1, 13))
        for i in range(3):
            a = randint(1, 13)
            while a in vals:
                a = randint(1, 13)
            vals.append(a)
        adc = sum(vals[:3])
        c = vals[3]
        shuffle(vals)
        scard = 4
        ccard = vals.index(c)
        return (vals, adc, scard, ccard)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/addcrdt.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/cards.png").convert()

    crds = [[
        pygame.image.load("Sprites/Misc/card/c1.png").convert(),
        pygame.image.load("Sprites/Misc/card/c2.png").convert()
    ],
            [
                pygame.image.load("Sprites/Misc/card/c6.png").convert(),
                pygame.image.load("Sprites/Misc/card/c7.png").convert()
            ],
            [
                pygame.image.load("Sprites/Misc/card/c3.png").convert(),
                pygame.image.load("Sprites/Misc/card/c4.png").convert(),
                pygame.image.load("Sprites/Misc/card/c5.png").convert()
            ]]

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if end == 0:
                spr = 3
                if anifr < 5:
                    cpos[4] = anifr
                elif 7 < anifr < 12:
                    cpos[4] = 11 - anifr
                elif 11 < anifr < 16:
                    for i in range(4):
                        cpos[i] = anifr - 11
            elif end == 1:
                spr = 6
            else:
                spr = 5 + (2 * (scard != ccard))
                if anifr < 5:
                    cpos[4] = anifr
                    cpos[ccard] = 4 - anifr
                elif 11 < anifr < 16:
                    for i in range(5):
                        if i != scard or i == 4:
                            cpos[i] = 15 - anifr
                if anifr == 5 and (scard != ccard or scr == 6):
                    anifr = 19
                elif anifr == 16:
                    anifr = 23
            for i in range(5):
                c = crds[(i == 4 and cpos[i] < 2) +
                         (2 * (cpos[i] > 1))][cpos[i] - (2 * (cpos[i] > 1))]
                screen.blit(
                    c, [[56, 16, 16, 56, 200][i], [32, 52, 84, 104, 68][i]])
                if cpos[i] == 4:
                    if i < 4:
                        screen.blit(
                            fnt.render("%02d" % vals[i], 1, (0, 0, 100)),
                            [[59, 19, 19, 59][i], [38, 58, 90, 110][i]])
                    else:
                        screen.blit(fnt.render("%02d" % adc, 1, (0, 0, 100)),
                                    [203, 74])
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (64 + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 30), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 2:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 4:
                        screen.blit(good, [94, 48])
                    elif scr < 6:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    if play and end == 1:
                        if (32 < mp[1] < 56) and (56 < mp[0] < 80): scard = 0
                        elif (52 < mp[1] < 76) and (16 < mp[0] < 40): scard = 1
                        elif (84 < mp[1] < 108) and (16 < mp[0] < 40):
                            scard = 2
                        elif (104 < mp[1] < 128) and (56 < mp[0] < 80):
                            scard = 3
                        if scard < 4:
                            pygame.mixer.stop()
                            sound[2].play()
                            anifr = 23
                            wait = 3
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
                vals, adc, scard, ccard = genvals()
            elif play:
                if end == 0:
                    end = 1
                elif end == 1:
                    if wait == 3:
                        end = 2
                        if scard == ccard:
                            scr += 1
                            pygame.mixer.stop()
                            sound[9].play()
                        else:
                            pygame.mixer.stop()
                            sound[12].play()
                    else:
                        wait += 1
                else:
                    if scard == ccard and scr < 6:
                        end = 0
                        vals, adc, scard, ccard = genvals()
                        wait = 0
                    else:
                        play = False
                        end = 3
                if not play:
                    if (avars[avars[3][5]][17] + (scr // 2)) < 6:
                        avars[avars[3][5]][17] += (scr // 2)
                    else:
                        avars[avars[3][5]][17] = 6
                    if (avars[3][2] + (scr * 30)) < 99999:
                        avars[3][2] += (scr * 30)
                    else:
                        avars[3][2] = 99999
                    avars[avars[3][5]][5] += scr * 2
            elif end == 3:
                if scr < 6:
                    if scr < 2:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 15
0
def job(avars, asprs, screen):

    class Txtbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box1.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    bx = True

    clt = 0

    scr = 0

    chngsts = False

    ret = 1
    cret = 1

    intt = 0

    jch = 0

    jreq = [[[(avars[avars[3][5]][5] > 125), (avars[avars[3][5]][5] > 250), (avars[avars[3][5]][5] > 500)], [(avars[avars[3][5]][5] > 125), (avars[avars[3][5]][5] > 250), (avars[avars[3][5]][9] > 125)], #L
             [(avars[avars[3][5]][5] > 125), (avars[avars[3][5]][5] > 250), (avars[avars[3][5]][10] > 125)], [(avars[avars[3][5]][5] > 125), (avars[avars[3][5]][5] > 250), (avars[avars[3][5]][7] > 125)],
             [(avars[avars[3][5]][5] > 125), (avars[avars[3][5]][5] > 250), (avars[avars[3][5]][6] > 125)], [(avars[avars[3][5]][5] > 125), (avars[avars[3][5]][9] > 75), (avars[avars[3][5]][10] > 75)]],
            [[(avars[avars[3][5]][6] > 125), (avars[avars[3][5]][6] > 250), (avars[avars[3][5]][6] > 500)], [(avars[avars[3][5]][6] > 125), (avars[avars[3][5]][6] > 250), (avars[avars[3][5]][10] > 125)], #A
             [(avars[avars[3][5]][6] > 125), (avars[avars[3][5]][6] > 250), (avars[avars[3][5]][8] > 125)], [(avars[avars[3][5]][6] > 125), (avars[avars[3][5]][6] > 250), (avars[avars[3][5]][5] > 125)],
             [(avars[avars[3][5]][6] > 125), (avars[avars[3][5]][6] > 250), (avars[avars[3][5]][7] > 125)], [(avars[avars[3][5]][6] > 125), (avars[avars[3][5]][8] > 75), (avars[avars[3][5]][10] > 75)]],
            [[(avars[avars[3][5]][7] > 125), (avars[avars[3][5]][7] > 250), (avars[avars[3][5]][7] > 500)], [(avars[avars[3][5]][7] > 125), (avars[avars[3][5]][7] > 250), (avars[avars[3][5]][8] > 125)], #K
             [(avars[avars[3][5]][7] > 125), (avars[avars[3][5]][7] > 250), (avars[avars[3][5]][9] > 125)], [(avars[avars[3][5]][7] > 125), (avars[avars[3][5]][7] > 250), (avars[avars[3][5]][5] > 125)],
             [(avars[avars[3][5]][7] > 125), (avars[avars[3][5]][7] > 250), (avars[avars[3][5]][6] > 125)], [(avars[avars[3][5]][7] > 125), (avars[avars[3][5]][9] > 75), (avars[avars[3][5]][8] > 75)]],
            [[(avars[avars[3][5]][8] > 125), (avars[avars[3][5]][8] > 250), (avars[avars[3][5]][8] > 500)], [(avars[avars[3][5]][8] > 125), (avars[avars[3][5]][8] > 250), (avars[avars[3][5]][6] > 125)], #H
             [(avars[avars[3][5]][8] > 125), (avars[avars[3][5]][8] > 250), (avars[avars[3][5]][7] > 125)], [(avars[avars[3][5]][8] > 125), (avars[avars[3][5]][8] > 250), (avars[avars[3][5]][10] > 125)],
             [(avars[avars[3][5]][8] > 125), (avars[avars[3][5]][8] > 250), (avars[avars[3][5]][9] > 125)], [(avars[avars[3][5]][8] > 125), (avars[avars[3][5]][6] > 75), (avars[avars[3][5]][7] > 75)]],
            [[(avars[avars[3][5]][9] > 125), (avars[avars[3][5]][9] > 250), (avars[avars[3][5]][9] > 500)], [(avars[avars[3][5]][9] > 125), (avars[avars[3][5]][9] > 250), (avars[avars[3][5]][7] > 125)], #B
             [(avars[avars[3][5]][9] > 125), (avars[avars[3][5]][9] > 250), (avars[avars[3][5]][5] > 125)], [(avars[avars[3][5]][9] > 125), (avars[avars[3][5]][9] > 250), (avars[avars[3][5]][10] > 125)],
             [(avars[avars[3][5]][9] > 125), (avars[avars[3][5]][9] > 250), (avars[avars[3][5]][8] > 125)], [(avars[avars[3][5]][9] > 125), (avars[avars[3][5]][7] > 75), (avars[avars[3][5]][5] > 75)]],
            [[(avars[avars[3][5]][10] > 125), (avars[avars[3][5]][10] > 250), (avars[avars[3][5]][10] > 500)], [(avars[avars[3][5]][10] > 125), (avars[avars[3][5]][10] > 250), (avars[avars[3][5]][5] > 125)], #P
             [(avars[avars[3][5]][10] > 125), (avars[avars[3][5]][10] > 250), (avars[avars[3][5]][6] > 125)], [(avars[avars[3][5]][10] > 125), (avars[avars[3][5]][10] > 250), (avars[avars[3][5]][8] > 125)],
             [(avars[avars[3][5]][10] > 125), (avars[avars[3][5]][10] > 250), (avars[avars[3][5]][9] > 125)], [(avars[avars[3][5]][10] > 125), (avars[avars[3][5]][6] > 75), (avars[avars[3][5]][5] > 75)]]]

    def teachersp(n):
        sprs = []
        s = pygame.image.load("Sprites/NPC/" + n + ".png").convert()
        for i in range(4):
            a = pygame.Surface([32, 32]).convert()
            a.fill((0, 255, 255))
            a.blit(s, [-(32 * (i % 2)), -(32 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            sprs.append(a)
        return(sprs)

    def drbx():
        tile = Txtbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 224:
            tx += 8
            drbx()
        tx = 232
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 96:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    intb = pygame.image.load("Sprites/Misc/bg/interview.png").convert()

    lsig = [pygame.image.load("Sprites/Misc/bg/interc.png").convert(),
            pygame.image.load("Sprites/Misc/bg/interd.png").convert()]
    bsig = [pygame.image.load("Sprites/Misc/bg/interb.png").convert(),
            pygame.image.load("Sprites/Misc/bg/intera.png").convert()]

    empl = [["ProfFlask", "Jidoutchi", "Guide",
             "MsHoutaiko", "Ginkotchi", "MrTurtle"],
            ["Gulasantchi", "MsModetchi", "King",
             "MrCombBowie", "MsFlower", "MsMusicatchi"],
            ["Morikami", "MsFrill", "Guide",
             "King", "King", "Marutentchi"],
            ["MrFukuwarai", "Dancho", "Market",
             "MrKokuban", "Santa", "Grippatchi"],
            ["Classictchi", "MrCanvas", "King",
             "MrMicchi", "Dancho", "MsBlonde"],
            ["King", "King", "MrKarate",
             "King", "Daiku", "MrOkkana"]]

    emot = [pygame.image.load("Sprites/Misc/emo/conf.png").convert(),
            pygame.image.load("Sprites/Misc/emo/music1.png").convert(),
            pygame.image.load("Sprites/Misc/emo/heart.png").convert(),
            pygame.image.load("Sprites/Misc/emo/em.png").convert(),
            pygame.image.load("Sprites/Misc/emo/shine.png").convert(),
            pygame.image.load("Sprites/Misc/emo/sweat.png").convert()]

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 112]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 104
    drhl()

    scrli = pygame.image.load("Sprites/Misc/txtbox/scrli.png").convert()

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if bx:
            screen.blit(textbox, [0, 24])
            screen.blit(scrli, [232, 128])
            if scr == 0:
                screen.blit((fnt.render("SCIENTIST", 1, (0, 128, 255))), [8, 34])
                screen.blit((fnt.render("LIBRARIAN", 1, (0, 128, 255))), [8, 50])
                screen.blit((fnt.render("ANNOUNCER", 1, (0, 128, 255))), [8, 66])
                screen.blit((fnt.render("DOCTOR", 1, (0, 128, 255))), [8, 82])
                screen.blit((fnt.render("BANK CLERK", 1, (0, 128, 255))), [8, 96])
                screen.blit((fnt.render("L. TEACHER", 1, (0, 128, 255))), [8, 112])
            elif scr == 1:
                screen.blit((fnt.render("MUSIC STAR", 1, (255, 128, 51))), [8, 34])
                screen.blit((fnt.render("FASHION DESIGNER", 1, (255, 128, 51))), [8, 50])
                screen.blit((fnt.render("BAKER", 1, (255, 128, 51))), [8, 66])
                screen.blit((fnt.render("HAIR STYLIST", 1, (255, 128, 51))), [8, 82])
                screen.blit((fnt.render("FLORIST", 1, (255, 128, 51))), [8, 96])
                screen.blit((fnt.render("A. TEACHER", 1, (255, 128, 51))), [8, 112])
            elif scr == 2:
                screen.blit((fnt.render("SPRINGS ATTENDANT", 1, (102, 255, 51))), [8, 34])
                screen.blit((fnt.render("PRESCHOOL T.", 1, (102, 255, 51))), [8, 50])
                screen.blit((fnt.render("TRAVEL GUIDE", 1, (102, 255, 51))), [8, 66])
                screen.blit((fnt.render("POLICEMAN", 1, (102, 255, 51))), [8, 82])
                screen.blit((fnt.render("CHEF", 1, (102, 255, 51))), [8, 96])
                screen.blit((fnt.render("K. TEACHER", 1, (102, 255, 51))), [8, 112])
            elif scr == 3:
                screen.blit((fnt.render("COMEDIAN", 1, (153, 128, 0))), [8, 34])
                screen.blit((fnt.render("CIRCUS MEMBER", 1, (153, 128, 0))), [8, 50])
                screen.blit((fnt.render("FESTIVAL WORKER", 1, (153, 128, 0))), [8, 66])
                screen.blit((fnt.render("COMIC WRITER", 1, (153, 128, 0))), [8, 82])
                screen.blit((fnt.render("TOY MAKER", 1, (153, 128, 0))), [8, 96])
                screen.blit((fnt.render("H. TEACHER", 1, (153, 128, 0))), [8, 112])
            elif scr == 4:
                screen.blit((fnt.render("ENKA SINGER", 1, (0, 153, 128))), [8, 34])
                screen.blit((fnt.render("ART CRITIC", 1, (0, 153, 128))), [8, 50])
                screen.blit((fnt.render("JEWELER", 1, (0, 153, 128))), [8, 66])
                screen.blit((fnt.render("DANCER", 1, (0, 153, 128))), [8, 82])
                screen.blit((fnt.render("MAGICIAN", 1, (0, 153, 128))), [8, 96])
                screen.blit((fnt.render("B. TEACHER", 1, (0, 153, 128))), [8, 112])
            elif scr == 5:
                screen.blit((fnt.render("BODY BUILDER", 1, (204, 0, 153))), [8, 34])
                screen.blit((fnt.render("ADVENTURER", 1, (204, 0, 153))), [8, 50])
                screen.blit((fnt.render("MARTIAL ARTIST", 1, (204, 0, 153))), [8, 66])
                screen.blit((fnt.render("FIREMAN", 1, (204, 0, 153))), [8, 82])
                screen.blit((fnt.render("CARPENTER", 1, (204, 0, 153))), [8, 96])
                screen.blit((fnt.render("P. TEACHER", 1, (204, 0, 153))), [8, 112])
        elif intt < 3:
            screen.blit(intb, [0, 0])
            if intt == 0:
                isp = anifr % 12 > 5
                spr = [[6, 12, 10, 9, 4, 8][scr], 5][anifr % 12 > 5]
                if anifr % 12  < 6:
                    screen.blit(emot[scr], [140, 100])
            elif intt == 1:
                isp = anifr % 12 > 5
                spr = 3 + (anifr % 12 > 5)
                for i in [0, 1]:
                    if anifr > ((8 * (i + 1)) - 1):
                        screen.blit(lsig[jreq[scr][jch][i]], [(4 + (80 * i)), 62])
            else:
                isp = 3 - (sum(jreq[scr][jch]) == 3)
                spr = 7 - (2 * (sum(jreq[scr][jch]) == 3))
                for i in [0, 1, 2]:
                    screen.blit(lsig[jreq[scr][jch][i]], [(4 + (80 * i)), 62])
                screen.blit(bsig[sum(jreq[scr][jch]) == 3], [38, 80])
            screen.blit(intwrs[isp], [104, 26])
            screen.blit(asprs[avars[3][5]][spr], [104, 102])
        else:
            screen.blit(jobltr, [0, 0])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb in [2, 4] and bx:
                    if 24 < mp[1] < 136:
                        sound[2].play()
                        if scr < 5:
                            scr += 1
                        else:
                            scr = 0
                        clt = 0
                elif pb == 5 and bx:
                    if 24 < mp[1] < 136:
                        sound[2].play()
                        if scr > 0:
                            scr -= 1
                        else:
                            scr = 5
                        clt = 0
                elif pb == 1:
                    clt = 0
                    if 138 < mp[1] < 158 and cret and (bx or intt == 3):
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if bx and 32 < mp[1] < 128 and 8 < mp[0] < 232:
                        pygame.mixer.stop()
                        sound[3].play()
                        jch = ((mp[1] - 32) // 16)
                        bx = False
                        intt = 0
                        anifr = -1
                        intwrs = teachersp(empl[scr][jch])
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
                if bx:
                    clt += 1
        if chngsts:
            avars = statusup.chngsts(avars)
            if avars[avars[3][5]][20] or not avars[avars[3][5]][21]:
                return(avars, ret)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if not bx and intt < 2:
                intt += 1
                if intt == 2:
                    pygame.mixer.stop()
                    sound[12 - (3 * (sum(jreq[scr][jch]) == 3))].play()
            elif not bx and intt == 2:
                if sum(jreq[scr][jch]) == 3:
                    intt = 3
                    avars[avars[3][5]][31] = (4 + (6 * scr) + jch)
                    jobltr = pygame.image.load("Sprites/Misc/mail/job_" + str(1 + (6 * scr) + jch) + ".png").convert()
                else:
                    bx = True
            cret = 1
            ret = 1
        if clt > 29:
            return(avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 16
0
def prk(avars, asprs, screen):
    
    kr = True

    chngsts = False

    ar = True

    ret = 1

    def chsprs(chara, g):
        try:
            sprs = []
            if chara > 0:
                bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "b.png")
                ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "s.png")
            else:
                bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                ss = pygame.image.load("Sprites/NPC/Nazo.png")
            opal = []
            for i in range(32):
                opal.append(ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
            bs = palette.palch(bs, g, opal)
            ss = palette.palch(ss, g, opal)
            for i in range(3):
                a = pygame.Surface([16, 16])
                a.fill((0, 255, 255))
                a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
                a.set_colorkey((0, 255, 255))
                a.convert()
                sprs.append(a)
            s = (bs.get_width() // 4)
            for i in range(16):
                spr = pygame.Surface([s, s]).convert()
                spr.fill((0, 255, 255))
                spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
                spr.set_colorkey((0, 255, 255))
                sprs.append(spr)
        except:
            sprs = chsprs(0, g)
        return(sprs)

    def arrive():
        flip = False
        pflip = False
        if anifr < 48:
            if ((anifr / 12) - (anifr // 12)) < 0.5:
                spr = 11
                spry = 98 + (32 - asprs[avars[3][5]][spr].get_height())
                pcs = 3
            else:
                spr = 13
                spry = 96 + (32 - asprs[avars[3][5]][spr].get_height())
                pcs = 4
            sprx = (208 - (10 * (anifr // 6))) + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
            pcy = 98 + (32 -  pchrs[pcs].get_height())
        else:
            if ((anifr / 12) - (anifr // 12)) < 0.5:
                spr = 3
                spry = 98 + (32 - asprs[avars[3][5]][spr].get_height())
                pcs = 3
                pcy = 98 + (32 -  pchrs[pcs].get_height())
            else:
                spr = 5
                spry = 96 + (32 - asprs[avars[3][5]][spr].get_height())
                pcs = 5
                pcy = 96 + (32 -  pchrs[pcs].get_height())
            sprx = 128 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        pcx = 86 + ((32 -  pchrs[pcs].get_width()) // 2)
        pflip = True
        return spr, sprx, spry, flip, pcs, pcx, pcy, pflip

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    sweat = pygame.image.load("Sprites/Misc/emo/sweat.png").convert()

    obgi = pygame.image.load("Sprites/Misc/bg/makkaka.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    sound = sounds.imprtsnd(avars)

    clock = pygame.time.Clock()

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")
        
    p = randint(3, 4)
    t = [176400, 435600][p - 3]
    g = randint(0, 4294967295)
    while (format(g, '032b')[16:28]) == (format(avars[avars[3][5]][14], '032b')[16:28]):
        g = randint(0, 4294967295)
    g = g & 4293984255
    if g % 2:
        g = g & 4294967293
    else:
        g = g | 2
    pchr = [[71, 72, 61, 64], [197, 178, 193, 204]][p - 3][((randint(0, 1)) * 2) + (g % 2)]
    pcharinfo = ["PARK", "", pchr, g, "no", "no", "no", [t, avars[avars[3][5]][2]], 0]
    pchrs = chsprs(pchr, pcharinfo[3])

    while kr:
        screen.blit(obgi, [0, 0])
        if ar:
            if anifr < 48 and ((anifr / 12) - (anifr // 12)) == 0.5:
                pygame.mixer.stop()
                sound[6].play()
            elif ((anifr / 12) - (anifr // 12)) == 0.5:
                pygame.mixer.stop()
                sound[9].play()
            spr, sprx, spry, flip, pcs, pcx, pcy, pflip = arrive()
            screen.blit(pygame.transform.flip(pchrs[pcs], pflip, 0), [pcx, pcy])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], flip, 0), [sprx, spry])
        else:
            sprx = 128 + ((32 - asprs[avars[3][5]][3].get_width()) // 2)
            pcx = 86 + ((32 -  pchrs[3].get_width()) // 2)
            spry = 98 + (32 - asprs[avars[3][5]][3].get_height())
            pcy = 98 + (32 -  pchrs[3].get_height())
            spr = 10 + (2 * (anifr % 16 > 7))
            pcs = 10 + (2 * (anifr % 16 < 8))
            screen.blit(pygame.transform.flip(pchrs[pcs], 1, 0), [pcx, pcy])
            screen.blit(asprs[avars[3][5]][spr], [sprx, spry])
            screen.blit(sweat, [(102 + (42 * (anifr % 16 < 8))), 82])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            ret = 0
                            sound[4].play()
                            return(avars, ret)
                    if (24 < mp[1] < 136) and not ar:
                        f = avars[avars[3][5]][32]
                        f.append(pcharinfo)
                        avars[avars[3][5]][32] = f
                        avars = makkag.game(avars, asprs, screen, pchrs)
                        return(avars, ret)
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            if avars[avars[3][5]][20] or not avars[avars[3][5]][21]:
                return(avars, ret)
            chngsts = False
        if anifr < 63:
            anifr += 1
        else:
            anifr = 0
            if ar:
                ar = False
        r = pygame.Surface([240, 160]).convert()
        r.blit(screen, [0, 0])
        r = pygame.transform.scale(r, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(r, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 17
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    vfls = [0, 0, 0, 0]
    vbfl = [0, 0]

    fsel = -1

    scr = 0

    ret = 1
    spret = 0

    tuts = True
    strt = False
    play = False
    end = 0

    def chsprs(chara, dirt, g):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "s.png")
        opal = []
        for i in range(32):
            opal.append(ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
        bs = palette.palch(bs, g, opal)
        if dirt:
            bs = dirty.dirt(bs)
        ss = palette.palch(ss, g, opal)
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return (sprs)

    def fvals():
        l = [1, 2, 3, 5, 7, 11]
        shuffle(l)
        fls = [[l[0], l[1]], [l[2], l[3]]]
        flss = []
        f = pygame.image.load("Sprites/Misc/obj/labf.png").convert()
        for i in range(4):
            c = pygame.Surface((24, 24)).convert()
            c.fill((0, 255, 255))
            n = [1, 2, 3, 5, 7, 11].index(fls[i // 2][i % 2])
            c.blit(f, [-(24 * (n % 3)), -(24 * (n // 3))])
            c.set_colorkey((0, 255, 255))
            flss.append(c)
        obj = [0, 0]
        for i in [0, 1]:
            obj[i] = randint(1, (max(fls[i]) - 1))
        return (fls, flss, obj)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    def aspr():
        if len(avars[0]) > 0:
            sprs0 = chsprs(avars[0][15], (avars[0][30] == 2), avars[0][14])
        else:
            sprs0 = []
        if len(avars[1]) > 0:
            sprs1 = chsprs(avars[1][15], (avars[1][30] == 2), avars[1][14])
        else:
            sprs1 = []
        if len(avars[2]) > 0:
            sprs2 = chsprs(avars[2][15], (avars[2][30] == 2), avars[2][14])
        else:
            sprs2 = []
        asprs = [sprs0, sprs1, sprs2]
        return (asprs)

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/labt.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/lab.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    bflsk = []
    a = pygame.image.load("Sprites/Misc/obj/labfb.png").convert()
    for i in [0, 1]:
        b = pygame.Surface((48, 48)).convert()
        b.fill((0, 255, 255))
        b.blit(a, [-(48 * i), 0])
        b.set_colorkey((0, 255, 255))
        bflsk.append(b)

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if end < 2:
                spr = 3 + (anifr % 12 > 5)
            else:
                spr = 5 + (2 * (obj != vbfl))
            for i in range(4):
                screen.blit(flss[i], [[8, 56, 160, 208][i],
                                      (104 - (8 * (i == fsel)))])
            screen.blit(fnt.render("%02d" % obj[0], 1, (0, 0, 100)), [67, 30])
            screen.blit(fnt.render("%02d" % obj[1], 1, (0, 0, 100)), [155, 30])
            screen.blit(bflsk[(end == 2 and (obj != vbfl))], [96, 80])
            screen.blit(asprs[avars[3][5]][spr], [104, 32])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 500), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 2:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 4:
                        screen.blit(good, [94, 48])
                    elif scr < 6:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 6:
                    screen.blit(asprs[avars[3][5]][9], [104, 56])
                screen.blit(bflsk[(anifr > 11)], [96, 80])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    if play and end == 0:
                        if fsel == -1 and (96 < mp[1] < 136) and (
                                mp[0] not in range(96, 144)):
                            pygame.mixer.stop()
                            sound[2].play()
                            if mp[0] < 120:
                                fsel = (mp[0] > 47)
                            else:
                                fsel = 2 + (mp[0] > 191)
                        elif fsel > -1 and (fsel < 2 and mp[0] < 144) or \
                             (fsel > 1 and mp[0] > 95) and (24 < mp[1] < 136):
                            pygame.mixer.stop()
                            sound[3].play()
                            if 96 < mp[1]:
                                if mp[0] not in range(96, 144):
                                    if mp[0] < 120:
                                        a = (mp[0] > 47)
                                    else:
                                        a = 2 + (mp[0] > 191)
                                    if fsel == a:
                                        vfls[fsel] = 0
                                    else:
                                        b = vfls[a] + vfls[fsel]
                                        if b > fls[a // 2][a % 2]:
                                            vfls[a] = fls[a // 2][a % 2]
                                            vfls[fsel] = b - fls[a // 2][a % 2]
                                        else:
                                            vfls[a] = b
                                            vfls[fsel] = 0
                                else:
                                    vbfl[fsel > 1] += vfls[fsel]
                                    vfls[fsel] = 0
                            else:
                                vfls[fsel] = fls[fsel // 2][fsel % 2]
                            end = 1
                            anifr = 17
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
                fls, flss, obj = fvals()
            if play:
                if end == 1:
                    if vbfl.count(0) == 0:
                        end = 2
                        anifr = 12
                        pygame.mixer.stop()
                        sound[9 + (3 * (obj != vbfl))].play()
                    else:
                        end = 0
                    fsel = -1
                elif end == 2:
                    if obj == vbfl:
                        scr += 1
                        end = 0
                        vfls = [0, 0, 0, 0]
                        vbfl = [0, 0]
                        fls, flss, obj = fvals()
                    if end == 2 or scr == 6:
                        end = 3
                        play = False
                        if (avars[3][2] + (scr * 500)) < 99999:
                            avars[3][2] += (scr * 500)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][5] += scr * 4
            elif end == 3:
                if scr < 6 or avars[avars[3][5]][15] != 217 or avars[
                        avars[3][5]][5] < 1000:
                    if scr < 2:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                avars[avars[3][5]][1] = 5
                avars = growth.grw(avars)
                asprs = aspr()
                spret = 1
                end = 4
            elif end == 4:
                ret = spret
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 18
0
def game(avars, asprs, screen):

    class Mnbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    chngsts = False

    scr = 0

    ret = 1
    spret = 0

    chm = [randint(0, 2), randint(0, 2), randint(0, 2), randint(0, 2)]

    tuts = True
    strt = False
    play = False
    end = 0

    def chsprs(chara, dirt, g):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "s.png")
        opal = []
        for i in range(32):
            opal.append(ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
        bs = palette.palch(bs, g, opal)
        if dirt:
            bs = dirty.dirt(bs)
        ss = palette.palch(ss, g, opal)
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return(sprs)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    def aspr():
        if len(avars[0]) > 0:
            sprs0 = chsprs(avars[0][15], (avars[0][30] == 2), avars[0][14])
        else:
            sprs0 = []
        if len(avars[1]) > 0:
            sprs1 = chsprs(avars[1][15], (avars[1][30] == 2), avars[1][14])
        else:
            sprs1 = []
        if len(avars[2]) > 0:
            sprs2 = chsprs(avars[2][15], (avars[2][30] == 2), avars[2][14])
        else:
            sprs2 = []
        asprs = [sprs0, sprs1, sprs2]
        return(asprs)

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/prestt.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/presin.png").convert()

    chs = []
    for i in range(4):
        c = chsprs(randint(17, 48), 0, 65536)
        chs.append(c)

    exp = [[4, 5], [6, 7], [6, 8]]

    poof = pygame.image.load("Sprites/Misc/obj/poof.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if end == 0:
                spr = 3 + (anifr % 12 > 5)
            else:
                spr = 5 + (2 * (sum(chm) > 0))
            for i in range(4):
                screen.blit(chs[i][exp[chm[i]][anifr % 12 > 5]], [(36 + (48 * i)), 106])
            screen.blit(asprs[avars[3][5]][spr], [104, 54])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 200), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(asprs[avars[3][5]][spr], [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 6:
                    screen.blit(asprs[avars[3][5]][9], [104, 98])
                else:
                    screen.blit(poof, [104, 98])
                for i in range(4):
                    screen.blit(chs[i][4 + ((anifr % 12 > 5) == (i % 2))], [(36 + (48 * i)), 106])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                if pb in [1, 3] and (24 < mp[1] < 136) and (24 < mp[0] < 216) and play and end == 0:
                    pygame.mixer.stop()
                    sound[2].play()
                    i = (pb // 2) + 1
                    c = (mp[0] - 24) // 48
                    if chm[c] == i:
                        chm[c] = 0
                    else:
                        chm[c] += (chm[c] == 0)
                        end = 1
                        anifr = 83
                        pygame.mixer.stop()
                        sound[12].play()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < (23 + (72 * play)):
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if end == 0:
                    end = 1
                    anifr = 84
                    pygame.mixer.stop()
                    sound[9 + (3 * (sum(chm) > 0))].play()
                else:
                    if sum(chm) == 0:
                        end = 0
                        scr += 1
                        chm = [randint(0, 2), randint(0, 2), randint(0, 2), randint(0, 2)]
                    if end == 1 or scr == 12:
                        end = 3
                        play = False
                        if (avars[3][2] + (scr * 200)) < 99999:
                            avars[3][2] += (scr * 200)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][7] += ((scr * 4) // 3)
                        avars[avars[3][5]][8] += ((scr * 2) // 3)
            elif end == 3:
                if scr < 12 or avars[avars[3][5]][15] != 344 or avars[avars[3][5]][7] < 667 or avars[avars[3][5]][8] < 334:
                    if scr < 4:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                avars[avars[3][5]][1] = 5
                avars = growth.grw(avars)
                asprs = aspr()
                spret = 1
                end = 4
            elif end == 4:
                ret = spret
                return(avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 19
0
def book(avars, asprs, screen):
    class Txtbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box1.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    bx = True

    clt = 0

    spclk = False

    bopt = 0

    chngsts = False

    chnamelst = (
        "BABYTCHI", "SHIROBABYTCHI", "PETITCHI", "SHIROPETITCHI",
        "PUCHITELETCHI", "MIMIFUWATCHI", "MAMEOTCHI", "MAMEKOTCHI",
        "PUCHICHOCOTCHI", "OMUTUTCHI", "MEMEOTCHI", "MEMEPUTCHI", "FUTABATCHI",
        "KURITCHI", "KUCHIOTCHI", "KUCHIKOTCHI", "TAMATCHI", "KUCHITAMATCHI",
        "HYURUTCHI", "MARUTCHI", "KINAKOMOTCHI", "HOSHITCHI", "TONGARITCHI",
        "HASHITAMATCHI", "HARUTCHI", "PUCHITCHI", "MIZUTAMATCHI", "HITODETCHI",
        "KURIBOTCHI", "MOHITAMATCHI", "MAMEBOTCHI", "MOUSETCHI", "MIMIPETCHI",
        "SAKURAMOTCHI", "SHIPPOTCHI", "SHIPPOKOTCHI", "MEMEBOTCHI",
        "AHIRUKUTCHI", "MEMEPETCHI", "BELLTCHI", "HANEOTCHI", "HANEKOTCHI",
        "KUCHIBOTCHI", "MATTARITCHI", "KUCHIPETCHI", "TOROROTCHI",
        "TSUNOOTCHI", "TSUNOKOTCHI", "OBOTCHI", "OJYOTCHI", "PIRORIROTCHI",
        "PIRORINTCHI", "MONAPATCHI", "MERUHETCHI", "KILALATCHI",
        "MAYUMARUTCHI", "Y. OYAJITCHI", "CHUCHUTCHI", "PROPELLERTCHI",
        "BATABATCHI", "Y. MAMETCHI", "Y. MIMITCHI", "HINOTAMATCHI",
        "ICHIGOTCHI", "ONIONTCHI", "NIKATCHI", "MAIMAITCHI", "PAINAPUTCHI",
        "HAWAINOTCHI", "HAWAIKOTCHI", "DARUMATCHI", "TOMATCHI", "MORITCHI",
        "MORUTCHI", "DAIYATCHI", "MIKAZUKITCHI", "NONOPOTCHI", "SHIRIPURITCHI",
        "COSMOTCHI", "RINGOTCHI", "Y. ANDROTCHI", "U. Y. MAROTCHI",
        "MAMEKATCHI", "TERUTERUKOTCHI", "P. TAMAKOKO", "HIKOTCHI", "UFOTCHI",
        "RAKUGOTCHI", "HINENEOTCHI", "BENZATCHI", "OHIGETCHI", "CHAMAMETCHI",
        "KIKITCHI", "NOKOBOTCHI", "HAPPABOUYATCHI", "SABOSABOTCHI",
        "KURIOTCHI", "PYUKITCHI", "DONGURITCHI", "YAKANTCHI", "U. Y. MAMETCHI",
        "ZOURITCHI", "CRACKERTCHI", "KABOTCHI", "GOURMETCHI", "Y. MEMETCHI",
        "BAKUTCHI", "IMOTCHI", "KIZATCHI", "HIYAYATCHI", "HANIKAMITCHI",
        "LOVESORATCHI", "RIONETCHI", "KUJAKUTCHI", "U. Y. VIOLETCHI",
        "BOKUHOSHITCHI", "NEOTCHI", "BOXERTCHI", "PUTCHICAKETCHI",
        "U. Y. MEMETCHI", "Y. KUCHIPATCHI", "Y. DOROTCHI", "KOROKOTCHI",
        "SHELLTCHI", "TENDOTCHI", "GOROGOROTCHI", "FUYOFUYOTCHI",
        "POKAPOKATCHI", "PANNAKOTCHI", "KOMETCHI", "U. Y. YATTATCHI",
        "HINATCHI", "PYONCHITCHI", "PYONKOTCHI", "ZATCHI", "OHIMETCHI",
        "KIWITCHI", "KIKOTCHI", "BILL", "HASHIZOUTCHI", "BILLOTCHI",
        "BILLKOTCHI", "SEKITORITCHI", "CHARITCHI", "MASKUTCHI", "ARUKOTCHI",
        "CHOMAMETCHI", "CHOHIMETCHI", "GINJIROTCHI", "OSHAMATCHI", "POCHITCHI",
        "NYATCHI", "KEROPYONTCHI", "KURITEN", "HIRATCHI", "PIRATCHI",
        "BUNBUNTCHI", "BUNKOTCHI", "MEGATCHI", "GANKOTCHI", "KABUTCHI",
        "PIPOTCHI", "ZUCCITCHI", "TAKOTCHI", "KABUTOTCHI", "GHOST DEVILTCHI",
        "NYOROTCHI", "KUSATCHI", "FURIKOTCHI", "LOVEZUKINTCHI", "MAIKUTCHI",
        "ONPUTCHI", "NEMUTCHI", "YONEPATCHI", "TAMAGOTCHI", "CAPSULETCHI",
        "MUMUTCHI", "RIBOTCHI", "BURGERTCHI", "OMURATCHI", "HATUGATCHI",
        "HANATCHI", "UHYOTCHI", "WATATCHI", "MUKUGETCHI", "POTETCHI",
        "DOROTCHI", "DECOTCHI", "MIMIYORITCHI", "BUTTERFLYTCHI", "TORATCHI",
        "HOHOTCHI", "KUROKOTCHI", "MASKTCHI", "HIDATCHI", "FLOWERTCHI",
        "TENGUTCHI", "WHALETCHI", "TEKETCHI", "TSUNOTCHI", "WARUSOTCHI",
        "KAERUTCHI", "GOZARUTCHI", "KUNOITCHI", "MARUMIMITCHI", "MIMIKOTCHI",
        "SUNNYTCHI", "ROSETCHI", "TAMASTATCHI", "ASHITCHI", "MAGICTCHI",
        "GOSUTCHI", "PHARAOTCHI", "JEWELTCHI", "SUNOPOTCHI", "POMPOMTCHI",
        "MAMETCHI", "MIMITCHI", "ZUKYUTCHI", "MAIDTCHI", "ANDROTCHI",
        "MAROTCHI", "KABUKITCHI", "MELODYTCHI", "KNIGHTTCHI", "YUMEMITCHI",
        "RIGHTTCHI", "SHIGUREHIMETCHI", "SMARTOTCHI", "NACHURATCHI",
        "GOTCHIMOTCHI", "AMAKUTCHI", "GURIGURITCHI", "CHOUCHOTCHI",
        "BUSHINOSUKETCHI", "MAJOKKOTCHI", "ACCHITCHI", "SHINOBINYATCHI",
        "SPACYTCHI", "GYPSYTCHI", "PIPOSPETCHI", "PICHIPITCHI", "WASHIKITCHI",
        "ANESANTCHI", "NANDETCHI", "HARPTCHI", "TENSAITCHI JR.", "CHANTOTCHI",
        "KUROMAMETCHI", "KIRARITCHI", "WAGASSIERTCHI", "PEROTCHI",
        "URA MAMETCHI", "HOROYOTCHI", "SAMURAITCHI", "TSUKKOMITCHI",
        "MATSURITCHI", "URA ZUKYUTCHI", "EIYUUTCHI", "MEGAMITCHI", "KINBATCHI",
        "UWASATCHI", "NECKTIETCHI", "TROPICATCHI", "SHINSHITCHI",
        "YUKINKOTCHI", "BOKUTCHI", "CHOKOMAKATCHI", "MOJAMOJATCHI",
        "NEENETCHI", "SHIMAGURUTCHI", "HIMETCHI", "KARAKUTCHI",
        "HOSHIGIRLTCHI", "TOSAKATCHI", "PONYTCHI", "TOGETCHI", "MEMETCHI",
        "SHIMASHIMATCHI", "VIOLETCHI", "PIEROTCHI", "P. TAMAKO", "SUKATCHI",
        "JULIETCHI", "SHOOTOTCHI", "MADONNATCHI", "DOYATCHI", "MIRAITCHI",
        "HEROTCHI", "AGETCHI", "DREAMITCHI", "DAZZILITCHI", "PAINTOTCHI",
        "WALTZTCHI", "AKASPETCHI", "GIRAGIRATCHI", "ORCHESTROTCHI",
        "HIMESPETCHI", "MOTETCHI", "LOVELITCHI", "OTOGITCHI", "NIJIFUWATCHI",
        "CELEBTCHI", "PRIMATCHI", "YASAGURETCHI", "URA MEMETCHI",
        "URA TOGETCHI", "URA VIOLETCHI", "RINKURUTCHI", "PIANITCHI",
        "GLASSTCHI", "CHANDELITCHI", "STARTCHI", "CLULUTCHI", "MAISUTATCHI",
        "COFFRETCHI", "MOGUMOGUTCHI", "FURIFURITCHI", "TACTTCHI", "MORIRITCHI",
        "MINOTCHI", "PUKATCHI", "TARAKOTCHI", "SEBIRETCHI", "KUCHIPATCHI",
        "YATTATCHI", "SPEPLANETCHI", "KOTOHIMETCHI", "YOTSUBATCHI",
        "HIMEBARATCHI", "SHIRIMOTCHI", "MOMOTCHI", "KUISHINBOTCHI",
        "WATAWATATCHI", "MONAKATCHI", "RAINBOWTCHI", "ORENETCHI",
        "CANDY PAKUPAKU", "DEBATCHI", "SHITEKITCHI", "CHARATCHI", "AMIAMITCHI",
        "P. TAMAHIKO", "HOTTEATCHI", "TENPATCHI", "URA DEBATCHI", "TOUGYUTCHI",
        "DECORATCHI", "URA KUCHIPATCHI", "URA YATTATCHI", "MORIJIKATCHI",
        "PATITCHI", "PIKAGOROTCHI", "PEKOPEKOTCHI", "OYAJITCHI", "ANTOINETCHI",
        "PAPARATCHI", "DEVILTCHI", "WOOLTCHI", "CLIONE DEVILTCHI", "RYOUTCHI",
        "KURONEKOTCHI", "TENSAITCHI", "CHIETCHI", "HYOTTOKOTCHI",
        "MUTSUKITCHI", "HAMJATCHI", "MAKIKO", "NIYANIYATCHI", "HANAGATATCHI",
        "NONBIRITCHI", "BEBICAPPUTCHI", "MUKIMUKITCHI", "KISEKITCHI",
        "OSUMOTCHI", "PUDDINGTCHI", "PUCHIPUTCHI", "MODELTCHI", "OJITCHI",
        "OTOKITCHI", "REXITCHI", "DANGO OBATCHI", "RYUJIJITCHI", "KIBABATCHI")

    extrchn = {}
    n = open(("CCharacters/Names.txt"), 'r')
    t = n.read().splitlines()
    for i in t:
        i = i.split(":")
        extrchn.update({i[0]: i[1].upper()})

    def drbx():
        tile = Txtbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 224:
            tx += 8
            drbx()
        tx = 232
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 96:
            tl = 3
            ty += 8
            drhl()

    def cdspr(md, chd, sel):
        if md < 2:
            g = chd[sel][3]
        if md == 0:
            try:
                bs = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chd[sel][4]) + "b.png")
                ss = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chd[sel][4]) + "s.png")
                opal = []
                for i in range(32):
                    opal.append(
                        ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, g, opal)
                ss = palette.palch(ss, g, opal)
            except:
                bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                ss = pygame.image.load("Sprites/NPC/Nazo.png")
                opal = []
                for i in range(32):
                    opal.append(
                        ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, g, opal)
                ss = palette.palch(ss, g, opal)
            s = (bs.get_width() // 4)
            gspr = pygame.Surface([s, s]).convert()
            gspr.fill((0, 255, 255))
            gspr.blit(bs, [0, 0])
            gspr.set_colorkey((0, 255, 255))
            gspr.convert()
            gico = pygame.Surface([16, 16])
            gico.fill((0, 255, 255))
            gico.blit(ss, [0, 0])
            gico.set_colorkey((0, 255, 255))
            gico.convert()
            pstages = []
            for n in chd[sel][6]:
                try:
                    ss = pygame.image.load("Sprites/Characters/chara_" +
                                           str(n) + "s.png")
                    opal = []
                    for i in range(32):
                        opal.append(
                            ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                    ss = palette.palch(ss, g, opal)
                except:
                    ss = pygame.image.load("Sprites/NPC/Nazo.png")
                    opal = []
                    for i in range(32):
                        opal.append(
                            ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                    ss = palette.palch(ss, g, opal)
                st = pygame.Surface([16, 16])
                st.fill((0, 255, 255))
                st.blit(ss, [0, 0])
                st.set_colorkey((0, 255, 255))
                st.convert()
                pstages.append(st)
            return (gspr, gico, pstages)
        elif md == 1:
            try:
                bs = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chd[sel][2]) + "b.png")
                ss = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chd[sel][2]) + "s.png")
                opal = []
                for i in range(32):
                    opal.append(
                        ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, g, opal)
                ss = palette.palch(ss, g, opal)
            except:
                bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                ss = pygame.image.load("Sprites/NPC/Nazo.png")
                opal = []
                for i in range(32):
                    opal.append(
                        ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, g, opal)
                ss = palette.palch(ss, g, opal)
            s = (bs.get_width() // 4)
            fspr = pygame.Surface([s, s]).convert()
            fspr.fill((0, 255, 255))
            if avars[avars[3][5]][32][frsel][8] < 14:
                fspr.blit(bs, [-(s * 3), 0])
            elif avars[avars[3][5]][32][frsel][8] < 41:
                fspr.blit(bs, [0, 0])
            elif avars[avars[3][5]][32][frsel][8] < 68:
                fspr.blit(bs, [-(s * 2), 0])
            else:
                fspr.blit(bs, [-(s * 3), -(s * 1)])
            fspr.set_colorkey((0, 255, 255))
            fspr.convert()
            fbar = pygame.Surface([(160 - (2 * chd[sel][8])), 16]).convert()
            fbar.fill((102, 102, 102))
            fun = fnt.render(chd[sel][0], 1, (0, 0, 100))
            fcn = fnt.render(chd[sel][1], 1, (0, 0, 100))
            return (fspr, fbar, fun, fcn)
        elif md == 2:
            try:
                bs = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chd[1]) + "b.png")
                ss = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chd[1]) + "s.png")
                opal = []
                for i in range(32):
                    opal.append(
                        ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, chd[0], opal)
                ss = palette.palch(ss, chd[0], opal)
            except:
                bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                ss = pygame.image.load("Sprites/NPC/Nazo.png")
                opal = []
                for i in range(32):
                    opal.append(
                        ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                bs = palette.palch(bs, chd[0], opal)
                ss = palette.palch(ss, chd[0], opal)
            psp = pygame.Surface([32, 32]).convert()
            psp.fill((0, 255, 255))
            psp.blit(bs, [-96, -32])
            psp.set_colorkey((0, 255, 255))
            psp.convert()
            psp = pygame.transform.flip(psp, 1, 0)
            pst = []
            for n in (chd[3] + [chd[1]]):
                try:
                    ss = pygame.image.load("Sprites/Characters/chara_" +
                                           str(n) + "s.png")
                    opal = []
                    for i in range(32):
                        opal.append(
                            ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                    ss = palette.palch(ss, chd[0], opal)
                except:
                    ss = pygame.image.load("Sprites/NPC/Nazo.png")
                    opal = []
                    for i in range(32):
                        opal.append(
                            ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                    ss = palette.palch(ss, chd[0], opal)
                st = pygame.Surface([16, 16])
                st.fill((0, 255, 255))
                st.blit(ss, [-16, 0])
                st.set_colorkey((0, 255, 255))
                st.convert()
                pst.append(st)
            if len(sel) > 0:
                try:
                    bs = pygame.image.load("Sprites/Characters/chara_" +
                                           str(sel[1]) + "b.png")
                    ss = pygame.image.load("Sprites/Characters/chara_" +
                                           str(sel[1]) + "s.png")
                    opal = []
                    for i in range(32):
                        opal.append(
                            ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                    bs = palette.palch(bs, sel[0], opal)
                    ss = palette.palch(ss, sel[0], opal)
                except:
                    bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                    ss = pygame.image.load("Sprites/NPC/Nazo.png")
                    opal = []
                    for i in range(32):
                        opal.append(
                            ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
                    bs = palette.palch(bs, sel[0], opal)
                    ss = palette.palch(ss, sel[0], opal)
                pss = pygame.Surface([32, 32]).convert()
                pss.fill((0, 255, 255))
                pss.blit(bs, [-96, -32])
                pss.set_colorkey((0, 255, 255))
                pss.convert()
            else:
                pss = None
            pn = fnt.render(chd[2], 1, (0, 0, 100))
            return (psp, pss, pn, pst)
        elif md == 3:
            spls = []
            if len(chd[(sel * 6):]) > 5:
                a = 6
            else:
                a = len(chd[(sel * 6):])
            for j in range(a):
                l = []
                for n in (chd[j + (sel * 6)][2] + [chd[j + (sel * 6)][1]]):
                    try:
                        ss = pygame.image.load("Sprites/Characters/chara_" +
                                               str(n) + "s.png")
                        opal = []
                        for i in range(32):
                            opal.append(
                                ss.get_at(
                                    ((16 + (8 * (i % 2))), (16 + (i // 2)))))
                        ss = palette.palch(ss, chd[j + (sel * 6)][0], opal)
                    except:
                        ss = pygame.image.load("Sprites/NPC/Nazo.png")
                        opal = []
                        for i in range(32):
                            opal.append(
                                ss.get_at(
                                    ((16 + (8 * (i % 2))), (16 + (i // 2)))))
                        ss = palette.palch(ss, chd[j + (sel * 6)][0], opal)
                    st = pygame.Surface([16, 16])
                    st.fill((0, 255, 255))
                    st.blit(ss, [-16, 0])
                    st.set_colorkey((0, 255, 255))
                    st.convert()
                    l.append(st)
                spls.append(l)
            return (spls)
        elif md == 4:
            spls = []
            #print(chd)
            for i in range((sel * 24), ((sel + 1) * 24)):
                st = pygame.Surface([16, 16])
                st.fill((0, 255, 255))
                if format(chd, '0384b')[i] == '1':
                    ss = pygame.image.load("Sprites/Characters/chara_" +
                                           str(i + 1) + "s.png")
                    st.blit(ss, [-16, 0])
                else:
                    st.blit((lfnt.render("?", 1, (0, 0, 100))), [6, 5])
                st.set_colorkey((0, 255, 255))
                st.convert()
                spls.append(st)
            return (spls)

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 8, 0)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    male = pygame.image.load("Sprites/Misc/menu/male.png").convert()
    female = pygame.image.load("Sprites/Misc/menu/female.png").convert()

    mame = pygame.image.load("Sprites/Misc/menu/mas.png").convert()
    meme = pygame.image.load("Sprites/Misc/menu/mes.png").convert()
    kuchi = pygame.image.load("Sprites/Misc/menu/kus.png").convert()
    nofs = pygame.image.load("Sprites/Misc/menu/nos.png").convert()
    symlst = [nofs, mame, meme, kuchi]

    frnds = pygame.image.load("Sprites/Misc/bg/frndscr.png").convert()

    grave = pygame.image.load("Sprites/Misc/menu/grave.png").convert()

    ghost = pygame.image.load("Sprites/Misc/sick/ghost.png").convert()

    heart = pygame.image.load("Sprites/Misc/emo/heart.png").convert()

    arrow = pygame.image.load("Sprites/Misc/txtbox/arrow1.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)
    lfnt = pygame.font.Font("Sprites/Misc/font/Tama1.ttf", 8)

    textbox = pygame.Surface([240, 112]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 104
    drhl()

    scrli = pygame.image.load("Sprites/Misc/txtbox/scrli.png").convert()

    clock = pygame.time.Clock()

    anifr = 0

    sound = sounds.imprtsnd(avars)

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        screen.blit(textbox, [0, 24])
        if bopt == 0:
            if len(avars[avars[3][5]][32]) > 0:
                screen.blit((fnt.render("FRIENDS", 1, (0, 0, 100))), [8, 34])
            else:
                screen.blit((fnt.render("FRIENDS", 1, (102, 102, 255))),
                            [8, 34])
            if avars[avars[3][5]][3] > 1:
                screen.blit((fnt.render("FAMILY", 1, (0, 0, 100))), [8, 50])
            else:
                screen.blit((fnt.render("FAMILY", 1, (102, 102, 255))),
                            [8, 50])
            if len(avars[3][10]) > 0:
                screen.blit((fnt.render("GRAVEYARD", 1, (0, 0, 100))), [8, 66])
            else:
                screen.blit((fnt.render("GRAVEYARD", 1, (102, 102, 255))),
                            [8, 66])
            screen.blit((fnt.render("TAMADEX", 1, (0, 0, 100))), [8, 82])
        elif bopt == 1:
            screen.blit(scrli, [232, 128])
            if avars[3][10][grvsel][4] < 385:
                screen.blit(
                    (fnt.render(chnamelst[(avars[3][10][grvsel][4] - 1)], 1,
                                (0, 0, 100))), [8, 34])
            else:
                try:
                    screen.blit(
                        (fnt.render(extrchn[str(avars[3][10][grvsel][4])], 1,
                                    (0, 0, 100))), [8, 34])
                except:
                    screen.blit((fnt.render("???", 1, (0, 0, 100))), [8, 34])
            if avars[3][10][grvsel][3] % 2 == 0:
                screen.blit(male, [216, 32])
            else:
                screen.blit(female, [216, 32])
            screen.blit((fnt.render(avars[3][10][grvsel][5], 1, (0, 0, 100))),
                        [128, 54])
            screen.blit((fnt.render((str(avars[3][10][grvsel][2]) + "G"), 1,
                                    (0, 0, 100))), [184, 72])
            screen.blit((fnt.render(
                (str(avars[3][10][grvsel][1] // 86400) + "  YEARS"), 1,
                (0, 0, 100))), [120, 90])
            screen.blit(ghost, [12, 68])
            screen.blit(grave, [47, 52])
            screen.blit(gspr, [(57 + ((32 - gspr.get_width()) // 2)),
                               (64 + ((32 - gspr.get_width()) // 2))])
            screen.blit(gico, [(24 + (32 * len(pstages))), 108])
            z = 0
            while z < len(pstages):
                screen.blit(pstages[z], [(24 + (32 * z)), 108])
                screen.blit(arrow, [(44 + (32 * z)), 112])
                z += 1
        elif bopt == 2:
            screen.blit(scrli, [232, 128])
            screen.blit(frnds, [8, 32])
            screen.blit(fspr, [(16 + ((32 - fspr.get_width()) // 2)),
                               (40 + ((32 - fspr.get_width()) // 2))])
            if avars[avars[3][5]][32][frsel][3] % 2 == 0:
                screen.blit(male, [16, 78])
            else:
                screen.blit(female, [16, 78])
            screen.blit(fbar,
                        [(200 - (160 -
                                 (2 * avars[avars[3][5]][32][frsel][8]))), 94])
            screen.blit(fun, [54, 38])
            if avars[avars[3][5]][32][frsel][2] < 385:
                screen.blit((fnt.render(
                    chnamelst[(avars[avars[3][5]][32][frsel][2] - 1)], 1,
                    (0, 0, 100))), [54, 54])
            else:
                try:
                    screen.blit((fnt.render(
                        extrchn[str(avars[avars[3][5]][32][frsel][2])], 1,
                        (0, 0, 100))), [54, 54])
                except:
                    screen.blit((fnt.render("???", 1, (0, 0, 100))), [54, 54])
            screen.blit(fcn, [54, 70])
        elif bopt == 3:
            screen.blit((fnt.render("PARENTS", 1, (0, 0, 100))), [8, 34])
            if avars[avars[3][5]][3] > 2:
                screen.blit((fnt.render("GRANDPARENTS", 1, (0, 0, 100))),
                            [8, 50])
            else:
                screen.blit((fnt.render("GRANDPARENTS", 1, (102, 102, 255))),
                            [8, 50])
            screen.blit((fnt.render("FAMILY TREE", 1, (0, 0, 100))), [8, 66])
        elif bopt == 4 or bopt == 5:
            if avars[avars[3][5]][25 + (2 * (bopt == 5))][1] < 385:
                screen.blit((fnt.render(
                    chnamelst[(avars[avars[3][5]][25 +
                                                  (2 *
                                                   (bopt == 5))][1] - 1)], 1,
                    (0, 0, 100))), [8, 34])
            else:
                try:
                    screen.blit((fnt.render(
                        extrchn[str(
                            avars[avars[3][5]][25 + (2 * (bopt == 5))][1])], 1,
                        (0, 0, 100))), [8, 34])
                except:
                    screen.blit((fnt.render("???", 1, (0, 0, 100))), [8, 34])
            screen.blit(
                (fnt.render(avars[avars[3][5]][25 + (2 * (bopt == 5))][2], 1,
                            (0, 0, 100))), [8, 50])
            if avars[avars[3][5]][25 + (2 * (bopt == 5))][0] % 2 == 0:
                screen.blit(male, [216, 40])
            else:
                screen.blit(female, [216, 40])
            screen.blit(
                symlst[['no', 'ma', 'me', 'ku'].index(
                    avars[avars[3][5]][25 + (2 * (bopt == 5))][4])], [8, 72])
            screen.blit(
                symlst[['no', 'ma', 'me', 'ku'].index(
                    avars[avars[3][5]][25 + (2 * (bopt == 5))][5])], [24, 88])
            screen.blit(psp, [80, 72])
            if len(avars[avars[3][5]][26 + (2 * (bopt == 5))]) > 0:
                screen.blit(heart, [112, 64])
                screen.blit(pss, [128, 72])
                screen.blit(
                    symlst[['no', 'ma', 'me', 'ku'].index(
                        avars[avars[3][5]][26 + (2 * (bopt == 5))][2])],
                    [200, 72])
                screen.blit(
                    symlst[['no', 'ma', 'me', 'ku'].index(
                        avars[avars[3][5]][26 + (2 * (bopt == 5))][3])],
                    [216, 88])
            for i in range(len(pst)):
                screen.blit(pst[i], [(24 + (32 * i)), 108])
                if i < (len(pst) - 1):
                    screen.blit(arrow, [(44 + (32 * i)), 112])
        elif bopt == 6:
            screen.blit(scrli, [232, 128])
            for j in range(len(spls)):
                for i in range(len(spls[j])):
                    screen.blit(spls[j][i], [(24 + (32 * i)), (32 + (16 * j))])
                    if i < (len(spls[j]) - 1):
                        screen.blit(arrow, [(44 + (32 * i)), (36 + (16 * j))])
        elif bopt == 7:
            screen.blit(scrli, [232, 128])
            for i in range(24):
                screen.blit((lfnt.render('%03d' % ((dexs * 24) + i + 1), 1,
                                         (0, 0, 100))),
                            [(18 + (27 * (i % 8))), (60 + (24 * (i // 8)))])
                screen.blit(spls[i], [(18 + (27 * (i % 8))),
                                      (44 + (24 * (i // 8)))])
        elif bopt == 8:
            screen.blit(dchas[0], [8, 32])
            screen.blit((lfnt.render(('%03d' % cen) + " / " + ["BABY", "CHILD", "TEEN", "ADULT", "SENIOR"][(cen > 16) + (cen > 48) + (cen > 132) + (cen > 378)], 1, (0, 0, 100))), \
                        [48, 37])
            if cen < 385:
                screen.blit((fnt.render(chnamelst[cen - 1], 1, (0, 0, 100))),
                            [48, 46])
            else:
                try:
                    screen.blit((fnt.render(extrchn[str(cen)], 1,
                                            (0, 0, 100))), [48, 46])
                except:
                    screen.blit((fnt.render("???", 1, (0, 0, 100))), [48, 46])
            for i in range(7):
                screen.blit(dchas[i + 1], [(8 + (32 * i)), 80])
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN:
                if event.key in [303, 304]:
                    spclk = True
                #TESTING
                #if event.key == K_d and bopt == 2:
                #f = avars[avars[3][5]][32]
                #f.pop(frsel)
                #avars[avars[3][5]][32] = f
                #bopt = 0
            if event.type == KEYUP:
                if event.key in [303, 304]:
                    spclk = False
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button + (spclk * (1 + (event.button > 2)))
                if pb in [2, 4]:
                    clt = 0
                    if bopt == 1:
                        pygame.mixer.stop()
                        sound[2].play()
                        if grvsel != (len(avars[3][10]) - 1):
                            grvsel += 1
                        else:
                            grvsel = 0
                        gspr, gico, pstages = cdspr(0, avars[3][10], grvsel)
                    elif bopt == 2:
                        pygame.mixer.stop()
                        sound[2].play()
                        if frsel != (len(avars[avars[3][5]][32]) - 1):
                            frsel += 1
                        else:
                            frsel = 0
                        fspr, fbar, fun, fcn = cdspr(1, avars[avars[3][5]][32],
                                                     frsel)
                    elif bopt == 6:
                        pygame.mixer.stop()
                        sound[2].play()
                        if gensel != ((len(avars[avars[3][5]][29]) - 1) // 6):
                            gensel += 1
                        else:
                            gensel = 0
                        spls = cdspr(3, avars[avars[3][5]][29], gensel)
                    elif bopt == 7:
                        pygame.mixer.stop()
                        sound[2].play()
                        if dexs != 15:
                            dexs += 1
                        else:
                            dexs = 0
                        spls = cdspr(4, avars[3][23], dexs)
                elif pb == 5:
                    clt = 0
                    if bopt == 1:
                        pygame.mixer.stop()
                        sound[2].play()
                        if grvsel != 0:
                            grvsel -= 1
                        else:
                            grvsel = (len(avars[3][10]) - 1)
                        gspr, gico, pstages = cdspr(0, avars[3][10], grvsel)
                    elif bopt == 2:
                        pygame.mixer.stop()
                        sound[2].play()
                        if frsel != 0:
                            frsel -= 1
                        else:
                            frsel = (len(avars[avars[3][5]][32]) - 1)
                        fspr, fbar, fun, fcn = cdspr(1, avars[avars[3][5]][32],
                                                     frsel)
                    elif bopt == 6:
                        pygame.mixer.stop()
                        sound[2].play()
                        if gensel != 0:
                            gensel -= 1
                        else:
                            gensel = ((len(avars[avars[3][5]][29]) - 1) // 6)
                        spls = cdspr(3, avars[avars[3][5]][29], gensel)
                    elif bopt == 7:
                        pygame.mixer.stop()
                        sound[2].play()
                        if dexs != 0:
                            dexs -= 1
                        else:
                            dexs = 15
                        spls = cdspr(4, avars[3][23], dexs)
                elif pb == 1:
                    clt = 0
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            sound[4].play()
                            return (avars)
                    if bopt == 0 and 8 < mp[0] < 232:
                        if 64 < mp[1] < 80 and len(avars[3][10]) > 0:
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 1
                            grvsel = 0
                            gspr, gico, pstages = cdspr(0, avars[3][10], 0)
                        if 32 < mp[1] < 48 and len(avars[avars[3][5]][32]) > 0:
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 2
                            frsel = 0
                            fspr, fbar, fun, fcn = cdspr(
                                1, avars[avars[3][5]][32], 0)
                        if 48 < mp[1] < 64 and avars[avars[3][5]][3] > 1:
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 3
                        if 80 < mp[1] < 96:
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 7
                            dexs = 0
                            spls = cdspr(4, avars[3][23], dexs)
                    elif bopt == 3 and 8 < mp[0] < 232:
                        if 32 < mp[1] < 48:
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 4
                            psp, pss, pn, pst = cdspr(2,
                                                      avars[avars[3][5]][25],
                                                      avars[avars[3][5]][26])
                        if 48 < mp[1] < 64 and avars[avars[3][5]][3] > 2:
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 5
                            psp, pss, pn, pst = cdspr(2,
                                                      avars[avars[3][5]][27],
                                                      avars[avars[3][5]][28])
                        if 64 < mp[1] < 80:
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 6
                            gensel = 0
                            spls = cdspr(3, avars[avars[3][5]][29], 0)
                    elif bopt == 7 and (14 < mp[0] < 226) and ((
                        (mp[0] - 14) % 27) < 24) and (44 < mp[1] < 140):
                        cen = ((mp[0] - 14) // 27) + ((
                            (mp[1] - 44) // 24) * 8) + (dexs * 24) + 1
                        if format(avars[3][23], '0384b')[cen - 1] == '1':
                            pygame.mixer.stop()
                            sound[3].play()
                            bopt = 8
                            dchas = []
                            l = [int('00060000', 16), int('F0060000', 16), int('0F060000', 16), int('00F60000', 16), \
                                 int('0FF60000', 16), int('F0F60000', 16), int('FF060000', 16), int('FFF60000', 16)]
                            for i in range(8):
                                bs = pygame.image.load(
                                    "Sprites/Characters/chara_" + str(cen) +
                                    "b.png")
                                ss = pygame.image.load(
                                    "Sprites/Characters/chara_" + str(cen) +
                                    "s.png")
                                opal = []
                                for p in range(32):
                                    opal.append(
                                        ss.get_at(((16 + (8 * (p % 2))),
                                                   (16 + (p // 2)))))
                                bs = palette.palch(bs, l[i], opal)
                                x = (bs.get_width() // 4)
                                j = pygame.Surface([x, x])
                                j.fill((0, 255, 255))
                                j.blit(bs, [0, 0])
                                k = pygame.Surface([32, 32])
                                k.fill((0, 255, 255))
                                k.blit(j, [((32 - x) // 2), ((32 - x) // 2)])
                                k.set_colorkey((0, 255, 255))
                                k.convert()
                                dchas.append(k)
                    elif bopt == 8 and (8 < mp[0] < 40) and (32 < mp[1] < 64):
                        pygame.mixer.stop()
                        sound[4].play()
                        bopt = 7
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
                clt += 1
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if clt > 29:
            return (avars)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 20
0
def fdt(avars, asprs, screen):
    class Txtbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box1.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    bx = False

    scr = 0

    ret = 1

    chngsts = False

    def chsprs(chara, g):
        try:
            sprs = []
            if chara > 0:
                bs = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chara) + "b.png")
                ss = pygame.image.load("Sprites/Characters/chara_" +
                                       str(chara) + "s.png")
            else:
                bs = pygame.image.load("Sprites/NPC/Nazotchi.png")
                ss = pygame.image.load("Sprites/NPC/Nazo.png")
            opal = []
            for i in range(32):
                opal.append(ss.get_at(((16 + (8 * (i % 2))), (16 + (i // 2)))))
            bs = palette.palch(bs, g, opal)
            ss = palette.palch(ss, g, opal)
            for i in range(3):
                a = pygame.Surface([16, 16])
                a.fill((0, 255, 255))
                a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
                a.set_colorkey((0, 255, 255))
                a.convert()
                sprs.append(a)
            s = (bs.get_width() // 4)
            for i in range(16):
                spr = pygame.Surface([s, s]).convert()
                spr.fill((0, 255, 255))
                spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
                spr.set_colorkey((0, 255, 255))
                sprs.append(spr)
        except:
            sprs = chsprs(0, g)
        return (sprs)

    def drbx():
        tile = Txtbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 224:
            tx += 8
            drbx()
        tx = 232
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 96:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    heart = pygame.image.load("Sprites/Misc/emo/heart.png").convert()
    hear2 = pygame.image.load("Sprites/Misc/emo/heart2.png").convert()

    backg = pygame.image.load("Sprites/Misc/bg/dateplin.png").convert()

    textbox = pygame.Surface([240, 112]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 104
    drhl()

    book = []
    for i in [0, 1]:
        a = pygame.Surface((24, 24))
        a.blit(backg, [-(24 * i), 0])
        a.set_colorkey((0, 255, 255))
        a.convert()
        book.append(a)

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    marrtx = fnt.render("MARRY?", 1, (0, 0, 100))
    yest = fnt.render("YES", 1, (0, 0, 100))
    notx = fnt.render("NO", 1, (0, 0, 100))

    sound = sounds.imprtsnd(avars)

    clock = pygame.time.Clock()

    anifr = 0

    p = [4, 6][randint(1, 4) == 4]
    t = 435600
    g = randint(0, 4294967295)
    a = randint(1, 8)
    c = ["no", "ma", "ku", "ku", "ma", "me", "me", "no"][a - 1]
    d = [choice(["ku", "ma", "me"]), "ku", "ku", "me", "ma", "me", "ma",
         "no"][a - 1]
    ov = [[
        a, 1, 0, (g % 4 > 1), 0,
        randint(0, 200),
        randint(0, 200),
        randint(0, 200),
        randint(0, 200),
        randint(0, 200),
        randint(0, 200), c, c, d, g, 0, 0, 0,
        randint(1, 99),
        randint(0, 5), 0, 0, 0, 0, [], 0, 0, 0, 0, 0, 0, 0, 0, 4
    ], [], [], [0, 0, 0, 0, 0, 0]]
    ov = growth.grw(ov)
    while ov[0][1] < p:
        ov[0][1] += 1
        if ov[0][1] == 5:
            ov[0][1] = 6
        ov = growth.grw(ov)
    pchr = ov[0][15]
    pcharinfo = [
        "PARK", "", pchr, g, ov[0][13], ov[0][12], ov[0][11],
        [t, avars[avars[3][5]][2]], 0
    ]
    pchrs = chsprs(pchr, pcharinfo[3])

    matc = [
        randint(379, 384),
        randint(379, 380),
        randint(381, 382),
        randint(383, 384)
    ][["no", "ma", "me", "ku"].index(c)]
    mats = chsprs(matc, [4027187200, 16384000][matc == 381])

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        screen.blit(backg, [0, 0])
        if scr == 0 and not bx:
            if anifr < 48:
                screen.blit(
                    pygame.transform.flip(mats[3 + (anifr % 12 > 5)], 1, 0),
                    [104, 35])
                screen.blit(book[0], [136, 43])
                screen.blit(asprs[avars[3][5]][11 + (2 * (anifr % 12 > 5))],
                            [(224 - (12 * (anifr // 6))),
                             (98 - (2 * (anifr % 12 > 5)))])
            elif anifr < 54:
                if anifr == 48:
                    pygame.mixer.stop()
                    sound[9].play()
                screen.blit(pygame.transform.flip(mats[5], 1, 0), [104, 35])
                screen.blit(book[0], [136, 43])
                screen.blit(asprs[avars[3][5]][5], [128, 98])
            elif anifr < 78:
                screen.blit(
                    pygame.transform.flip(mats[11 + (anifr % 12 > 5)], 1, 0),
                    [104, 35])
                screen.blit(book[anifr % 12 > 5], [136, 43])
                screen.blit(asprs[avars[3][5]][3 + (anifr % 12 > 5)],
                            [128, 98])
            elif anifr < 84:
                if anifr == 78:
                    pygame.mixer.stop()
                    sound[9].play()
                screen.blit(mats[5], [104, 35])
                screen.blit(book[0], [136, 43])
                screen.blit(asprs[avars[3][5]][9], [128, 98])
            elif anifr < 132:
                screen.blit(mats[3 + (anifr % 12 > 5)], [104, 35])
                screen.blit(book[0], [136, 43])
                screen.blit(asprs[avars[3][5]][3 + (7 * (anifr % 12 > 5))],
                            [128, 98])
                screen.blit(
                    pygame.transform.flip(pchrs[11 + (2 * (anifr % 12 > 5))],
                                          1, 0),
                    [(-16 + (12 * ((anifr - 84) // 6))),
                     (98 - (2 * (anifr % 12 > 5)))])
            else:
                if anifr == 132:
                    pygame.mixer.stop()
                    sound[9].play()
                screen.blit(mats[4 + (anifr % 12 > 5)], [104, 35])
                screen.blit(book[0], [136, 43])
                screen.blit(asprs[avars[3][5]][10], [128, 98])
                screen.blit(pygame.transform.flip(pchrs[10], 1, 0), [80, 98])
        elif bx:
            screen.blit(textbox, [0, 24])
            screen.blit(marrtx, [8, 66])
            screen.blit(yest, [107, 82])
            screen.blit(notx, [164, 82])
        elif scr == 1:
            if anifr < 96:
                screen.blit(mats[8], [104, 35])
                screen.blit(book[0], [136, 43])
                screen.blit(asprs[avars[3][5]][6], [128, 98])
                screen.blit(pygame.transform.flip(pchrs[7], 1, 0), [80, 98])
            else:
                screen.blit(
                    pygame.transform.flip(mats[11 + (anifr % 12 > 5)], 1, 0),
                    [104, 35])
                screen.blit(book[anifr % 12 > 5], [136, 43])
                screen.blit(asprs[avars[3][5]][6], [128, 98])
                screen.blit(pchrs[11 + (2 * (anifr % 12 > 5))],
                            [(68 - (12 * ((anifr - 96) // 6))),
                             (98 - (2 * (anifr % 12 > 5)))])
        elif scr == 2:
            screen.blit(mats[5 + (5 * (anifr % 12 > 5))], [104, 35])
            screen.blit(book[0], [136, 43])
            if anifr < 72:
                screen.blit(asprs[avars[3][5]][5 + (5 * (anifr % 12 > 5))],
                            [128, 98])
                screen.blit(pygame.transform.flip(pchrs[3], 1, 0), [80, 98])
                screen.blit([hear2, heart][anifr % 12 > 5], [160, 82])
            elif anifr < 96:
                screen.blit(asprs[avars[3][5]][3], [128, 98])
                screen.blit(
                    pygame.transform.flip(pchrs[5 + (5 * (anifr % 12 > 5))], 1,
                                          0), [80, 98])
                screen.blit([hear2, heart][anifr % 12 > 5], [64, 82])
            elif anifr < 120:
                screen.blit(asprs[avars[3][5]][11 + (anifr > 107)], [124, 98])
                screen.blit(
                    pygame.transform.flip(pchrs[11 + (anifr > 107)], 1, 0),
                    [84, 98])
            else:
                if anifr == 120:
                    pygame.mixer.stop()
                    sound[9].play()
                screen.blit(asprs[avars[3][5]][15], [120, 98])
                screen.blit(pygame.transform.flip(pchrs[15], 1, 0), [88, 98])
                screen.blit([hear2, heart][anifr % 12 > 5],
                            [64, (74 + (4 * (anifr % 12 > 5)))])
                screen.blit([hear2, heart][anifr % 12 < 6],
                            [112, (74 + (4 * (anifr % 12 < 6)))])
                screen.blit([hear2, heart][anifr % 12 > 5],
                            [160, (74 + (4 * (anifr % 12 > 5)))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            ret = 0
                            sound[4].play()
                            return (avars, ret)
                    if bx and 80 < mp[1] < 96:
                        if 164 < mp[0] < 188:
                            pygame.mixer.stop()
                            sound[12].play()
                            bx = False
                            scr = 1
                            anifr = 83
                        elif 107 < mp[0] < 139:
                            pygame.mixer.stop()
                            sound[9].play()
                            bx = False
                            scr = 2
                            anifr = 47
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            if avars[avars[3][5]][20] or not avars[avars[3][5]][21]:
                return (avars, ret)
            chngsts = False
        if anifr < 143:
            anifr += 1
        else:
            anifr = 0
            if scr == 0 and not bx:
                bx = True
            elif scr == 1:
                scr = 0
                anifr = 78
                p = [4, 6][randint(1, 4) == 4]
                t = 435600
                g = randint(0, 4294967295)
                a = [
                    choice([1, 2, 5, 8]),
                    choice([1, 6, 7, 8]),
                    choice([1, 3, 4, 8])
                ][(matc - 379) // 2]
                c = ["no", "ma", "ku", "ku", "ma", "me", "me", "no"][a - 1]
                d = [
                    choice(["ku", "ma", "me"]), "ku", "ku", "me", "ma", "me",
                    "ma", "no"
                ][a - 1]
                ov = [[
                    a, 1, 0, (g % 4 > 1), 0,
                    randint(0, 200),
                    randint(0, 200),
                    randint(0, 200),
                    randint(0, 200),
                    randint(0, 200),
                    randint(0, 200), c, c, d, g, 0, 0, 0,
                    randint(1, 99),
                    randint(0, 5), 0, 0, 0, 0, [], 0, 0, 0, 0, 0, 0, 0, 0, 4
                ], [], [], [0, 0, 0, 0, 0, 0]]
                ov = growth.grw(ov)
                while ov[0][1] < p:
                    ov[0][1] += 1
                    if ov[0][1] == 5:
                        ov[0][1] = 6
                    ov = growth.grw(ov)
                pchr = ov[0][15]
                pcharinfo = [
                    "PARK", "", pchr, g, ov[0][13], ov[0][12], ov[0][11],
                    [t, avars[avars[3][5]][2]], 0
                ]
                pchrs = chsprs(pchr, pcharinfo[3])
            elif scr == 2:
                avars = marryseq.wed(avars, asprs, pchrs, pcharinfo, screen)
                return (avars, ret)
        r = pygame.Surface([240, 160]).convert()
        r.blit(screen, [0, 0])
        r = pygame.transform.scale(
            r, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(r, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 21
0
def game(avars, asprs, screen):

    class Mnbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    chngsts = False

    scr = 0

    ret = 1

    tuts = True
    strt = False
    play = False
    end = 0

    typ = [randint(0, 2), randint(0, 2), randint(0, 2), randint(0, 2)]

    sel = [-1, -1, -1, -1]
    cch = -1

    def chsprs(chara):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) + "s.png")
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return(sprs)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/hospitalt.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/hospital.png").convert()

    def psprs():
        pats = []
        for i in [0, 1, 2, 3]:
            c = randint(1, 48)
            s = chsprs(c)
            pats.append(s)
        return(pats)

    pats = psprs()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(playbk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if end == 0:
                spr = 3 + (anifr % 12 > 5)
                p = []
                for i in [0, 1, 2, 3]:
                    p.append([3, 4, 3, 6, 6, 7][(2 * typ[i]) + (anifr % 12 > 5)])
            else:
                spr = 5 + (2 * (sel != typ))
                p = []
                for i in [0, 1, 2, 3]:
                    p.append(5 + (2 * (sel[i] != typ[i])))
            for i in [0, 1, 2, 3]:
                screen.blit(pats[i][p[i]], [(80 + (40 * i) + ((32 - pats[i][3].get_height()) // 2)), (98 + (32 - pats[i][3].get_height()))])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], 1, 0), [24, 98])
        else:
            screen.blit(playbk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 200), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(asprs[avars[3][5]][spr], [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    if (80 < mp[1] < 136) and (72 < mp[0]) and play and end == 0:
                        cch = (mp[0] - 72) // 42
            if event.type == MOUSEBUTTONUP:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1 and cch > -1:
                    if (24 < mp[1] < 80) and (12 < mp[0] < 228):
                        pygame.mixer.stop()
                        sound[2].play()
                        sel[cch] = (mp[0] - 12) // 76
                        if sel.count(-1) == 0:
                            end = 1
                            anifr = 11
                            pygame.mixer.stop()
                            sound[9 + (3 * (sel != typ))].play()
                    cch = -1
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play and end == 1:
                if sel == typ:
                    scr += 1
                    end = 0
                    pats = psprs()
                if sel != typ or scr == 12:
                    end = 3
                    play = False
                    if (avars[3][2] + (scr * 200)) < 99999:
                        avars[3][2] += (scr * 200)
                    else:
                        avars[3][2] = 99999
                    avars[avars[3][5]][5] += ((scr * 4) // 3)
                    avars[avars[3][5]][7] += ((scr * 2) // 3)
                typ = [randint(0, 2), randint(0, 2), randint(0, 2), randint(0, 2)]
                sel = [-1, -1, -1, -1]
                cch = -1
            elif end == 3:
                if scr < 4:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return(avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 22
0
def game(avars, asprs, screen, tsprs):
    
    kr = True

    chngsts = False

    scr = 0

    ret = 1

    gdpl = [32, 32, 32, 32, 32, 32]
    wipng = False

    tuts = True
    strt = False
    play = False
    end = 0

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/wipet.png").convert()

    classbg = pygame.image.load("Sprites/Misc/bg/pasclass.png").convert()
    gymbg = pygame.image.load("Sprites/Misc/bg/wipebg.png").convert()

    wipeob = pygame.image.load("Sprites/Misc/obj/wipeob.png").convert()

    gdp1 = pygame.image.load("Sprites/Misc/bg/wipebg1.png").convert()
    gdp2 = pygame.image.load("Sprites/Misc/bg/wipebg2.png").convert()
    gdp3 = pygame.image.load("Sprites/Misc/bg/wipebg3.png").convert()
    gdp4 = pygame.image.load("Sprites/Misc/bg/wipebg4.png").convert()
    gdp5 = pygame.image.load("Sprites/Misc/bg/wipebg5.png").convert()
    gdp6 = pygame.image.load("Sprites/Misc/bg/wipebg6.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(classbg, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 40])
                tcs = 0
                spr = 3
            else:
                screen.blit(go, [95, 40])
                tcs = 2
                spr = 5
            screen.blit(tsprs[tcs], [136, 98])
            screen.blit(asprs[avars[3][5]][spr], [(72 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(gymbg, [0, 0])
            if end == 0:
                tcs = 0 + (anifr % 12 < 6)
                spr = 3 + (anifr % 12 < 6) + (8 * wipng)
            else:
                tcs = 2
                spr = 5
            if gdpl[0] > 0:
                screen.blit(gdp1, [64, 120])
            if gdpl[1] > 0:
                screen.blit(gdp2, [10, 110])
            if gdpl[2] > 0:
                screen.blit(gdp3, [148, 92])
            if gdpl[3] > 0:
                screen.blit(gdp4, [170, 49])
            if gdpl[4] > 0:
                screen.blit(gdp5, [119, 95])
            if gdpl[5] > 0:
                screen.blit(gdp6, [19, 43])
            if wipng:
                screen.blit(pygame.transform.flip(wipeob, flip, 0), [(wipex + (4 * (anifr % 12 < 6))), wipey])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], flip, 0), [(charax + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (charay + (32 - asprs[avars[3][5]][spr].get_height()))])
            screen.blit(tsprs[tcs], [184, 98])
        else:
            screen.blit(classbg, [0, 0])
            if end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 40])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                        tcs = 1
                    else:
                        spr = 7
                        tcs = 3
                else:
                    if scr < 8:
                        screen.blit(good, [94, 40])
                    elif scr < 12:
                        screen.blit(great, [85, 40])
                    else:
                        screen.blit(excellent, [51, 40])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 4
                        tcs = 1
                    else:
                        spr = 5
                        tcs = 2
            screen.blit(tsprs[tcs], [136, 98])
            screen.blit(asprs[avars[3][5]][spr], [(72 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    elif play and end == 0:
                        if 64 < mp[0] < 112 and 120 < mp[1] < 136 and gdpl[0] > 0:
                            gdpl[0] -= 1
                            charax = 40
                            charay = 102
                            flip = True
                            if gdpl[0] > 0:
                                wipng = True
                                wipex = 64
                                wipey = 120
                            else:
                                wipng = False
                                pygame.mixer.stop()
                                sound[9].play()
                        if 10 < mp[0] < 52 and 110 < mp[1] < 124 and gdpl[1] > 0:
                            gdpl[1] -= 1
                            charax = 54
                            charay = 92
                            flip = False
                            if gdpl[1] > 0:
                                wipng = True
                                wipex = 20
                                wipey = 106
                            else:
                                wipng = False
                                pygame.mixer.stop()
                                sound[9].play()
                        if 148 < mp[0] < 186 and 92 < mp[1] < 130 and gdpl[2] > 0:
                            gdpl[2] -= 1
                            charax = 116
                            charay = 98
                            flip = True
                            if gdpl[2] > 0:
                                wipng = True
                                wipex = 150
                                wipey = 84
                            else:
                                wipng = False
                                pygame.mixer.stop()
                                sound[9].play()
                        if 170 < mp[0] < 213 and 49 < mp[1] < 75 and gdpl[3] > 0:
                            gdpl[3] -= 1
                            charax = 196
                            charay = 72
                            flip = False
                            if gdpl[3] > 0:
                                wipng = True
                                wipex = 182
                                wipey = 62
                            else:
                                wipng = False
                                pygame.mixer.stop()
                                sound[9].play()
                        if 119 < mp[0] < 149 and 95 < mp[1] < 115 and gdpl[4] > 0:
                            gdpl[4] -= 1
                            charax = 84
                            charay = 84
                            flip = True
                            if gdpl[4] > 0:
                                wipng = True
                                wipex = 120
                                wipey = 87
                            else:
                                wipng = False
                                pygame.mixer.stop()
                                sound[9].play()
                        if 19 < mp[0] < 61 and 43 < mp[1] < 91 and gdpl[5] > 0:
                            gdpl[5] -= 1
                            charax = 56
                            charay = 72
                            flip = False
                            if gdpl[5] > 0:
                                wipng = True
                                wipex = 32
                                wipey = 59
                            else:
                                wipng = False
                                pygame.mixer.stop()
                                sound[9].play()
                        if sum(gdpl) == 0:
                            pygame.mixer.stop()
                            sound[9].play()
                            end = 1
                            anifr = 971
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < (23 + (960 * play)):
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
                charax = 72
                charay = 98
                flip = False
            elif play:
                play = False
                end = 4
                scr = (192 - sum(gdpl)) // 16
                if scr < 4:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                avars[avars[3][5]][10] += scr
            elif end == 4:
                ret = 0
                return(avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 23
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    chpos = 0

    cos1 = []
    cos2 = []

    tuts = True
    strt = False
    play = False
    end = 0

    def chsprs(chara):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "s.png")
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return (sprs)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/helpstandt.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/helpstand.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    ball = pygame.image.load("Sprites/Misc/item/ball.png").convert()
    s = pygame.image.load("Sprites/Food/IceCream.png").convert()
    icec = pygame.Surface([24, 24]).convert()
    icec.fill((0, 255, 255))
    icec.blit(s, [0, 0])
    icec.set_colorkey((0, 255, 255))
    balli = pygame.image.load("Sprites/Misc/bg/hsab.png").convert()
    iceci = pygame.image.load("Sprites/Misc/bg/hsai.png").convert()

    obj = [icec, ball]

    obji = [iceci, balli]

    msprs = []
    s = pygame.image.load("Sprites/NPC/Market.png").convert()
    for i in range(4):
        a = pygame.Surface([32, 32]).convert()
        a.fill((0, 255, 255))
        a.blit(s, [-(32 * (i % 2)), -(32 * (i // 2))])
        a.set_colorkey((0, 255, 255))
        msprs.append(a)

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if len(cos2) > 0:
                if cos2[2] == 114:
                    if chpos < 2:
                        if anifr < 4:
                            cos2s = 12
                            screen.blit(obji[cos2[1]], [122, 80])
                        else:
                            cos2s = 11
                    elif chpos == 2:
                        cos2s = 5
                    else:
                        cos2s = 8
                else:
                    if ((anifr / 8) - (anifr // 8)) < 0.5:
                        cos2s = 11
                    else:
                        cos2s = 13
                screen.blit(
                    pygame.transform.flip(cos2sp[cos2s],
                                          (cos2[2] != 114 and cos2[4] == 1),
                                          0),
                    [(cos2[2] + ((32 - cos2sp[cos2s].get_width()) // 2)),
                     (cos2[3] + (32 - cos2sp[cos2s].get_height()))])
            if len(cos1) > 0:
                if cos1[2] == 114:
                    if chpos < 2:
                        if anifr < 4:
                            cos1s = 12
                            screen.blit(obji[cos1[1]], [122, 80])
                        else:
                            cos1s = 11
                    elif chpos == 2:
                        cos1s = 5
                    else:
                        cos1s = 8
                else:
                    if ((anifr / 8) - (anifr // 8)) < 0.5:
                        cos1s = 11
                    else:
                        cos1s = 13
                screen.blit(
                    pygame.transform.flip(cos1sp[cos1s],
                                          (cos1[2] != 114 and cos1[4] == 1),
                                          0),
                    [(cos1[2] + ((32 - cos1sp[cos1s].get_width()) // 2)),
                     (cos1[3] + (32 - cos1sp[cos1s].get_height()))])
            if chpos == 0:
                spr = 11
                mspr = 0
            elif chpos == 1:
                if anifr == 19:
                    pygame.mixer.stop()
                    sound[9].play()
                    chpos = 2
                    scr += 1
                spr = 12
                mspr = 1
                if len(cos1) > 0:
                    screen.blit(obj[cos1[1]], [56, 80])
                elif len(cos2) > 0:
                    screen.blit(obj[cos2[1]], [56, 80])
            elif chpos == 2:
                spr = 5
                mspr = 2
                if len(cos1) > 0:
                    screen.blit(obj[cos1[1]], [98, 80])
                elif len(cos2) > 0:
                    screen.blit(obj[cos2[1]], [98, 80])
            else:
                spr = 7
                mspr = 3
            screen.blit(msprs[mspr], [16, 98])
            screen.blit(
                pygame.transform.flip(asprs[avars[3][5]][spr], (spr != 12), 0),
                [(74 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                 (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            screen.blit((fnt.render(("%02d" % scr), 1, (0, 0, 100))), [48, 31])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    if anifr == 0:
                        if (avars[avars[3][5]][17] + (scr // 4)) < 6:
                            avars[avars[3][5]][17] += (scr // 4)
                        else:
                            avars[avars[3][5]][17] = 6
                        if (avars[3][2] + (scr * 10)) < 99999:
                            avars[3][2] += (scr * 10)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][7] += (scr // 4)
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 10), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                if len(cos1) > 0 and 100 < mp[1] < 132 and 114 < mp[
                        0] < 146 and chpos == 0:
                    if (pb == 1 and cos1[1] == 0) or (pb == 3
                                                      and cos1[1] == 1):
                        chpos = 1
                        anifr = 15
                    elif (pb == 1 and cos1[1] == 1) or (pb == 3
                                                        and cos1[1] == 0):
                        pygame.mixer.stop()
                        sound[12].play()
                        chpos = 3
                        anifr = 15
                if len(cos2) > 0 and 90 < mp[1] < 122 and 114 < mp[
                        0] < 146 and chpos == 0:
                    if (pb == 1 and cos2[1] == 0) or (pb == 3
                                                      and cos2[1] == 1):
                        chpos = 1
                        anifr = 15
                    elif (pb == 1 and cos2[1] == 1) or (pb == 3
                                                        and cos2[1] == 0):
                        pygame.mixer.stop()
                        sound[12].play()
                        chpos = 3
                        anifr = 15
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
            if play:
                if end == 0:
                    if ((anifr / 4) - (anifr // 4)) == 0:
                        if len(cos1) > 0 and cos1[(len(cos1) // 2)] > 114:
                            cos1[2] += ((36 * cos1[4]) - 18)
                        if len(cos2) > 0 and cos2[(len(cos2) // 2)] > 114:
                            cos2[2] += ((36 * cos2[4]) - 18)
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if len(cos1) == 0:
                    if len(cos2) == 0:
                        cos1 = [(randint(1, 132)), (randint(0, 1)), 208, 100,
                                0]
                        cos1sp = chsprs(cos1[0])
                    elif cos2[2] == 114:
                        if chpos == 0:
                            chpos = 3
                            anifr = 16
                        elif chpos == 2:
                            chpos = 0
                            cos2[4] = 1
                            cos2[2] += 18
                            if scr < 12:
                                cos1 = [(randint(1, 132)), (randint(0, 1)),
                                        208, 100, 0]
                                cos1sp = chsprs(cos1[0])
                        else:
                            play = False
                            end = 3
                    else:
                        play = False
                        end = 3
                else:
                    if cos1[2] == 114:
                        if chpos == 0:
                            chpos = 3
                            anifr = 16
                        elif chpos == 2:
                            chpos = 0
                            cos1[4] = 1
                            cos1[2] += 18
                            cos2 = [(randint(1, 132)), (randint(0, 1)), 208,
                                    90, 0]
                            cos2sp = chsprs(cos2[0])
                        else:
                            play = False
                            end = 3
                    elif cos1[4]:
                        cos1 = []
                        cos2[2] = 114
                    else:
                        cos1[2] = 114
                        if len(cos2) > 0:
                            cos2 = []
            elif end == 3:
                if scr < 12:
                    if scr < 4:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 24
0
def game(avars, asprs, screen, tsprs):

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    tuts = True
    strt = False
    play = False
    end = 0

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/actingt.png").convert()

    classbg = pygame.image.load("Sprites/Misc/bg/gorclass.png").convert()
    theatbg = pygame.image.load("Sprites/Misc/bg/actingbg.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    fcsim = [
        pygame.image.load("Sprites/Misc/bg/actingbgu.png").convert(),
        pygame.image.load("Sprites/Misc/bg/actingbgd.png").convert(),
        pygame.image.load("Sprites/Misc/bg/actingbgr.png").convert(),
        pygame.image.load("Sprites/Misc/bg/actingbgl.png").convert()
    ]

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(classbg, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 40])
                tcs = 0
                spr = 3
            else:
                screen.blit(go, [95, 40])
                tcs = 2
                spr = 5
            screen.blit(tsprs[tcs], [136, 98])
            screen.blit(asprs[avars[3][5]][spr],
                        [(72 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(theatbg, [0, 0])
            a = 0
            while a < (expt + (cexp < 4)):
                screen.blit(fcsim[expl[a]], [(85 + ((a % 4) * 18)),
                                             (37 + (18 * (a // 4)))])
                a += 1
            if cexp == 4:
                tcs = 0 + (anifr % 12 > 5)
                spr = 3 + (anifr % 12 > 5)
            else:
                tcs = 2 + (cexp != expl[expt])
                spr = 3 + ((cexp == 0) * 2) + ((cexp == 1) * 4) + (
                    (cexp == 3) * 5)
            screen.blit(tsprs[tcs], [154, 88])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], 1, 0),
                        [(54 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (88 + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(classbg, [0, 0])
            if end == 4:
                if scr < 1:
                    screen.blit(toobad, [71, 40])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                        tcs = 1
                    else:
                        spr = 7
                        tcs = 3
                else:
                    if scr < 2:
                        screen.blit(good, [94, 40])
                    elif scr < 3:
                        screen.blit(great, [85, 40])
                    else:
                        screen.blit(excellent, [51, 40])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 4
                        tcs = 1
                    else:
                        spr = 5
                        tcs = 2
            screen.blit(tsprs[tcs], [136, 98])
            screen.blit(asprs[avars[3][5]][spr],
                        [(72 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    elif (30 < mp[1] <
                          86) and (34 < mp[0] < 62 or 178 < mp[0] < 206
                                   ) and end == 1 and play and cexp == 4:
                        anifr = 17
                        cexp = [0, 3, 2,
                                1][(2 * (mp[0] // 120)) + (mp[1] // 58)]
                        sound[12 - (3 * (cexp == expl[expt]))].play()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < (23 + (72 * (play and end == 0))):
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
                expl = [
                    randint(0, 3),
                    randint(0, 3),
                    randint(0, 3),
                    randint(0, 3),
                    randint(0, 3),
                    randint(0, 3),
                    randint(0, 3),
                    randint(0, 3)
                ]
                expt = 8
                cexp = 4
            elif play:
                if end == 0:
                    end = 1
                    expt = 0
                elif end == 1 and cexp < 4:
                    if cexp == expl[expt]:
                        expt += 1
                        if expt == 8:
                            scr += 1
                            expl = [
                                randint(0, 3),
                                randint(0, 3),
                                randint(0, 3),
                                randint(0, 3),
                                randint(0, 3),
                                randint(0, 3),
                                randint(0, 3),
                                randint(0, 3)
                            ]
                            end = 0
                            if scr == 3:
                                play = False
                                end = 4
                        cexp = 4
                    else:
                        play = False
                        end = 4
                if not play:
                    if scr < 1:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    avars[avars[3][5]][9] += (scr * 4)
            elif end == 4:
                ret = 0
                return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 25
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    bskpos = 14
    flip = False

    dash = False

    fallmp = [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]

    prsb = 2

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/heartraint.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/heartrainbg.png").convert()

    basket = [
        pygame.image.load("Sprites/Misc/obj/hrtrnbsk.png").convert(),
        pygame.image.load("Sprites/Misc/obj/hrtrnbskls.png").convert(),
        pygame.image.load("Sprites/Misc/obj/hrtrnbskwn.png").convert()
    ]

    fallit = [
        pygame.image.load("Sprites/Misc/emo/heart.png").convert(),
        pygame.image.load("Sprites/Misc/sick/skull.png").convert()
    ]

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    pygame.key.set_repeat()

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            screen.blit((fnt.render(("%02d" % scr), 1, (240, 0, 102))),
                        [40, 48])
            spr = 3 + (8 * (prsb < 2)) + (2 *
                                          (((prsb < 2) and (anifr % 12 < 6)) or
                                           (end == 1))) + (2 * ((end == 1) and
                                                                (scr < 12)))
            y = 0
            for a in fallmp:
                if a[0] > 0:
                    screen.blit(fallit[(a[0] - 1)], [(4 + (8 * a[1])),
                                                     (104 - (16 * y))])
                y += 1
            screen.blit(basket[(end == 1) + (scr == 12)], [(8 * bskpos), 102])
            screen.blit(
                pygame.transform.flip(asprs[avars[3][5]][spr], flip, 0),
                [((8 * bskpos) - (asprs[avars[3][5]][spr].get_width() * flip) +
                  (24 * (not flip))),
                 (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 15), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 8:
                        screen.blit(good, [94, 48])
                    elif scr < 12:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                if 24 < mp[1] < 136 and end == 0 and play:
                    if pb in [3, 1]:
                        prsb = [3, 1].index(pb)
                    else:
                        dash = not dash
            if event.type == MOUSEBUTTONUP:
                ub = event.button
                if end == 0 and play:
                    if ub in [3, 1]:
                        prsb = 2
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play and end == 1:
                play = False
                end = 3
                if (avars[avars[3][5]][17] + (scr // 4)) < 6:
                    avars[avars[3][5]][17] += (scr // 4)
                else:
                    avars[avars[3][5]][17] = 6
                if (avars[3][2] + (scr * 15)) < 99999:
                    avars[3][2] += (scr * 15)
                else:
                    avars[3][2] = 99999
                if (avars[avars[3][5]][18] - (scr // 4)) > 1:
                    avars[avars[3][5]][18] -= (scr // 4)
                else:
                    avars[avars[3][5]][18] = 1
                avars[avars[3][5]][7] += (scr * 2) // 3
            elif end == 3:
                if scr < 12:
                    if scr < 4:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        if play and end == 0 and prsb < 2:
            if prsb == 0:
                bskpos += (1 + (3 * dash))
                if bskpos > 27:
                    bskpos = 27
                flip = True
            elif prsb == 1:
                bskpos -= (1 + (3 * dash))
                if bskpos < 0:
                    bskpos = 0
                flip = False
        if play and end == 0 and anifr == 0:
            a = fallmp[len(fallmp) - 1][0] == 0
            fallmp.pop(0)
            fallmp.append([randint(a, (2 * a)), randint(0, 27)])
            if fallmp[0][0] > 0:
                if fallmp[0][0] == 1 and abs(fallmp[0][1] - bskpos) < 2:
                    pygame.mixer.stop()
                    sound[9].play()
                    scr += 1
                    if scr == 12:
                        end = 1
                        prsb = 2
                        anifr = 18
                elif not (fallmp[0][0] == 2
                          and abs(fallmp[0][1] - bskpos) > 1):
                    pygame.mixer.stop()
                    sound[12].play()
                    end = 1
                    prsb = 2
                    anifr = 18
                if abs(fallmp[0][1] - bskpos) < 2:
                    fallmp[0][0] = 0
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 26
0
def game(avars, asprs, screen, tsprs):

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    plntl = [0, 0, 0, 0, 0, 0, 0, 0]

    wtplnt = 0

    tuts = True
    strt = False
    play = False
    end = 0

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    classbg = pygame.image.load("Sprites/Misc/bg/kndclass.png").convert()

    pgbk = ["pgbk", "pgbks", "pgbka", "pgbkw"]

    s, tm, w = weather.chktime(avars)

    tutimg = pygame.image.load("Sprites/Misc/bg/watert.png").convert()

    gamebg = pygame.image.load("Sprites/Misc/bg/" + pgbk[s] + ".png").convert()
    gardbg = pygame.image.load("Sprites/Misc/bg/waterbg.png").convert()

    gamebg.blit(gardbg, [0, 0])

    plnt1 = pygame.image.load("Sprites/Misc/bg/water1.png").convert()
    plnt2 = pygame.image.load("Sprites/Misc/bg/water2.png").convert()
    plnt3 = pygame.image.load("Sprites/Misc/bg/water3.png").convert()

    plnts = [plnt2, plnt3]

    plntg = pygame.image.load("Sprites/Misc/bg/water4.png").convert()

    wtcan = pygame.image.load("Sprites/Misc/obj/watercan.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(classbg, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 40])
                tcs = 0
                spr = 3
            else:
                screen.blit(go, [95, 40])
                tcs = 2
                spr = 5
            screen.blit(tsprs[tcs], [136, 98])
            screen.blit(asprs[avars[3][5]][spr],
                        [(72 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(gamebg, [0, 0])
            if end < 2:
                tcs = 0 + (anifr % 12 < 6)
                spr = 3 + (anifr % 12 < 6)
            elif end == 2:
                tcs = 1
                spr = 12
            else:
                tcs = 2 + (scr < 1152)
                spr = 5 + (scr < 1152)
            if end < 3:
                a = 0
                while a < 8:
                    if end == 0:
                        screen.blit(plnt1, [(10 + (28 * a)), 88])
                    else:
                        screen.blit(plnts[plntl[a] // 4],
                                    [(10 + (28 * a)), 88])
                    a += 1
            if end == 3:
                if scr < 1152:
                    a = 0
                    while a < 8:
                        screen.blit(plnts[plntl[a] // 5],
                                    [(10 + (28 * a)), 88])
                        a += 1
                else:
                    screen.blit(plntg, [10, 80])
            if end == 0:
                screen.blit(wtcan, [(26 + (28 * (anifr // 3))), 72])
            elif end == 2:
                screen.blit(wtcan, [(26 + (28 * wtplnt)), 72])
            screen.blit(tsprs[tcs], [205, 101])
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], 1, 0),
                        [(3 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (101 + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(classbg, [0, 0])
            if end == 4:
                if scr < 4:
                    screen.blit(toobad, [71, 40])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                        tcs = 1
                    else:
                        spr = 7
                        tcs = 3
                else:
                    if scr < 8:
                        screen.blit(good, [94, 40])
                    elif scr < 12:
                        screen.blit(great, [85, 40])
                    else:
                        screen.blit(excellent, [51, 40])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 4
                        tcs = 1
                    else:
                        spr = 5
                        tcs = 2
            screen.blit(tsprs[tcs], [136, 98])
            screen.blit(asprs[avars[3][5]][spr],
                        [(72 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    elif 88 < mp[1] < 112 and 8 < mp[
                            0] < 232 and play and end == 1:
                        end = 2
                        wtplnt = (mp[0] - 8) // 28
                        plntl[wtplnt] = 0
                        anifr = 19
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if end == 0:
                    end = 1
                    pygame.mixer.stop()
                    sound[9].play()
                elif end == 2:
                    end = 1
                elif end == 3:
                    play = False
                    end = 4
                    scr //= 96
                    if scr < 4:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    avars[avars[3][5]][7] += scr
            elif end == 4:
                ret = 0
                return (avars, ret)
        if play and end < 3:
            scr += 1
            if scr >= 1152:
                end = 3
                anifr = 12
                pygame.mixer.stop()
                sound[9].play()
        if play and end == 1 and anifr % 4 == 0:
            a = 0
            b = 0
            while a < 8:
                plntl[a] += choice([0, 0, 0, 1])
                b += plntl[a] > 7
                a += 1
            if b > 0:
                end = 3
                anifr = 12
                plnts.pop(0)
                plnts.append(plnt1)
                pygame.mixer.stop()
                sound[12].play()
        r = pygame.Surface([240, 160]).convert()
        r.blit(screen, [0, 0])
        r = pygame.transform.scale(
            r, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(r, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 27
0
def game(avars, asprs, screen):
    class Mnbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    chngsts = False

    scr = 0

    ret = 1

    ycorr = -1

    tuts = True
    strt = False
    play = False
    end = 0

    def vals():
        studs = chsprs(randint(49, 132))
        expl = [
            randint(0, 3),
            randint(0, 3),
            randint(0, 3),
            randint(0, 3),
            randint(0, 3),
            randint(0, 3),
            randint(0, 3),
            randint(0, 3)
        ]
        sir = randint(0, 1)
        exps = []
        for i in expl:
            exps.append(i)
        if sir:
            exps[randint(0, 7)] = randint(0, 3)
            while exps == expl:
                exps[randint(0, 7)] = randint(0, 3)
        expt = 8
        return (studs, expl, sir, exps, expt)

    def chsprs(chara):
        sprs = []
        bs = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "b.png")
        ss = pygame.image.load("Sprites/Characters/chara_" + str(chara) +
                               "s.png")
        for i in range(3):
            a = pygame.Surface([16, 16])
            a.fill((0, 255, 255))
            a.blit(ss, [-(16 * (i % 2)), -(16 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            a.convert()
            sprs.append(a)
        s = (bs.get_width() // 4)
        for i in range(16):
            spr = pygame.Surface([s, s]).convert()
            spr.fill((0, 255, 255))
            spr.blit(bs, [-(s * (i % 4)), -(s * (i // 4))])
            spr.set_colorkey((0, 255, 255))
            sprs.append(spr)
        return (sprs)

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/bclasst.png").convert()

    classbg = pygame.image.load("Sprites/Misc/bg/gorclass.png").convert()
    blackbg = pygame.image.load("Sprites/Misc/bg/actingbg.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    studs, expl, sir, exps, expt = vals()

    fcsim = [
        pygame.image.load("Sprites/Misc/bg/actingbgu.png").convert(),
        pygame.image.load("Sprites/Misc/bg/actingbgd.png").convert(),
        pygame.image.load("Sprites/Misc/bg/actingbgr.png").convert(),
        pygame.image.load("Sprites/Misc/bg/actingbgl.png").convert()
    ]

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(classbg, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr],
                        [(104 +
                          ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                         (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(blackbg, [0, 0])
            if end == 0:
                spr = 3 + (anifr % 12 > 5)
                if expt == 8:
                    sts = 3 + (anifr % 12 > 5)
                    for i in range(8):
                        screen.blit(fcsim[expl[i]], [(85 + ((i % 4) * 18)),
                                                     (37 + (18 * (i // 4)))])
                else:
                    sts = [5, 7, 3, 8][exps[expt]]
            elif end == 1:
                spr = 6
                sts = 6
                for i in range(8):
                    screen.blit(fcsim[expl[i]], [(85 + ((i % 4) * 18)),
                                                 (37 + (18 * (i // 4)))])
            else:
                spr = [5, 8, 9][([sir, ycorr].count(0) < 2) + (sir != ycorr)]
                sts = [5, 7, 9][([sir, ycorr].count(0) < 2) + (sir != ycorr)]
                for i in range(8):
                    screen.blit(fcsim[expl[i]], [(85 + ((i % 4) * 18)),
                                                 (37 + (18 * (i // 4)))])
            screen.blit(asprs[avars[3][5]][spr], [154, 88])
            screen.blit(pygame.transform.flip(studs[sts], 1, 0), [58, 96])
        else:
            screen.blit(classbg, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 800), 1, (0, 0, 100))
                    screen.blit(mntxt, [(138 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 1:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 2:
                        screen.blit(good, [94, 48])
                    elif scr < 3:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(
                    asprs[avars[3][5]][spr],
                    [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)),
                     (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return (avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                if play and end == 1 and pb in [1, 3]:
                    ycorr = pb // 2
                    end = 2
                    anifr = 11
                    pygame.mixer.stop()
                    sound[9 + (3 * (sir != ycorr))].play()
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < (23 + (72 * (play and end == 0))):
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
            elif play:
                if end == 0 and expt == 8:
                    expt = -1
                elif end == 2:
                    if sir == ycorr:
                        scr += 1
                        end = 0
                        studs, expl, sir, exps, expt = vals()
                        ycorr = -1
                    if end == 2 or scr == 3:
                        end = 3
                        play = False
                        if (avars[3][2] + (scr * 800)) < 99999:
                            avars[3][2] += (scr * 800)
                        else:
                            avars[3][2] = 99999
                        avars[avars[3][5]][9] += ((scr * 8) // 3)
                        avars[avars[3][5]][5] += ((scr * 4) // 3)
                        avars[avars[3][5]][7] += ((scr * 4) // 3)
            elif end == 3:
                if scr < 1:
                    pygame.mixer.stop()
                    sound[14].play()
                else:
                    pygame.mixer.stop()
                    sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return (avars, ret)
        if end == 0 and expt < 8 and anifr % 12 == 0:
            expt += 1
            if expt == 8:
                end = 1
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 28
0
def door(avars, asprs, screen):
    class Txtbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box1.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    bx = True

    scr = 0

    clt = 0

    spclk = False

    walk = False

    dest = 0

    chngsts = False

    ret = 1

    swthr = ["skyd", "skyaf", "skyn"]
    cwthr = ["skydc", "skydc", "skync"]
    wthrbk = [swthr, cwthr, cwthr]

    jloc = [
        "PRESCHOOL", "SCHOOL", "JOB HUNT", "LABORATORY", "LIBRARY", "TAMAX TV",
        "HOSPITAL", "GOTCHI BANK", "LOGIC CLASS", "CONCERT",
        "TAILORING STUDIO", "BAKERY", "HAIR SALON", "FLOWER SHOP",
        "ARTISTRY CLASS", "HOT SPRINGS", "PRESCHOOL", "GOTCHI STATION",
        "POLICE STATION", "RESTAURANT", "KINDNESS CLASS", "COMEDY SHOW",
        "CIRCUS", "FESTIVAL", "COMIC STUDIO", "TOY FACTORY", "HUMOUR CLASS",
        "AUDITORIUM", "GALLERY", "JEWELRY SHOP", "DANCE STUDIO", "MAGIC SHOW",
        "BEAUTY CLASS", "GYM", "ADVENTURE", "DOJO", "FIRE STATION",
        "CARPENTRY SHOP", "PASSION CLASS"
    ]

    def drbx():
        tile = Txtbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 224:
            tx += 8
            drbx()
        tx = 232
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 96:
            tl = 3
            ty += 8
            drhl()

    def walkani():
        global bkx
        global wthy
        global sprxy
        global spr
        if ((anifr / 12) - (anifr // 12)) < 0.5:
            wthy = 0
            bkx = -8
            spr = 11
            sprxy = 98 + (32 - asprs[avars[3][5]][spr].get_height())
        else:
            if s == 3:
                wthy = 8
            else:
                wthy = 16
            bkx = 0
            spr = 13
            sprxy = 96 + (32 - asprs[avars[3][5]][spr].get_height())

    def arrive():
        global wthy
        global sprx
        global spry
        global spr
        if anifr < 48:
            if ((anifr / 12) - (anifr // 12)) < 0.5:
                wthy = 0
                spr = 11
                spry = 98 + (32 - asprs[avars[3][5]][spr].get_height())
            else:
                if s == 3:
                    wthy = 8
                else:
                    wthy = 16
                spr = 13
                spry = 96 + (32 - asprs[avars[3][5]][spr].get_height())
        else:
            if ((anifr / 12) - (anifr // 12)) < 0.5:
                wthy = 0
                spr = 3
                spry = 98 + (32 - asprs[avars[3][5]][spr].get_height())
            else:
                if s == 3:
                    wthy = 8
                else:
                    wthy = 16
                spr = 5
                spry = 96 + (32 - asprs[avars[3][5]][spr].get_height())
        if 0 <= anifr < 6:
            sprx = 208 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        elif 6 <= anifr < 12:
            sprx = 198 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        elif 12 <= anifr < 18:
            sprx = 188 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        elif 18 <= anifr < 24:
            sprx = 178 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        elif 24 <= anifr < 30:
            sprx = 168 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        elif 30 <= anifr < 36:
            sprx = 158 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        elif 36 <= anifr < 42:
            sprx = 148 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        elif 42 <= anifr < 48:
            sprx = 138 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)
        else:
            sprx = 128 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 0)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    wlkbk = pygame.image.load("Sprites/Misc/bg/walkbg.png").convert()
    wlkfr = pygame.image.load("Sprites/Misc/bg/walkfg.png").convert()

    rain = pygame.image.load("Sprites/Misc/bg/rain.png").convert()
    snow = pygame.image.load("Sprites/Misc/bg/snow.png").convert()

    tamadepabk = pygame.image.load("Sprites/Misc/bg/tamadepa.png").convert()

    presbk = pygame.image.load("Sprites/Misc/bg/presen.png").convert()

    schbk = [
        pygame.image.load("Sprites/Misc/bg/schoolen.png").convert(),
        pygame.image.load("Sprites/Misc/bg/schoolens.png").convert(),
        pygame.image.load("Sprites/Misc/bg/schoolena.png").convert(),
        pygame.image.load("Sprites/Misc/bg/schoolenw.png").convert()
    ]

    datepl = pygame.image.load("Sprites/Misc/bg/dateplen.png").convert()

    eggado = pygame.image.load("Sprites/Misc/bg/eggout.png").convert()

    parents = pygame.image.load("Sprites/Misc/bg/parento.png").convert()

    if avars[avars[3][5]][31] > 3:
        jobpbk = pygame.Surface((240, 160)).convert()
        s = pygame.image.load("Sprites/Misc/bg/job_1.png").convert()
        jobpbk.blit(s, [
            -(240 * ((avars[avars[3][5]][31] - 4) % 6)),
            -(160 * ((avars[avars[3][5]][31] - 4) // 6))
        ])

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 112]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 104
    drhl()

    scrli = pygame.image.load("Sprites/Misc/txtbox/scrli.png").convert()

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if bx:
            screen.blit(textbox, [0, 24])
            screen.blit(scrli, [232, 128])
            if scr == 0:
                screen.blit((fnt.render("TAMADEPA", 1, (0, 0, 100))), [8, 34])
                screen.blit((fnt.render("PARK", 1, (0, 0, 100))), [8, 50])
                if avars[avars[3][5]][31] == 0 or avars[avars[3][5]][31] > 39:
                    screen.blit((fnt.render("? ? ? ? ?", 1, (102, 102, 255))),
                                [8, 66])
                else:
                    if 8 < int(avars[3][6][:2]) < 17:
                        screen.blit(
                            (fnt.render(jloc[avars[avars[3][5]][31] - 1], 1,
                                        (0, 0, 100))), [8, 66])
                    else:
                        screen.blit(
                            (fnt.render(jloc[avars[avars[3][5]][31] - 1], 1,
                                        (102, 102, 255))), [8, 66])
                if avars[avars[3][5]][2] > 691199:
                    screen.blit((fnt.render("DATE PLACE", 1, (0, 0, 100))),
                                [8, 82])
                else:
                    screen.blit((fnt.render("DATE PLACE", 1, (102, 102, 255))),
                                [8, 82])
                if avars[avars[3][5]][2] > 691199:
                    screen.blit((fnt.render("EGG ADOPTION", 1, (0, 0, 100))),
                                [8, 98])
                else:
                    screen.blit((fnt.render("EGG ADOPTION", 1,
                                            (102, 102, 255))), [8, 98])
                if (8 < int(avars[3][6][:2]) <
                        17) and (avars[avars[3][5]][1] <
                                 6) and (avars[avars[3][5]][3] > 1):
                    screen.blit((fnt.render("PARENTS", 1, (0, 0, 100))),
                                [8, 114])
                else:
                    screen.blit((fnt.render("PARENTS", 1, (102, 102, 255))),
                                [8, 114])
            elif scr == 1:
                if (avars[3][14][0] == '1') and (avars[3][14][7] == '1'):
                    screen.blit((fnt.render("MAKKAKKA TOWN", 1,
                                            (255, 102, 0))), [8, 34])
                else:
                    screen.blit((fnt.render("? ? ? ? ?", 1, (102, 102, 255))),
                                [8, 34])
                if (avars[3][14][1] == '1') and (avars[3][14][4] == '1'):
                    screen.blit((fnt.render("MAME CITY", 1, (102, 102, 204))),
                                [8, 50])
                else:
                    screen.blit((fnt.render("? ? ? ? ?", 1, (102, 102, 255))),
                                [8, 50])
                if (avars[3][14][5] == '1') and (avars[3][14][6] == '1'):
                    screen.blit((fnt.render("GURUGURU TOWN", 1,
                                            (204, 102, 102))), [8, 66])
                else:
                    screen.blit((fnt.render("? ? ? ? ?", 1, (102, 102, 255))),
                                [8, 66])
                if (avars[3][14][2] == '1') and (avars[3][14][3] == '1'):
                    screen.blit((fnt.render("PATCHI FOREST", 1,
                                            (102, 204, 102))), [8, 82])
                else:
                    screen.blit((fnt.render("? ? ? ? ?", 1, (102, 102, 255))),
                                [8, 82])
                if avars[3][14].count('0') == 0:
                    screen.blit((fnt.render("URA TAMATOWN", 1, (0, 153, 238))),
                                [8, 98])
                else:
                    screen.blit((fnt.render("? ? ? ? ?", 1, (102, 102, 255))),
                                [8, 98])
        elif walk:
            if ((anifr / 12) - (anifr // 12)) == 0.5:
                pygame.mixer.stop()
                sound[6].play()
            screen.blit(wlkwb, [0, 0])
            screen.blit(wlkbk, [0, 0])
            walkani()
            screen.blit(wlkfr, [bkx, 24])
            screen.blit(asprs[avars[3][5]][spr], [sprxy, sprxy])
            if w == 2:
                screen.blit(wprec, [0, wthy])
        else:
            if dest == 0:
                screen.blit(tamadepabk, [0, 0])
            elif dest == 2:
                screen.blit(wlkwb, [0, 0])
                screen.blit(presbk, [0, 0])
            elif dest == 3:
                screen.blit(wlkwb, [0, 0])
                screen.blit(schbk[s], [0, 0])
            elif 4 < dest < 41:
                screen.blit(jobpbk, [0, 0])
            elif dest == 41:
                screen.blit(datepl, [0, 0])
            elif dest == 42:
                screen.blit(eggado, [0, 0])
            elif dest == 43:
                screen.blit(wlkwb, [0, 0])
                screen.blit(parents, [0, 0])
            if anifr < 48 and ((anifr / 12) - (anifr // 12)) == 0.5:
                pygame.mixer.stop()
                sound[6].play()
            elif ((anifr / 12) - (anifr // 12)) == 0.5:
                pygame.mixer.stop()
                sound[9].play()
            arrive()
            screen.blit(asprs[avars[3][5]][spr], [sprx, spry])
            if w == 2 and dest not in [10, 16, 22, 28, 34, 40]:
                screen.blit(wprec, [0, wthy])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button + (spclk * (1 + (event.button > 2)))
                if pb in [2, 4]:
                    if 24 < mp[1] < 136:
                        sound[2].play()
                        if scr != 1:
                            scr += 1
                        else:
                            scr = 0
                        clt = 0
                elif pb == 5:
                    if 24 < mp[1] < 136:
                        sound[2].play()
                        if scr != 0:
                            scr -= 1
                        else:
                            scr = 1
                        clt = 0
                elif pb == 1:
                    clt = 0
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars)
                    if bx:
                        if scr == 0:
                            if (32 < mp[1] < 48) and (8 < mp[0] < 112):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 0
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (48 < mp[1] < 64) and (8 < mp[0] < 58):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 1
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (64 < mp[1] < 80) and (8 < mp[0] < 232) and (
                                    8 < int(avars[3][6][:2]) <
                                    17) and 0 < avars[avars[3][5]][31] < 40:
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = avars[avars[3][5]][31] + 1
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (80 < mp[1] < 96) and (8 < mp[0] < 232) and (
                                    avars[avars[3][5]][2] > 691199):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 41
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (96 < mp[1] < 112) and (8 < mp[0] < 232) and (
                                    avars[avars[3][5]][2] > 691199):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 42
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (112 < mp[1] < 128) and (8 < mp[0] < 232) and (
                                    8 < int(avars[3][6][:2]) <
                                    17) and (avars[avars[3][5]][1] < 6) and (
                                        avars[avars[3][5]][3] > 1):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 43
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                        elif scr == 1:
                            if (32 < mp[1] < 48) and (8 < mp[0] < 232) and (
                                    avars[3][14][0]
                                    == '1') and (avars[3][14][7] == '1'):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 44
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (48 < mp[1] < 64) and (8 < mp[0] < 232) and (
                                    avars[3][14][1]
                                    == '1') and (avars[3][14][4] == '1'):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 45
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (64 < mp[1] < 80) and (8 < mp[0] < 232) and (
                                    avars[3][14][5]
                                    == '1') and (avars[3][14][6] == '1'):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 46
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (80 < mp[1] < 90) and (8 < mp[0] < 232) and (
                                    avars[3][14][2]
                                    == '1') and (avars[3][14][3] == '1'):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 47
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                            if (96 < mp[1] < 112) and (8 < mp[0] < 232) and (
                                    avars[3][14].count('0') == 0):
                                pygame.mixer.stop()
                                sound[3].play()
                                bx = False
                                dest = 48
                                walk = True
                                s, tm, w = weather.chktime(avars)
                                wlkwb = pygame.image.load("Sprites/Misc/bg/" +
                                                          wthrbk[w][tm] +
                                                          ".png").convert()
                                if s < 3:
                                    wprec = rain
                                else:
                                    wprec = snow
                                anifr = -1
                    elif anifr > 3:
                        if 24 < mp[1] < 136:
                            pygame.mixer.stop()
                            sound[3].play()
                            anifr = 63
                            walk = False
                if pb == 3 and bx and (64 < mp[1] < 80) and (
                        8 < mp[0] < 232) and (8 < int(avars[3][6][:2]) < 17
                                              ) and avars[avars[3][5]][31] > 3:
                    pygame.mixer.stop()
                    sound[4].play()
                    avars[avars[3][5]][31] = 3
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
                if bx:
                    clt += 1
        if chngsts:
            avars = statusup.chngsts(avars)
            if avars[avars[3][5]][20] or not avars[avars[3][5]][21]:
                return (avars)
            chngsts = False
        if anifr < 63:
            anifr += 1
        else:
            anifr = 0
            if not bx:
                if dest == 0 and (not walk):
                    avars, ret = tamadepa.depa(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 1:
                    avars, ret = park.prk(avars, asprs, screen, 0, 0, 0, [])
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 2 and (not walk):
                    avars, ret = preschool.pres(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 3 and (not walk):
                    avars, ret = tamaschool.school(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 4:
                    avars, ret = jobhnt.job(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                    if avars[avars[3][5]][31] > 3:
                        jobpbk = pygame.Surface((240, 160)).convert()
                        s = pygame.image.load(
                            "Sprites/Misc/bg/job_1.png").convert()
                        jobpbk.blit(s, [
                            -(240 * ((avars[avars[3][5]][31] - 4) % 6)),
                            -(160 * ((avars[avars[3][5]][31] - 4) // 6))
                        ])
                elif dest == 5 and (not walk):
                    avars, ret = lab.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 6 and (not walk):
                    avars, ret = libr.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 7 and (not walk):
                    avars, ret = tamax.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 8 and (not walk):
                    avars, ret = hospital.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 9 and (not walk):
                    avars, ret = bank.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 10 and (not walk):
                    avars, ret = lclass.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 11 and (not walk):
                    avars, ret = concert.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 12 and (not walk):
                    avars, ret = fashion.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 13 and (not walk):
                    avars, ret = bakery.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 14 and (not walk):
                    avars, ret = hair.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 15 and (not walk):
                    avars, ret = florist.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 16 and (not walk):
                    avars, ret = aclass.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 17 and (not walk):
                    avars, ret = springs.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 18 and (not walk):
                    avars, ret = prest.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 19 and (not walk):
                    avars, ret = station.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 20 and (not walk):
                    avars, ret = police.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 21 and (not walk):
                    avars, ret = chef.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 22 and (not walk):
                    avars, ret = kclass.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 23 and (not walk):
                    avars, ret = comedy.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 24 and (not walk):
                    avars, ret = circus.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 25 and (not walk):
                    avars, ret = festival.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 26 and (not walk):
                    avars, ret = mangaka.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 27 and (not walk):
                    avars, ret = toy.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 28 and (not walk):
                    avars, ret = hclass.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 29 and (not walk):
                    avars, ret = enka.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 30 and (not walk):
                    avars, ret = art.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 31 and (not walk):
                    avars, ret = jewel.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 32 and (not walk):
                    avars, ret = dancer.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 33 and (not walk):
                    avars, ret = magic.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 34 and (not walk):
                    avars, ret = bclass.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 35 and (not walk):
                    avars, ret = builder.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 36 and (not walk):
                    avars, ret = adventure.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 37 and (not walk):
                    avars, ret = martial.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 38 and (not walk):
                    avars, ret = fire.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 39 and (not walk):
                    avars, ret = carpenter.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 40 and (not walk):
                    avars, ret = pclass.game(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 41 and (not walk):
                    avars, ret = date.fdt(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 42 and (not walk):
                    avars, ret = eggad.adop(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 43 and (not walk):
                    avars, ret = parent.phom(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 44:
                    avars, ret = makkaka.prk(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 45:
                    avars, ret = mamec.prk(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 46:
                    avars, ret = gurut.prk(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 47:
                    avars, ret = patchif.prk(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
                elif dest == 48:
                    avars, ret = uratama.prk(avars, asprs, screen)
                    if ret:
                        return (avars)
                    bx = True
            walk = False
        if clt > 29:
            return (avars)
        r = pygame.Surface([240, 160]).convert()
        r.blit(screen, [0, 0])
        r = pygame.transform.scale(
            r, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(r, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 29
0
def school(avars, asprs, screen):
    class Txtbx(pygame.sprite.Sprite):

        bxt = []

        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box1.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]

    kr = True

    bx = avars[avars[3][5]][2] < 691200

    grad = avars[avars[3][5]][2] > 691199

    clt = 0

    skcls = 0

    tani = True

    chngsts = False

    scr = 0

    ret = 1
    cret = 1

    def teachersp(n):
        sprs = []
        s = pygame.image.load("Sprites/NPC/" + n + ".png").convert()
        for i in range(4):
            a = pygame.Surface([32, 32]).convert()
            a.fill((0, 255, 255))
            a.blit(s, [-(32 * (i % 2)), -(32 * (i // 2))])
            a.set_colorkey((0, 255, 255))
            sprs.append(a)
        return (sprs)

    def drbx():
        tile = Txtbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 224:
            tx += 8
            drbx()
        tx = 232
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 96:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    classbk = [
        pygame.image.load("Sprites/Misc/bg/intclass.png").convert(),
        pygame.image.load("Sprites/Misc/bg/styclass.png").convert(),
        pygame.image.load("Sprites/Misc/bg/kndclass.png").convert(),
        pygame.image.load("Sprites/Misc/bg/humclass.png").convert(),
        pygame.image.load("Sprites/Misc/bg/gorclass.png").convert(),
        pygame.image.load("Sprites/Misc/bg/pasclass.png").convert()
    ]

    classbkg = [
        [
            pygame.image.load("Sprites/Misc/bg/intclass1.png").convert(),
            pygame.image.load("Sprites/Misc/bg/intclass2.png").convert(),
            pygame.image.load("Sprites/Misc/bg/intclass3.png").convert()
        ],
        [
            pygame.image.load("Sprites/Misc/bg/styclass1.png").convert(),
            pygame.image.load("Sprites/Misc/bg/styclass2.png").convert(),
            pygame.image.load("Sprites/Misc/bg/styclass3.png").convert()
        ],
        [
            pygame.image.load("Sprites/Misc/bg/kndclass1.png").convert(),
            pygame.image.load("Sprites/Misc/bg/kndclass2.png").convert(),
            pygame.image.load("Sprites/Misc/bg/kndclass3.png").convert()
        ],
        [
            pygame.image.load("Sprites/Misc/bg/humclass1.png").convert(),
            pygame.image.load("Sprites/Misc/bg/humclass2.png").convert(),
            pygame.image.load("Sprites/Misc/bg/humclass3.png").convert()
        ],
        [
            pygame.image.load("Sprites/Misc/bg/gorclass1.png").convert(),
            pygame.image.load("Sprites/Misc/bg/gorclass2.png").convert(),
            pygame.image.load("Sprites/Misc/bg/gorclass3.png").convert()
        ],
        [
            pygame.image.load("Sprites/Misc/bg/pasclass1.png").convert(),
            pygame.image.load("Sprites/Misc/bg/pasclass2.png").convert(),
            pygame.image.load("Sprites/Misc/bg/pasclass3.png").convert()
        ]
    ]

    gradbg = pygame.image.load("Sprites/Misc/bg/schoolg.png").convert()
    gradl = pygame.image.load("Sprites/Misc/mail/joben.png").convert()

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 112]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 104
    drhl()

    intct = fnt.render("LOGIC", 1, (0, 128, 255))
    styct = fnt.render("ARTISTRY", 1, (255, 128, 51))
    kndct = fnt.render("KINDNESS", 1, (102, 255, 51))
    humct = fnt.render("HUMOUR", 1, (153, 128, 0))
    gorct = fnt.render("BEAUTY", 1, (0, 153, 128))
    pasct = fnt.render("PASSION", 1, (204, 0, 153))

    inti = pygame.image.load("Sprites/Misc/menu/inti.png").convert()
    styi = pygame.image.load("Sprites/Misc/menu/styi.png").convert()
    kndi = pygame.image.load("Sprites/Misc/menu/kndi.png").convert()
    humi = pygame.image.load("Sprites/Misc/menu/humi.png").convert()
    gori = pygame.image.load("Sprites/Misc/menu/gori.png").convert()
    pasi = pygame.image.load("Sprites/Misc/menu/pasi.png").convert()

    if avars[avars[3][5]][2] > 691199:
        tsprs = teachersp("Mimizu")
        avars[avars[3][5]][31] = 3

    teachn = [["MrTurtle", "ProfFlask", "MrRobomecha"],
              ["MsFlower", "MsMusicatchi", "MsModetchi"],
              ["MrCanvas", "MsHoutaiko", "Marutentchi"],
              ["MrFukuwarai", "MrKokuban", "Grippatchi"],
              ["MsBlonde", "Classictchi", "MrCombBowie"],
              ["MrKarate", "MrOkkana", "MrMicchi"]]

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))

    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if avars[avars[3][5]][2] < 691200:
            if bx:
                screen.blit(textbox, [0, 24])
                screen.blit(intct, [8, 34])
                screen.blit(inti, [216, 32])
                screen.blit(styct, [8, 50])
                screen.blit(styi, [216, 48])
                screen.blit(kndct, [8, 66])
                screen.blit(kndi, [216, 64])
                screen.blit(humct, [8, 82])
                screen.blit(humi, [216, 80])
                screen.blit(gorct, [8, 98])
                screen.blit(gori, [216, 96])
                screen.blit(pasct, [8, 114])
                screen.blit(pasi, [216, 112])
            else:
                screen.blit(classbk[skcls], [0, 0])
                if tani and 5 < anifr:
                    screen.blit(classbkg[skcls][(anifr - 6) // 6], [72, 51])
                    if anifr == 18:
                        pygame.mixer.stop()
                        sound[9].play()
                elif not tani:
                    screen.blit(classbkg[skcls][2], [72, 51])
                screen.blit(
                    tsprs[(anifr % 12 < 6) + (2 * (tani and anifr > 17))],
                    [180, 72])
        else:
            if grad < 3:
                screen.blit(gradbg, [0, 0])
                if grad == 1:
                    tsp = (anifr % 12 < 6) + (2 * (anifr > 17))
                    spr = 5 + (8 * (anifr % 12 < 6))
                    if anifr == 18:
                        pygame.mixer.stop()
                        sound[9].play()
                else:
                    tsp = 3
                    spr = 5 + (5 * (anifr % 12 < 6))
                screen.blit(tsprs[tsp], [86, 88])
                if anifr > 11 or grad == 2:
                    screen.blit(asprs[avars[3][5]][spr],
                                [(122 + (46 *
                                         (anifr < 18 and grad == 1))), 88])
            else:
                screen.blit(gradl, [0, 0])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder,
                                     borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    clt = 0
                    if 138 < mp[1] < 158 and cret:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return (avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            if bx or grad > 0:
                                ret = 0
                                return (avars, ret)
                            else:
                                bx = True
                    if bx:
                        if 32 < mp[1] < 128 and 8 < mp[0] < 232:
                            pygame.mixer.stop()
                            sound[3].play()
                            skcls = (mp[1] - 32) // 16
                            g = avars[avars[3][5]][14]
                            if g < 0:
                                g = 4294967296 + g
                            a = format(g, '032b')
                            tsprs = teachersp(teachn[skcls][(a.count("1") %
                                                             3)])
                            bx = False
                            tani = True
                            anifr = 0
                    elif not tani:
                        if 24 < mp[1] < 136:
                            if skcls == 0:
                                avars, ret = maths.game(
                                    avars, asprs, screen, tsprs)
                            elif skcls == 1:
                                avars, ret = gradient.game(
                                    avars, asprs, screen, tsprs)
                            elif skcls == 2:
                                avars, ret = water.game(
                                    avars, asprs, screen, tsprs)
                            elif skcls == 3:
                                avars, ret = clean.game(
                                    avars, asprs, screen, tsprs)
                            elif skcls == 4:
                                avars, ret = acting.game(
                                    avars, asprs, screen, tsprs)
                            elif skcls == 5:
                                avars, ret = wipe.game(avars, asprs, screen,
                                                       tsprs)
                            cret = 0
                            anifr = 19
                            if ret:
                                return (avars, ret)
                    elif grad == 2:
                        pygame.mixer.stop()
                        sound[3].play()
                        grad = 3
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + (
                                "%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" %
                                     (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
                if bx:
                    clt += 1
        if chngsts:
            avars = statusup.chngsts(avars)
            if avars[avars[3][5]][20] or not avars[avars[3][5]][21]:
                return (avars, ret)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            cret = 1
            ret = 1
            if not bx and grad == 0:
                tani = False
            elif grad == 1:
                grad = 2
        if clt > 29:
            return (avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(
            s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()
Ejemplo n.º 30
0
def game(avars, asprs, screen):

    class Mnbx(pygame.sprite.Sprite):

        bxt = []
        
        def __init__(self):
            super().__init__()
            box = pygame.image.load("Sprites/Misc/txtbox/box2.png").convert()

            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 0, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 8, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (0, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (8, 16, 8, 8))
            self.bxt.append(image)
            image = pygame.Surface([8, 8]).convert()
            image.set_colorkey((0, 0, 0))
            image.blit(box, (0, 0), (16, 16, 8, 8))
            self.bxt.append(image)

            self.image = self.bxt[0]
            self.rect = self.image.get_rect()

        def update(self):
            self.image = self.bxt[tl]
    
    kr = True

    chngsts = False

    scr = 0

    ret = 1

    prsb = 2

    tuts = True
    strt = False
    play = False
    end = 0

    def drbx():
        tile = Mnbx()
        tile.update()
        textbox.blit(tile.image, [tx, ty])

    def drhl():
        global tx
        global tl
        tx = 0
        drbx()
        tl += 1
        while tx < 48:
            tx += 8
            drbx()
        tx = 56
        tl += 1
        drbx()

    def dral():
        global ty
        global tl
        while ty < 16:
            tl = 3
            ty += 8
            drhl()

    tpborder, btborder, borderico = borders.getborders(avars[3][13], 1, 3, 1)

    hn = pygame.image.load("Sprites/Misc/menu/hngs.png").convert()
    hp = pygame.image.load("Sprites/Misc/menu/hpys.png").convert()
    sk = pygame.image.load("Sprites/Misc/menu/scks.png").convert()
    sl = pygame.image.load("Sprites/Misc/menu/slps.png").convert()

    tutimg = pygame.image.load("Sprites/Misc/bg/runningt.png").convert()

    gamebk = pygame.image.load("Sprites/Misc/bg/gamecenter.png").convert()

    playbk = pygame.image.load("Sprites/Misc/bg/running.png").convert()

    rntrk = pygame.image.load("Sprites/Misc/bg/runtr2.png").convert()

    ready = pygame.image.load("Sprites/Misc/bg/ready.png").convert()
    readyb = pygame.image.load("Sprites/Misc/bg/readyb.png").convert()
    go = pygame.image.load("Sprites/Misc/bg/go.png").convert()
    gob = pygame.image.load("Sprites/Misc/bg/gob.png").convert()

    toobad = pygame.image.load("Sprites/Misc/bg/toobad.png").convert()
    good = pygame.image.load("Sprites/Misc/bg/good.png").convert()
    great = pygame.image.load("Sprites/Misc/bg/great.png").convert()
    excellent = pygame.image.load("Sprites/Misc/bg/excellent.png").convert()

    win = pygame.image.load("Sprites/Misc/emo/happy.png").convert()
    cry = pygame.image.load("Sprites/Misc/emo/cry.png").convert()

    con1 = pygame.image.load("Sprites/Misc/bg/congrt1.png").convert()
    con2 = pygame.image.load("Sprites/Misc/bg/congrt2.png").convert()
    con3 = pygame.image.load("Sprites/Misc/bg/congrt3.png").convert()

    money = pygame.image.load("Sprites/Misc/obj/money.png").convert()
    coin = pygame.image.load("Sprites/Misc/menu/gotchipt.png").convert()

    poo = pygame.image.load("Sprites/Misc/poo/bpoo1.png").convert()

    fnt = pygame.font.Font("Sprites/Misc/font/Tama2.ttf", 16)

    textbox = pygame.Surface([240, 64]).convert()
    textbox.fill((0, 255, 255))
    global tl
    global ty
    tl = 0
    ty = 0
    drhl()
    dral()
    tl = 6
    ty = 24
    drhl()
    textbox.set_colorkey((0, 255, 255))

    clock = pygame.time.Clock()

    sound = sounds.imprtsnd(avars)

    anifr = 0

    pygame.time.set_timer(USEREVENT + 1, int(1000 / ((5 * avars[3][3]) + 1)))
    
    if avars[3][3] == 0:
        avars[3][6] = time.strftime("%H:%M")

    while kr:
        if tuts:
            screen.blit(tutimg, [0, 0])
        elif strt:
            screen.blit(gamebk, [0, 0])
            if anifr == 16:
                pygame.mixer.stop()
                sound[11].play()
            if anifr < 16:
                screen.blit(readyb, [0, 0])
                screen.blit(ready, [80, 48])
                spr = 3
            else:
                screen.blit(gob, [0, 0])
                screen.blit(go, [95, 48])
                spr = 5
            screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        elif play:
            screen.blit(playbk, [0, 0])
            if anifr % 12 > 5:
                screen.blit(rntrk, [16, 116])
                if prsb < 2:
                    spr = 13
                else:
                    spr = 11
            else:
                spr = 13
            if scr == 6:
                if prsb > 1:
                    spr = 5
            else:
                if prsb > 1 and plst[scr] == 1:
                    spr = 9
            if nxtp:
                screen.blit(poo, [175, 102])
            for x in range(6):
                if plst[x]:
                    screen.blit(poo, [(16 + (32 * x)), 108])
            if anifr % 6 == 5:
                if scr == 6 and prsb > 1:
                    play = False
                    anifr = 23
                    prsb = 2
                if scr == 6:
                    if play and prsb > 1:
                        pygame.mixer.stop()
                        sound[9].play()
                else:
                    if plst[scr] == 1 and prsb > 1 and play:
                        play = False
                        anifr = 23
                        prsb = 2
                if prsb > 2:
                    prsb -= 3
                    if prsb == 1:
                        scr += 1
                    pygame.mixer.stop()
                    sound[6].play()
                elif prsb < 2:
                    prsb = 2
                plst.pop(0)
                plst.append(nxtp)
                if sum(plst[4:]) == 2:
                    nxtp = 0
                else:
                    nxtp = randint(0, 1)
                if scr < 6:
                    if plst[scr] == 1 and prsb > 1 and play:
                        pygame.mixer.stop()
                        sound[12].play()
            screen.blit(pygame.transform.flip(asprs[avars[3][5]][spr], 1, 0), [(8 + (32 * scr) - (16 * (prsb == 1)) + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (92 - (8 * (prsb < 2)) + (32 - asprs[avars[3][5]][spr].get_height()))])
        else:
            screen.blit(gamebk, [0, 0])
            if end == 3:
                screen.blit(money, [88, 106])
                if anifr < 8:
                    spr = 11
                else:
                    if anifr == 8:
                        pygame.mixer.stop()
                        sound[13].play()
                    screen.blit(textbox, [94, 64])
                    mntxt = fnt.render(str(scr * 30), 1, (0, 0, 100))
                    screen.blit(mntxt, [(134 - (mntxt.get_width())), 74])
                    screen.blit(coin, [138, 72])
                    if scr > 0:
                        spr = 5
                    else:
                        spr = 6
                screen.blit(asprs[avars[3][5]][spr], [(124 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 4:
                if scr < 2:
                    screen.blit(toobad, [71, 48])
                    sy = 98
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        spr = 6
                    else:
                        spr = 7
                        screen.blit(cry, [56, 90])
                else:
                    if scr < 4:
                        screen.blit(good, [94, 48])
                    elif scr < 6:
                        screen.blit(great, [85, 48])
                    else:
                        screen.blit(excellent, [51, 48])
                    if ((anifr / 12) - (anifr // 12)) < 0.5:
                        sy = 98
                        spr = 4
                    else:
                        sy = 90
                        spr = 5
                        screen.blit(win, [136, 82])
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (sy + (32 - asprs[avars[3][5]][spr].get_height()))])
            elif end == 5:
                if anifr < 12:
                    screen.blit(con1, [0, 24])
                    spr = 3
                elif anifr < 16:
                    screen.blit(con2, [0, 24])
                    spr = 9
                else:
                    screen.blit(con3, [0, 24])
                    spr = 10
                screen.blit(asprs[avars[3][5]][spr], [(104 + ((32 - asprs[avars[3][5]][spr].get_width()) // 2)), (98 + (32 - asprs[avars[3][5]][spr].get_height()))])
        screen = borders.drawborders(screen, avars, asprs, tpborder, btborder, borderico, fnt, 0, anifr, hn, hp, sk, sl)
        for event in pygame.event.get():
            if event.type == QUIT:
                varsup.updtvrs(avars)
                kr = False
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                mp = event.pos
                d = (screen.get_size()[0] // 240)
                mp = ((mp[0] // d), (mp[1] // d))
                pb = event.button
                if pb == 1:
                    if 138 < mp[1] < 158:
                        if 228 < mp[0] < 240:
                            pygame.mixer.stop()
                            sound[4].play()
                            return(avars, ret)
                        elif 212 < mp[0] < 224:
                            pygame.mixer.stop()
                            sound[4].play()
                            ret = 0
                            return(avars, ret)
                    if (24 < mp[1] < 136) and tuts:
                        pygame.mixer.stop()
                        sound[10].play()
                        tuts = False
                        strt = True
                        anifr = -1
                    elif 24 < mp[1] < 136 and play and prsb == 2:
                        prsb = 3
                elif pb == 3 and 24 < mp[1] < 136 and play and prsb == 2:
                    prsb = 4
            if event.type == USEREVENT + 1:
                if avars[3][3] == 0:
                    avars[3][6] = time.strftime("%H:%M")
                else:
                    avars[3][7] += 1
                    if avars[3][7] == 60:
                        if int(avars[3][6][3:]) != 59:
                            nhour = avars[3][6][:3] + ("%02d" % (int(avars[3][6][3:]) + 1))
                            avars[3][6] = nhour
                        else:
                            nhour = ("%02d" % (int(avars[3][6][:2]) + 1)) + ":00"
                            if nhour == "24:00":
                                nhour = "00:00"
                            avars[3][6] = nhour
                        avars[3][7] = 0
                if len(avars[0]) > 0:
                    avars[0][2] += 1
                if len(avars[1]) > 0:
                    avars[1][2] += 1
                if len(avars[2]) > 0:
                    avars[2][2] += 1
                chngsts = True
        if chngsts:
            avars = statusup.chngsts(avars)
            chngsts = False
        if anifr < 23:
            anifr += 1
        else:
            anifr = 0
            if strt:
                play = True
                strt = False
                plst = [0, 0, 1, 0, 1, 1]
                nxtp = 0
            elif not play and not tuts and end < 3:
                if (avars[avars[3][5]][17] + (scr // 2)) < 6:
                    avars[avars[3][5]][17] += (scr // 2)
                else:
                    avars[avars[3][5]][17] = 6
                if (avars[3][2] + (scr * 30)) < 99999:
                    avars[3][2] += (scr * 30)
                else:
                    avars[3][2] = 99999
                if (avars[avars[3][5]][18] - (scr // 2)) > 1:
                    avars[avars[3][5]][18] -= (scr // 2)
                else:
                    avars[avars[3][5]][18] = 1
                avars[avars[3][5]][10] += scr
                end = 3
            elif end == 3:
                if scr < 6:
                    if scr < 2:
                        pygame.mixer.stop()
                        sound[14].play()
                    else:
                        pygame.mixer.stop()
                        sound[1].play()
                    end = 4
                else:
                    pygame.mixer.stop()
                    sound[15].play()
                    end = 5
            elif end == 5:
                pygame.mixer.stop()
                sound[1].play()
                end = 4
            elif end == 4:
                ret = 0
                return(avars, ret)
        s = pygame.Surface([240, 160]).convert()
        s.blit(screen, [0, 0])
        s = pygame.transform.scale(s, (screen.get_size()[0], screen.get_size()[1]))
        screen.blit(s, [0, 0])
        clock.tick(16)
        pygame.display.update()