forked from Nekojimi/JackIt
55 lines
1.8 KiB
GDScript
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}))
|