Basic client that understands factions

This commit is contained in:
2020-09-05 17:45:07 -04:00
parent ab3f05f013
commit ae3ecb03c5
53 changed files with 432 additions and 8 deletions

View File

@ -0,0 +1,16 @@
extends Node
export(NodePath) var nameTextEdit
export(NodePath) var factionButtonsNode
onready var nameEdit : LineEdit = get_node(nameTextEdit)
onready var factionButtons = get_node(factionButtonsNode)
func _on_Button_button_down():
if nameEdit.text != "":
if factionButtons.currently_selected:
for i in range(1,len(GameData.factions)):
if GameData.factions[i] == factionButtons.currently_selected:
var created_char = yield(ServerConnection.create_character_async(nameEdit.text, i), "completed")
if created_char:
get_tree().change_scene("res://scenes/World.tscn")

View File

@ -0,0 +1,20 @@
extends Node
signal selection_updated(faction)
var currently_selected : String
func _ready():
get_child(0).queue_free()
for faction in GameData.factions:
if faction == "Electus":
return
var faction_button = Button.new()
faction_button.icon = load("res://art/gui/banners/" + faction.to_lower() + ".png")
faction_button.connect("button_down", self, "on_faction_select", [faction])
add_child(faction_button)
func on_faction_select(faction):
currently_selected = faction
emit_signal("selection_updated", faction)

View File

@ -0,0 +1,14 @@
extends LineEdit
var invalid_chars = " '.,;/\\,[](){}!@#$%^&*-=|_+1234567890\""
func _ready():
connect("text_changed", self, "validate_name")
func validate_name(name):
var cursor_pos = caret_position
for character in invalid_chars:
if character in text:
text = text.replace(character, "")
caret_position = cursor_pos