extends VBoxContainer onready var legal_name = $Questions/Col1/HBox/Name onready var day = $Questions/Col1/HBox2/Day onready var month = $Questions/Col1/HBox2/Month onready var year = $Questions/Col1/HBox2/Year onready var gender = $Questions/Col1/HBox3/Gender onready var password = $Questions/Col1/HBox4/Password onready var password2 = $Questions/Col1/HBox5/Password2 onready var email = $Questions/Col2/HBox/Email onready var secq = $Questions/Col2/HBox2/SecurityQ onready var seca = $Questions/Col2/HBox3/SecurityA onready var reason = $HBox/Reason onready var etc = $HBox2/Etc onready var submit = $Submit onready var message = $HBox3/VBox/Message onready var action = $HBox3/VBox/Action onready var censor = 'res://Res/Text/censor.txt' func check(): var form = collect_answers() # Check Name is filled if !form['name']: message.set_text(tr("foif10")) return false # Check Name has special characters for c in ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '{', '}', '\'', '\"', ':', ';']: if c in form['name']: message.set_text(tr("foifb2")) return false # Check Name is offensive var file = File.new() file.open(censor, file.READ) var line_counter = 0 while not file.eof_reached(): line_counter+=1 if file.get_line() in form['name']: message.set_text(tr("foifb3")) file.close() return false file.close() # Check Name is taken # message.set_text(tr("foifb4")) # Check if >= 13 if form['age'] < 1: message.set_text(tr("foifb5")) return false # Check Password is filled if !form['password'] or !form['password2']: message.set_text(tr("foif11")) return false # Check Password in top passwords for p in ["123456","123456789","qwerty","password","12345","qwerty123","1q2w3e","12345678","111111","1234567890"]: if form['password'] == p: message.set_text(tr("foifb6")) return false # Check Passwords match if form['password'] != form['password2']: message.set_text(tr("foifb7")) return false # Check Email is valid if !form['email']: message.set_text(tr("foifb8")) return false # Check Account Recovery filled out if !form['email'] and !form['secq'] and !form['seca']: message.set_text(tr("foifb8")) return false # Also no name, etc return true func collect_answers(): return { 'name': legal_name.get_text(), 'dob': str(month.get_selected_id() + 1) + "/" + str(day.get_selected_id() + 1), 'age': year.get_selected_id(), 'gender': gender.get_selected_id(), 'password': password.get_text(), 'password2': password2.get_text(), 'email': email.get_text(), 'secq': secq.get_text(), 'seca': seca.get_text(), 'reason': reason.get_selected_id(), 'etc': etc.get_text() } func create_account(): if !check(): return get_parent().get_parent().queue_free() func _ready(): submit.connect("button_up", self, "create_account")