﻿transform btn:
    parallel:
        xoffset renpy.random.randint(-1000, 1000) alpha 0 yzoom .01
        pause renpy.random.random()/4
        
        ease .2 xoffset 0 yzoom 1 alpha 1
    parallel:
        on idle:
            easein .2 additive 0 alpha 1
        on hover:
            easein .2 additive .3 alpha 1
        on selected_idle:
            easein .2 additive .2 alpha 1
        on selected_hover:
            easein .2 additive .3 alpha 1
        on insensitive:
            easein .2 additive 0 alpha .5

default pairs_set_1 = [
    "☀", "☂", "☎", "★", "☘",
    "☯", "☻", "☢", "♥", "✈",
    "⧓", "�", "¾", "฿", "ᔓ",
    "ᚎ", "ῼ", "※", "⁂", "₪",
    "⁐", "⇅", "⇲", "⌘", "⌬",
    "▨", "☠", "♋", "♻", "⚖",
    "⚢", "⛃",
    ]

init python:
    def make_pairs_list(p):
        lst = []
        memo = []
        for i in range(p):
            lst.append(i)
            lst.append(i)
            memo.append(1)
            memo.append(1)
        renpy.random.shuffle(lst)
        return lst,memo

    def sum_list(lst):
        sum = 0
        for i in lst:
            sum = sum+i
        return sum

screen pairs(p = 12, c = 6, t = 30, icons = pairs_set_1):
    ############ Change these settings
    default xy = 150
    default pairs = p
    default columns = c
    
    ############ Don't touch
    default lst = make_pairs_list(pairs)[0]
    default memo = make_pairs_list(pairs)[1]
    default n1 = 0
    default n2 = 0
    default settings = 0
    default remaining = t

    modal True
    style_prefix "pairs"
    if sum_list(memo) and remaining > 1:
        frame:
            background "#0006" align 0.5,0.5
            hbox:
                box_wrap True xsize (columns*xy)
                for i in range(pairs*2):
                    if memo[i]:
                        button:
                            background "#0009"
                            at btn
                            xysize(xy,xy)
                            action If(n1, SetScreenVariable("n2", i+1), SetScreenVariable("n1", i+1)), SetDict(memo,i,0)
                    else:
                        frame:
                            background "#4009"
                            xysize(xy,xy)
                            text icons[lst[i]] size 80 align .5,.5

    if n1 and n2:
        if lst[n1-1]==lst[n2-1]:
            timer .04 action SetScreenVariable("n2", 0), SetScreenVariable("n1", 0)
        else:
            timer .4 action [SetDict(memo,n1-1,1),SetDict(memo,n2-1,1), SetScreenVariable("n2", 0), SetScreenVariable("n1", 0)]
            button:
                background None
                action [SetDict(memo,n1-1,1),SetDict(memo,n2-1,1), SetScreenVariable("n2", 0), SetScreenVariable("n1", 0)]

    if not sum_list(memo):
        button:
            action NullAction()
            background None
        frame:
            padding(400,50) align .5,.5
            vbox:
                align .5,.5
                text "You've solved this puzzle, now press continue."
                hbox:
                    align .5,.5
                    spacing 10
                    # button:
                    #     text "restart"
                    #     action SetScreenVariable("lst", make_pairs_list(pairs)[0]), SetScreenVariable("memo", make_pairs_list(pairs)[1])
                    button:
                        align .5,.5
                        text "continue"
                        action Hide("pairs"), Return()

    key "m" action Hide("pairs"), Return()

    text "Time: "+str(remaining) align 0.0,0.0
    if remaining > 1:
        if sum_list(memo):
            timer 1 repeat True action SetScreenVariable("remaining", remaining-1)
    else:
        button:
            action NullAction()
            background None
        frame:
            padding(400,50)  align .5,.5
            vbox:
                text "You must be faster."
                hbox:
                    spacing 10
                    button:
                        text "Try again"
                        action SetScreenVariable("lst", make_pairs_list(pairs)[0]), SetScreenVariable("memo", make_pairs_list(pairs)[1]), SetScreenVariable("remaining", t)
                    button:
                        text "Give up"
                        action Hide("pairs"), Jump("pairs_lost")

    # drag:
    #     align(.0,.0) offset(40,40)
    #     frame:
    #         xsize 520
    #         if settings:
    #             vbox:
    #                 hbox:
    #                     button:
    #                         text "<"
    #                         action If(pairs > 1, SetScreenVariable("pairs",pairs-1))
    #                     text str(pairs)
    #                     button:
    #                         text ">"
    #                         action If(pairs < len(icons), SetScreenVariable("pairs",pairs+1))

    #                 hbox:
    #                     button:
    #                         text "<"
    #                         action If(columns > 1, SetScreenVariable("columns",columns-1))
    #                     text str(columns)
    #                     button:
    #                         text ">"
    #                         action If(columns < len(icons), SetScreenVariable("columns",columns+1))
    #                 button:
    #                     text "Restart"
    #                     action SetScreenVariable("lst", make_pairs_list(pairs)[0]), SetScreenVariable("memo", make_pairs_list(pairs)[1]), SetScreenVariable("settings",0)
    #                 hbox:
    #                     box_wrap True
    #                     for i in range(pairs):
    #                         text icons[i] size 50
    #         else:
    #             button:
    #                 text "settings"
    #                 action SetScreenVariable("lst", make_pairs_list(len(icons))[0]), SetScreenVariable("memo", make_pairs_list(len(icons))[1]), SetScreenVariable("settings",1)





style pairs_frame:
    background "#4009"

style pairs_button:
    background "#0009"















