class_name Player extends Control @onready var player_name_field := $HBoxContainer/Name @onready var add := $HBoxContainer/AddPoint @onready var minus := $HBoxContainer/RemovePoint @onready var character := $HBoxContainer/Character @onready var remove_player := $HBoxContainer/RemovePlayer signal change_character_clicked signal first_point_triggerd signal match_point_triggerd signal winner_triggerd signal player_removed @export var player_name: String @export var player_score: String @export var id: int var is_first_point: bool = true # Called when the node enters the scene tree for the first time. func _ready() -> void: add.pressed.connect(add_point) minus.pressed.connect(minus_point) character.pressed.connect(change_character) remove_player.pressed.connect(func(): player_removed.emit()) player_name_field.text = player_score func _input(event: InputEvent) -> void: if event is InputEventKey and event.pressed: if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_1: check_player(1, false) elif event.alt_pressed && event.keycode == KEY_1: check_player(1, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_2: check_player(2, false) elif event.alt_pressed && event.keycode == KEY_2: check_player(2, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_3: check_player(3, false) elif event.alt_pressed && event.keycode == KEY_3: check_player(3, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_4: check_player(4, false) elif event.alt_pressed && event.keycode == KEY_4: check_player(4, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_5: check_player(5, false) elif event.alt_pressed && event.keycode == KEY_5: check_player(5, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_6: check_player(6, false) elif event.alt_pressed && event.keycode == KEY_6: check_player(6, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_7: check_player(7, false) elif event.alt_pressed && event.keycode == KEY_7: check_player(7, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_8: check_player(8, false) elif event.alt_pressed && event.keycode == KEY_8: check_player(8, true) if event.alt_pressed && event.ctrl_pressed && event.keycode == KEY_9: check_player(9, false) elif event.alt_pressed && event.keycode == KEY_9: check_player(9, true) func check_player(pressed: int, add: bool): if (id == pressed): print("Player " + str(id) + " pressed") if add: add_point() else: minus_point() func add_point(): if is_first_point: is_first_point = false first_point_triggerd.emit() var new_value := get_point() + 1 set_point(new_value) if new_value == Settings.winning_score - 1: match_point_triggerd.emit() if new_value == Settings.winning_score: winner_triggerd.emit() func minus_point(): var new_value := get_point() - 1 set_point(new_value) if new_value == 0: is_first_point = true func reset_points(): var new_value := 0 set_point(new_value) is_first_point = true func change_character(): change_character_clicked.emit() func _on_control_character_selected_clicked(file_name: String): print("Back in player list with: " + file_name) var texture = load("res://characters/" + file_name) character.custom_minimum_size = Vector2(80, 40) character.ignore_texture_size = true character.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT character.texture_normal = texture func get_point() -> int: var arr = player_name_field.text.split(":") return arr[1].to_int() func set_point(new_point: int): var arr = player_name_field.text.split(":") player_name_field.text = arr[0] + ": " + str(new_point)