summaryrefslogblamecommitdiff
path: root/game/register.rpy
blob: d09b579b8cbb936a233a7b7b1d3e293283bb070d (plain) (tree)















































































                                                                                                     
                                                                                                                                                            












                                                                           
                                 


























                                                                                                                              


                                                                                                                                                                                                                             
 
########################################################################################
#     This file is part of Spheres.
#     Copyright (C) 2019  Jesusalva

#     This library is free software; you can redistribute it and/or
#     modify it under the terms of the GNU Lesser General Public
#     License as published by the Free Software Foundation; either
#     version 2.1 of the License, or (at your option) any later version.

#     This library is distributed in the hope that it will be useful,
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#     Lesser General Public License for more details.

#     You should have received a copy of the GNU Lesser General Public
#     License along with this library; if not, write to the Free Software
#     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
########################################################################################
# Account login & registration (screen & labels)
screen welcome():
    #window:
        #background Frame("gui/frame.png", 5, 5)
        #yalign 0.5
        #xalign 0.5
        #ypadding 30
        #xpadding 30
        #xmaximum 0.7
        #xminimum 0.7
        #yminimum 95
        #vbox:
            #text (_("Welcome to %s!" % (config.name))) color "#fefefe" yalign 0.0 xalign 0.5 size 32
            #null height 0.2
    fixed:
        image "gfx/nourishedflower.webp":
            xalign 0.5
            yalign 1.0

        label (_("Welcome to %s!" % (config.name))):
            style "pref_label"
            yalign 0.02
            xalign 0.50
            text_size 54
            text_outlines [ (1, "#000", 0, 0) ]
            #color "#fefefe"
            #size 32

        textbutton _("{size=36}Login{/size}"):
            xalign 0.33
            yalign 0.15
            xpadding 30
            ypadding 30
            background Frame("gui/frame.png", 5, 5)
            action Jump("register_password")

        textbutton _("{size=36}Register{/size}"):
            xalign 0.67
            yalign 0.15
            xpadding 30
            ypadding 30
            background Frame("gui/frame.png", 5, 5)
            action Jump("register_email")

        textbutton _("{size=36}Preferences{/size}"):
            xalign 0.5
            yalign 0.25
            xpadding 30
            ypadding 30
            background Frame("gui/frame.png", 5, 5)
            action ShowMenu('preferences')

############################################################################
# Registration procedures
# You don't have an account yet
label register_email:
    python:
        import re
        regex = '^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
        email = ""
        # Ask player for their email
        while email == "":
            email=renpy.call_screen("input_box", "Please insert your {a=about_email}email{/a} to register an account: \n", "Welcome to %s!" % (config.name))
            if not re.search(regex, email):
                email=""
                renpy.call_screen("msgbox",
                                  "The email you've entered is not valid.")

        # You've inserted a valid email
        raw=send_packet("register", """{"email": "%s"}""" % email)
        bt=json_decode(raw)

        try:
            password=bt["password"]
            valid=True
        except:
            traceback.print_exc()
            # Either a SQL error, or a server error, or a connection error...
            # But either way, we can't proceed!
            renpy.call_screen("msgbox", "An error happened, maybe this email is already registered.\nPlease try again later.")
            valid=False

    # An error happened, return to login screen
    if not valid:
        jump start

    # Save data
    $ persistent.password=password
    jump login

# Registration procedures
# You already have an account and want to recover it
label register_password:
    python:
        password=""
        while password == "":
            password=renpy.call_screen("input_box",
                "Welcome to %s!\nPlease insert your password: " % (config.name))
            if not password.isalnum():
                renpy.call_screen("msgbox",
                                  "The password you've entered is not valid.")
                password=""
    jump login

label about_email:
    $ renpy.call_screen("msgbox", "Your account password will be emailed to you. This is the only way to recover a lost account. You can use an {a=https://www.tempmailaddress.com/}Temporary email{/a} if you wish.", False)
    return