diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2025-04-07 11:45:05 +0200 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2025-04-07 11:45:05 +0200 |
commit | f3d360e022fce829370c7d916abe98083b14818c (patch) | |
tree | 4ac9f886b45a9482dcd42e991e85ab2e4bea3dbc /ui/login/character_creation.gd | |
parent | bd77c88efc9327805b6f6fd83fa0492ed59d0f9a (diff) |
Diffstat (limited to 'ui/login/character_creation.gd')
-rw-r--r-- | ui/login/character_creation.gd | 134 |
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 |