4
0
Fork 0
WolfBox/scripts/client_manager.gd

55 lines
1.8 KiB
GDScript

extends Node
class_name ClientManager
@export var prompt_select_night_action: Prompt
@export var prompt_no_night_actions: Prompt
@export var prompt_no_secret_chats: Prompt
@export var prompt_view_team: Prompt
@export var prompt_view_role: Prompt
var player: WolfPlayer
func set_player(player: Player):
if player is WolfPlayer:
self.player = player
player.connect("role_changed", _player_role_changed)
player.connect("team_changed", _player_team_changed)
func _player_role_changed() -> void:
$"../ActionButtons/ViewRoleButton".visible = player.role != null
$"../ActionButtons/ViewRoleButton".visible = player.role != null
func _player_team_changed() -> void:
$"../ActionButtons/ViewTeamButton".visible = player.team != null
func _on_night_actions_button_pressed() -> void:
var prompt: Prompt
var actions: Dictionary = player.get_night_actions()
#var actions: Dictionary[String, NightAction] = player.get_night_actions()
if !actions.is_empty():
prompt = prompt_select_night_action
prompt.options.assign(actions.keys())
prompt.options.append("Cancel")
var choose_action: Action = Action.new(prompt, night_action_chosen.bind(actions))
player.send_action(choose_action, false)
else:
prompt = prompt_no_night_actions
player.send_prompt(prompt)
func night_action_chosen(answer: String, pl: Player, options: Dictionary) -> bool:
if options.has(answer):
player.use_night_action.rpc_id(1,answer)
return true
func _on_werewolf_chat_button_pressed() -> void:
player.send_prompt(prompt_no_secret_chats)
func _on_view_team_button_pressed() -> void:
if player != null and player.team != null:
player.send_prompt(prompt_view_team.with_context({"team":player.team.name}))
func _on_view_role_button_pressed() -> void:
if player != null and player.role != null:
player.send_prompt(prompt_view_role.with_context({"role":player.role.name}))