neowarsaw/scenes/create_player/new_character/new_character.gd
2026-01-05 13:36:23 +01:00

231 lines
3.4 KiB
GDScript

extends Control
## Grupa przycisków typu checkbox która umożliwia
## wybór tylko jednej opcji
@export var rola_cb: ButtonGroup
@export var metody_cb: ButtonGroup
@onready var netrunner_cb = get_node("Rola/NetrunnerCB")
@onready var button_roll = $"../../Top/TopMenu/ButtonRoll"
enum Chum { SOLO, NETRUNNER, KORPO }
## Słownik zawierający szablony dla klasy netrunner
var netrunner: Dictionary = {
1: {
"INT": 5,
"REF": 8,
"ZW": 7,
"TECH": 7,
"CHA": 7,
"SW": 4,
"SZ": 8,
"RUCH": 7,
"BC": 7,
"EMP": 4,
"PW": 0,
"CZL": 0,
},
2: {
"INT": 5,
"REF": 6,
"ZW": 7,
"TECH": 5,
"CHA": 8,
"SW": 3,
"SZ": 8,
"RUCH": 7,
"BC": 5,
"EMP": 5,
"PW": 0,
"CZL": 0,
},
3: {
"INT": 5,
"REF": 6,
"ZW": 8,
"TECH": 6,
"CHA": 6,
"SW": 4,
"SZ": 7,
"RUCH": 6,
"BC": 7,
"EMP": 4,
"PW": 0,
"CZL": 0,
},
4: {
"INT": 5,
"REF": 7,
"ZW": 7,
"TECH": 7,
"CHA": 7,
"SW": 5,
"SZ": 8,
"RUCH": 6,
"BC": 5,
"EMP": 5,
"PW": 0,
"CZL": 0,
},
5: {
"INT": 5,
"REF": 8,
"ZW": 8,
"TECH": 5,
"CHA": 7,
"SW": 3,
"SZ": 7,
"RUCH": 5,
"BC": 5,
"EMP": 6,
"PW": 0,
"CZL": 0,
},
6: {
"INT": 6,
"REF": 6,
"ZW": 6,
"TECH": 7,
"CHA": 8,
"SW": 4,
"SZ": 7,
"RUCH": 7,
"BC": 6,
"EMP": 6,
"PW": 0,
"CZL": 0,
},
7: {
"INT": 6,
"REF": 6,
"ZW": 6,
"TECH": 7,
"CHA": 6,
"SW": 5,
"SZ": 7,
"RUCH": 7,
"BC": 7,
"EMP": 6,
"PW": 0,
"CZL": 0,
},
8: {
"INT": 5,
"REF": 6,
"ZW": 8,
"TECH": 6,
"CHA": 8,
"SW": 4,
"SZ": 8,
"RUCH": 5,
"BC": 7,
"EMP": 4,
"PW": 0,
"CZL": 0,
},
9: {
"INT": 7,
"REF": 6,
"ZW": 7,
"TECH": 7,
"CHA": 6,
"SW": 3,
"SZ": 6,
"RUCH": 5,
"BC": 6,
"EMP": 5,
"PW": 0,
"CZL": 0,
},
10: {
"INT": 7,
"REF": 8,
"ZW": 6,
"TECH": 6,
"CHA": 6,
"SW": 4,
"SZ": 7,
"RUCH": 7,
"BC": 5,
"EMP": 6,
"PW": 0,
"CZL": 0,
},
}
## !! FUNKCJA TESTOWA !!
func test() -> void:
pass
func _ready() -> void:
var stats = get_tree().get_nodes_in_group("stats")
button_roll.disabled = true
for stat in stats:
stat.text = "0"
func _draw() -> void:
var stats_scene = get_node("Stats")
if stats_scene.is_visible_in_tree():
button_roll.disabled = !button_roll.disabled
func _on_button_roll_pressed() -> void:
var roll = Global.rolld(10)
var button_pressed = rola_cb.get_pressed_button()
var chum
match button_pressed.name:
"SoloCB":
chum = Chum.SOLO
"NetrunnerCB":
chum = Chum.NETRUNNER
"KorpoCB":
chum = Chum.KORPO
print("Rzut wynosi: %d a klasa to %s" % [roll, chum])
character_template(roll, chum)
func character_template(roll: int, chum: int) -> void:
var stats_group = get_tree().get_nodes_in_group("stats")
var _netrunner = netrunner.duplicate()
var template
match chum:
1:
template = _netrunner.get(roll)
_:
print(":(")
template["PW"] = wylicz_pw(template)
template["CZL"] = wylicz_czl(template)
if chum <= 1:
for i in range(stats_group.size()):
stats_group[i].text = str(template.values()[i])
if chum == Chum.NETRUNNER:
print("[%s] PW: %d, CZŁ: %d" % ["Netrunner", template["PW"], template["CZL"]])
func wylicz_pw(template: Dictionary) -> int:
var bc = template["INT"]
var sw = template["SW"]
var pw = 10 + (5 * ceil(lerp(bc, sw, 0.5)))
return pw
func wylicz_czl(template: Dictionary) -> int:
var emp = template["EMP"]
var czl = emp * 10
return czl