231 lines
8.8 KiB
GDScript
231 lines
8.8 KiB
GDScript
#*****************************************************************************
|
|
# @author MakerYang
|
|
# @site mir2.makeryang.com
|
|
#*****************************************************************************
|
|
|
|
extends Control
|
|
|
|
# 场景资源
|
|
@onready var button_pressed_music: AudioStreamPlayer2D = $ButtonPressedMusic
|
|
@onready var default: Control = $Default
|
|
@onready var default_email: LineEdit = $Default/DefaultEmail
|
|
@onready var default_password: LineEdit = $Default/DefaultPassword
|
|
@onready var default_submit: TextureButton = $Default/DefaultSubmit
|
|
@onready var default_register: TextureButton = $Default/DefaultRegister
|
|
@onready var default_change: TextureButton = $Default/DefaultChange
|
|
@onready var register: Control = $Register
|
|
@onready var register_email: LineEdit = $Register/RegisterEmail
|
|
@onready var register_code: LineEdit = $Register/RegisterCode
|
|
@onready var register_code_label: Label = $Register/RegisterCodeLabel
|
|
@onready var register_code_timer: Timer = $Register/RegisterCodeLabel/RegisterCodeTimer
|
|
@onready var register_code_submit: TextureButton = $Register/RegisterCodeLabel/RegisterCodeSubmit
|
|
@onready var register_password: LineEdit = $Register/RegisterPassword
|
|
@onready var register_name: LineEdit = $Register/RegisterName
|
|
@onready var register_number: LineEdit = $Register/RegisterNumber
|
|
@onready var register_question_a: LineEdit = $Register/RegisterQuestionA
|
|
@onready var register_answer_a: LineEdit = $Register/RegisterAnswerA
|
|
@onready var register_question_b: LineEdit = $Register/RegisterQuestionB
|
|
@onready var register_answer_b: LineEdit = $Register/RegisterAnswerB
|
|
@onready var register_confirm_submit: TextureButton = $Register/RegisterConfirmSubmit
|
|
@onready var register_cancel_submit: TextureButton = $Register/RegisterCancelSubmit
|
|
@onready var change: Control = $Change
|
|
@onready var change_email: LineEdit = $Change/ChangeEmail
|
|
@onready var change_password: LineEdit = $Change/ChangePassword
|
|
@onready var change_new_password: LineEdit = $Change/ChangeNewPassword
|
|
@onready var change_confirm_password: LineEdit = $Change/ChangeConfirmPassword
|
|
@onready var change_confirm_submit: TextureButton = $Change/ChangeConfirmSubmit
|
|
@onready var change_cancel_submit: TextureButton = $Change/ChangeCancelSubmit
|
|
|
|
# 场景信号
|
|
signal switch_server_signal()
|
|
|
|
func _ready() -> void:
|
|
default.visible = true
|
|
register.visible = false
|
|
change.visible = false
|
|
default_email.grab_focus()
|
|
|
|
func _process(_delta: float) -> void:
|
|
if register_code_submit.disabled:
|
|
register_code_label.text = "%d" % register_code_timer.time_left
|
|
|
|
# # 登录表单回车事件函数
|
|
func _on_default_password_text_submitted(text: String) -> void:
|
|
if text != "":
|
|
default_submit.emit_signal("pressed")
|
|
|
|
# 登录按钮事件函数
|
|
func _on_default_submit_pressed() -> void:
|
|
if !default_submit.disabled:
|
|
print("[launch:login:default:submit]")
|
|
_on_button_pressed_music()
|
|
if default_email.text == "" || default_password.text == "":
|
|
get_parent().on_dialog("登录信息不完整")
|
|
return
|
|
default_submit.disabled = true
|
|
Request.on_server("/game/account/mail/login?email=" + default_email.text + "&password=" + default_password.text, HTTPClient.METHOD_GET, {}, func(_result, code, _headers, body):
|
|
if code == 200:
|
|
var response = JSON.parse_string(body.get_string_from_utf8())
|
|
if response.code != 0:
|
|
default_submit.disabled = false
|
|
get_parent().on_dialog(response.message)
|
|
return
|
|
Account.update_token(response.data.token)
|
|
_on_register_cancel_submit_pressed()
|
|
_on_change_cancel_submit_pressed()
|
|
default_email.text = ""
|
|
default_password.text = ""
|
|
default_submit.disabled = false
|
|
switch_server_signal.emit()
|
|
else:
|
|
default_submit.disabled = false
|
|
get_parent().on_dialog("账号登录失败")
|
|
)
|
|
|
|
# 注册按钮事件函数
|
|
func _on_default_register_pressed() -> void:
|
|
print("[launch:login:register]")
|
|
_on_button_pressed_music()
|
|
register.visible = true
|
|
|
|
# 获取验证码按钮事件函数
|
|
func _on_register_code_submit_pressed() -> void:
|
|
if !register_code_submit.disabled:
|
|
print("[launch:login:register:code:submit]")
|
|
_on_button_pressed_music()
|
|
if register_email.text == "":
|
|
get_parent().on_dialog("请填写登录邮箱")
|
|
return
|
|
var check = Utils.check_mail_format(register_email.text)
|
|
if !check:
|
|
get_parent().on_dialog("邮箱格式不正确")
|
|
return
|
|
register_code_submit.disabled = true
|
|
Request.on_server("/game/account/mail/code?mail=" + register_email.text, HTTPClient.METHOD_GET, {}, func(_result, code, _headers, body):
|
|
if code == 200:
|
|
var response = JSON.parse_string(body.get_string_from_utf8())
|
|
if response.code != 0:
|
|
register_code_submit.disabled = false
|
|
get_parent().on_dialog(response.message)
|
|
return
|
|
register_code_timer.start()
|
|
else:
|
|
register_code_submit.disabled = false
|
|
get_parent().on_dialog("验证码发送失败")
|
|
)
|
|
|
|
# 获取验证码倒计时结束事件信号
|
|
func _on_register_code_timer_timeout() -> void:
|
|
print("[launch:login:register:code:timeout]")
|
|
register_code_submit.disabled = false
|
|
register_code_label.text = "获取验证码"
|
|
|
|
# 账号注册确定按钮事件函数
|
|
func _on_register_confirm_submit_pressed() -> void:
|
|
if !register_confirm_submit.disabled:
|
|
print("[launch:login:register:confirm:submit]")
|
|
_on_button_pressed_music()
|
|
if register_email.text == "" || register_code.text == "" || register_password.text == "":
|
|
get_parent().on_dialog("注册信息不完整")
|
|
return
|
|
var check = Utils.check_mail_format(register_email.text)
|
|
if !check:
|
|
get_parent().on_dialog("邮箱格式不正确")
|
|
return
|
|
register_confirm_submit.disabled = true
|
|
var register_data = {
|
|
"mail": register_email.text,
|
|
"code": register_code.text,
|
|
"password": register_password.text,
|
|
"name": register_name.text,
|
|
"number": register_number.text,
|
|
"question_a": register_question_a.text,
|
|
"question_b": register_question_b.text,
|
|
"answer_a": register_answer_a.text,
|
|
"answer_b": register_answer_b.text,
|
|
}
|
|
Request.on_server("/game/account/mail/register", HTTPClient.METHOD_POST, register_data, func(_result, code, _headers, body):
|
|
if code == 200:
|
|
var response = JSON.parse_string(body.get_string_from_utf8())
|
|
if response.code != 0:
|
|
register_confirm_submit.disabled = false
|
|
get_parent().on_dialog(response.message)
|
|
return
|
|
get_parent().on_dialog("账号注册成功")
|
|
_on_register_cancel_submit_pressed()
|
|
else:
|
|
register_confirm_submit.disabled = false
|
|
get_parent().on_dialog("账号注册失败")
|
|
)
|
|
|
|
# 账号注册取消按钮事件函数
|
|
func _on_register_cancel_submit_pressed() -> void:
|
|
print("[launch:login:register:cancel]")
|
|
_on_button_pressed_music()
|
|
register.visible = false
|
|
register_email.text = ""
|
|
register_code.text = ""
|
|
register_code_label.text = "获取验证码"
|
|
register_code_submit.disabled = false
|
|
register_password.text = ""
|
|
register_name.text = ""
|
|
register_number.text = ""
|
|
register_question_a.text = ""
|
|
register_answer_a.text = ""
|
|
register_question_b.text = ""
|
|
register_answer_b.text = ""
|
|
register_code_submit.disabled = false
|
|
register_confirm_submit.disabled = false
|
|
|
|
# 修改密码按钮事件函数
|
|
func _on_default_change_pressed() -> void:
|
|
print("[launch:login:change]")
|
|
_on_button_pressed_music()
|
|
change.visible = true
|
|
|
|
# 修改密码确认按钮事件函数
|
|
func _on_change_confirm_submit_pressed() -> void:
|
|
if !change_confirm_submit.disabled:
|
|
print("[launch:login:change:confirm:submit]")
|
|
_on_button_pressed_music()
|
|
if change_email.text == "" || change_password.text == "" || change_new_password.text == "" || change_confirm_password.text == "":
|
|
get_parent().on_dialog("账号信息不完整")
|
|
return
|
|
if change_new_password.text != change_confirm_password.text:
|
|
get_parent().on_dialog("新密码输入不一致")
|
|
return
|
|
change_confirm_submit.disabled = true
|
|
var change_password_data = {
|
|
"mail": change_email.text,
|
|
"password": change_password.text,
|
|
"new_password": change_new_password.text
|
|
}
|
|
Request.on_server("/game/account/mail/change/password", HTTPClient.METHOD_POST, change_password_data, func(_result, code, _headers, body):
|
|
if code == 200:
|
|
var response = JSON.parse_string(body.get_string_from_utf8())
|
|
if response.code != 0:
|
|
change_confirm_submit.disabled = false
|
|
get_parent().on_dialog(response.message)
|
|
return
|
|
get_parent().on_dialog("密码修改成功")
|
|
_on_change_cancel_submit_pressed()
|
|
else:
|
|
change_confirm_submit.disabled = false
|
|
get_parent().on_dialog("密码修改失败")
|
|
)
|
|
|
|
# 修改密码取消按钮事件函数
|
|
func _on_change_cancel_submit_pressed() -> void:
|
|
print("[launch:login:change:cancel]")
|
|
_on_button_pressed_music()
|
|
change.visible = false
|
|
change_email.text = ""
|
|
change_password.text = ""
|
|
change_new_password.text = ""
|
|
change_confirm_password.text = ""
|
|
change_confirm_submit.disabled = false
|
|
|
|
# 公用按钮音效函数
|
|
func _on_button_pressed_music() -> void:
|
|
button_pressed_music.play()
|