forked from Nekojimi/JackIt
53 lines
1.9 KiB
GDScript3
53 lines
1.9 KiB
GDScript3
|
extends VBoxContainer
|
||
|
|
||
|
var item: Bot:
|
||
|
set(val):
|
||
|
item = val
|
||
|
update()
|
||
|
|
||
|
func _ready() -> void:
|
||
|
for team_name in Team.teams.keys():
|
||
|
$TeamOptionButton.add_item(team_name)
|
||
|
for role_name in Role.roles.keys():
|
||
|
var role: Role = Role.roles[role_name]
|
||
|
$RoleOptionButton.add_item(role_name)
|
||
|
#$RoleOptionButton
|
||
|
|
||
|
func _player_alive_changed(alive: bool) -> void:
|
||
|
$AliveLabel.text = "ALIVE" if alive else "DEAD"
|
||
|
|
||
|
func _process(delta: float) -> void:
|
||
|
if item != null:
|
||
|
var knowledge_text: String = ""
|
||
|
for player in item.player_knowledge.keys():
|
||
|
if player == null:
|
||
|
continue
|
||
|
#if !player.alive:
|
||
|
#continue
|
||
|
var knowledge: Bot.PlayerKnowledge = item.player_knowledge[player]
|
||
|
var trust: float = knowledge.trustworthiness
|
||
|
var trust_colour: String = Color(min(1.0-trust,1.0),min(1.0+trust,1.0),0.0).to_html(false)
|
||
|
knowledge_text += "%s:[color=%s]T%.2f[/color] P%.2f\n" % [player.player_name, trust_colour, knowledge.trustworthiness, knowledge.power]
|
||
|
$KnowledgeLabel.text = knowledge_text
|
||
|
|
||
|
func update():
|
||
|
$Label.text = item.player_name
|
||
|
item.connect("alive_changed", _player_alive_changed)
|
||
|
item.connect("role_changed", func(role:Role): _select_option_button_by_name(role.name, $RoleOptionButton))
|
||
|
item.connect("team_changed", func(team:Team): _select_option_button_by_name(team.name, $TeamOptionButton))
|
||
|
|
||
|
func _select_option_button_by_name(name: String, option_button: OptionButton) -> void:
|
||
|
option_button.selected = -1
|
||
|
for i in range(option_button.item_count):
|
||
|
if option_button.get_item_text(i) == name:
|
||
|
option_button.select(i)
|
||
|
break
|
||
|
|
||
|
func _on_team_option_button_item_selected(index: int) -> void:
|
||
|
var team_name: String = $TeamOptionButton.get_item_text(index)
|
||
|
item.team = Team.teams[team_name]
|
||
|
|
||
|
func _on_role_option_button_item_selected(index: int) -> void:
|
||
|
var role_name: String = $RoleOptionButton.get_item_text(index)
|
||
|
item.role = Role.roles[role_name]
|