programovani-kostky/game/ui.gd
2024-05-20 20:34:55 +02:00

52 lines
No EOL
1.5 KiB
GDScript

extends Control
class_name Ui
signal roll_pressed
func _on_roll_button_pressed() -> void:
roll_pressed.emit()
@onready var dice1 = $dice1
@onready var dice2 = $dice2
func set_current_throw_value(value: Array[int]) -> void:
dice1.value = value[0]
dice2.value = value[1]
@onready var player1 = $VBoxContainer/Player
@onready var player2 = $VBoxContainer/Player2
@onready var player3 = $VBoxContainer/Player3
@onready var player4 = $VBoxContainer/Player4
@onready var player5 = $VBoxContainer/Player5
@onready var container = $VBoxContainer
@onready var pointer = $CurrentPlayerPointer
var players: Array[Player] = []
var current_player: int = 0 :
set(value):
current_player = value
update_pointer()
var tween: Tween
func _ready() -> void:
players = [player1, player2, player3, player4, player5]
func update_pointer() -> void:
pointer.global_position.x = container.size.x
var p = players[current_player]
if tween: tween.kill()
tween = create_tween().set_trans(Tween.TRANS_ELASTIC)
tween.tween_property(pointer, "global_position:y", p.global_position.y + p.size.y/2 - pointer.size.y/2, .6)
func update_medal() -> void:
var max_score = 0
for player in players:
if player.score > max_score:
max_score = player.score
for player in players:
player.show_medal = player.score == max_score and max_score > 0
signal back_to_menu
func _on_texture_rect_gui_input(event: InputEvent) -> void:
if event is InputEventMouse:
if event.is_pressed():
back_to_menu.emit()