extends Node2D #------------------------------------------ # Signaux #------------------------------------------ #------------------------------------------ # Exports #------------------------------------------ @export var player_name:String = "": set(value): player_name = value if _name_label: _name_label.text = player_name #------------------------------------------ # Variables publiques #------------------------------------------ #------------------------------------------ # Variables privées #------------------------------------------ @onready var _text_label:Label = $GUI/Text @onready var _name_label:Label = $GUI/Name #------------------------------------------ # Fonctions Godot redéfinies #------------------------------------------ func _ready() -> void: _name_label.text = player_name #------------------------------------------ # Fonctions publiques #------------------------------------------ func declare_presence(blackboard:BTBlackboard) -> int: blackboard.get_data("players").append(player_name) return BTTickResult.SUCCESS func is_my_turn_to_talk(next_talking:String) -> bool: return player_name == next_talking func talk() -> int: _text_label.visible = true get_tree().create_timer(1).timeout.connect(func():_text_label.visible = false) return BTTickResult.SUCCESS func choose_next_player_talking(blackboard:BTBlackboard) -> int: blackboard.set_data("next_talking", _pick_next_player(blackboard.get_data("players"))) return BTTickResult.SUCCESS #------------------------------------------ # Fonctions privées #------------------------------------------ func _pick_next_player(players:Array) -> String: var result:String = players.pick_random() while result == player_name: result = players.pick_random() return result