shuffle sync works, chat boxes work, initial hand draw works, players cant share a username

This commit is contained in:
2023-06-08 15:44:43 +10:00
parent 305c8d307a
commit 6e908ba181
12 changed files with 204 additions and 140 deletions

View File

@ -1,2 +1,4 @@
class_name BotController
extends PlayerController

View File

@ -1,25 +1,42 @@
class_name HumanController
extends PlayerController
signal ready_button_pressed(int)
signal chat_message_submitted(String)
@onready var ready_button = $CanvasLayer/UI/HBoxContainer/LobbyReadyButton
@onready var ready_label = $CanvasLayer/UI/HBoxContainer/LobbyReadyLabel
@onready var canvas = $CanvasLayer
@onready var chat_box = $CanvasLayer/UI/VBoxContainer/RichTextLabel
func _ready() -> void:
if not is_multiplayer_authority():
canvas.visible = false
return
$Camera2D.make_current()
$UI.visible = true
@rpc("call_local")
func ready_player():
game.ready_player(own_id)
func ready_self():
ready_button_pressed.emit(player_info["id"])
@rpc("any_peer")
func update_ready_label():
$UI/LobbyReadyLabel.text = str(game.readied_players.size()) + "/" + str(game.players.size())
func update_ready_label(readied_players, total_players):
ready_label.text = str(readied_players) + "/" + str(total_players)
func _on_lobby_ready_button_pressed() -> void:
rpc("ready_player")
$UI/LobbyReadyButton.visible = false
update_ready_label()
rpc("ready_self")
ready_button.visible = false
func add_chat_line(line: String) -> void:
chat_box.text += line
func _on_line_edit_text_submitted(new_text: String) -> void:
var msg = "[" + player_info["username"] + "] " + new_text + "\n"
$CanvasLayer/UI/VBoxContainer/LineEdit.text = ""
chat_message_submitted.emit(msg)

View File

@ -1,6 +1,16 @@
class_name PlayerController
extends Node
var game: Game
var board: PlayerBoard
var own_id: int
var player_info
@export var hand_position: Node2D
var hand = []
func draft(cards, _pick):
var xxx = (250.0 * cards.size()) / 2.0
for x in cards.size():
var card = cards[x]
var ratio = float(x) / float(cards.size() - 1)
var xx = lerpf(-1 * xxx, xxx, ratio)
card.slide_to_position(hand_position.global_position.x + xx, hand_position.global_position.y, 0.0, 0.2)
hand.append(card)