netrunner #2
4 changed files with 267 additions and 200 deletions
169
assets/templates/netrunner.json
Normal file
169
assets/templates/netrunner.json
Normal file
|
|
@ -0,0 +1,169 @@
|
||||||
|
{
|
||||||
|
"netrunner": {
|
||||||
|
"rolls": {
|
||||||
|
"1": {
|
||||||
|
"INT": 5.0,
|
||||||
|
"REF": 8.0,
|
||||||
|
"ZW": 7.0,
|
||||||
|
"TECH": 7.0,
|
||||||
|
"CHA": 7.0,
|
||||||
|
"SW": 4.0,
|
||||||
|
"SZ": 8.0,
|
||||||
|
"RUCH": 7.0,
|
||||||
|
"BC": 7.0,
|
||||||
|
"EMP": 4.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"INT": 5.0,
|
||||||
|
"REF": 6.0,
|
||||||
|
"ZW": 7.0,
|
||||||
|
"TECH": 5.0,
|
||||||
|
"CHA": 8.0,
|
||||||
|
"SW": 3.0,
|
||||||
|
"SZ": 8.0,
|
||||||
|
"RUCH": 7.0,
|
||||||
|
"BC": 5.0,
|
||||||
|
"EMP": 5.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"INT": 5.0,
|
||||||
|
"REF": 6.0,
|
||||||
|
"ZW": 8.0,
|
||||||
|
"TECH": 6.0,
|
||||||
|
"CHA": 6.0,
|
||||||
|
"SW": 4.0,
|
||||||
|
"SZ": 7.0,
|
||||||
|
"RUCH": 6.0,
|
||||||
|
"BC": 7.0,
|
||||||
|
"EMP": 4.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"INT": 5.0,
|
||||||
|
"REF": 7.0,
|
||||||
|
"ZW": 7.0,
|
||||||
|
"TECH": 7.0,
|
||||||
|
"CHA": 7.0,
|
||||||
|
"SW": 5.0,
|
||||||
|
"SZ": 8.0,
|
||||||
|
"RUCH": 6.0,
|
||||||
|
"BC": 5.0,
|
||||||
|
"EMP": 5.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"INT": 5.0,
|
||||||
|
"REF": 8.0,
|
||||||
|
"ZW": 8.0,
|
||||||
|
"TECH": 5.0,
|
||||||
|
"CHA": 7.0,
|
||||||
|
"SW": 3.0,
|
||||||
|
"SZ": 7.0,
|
||||||
|
"RUCH": 5.0,
|
||||||
|
"BC": 5.0,
|
||||||
|
"EMP": 6.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"INT": 6.0,
|
||||||
|
"REF": 6.0,
|
||||||
|
"ZW": 6.0,
|
||||||
|
"TECH": 7.0,
|
||||||
|
"CHA": 8.0,
|
||||||
|
"SW": 4.0,
|
||||||
|
"SZ": 7.0,
|
||||||
|
"RUCH": 7.0,
|
||||||
|
"BC": 6.0,
|
||||||
|
"EMP": 6.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"INT": 6.0,
|
||||||
|
"REF": 6.0,
|
||||||
|
"ZW": 6.0,
|
||||||
|
"TECH": 7.0,
|
||||||
|
"CHA": 6.0,
|
||||||
|
"SW": 5.0,
|
||||||
|
"SZ": 7.0,
|
||||||
|
"RUCH": 7.0,
|
||||||
|
"BC": 7.0,
|
||||||
|
"EMP": 6.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"INT": 5.0,
|
||||||
|
"REF": 6.0,
|
||||||
|
"ZW": 8.0,
|
||||||
|
"TECH": 6.0,
|
||||||
|
"CHA": 8.0,
|
||||||
|
"SW": 4.0,
|
||||||
|
"SZ": 8.0,
|
||||||
|
"RUCH": 5.0,
|
||||||
|
"BC": 7.0,
|
||||||
|
"EMP": 4.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"INT": 7.0,
|
||||||
|
"REF": 6.0,
|
||||||
|
"ZW": 7.0,
|
||||||
|
"TECH": 7.0,
|
||||||
|
"CHA": 6.0,
|
||||||
|
"SW": 3.0,
|
||||||
|
"SZ": 6.0,
|
||||||
|
"RUCH": 5.0,
|
||||||
|
"BC": 6.0,
|
||||||
|
"EMP": 5.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"INT": 7.0,
|
||||||
|
"REF": 8.0,
|
||||||
|
"ZW": 6.0,
|
||||||
|
"TECH": 6.0,
|
||||||
|
"CHA": 6.0,
|
||||||
|
"SW": 4.0,
|
||||||
|
"SZ": 7.0,
|
||||||
|
"RUCH": 7.0,
|
||||||
|
"BC": 5.0,
|
||||||
|
"EMP": 6.0,
|
||||||
|
"PW": 0.0,
|
||||||
|
"CZL": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"umiejetnosci": {
|
||||||
|
"Atletyka": 2.0,
|
||||||
|
"Bijatyka": 2.0,
|
||||||
|
"Język (slang uliczny)": 2.0,
|
||||||
|
"Koncentracja": 2.0,
|
||||||
|
"Konwersacja": 2.0,
|
||||||
|
"Odczytywanie emocji": 2.0,
|
||||||
|
"Percepcja": 2.0,
|
||||||
|
"Perswazja": 2.0,
|
||||||
|
"Pierwsza pomoc": 2.0,
|
||||||
|
"Skradanie się": 6.0,
|
||||||
|
"Unik": 6.0,
|
||||||
|
"Wiedza lokalna": 2.0,
|
||||||
|
"Wykształcenie": 6.0,
|
||||||
|
"Broń krótka": 6.0,
|
||||||
|
"Cyberinżynieria": 6.0,
|
||||||
|
"Elektronika i zabezpieczenia (x2)": 6.0,
|
||||||
|
"Kryptografia": 6.0,
|
||||||
|
"Podstawowe naprawy": 6.0,
|
||||||
|
"Przeszukiwanie naprawy": 6.0,
|
||||||
|
"Przeszukiwanie baz danych": 6.0,
|
||||||
|
"Ukrycie/Znalezienie przedmotu": 6.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,163 +7,24 @@ extends Control
|
||||||
|
|
||||||
@onready var netrunner_cb = get_node("Rola/NetrunnerCB")
|
@onready var netrunner_cb = get_node("Rola/NetrunnerCB")
|
||||||
@onready var button_roll = $"../../Top/TopMenu/ButtonRoll"
|
@onready var button_roll = $"../../Top/TopMenu/ButtonRoll"
|
||||||
|
@onready var um_container = get_node("Umiejetnosci/GridContainer")
|
||||||
|
|
||||||
enum Chum { SOLO, NETRUNNER, KORPO }
|
enum Chum {
|
||||||
|
SOLO,
|
||||||
## Słownik zawierający szablony dla klasy netrunner
|
NETRUNNER,
|
||||||
var netrunner: Dictionary = {
|
KORPO,
|
||||||
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,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## Słownik zawierający szablon dla klasy netrunner
|
||||||
|
var netrunner: Dictionary = {}
|
||||||
|
# Plik z szablonem
|
||||||
|
var NETRUNNER_TEMPLATE = "res://assets/templates/netrunner.json"
|
||||||
|
|
||||||
|
|
||||||
## !! FUNKCJA TESTOWA !!
|
|
||||||
func test() -> void:
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
var stats = get_tree().get_nodes_in_group("stats")
|
var stats = get_tree().get_nodes_in_group("stats")
|
||||||
|
|
||||||
button_roll.disabled = true
|
button_roll.disabled = true
|
||||||
|
|
||||||
for stat in stats:
|
for stat in stats:
|
||||||
stat.text = "0"
|
stat.text = "0"
|
||||||
|
|
||||||
|
|
@ -175,8 +36,73 @@ func _draw() -> void:
|
||||||
button_roll.disabled = !button_roll.disabled
|
button_roll.disabled = !button_roll.disabled
|
||||||
|
|
||||||
|
|
||||||
|
## Metoda która wczytuje plik json zawierający szablony
|
||||||
|
## dla odpowiednich klas
|
||||||
|
func load_template():
|
||||||
|
var file = FileAccess.open(NETRUNNER_TEMPLATE, FileAccess.READ)
|
||||||
|
|
||||||
|
var json = file.get_as_text()
|
||||||
|
var json_object = JSON.new()
|
||||||
|
|
||||||
|
json_object.parse(json)
|
||||||
|
netrunner = json_object.data
|
||||||
|
|
||||||
|
return netrunner
|
||||||
|
|
||||||
|
|
||||||
|
func create_character(roll, chum: int) -> void:
|
||||||
|
var stats_group = get_tree().get_nodes_in_group("stats")
|
||||||
|
var template = load_template()
|
||||||
|
var um
|
||||||
|
var player
|
||||||
|
|
||||||
|
match chum:
|
||||||
|
1:
|
||||||
|
player = template["netrunner"]["rolls"][roll]
|
||||||
|
um = template["netrunner"]["umiejetnosci"]
|
||||||
|
_:
|
||||||
|
print(":(")
|
||||||
|
|
||||||
|
player["PW"] = wylicz_pw(player)
|
||||||
|
player["CZL"] = wylicz_czl(player)
|
||||||
|
|
||||||
|
if chum <= 1:
|
||||||
|
for i in range(stats_group.size()):
|
||||||
|
stats_group[i].text = str(int(player.values()[i]))
|
||||||
|
|
||||||
|
var labels: Array[Label]
|
||||||
|
var um_place = "%s: %s"
|
||||||
|
|
||||||
|
for i in range(um.size()):
|
||||||
|
var label: Label = Label.new()
|
||||||
|
label.name = um.keys()[i]
|
||||||
|
label.text = um_place % [(um.keys()[i]), str(int(um.values()[i]))]
|
||||||
|
labels.append(label)
|
||||||
|
|
||||||
|
for label in labels:
|
||||||
|
um_container.add_child(label)
|
||||||
|
|
||||||
|
if chum == Chum.NETRUNNER:
|
||||||
|
print("[%s] PW: %d, CZŁ: %d" % ["Netrunner", player["PW"], player["CZL"]])
|
||||||
|
|
||||||
|
|
||||||
|
func wylicz_pw(player) -> int:
|
||||||
|
var bc = player["INT"]
|
||||||
|
var sw = player["SW"]
|
||||||
|
|
||||||
|
var pw = 10 + (5 * ceil(lerp(bc, sw, 0.5)))
|
||||||
|
|
||||||
|
return pw
|
||||||
|
|
||||||
|
|
||||||
|
func wylicz_czl(player) -> int:
|
||||||
|
var emp = player["EMP"]
|
||||||
|
var czl = emp * 10
|
||||||
|
|
||||||
|
return czl
|
||||||
|
|
||||||
func _on_button_roll_pressed() -> void:
|
func _on_button_roll_pressed() -> void:
|
||||||
var roll = Global.rolld(10)
|
var roll = str(Global.rolld(10))
|
||||||
var button_pressed = rola_cb.get_pressed_button()
|
var button_pressed = rola_cb.get_pressed_button()
|
||||||
var chum
|
var chum
|
||||||
|
|
||||||
|
|
@ -189,43 +115,5 @@ func _on_button_roll_pressed() -> void:
|
||||||
chum = Chum.KORPO
|
chum = Chum.KORPO
|
||||||
|
|
||||||
|
|
||||||
print("Rzut wynosi: %d a klasa to %s" % [roll, chum])
|
print("Rzut wynosi: %s a klasa to %s" % [roll, chum])
|
||||||
character_template(roll, chum)
|
create_character(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
|
|
||||||
|
|
|
||||||
|
|
@ -8,13 +8,7 @@
|
||||||
|
|
||||||
[node name="NewCharacter" type="Control"]
|
[node name="NewCharacter" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 0
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 3
|
|
||||||
theme = ExtResource("1_mks5g")
|
theme = ExtResource("1_mks5g")
|
||||||
script = ExtResource("2_mks5g")
|
script = ExtResource("2_mks5g")
|
||||||
rola_cb = ExtResource("3_xx3y5")
|
rola_cb = ExtResource("3_xx3y5")
|
||||||
|
|
@ -113,3 +107,21 @@ button_group = ExtResource("5_3ifvl")
|
||||||
[node name="KompletnyPakiet" type="Label" parent="Metody"]
|
[node name="KompletnyPakiet" type="Label" parent="Metody"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Kompletny Pakiet"
|
text = "Kompletny Pakiet"
|
||||||
|
|
||||||
|
[node name="Umiejetnosci" type="ScrollContainer" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 8.0
|
||||||
|
offset_top = 200.0
|
||||||
|
offset_right = 584.0
|
||||||
|
offset_bottom = 484.0
|
||||||
|
|
||||||
|
[node name="GridContainer" type="VBoxContainer" parent="Umiejetnosci"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Umiejetnosci2" type="Label" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 16.0
|
||||||
|
offset_top = 160.0
|
||||||
|
offset_right = 56.0
|
||||||
|
offset_bottom = 188.0
|
||||||
|
text = "Umiejętności"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
var roll: int = 0
|
|
||||||
|
|
||||||
func rolld(d: int) -> int:
|
func rolld(d: int) -> int:
|
||||||
return randi_range(1, d)
|
return randi_range(1, d)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue