summaryrefslogtreecommitdiff
path: root/ui/login/character_creation.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-04-07 11:45:05 +0200
committerDaniel Weipert <git@mail.dweipert.de>2025-04-07 11:45:05 +0200
commitf3d360e022fce829370c7d916abe98083b14818c (patch)
tree4ac9f886b45a9482dcd42e991e85ab2e4bea3dbc /ui/login/character_creation.gd
parentbd77c88efc9327805b6f6fd83fa0492ed59d0f9a (diff)
next commitHEADmain
Diffstat (limited to 'ui/login/character_creation.gd')
-rw-r--r--ui/login/character_creation.gd134
1 files changed, 134 insertions, 0 deletions
diff --git a/ui/login/character_creation.gd b/ui/login/character_creation.gd
new file mode 100644
index 0000000..f3989d1
--- /dev/null
+++ b/ui/login/character_creation.gd
@@ -0,0 +1,134 @@
+extends HBoxContainer
+
+
+var strength := 5:
+ set(value):
+ strength = value
+ %StatEntryStrength.value = value
+ %Polygon.polygon[0] = (
+ Vector2(100, 100) +
+ ((Vector2(100, 0) - Vector2(100, 100)) / 9.0) * value
+ )
+
+var vitality := 5:
+ set(value):
+ vitality = value
+ %StatEntryVitality.value = value
+ %Polygon.polygon[1] = (
+ Vector2(100, 100) +
+ ((Vector2(200, 50) - Vector2(100, 100)) / 9.0) * value
+ )
+
+var luck := 5:
+ set(value):
+ luck = value
+ %StatEntryLuck.value = value
+ %Polygon.polygon[2] = (
+ Vector2(100, 100) +
+ ((Vector2(200, 150) - Vector2(100, 100)) / 9.0) * value
+ )
+
+var intelligence := 5:
+ set(value):
+ intelligence = value
+ %StatEntryIntelligence.value = value
+ %Polygon.polygon[3] = (
+ Vector2(100, 100) +
+ ((Vector2(100, 200) - Vector2(100, 100)) / 9.0) * value
+ )
+
+var dexterity := 5:
+ set(value):
+ dexterity = value
+ %StatEntryDexterity.value = value
+ %Polygon.polygon[4] = (
+ Vector2(100, 100) +
+ ((Vector2(0, 150) - Vector2(100, 100)) / 9.0) * value
+ )
+
+var agility := 5:
+ set(value):
+ agility = value
+ %StatEntryAgility.value = value
+ %Polygon.polygon[5] = (
+ Vector2(100, 100) +
+ ((Vector2(0, 50) - Vector2(100, 100)) / 9.0) * value
+ )
+
+var head_id := 1:
+ set(value):
+ head_id = value
+ %Head.texture = load(
+ "%s/%s/000.png" % [
+ "res://client_data/data/sprite",
+ Constants.FilePaths.get_player_head(Constants.Gender.Male, head_id),
+ ]
+ )
+
+var character_name: String
+
+
+func _on_strength_button_pressed() -> void:
+ if strength >= 9:
+ return
+
+ strength += 1
+ intelligence -= 1
+
+
+func _on_vitality_button_pressed() -> void:
+ if vitality >= 9:
+ return
+
+ vitality += 1
+ dexterity -= 1
+
+
+func _on_luck_button_pressed() -> void:
+ if luck >= 9:
+ return
+
+ luck += 1
+ agility -= 1
+
+
+func _on_intelligence_button_pressed() -> void:
+ if intelligence >= 9:
+ return
+
+ intelligence += 1
+ strength -= 1
+
+
+func _on_dexterity_button_pressed() -> void:
+ if dexterity >= 9:
+ return
+
+ dexterity += 1
+ vitality -= 1
+
+
+func _on_agility_button_pressed() -> void:
+ if agility >= 9:
+ return
+
+ agility += 1
+ luck -= 1
+
+
+func _on_appearance_left_button_pressed() -> void:
+ head_id = (head_id - 1) % (42 + 1)
+ # TODO: fix
+
+
+func _on_appearance_right_button_pressed() -> void:
+ head_id = (head_id + 1) % (42 + 1)
+
+
+func _on_appearance_up_button_pressed() -> void:
+ # TODO: change hair color
+ pass # Replace with function body.
+
+
+func _on_name_text_changed(new_text: String) -> void:
+ character_name = new_text