summaryrefslogtreecommitdiff
path: root/game/register.rpy
diff options
context:
space:
mode:
Diffstat (limited to 'game/register.rpy')
-rw-r--r--game/register.rpy122
1 files changed, 122 insertions, 0 deletions
diff --git a/game/register.rpy b/game/register.rpy
new file mode 100644
index 0000000..f5cd6f9
--- /dev/null
+++ b/game/register.rpy
@@ -0,0 +1,122 @@
+########################################################################################
+# 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", "Welcome to %s!\nPlease insert your email to register an account: \n{size=24}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.{/size}" % (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:
+ # 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
+
+