cards are now distributed and displayed among all clients
This commit is contained in:
@@ -28,17 +28,11 @@ func get_shuffled_cards(client_ids: Array[String], cards_to_pick: int) -> Dictio
|
||||
return dict
|
||||
|
||||
func get_card_texture(card_id: int, style: CardStyle = CardStyle.STICKMAN) -> Texture:
|
||||
#if card_textures.has(card_id):
|
||||
#return card_textures[card_id]
|
||||
var style_name: String = ""
|
||||
match style:
|
||||
CardStyle.STICKMAN:
|
||||
style_name = "stickman"
|
||||
var a = "res://cards/textures/" + style_name + "/" + _get_card_name(card_id) + ".webp"
|
||||
print(a)
|
||||
return load(a)
|
||||
|
||||
#return card_fallback_texture
|
||||
return load("res://cards/textures/" + style_name + "/" + _get_card_name(card_id) + ".webp")
|
||||
|
||||
func _get_card_name(card_id: int) -> String:
|
||||
var color: String
|
||||
|
||||
@@ -37,7 +37,7 @@ signal received_chat_message(client_name: String, message: String)
|
||||
signal connection_status_changed(new_status: ConnectionStatus)
|
||||
|
||||
signal client_order_received(client_ids: Array[String])
|
||||
signal cards_received(card_ids: Array[int])
|
||||
signal cards_received(cards: Dictionary)
|
||||
|
||||
enum ConnectionStatus {
|
||||
DISCONNECTED,
|
||||
@@ -127,8 +127,8 @@ func _handle_response(response: String) -> void:
|
||||
playing_order.assign(data["playing_order"])
|
||||
client_order_received.emit.call_deferred(playing_order)
|
||||
|
||||
var received_cards: Array[int] = []
|
||||
received_cards.assign(data["cards"])
|
||||
var received_cards = data["cards"]
|
||||
print(received_cards)
|
||||
cards_received.emit.call_deferred(received_cards)
|
||||
"client_submitted_bet":
|
||||
print(data)
|
||||
|
||||
@@ -17,13 +17,13 @@ var _selected_card: PlayingCard = null
|
||||
signal card_selected(card_id: int)
|
||||
signal card_played(card_id: int)
|
||||
|
||||
func _ready() -> void:
|
||||
_arrange_cards()
|
||||
var test_array: Array[int]
|
||||
for i in range(10):
|
||||
test_array.append(randi_range(0, 59))
|
||||
|
||||
add_cards(test_array, "")
|
||||
#func _ready() -> void:
|
||||
#_arrange_cards()
|
||||
#var test_array: Array[int]
|
||||
#for i in range(10):
|
||||
#test_array.append(randi_range(0, 59))
|
||||
#
|
||||
#add_cards(test_array, "")
|
||||
|
||||
func add_card(card: PlayingCard) -> void:
|
||||
self.add_child(card)
|
||||
|
||||
+23
-19
@@ -1,8 +1,10 @@
|
||||
class_name EnvironmentManager
|
||||
extends Node3D
|
||||
|
||||
var hand_associations: Dictionary[String, PlayerHand]
|
||||
|
||||
# In gameplay order
|
||||
var hand_associations: Dictionary[int, PlayerHandAssociation]
|
||||
#var hand_associations: Dictionary[int, PlayerHandAssociation]
|
||||
var _own_client_id: String
|
||||
@export var own_player_hand: PlayerHand
|
||||
|
||||
@@ -36,11 +38,9 @@ func _on_web_client_tcp_client_order_received(client_ids: Array[String]) -> void
|
||||
|
||||
var new_ids: Array[String]
|
||||
if own_index == 0:
|
||||
print("ïndex was 0 " + _own_client_id)
|
||||
# no change necessary!
|
||||
new_ids = client_ids
|
||||
elif own_index == client_ids.size() - 1:
|
||||
print("index was last " + _own_client_id)
|
||||
# you are at the end of the array
|
||||
new_ids = client_ids
|
||||
# take away own client id
|
||||
@@ -48,31 +48,35 @@ func _on_web_client_tcp_client_order_received(client_ids: Array[String]) -> void
|
||||
# add it to the start of the array
|
||||
new_ids.insert(0, _own_client_id)
|
||||
else:
|
||||
print("index was middle " + _own_client_id)
|
||||
# you are somewhere in the middle of the array
|
||||
# create array with you at the start
|
||||
new_ids = client_ids.slice(own_index)
|
||||
# add the rest of the original array
|
||||
new_ids.append_array(client_ids.slice(0, own_index))
|
||||
|
||||
print("playing order! -- !")
|
||||
print(new_ids)
|
||||
|
||||
for index in client_ids.size():
|
||||
for index in new_ids.size():
|
||||
var hand: PlayerHand
|
||||
if client_ids[index] == _own_client_id:
|
||||
hand_associations[index] = PlayerHandAssociation.new(
|
||||
_own_client_id,
|
||||
own_player_hand.get_path(),
|
||||
)
|
||||
hand = own_player_hand
|
||||
else:
|
||||
var hand: PlayerHand = player_hand_scene.instantiate()
|
||||
hand = player_hand_scene.instantiate()
|
||||
self.add_child(hand)
|
||||
var reference_marker = marker_positions[index - 1]
|
||||
hand.global_position = reference_marker.global_position
|
||||
hand.global_rotation = reference_marker.global_rotation
|
||||
|
||||
# TODO
|
||||
self.add_child(hand) # needs position!
|
||||
hand_associations[index] = PlayerHandAssociation.new(
|
||||
client_ids[index],
|
||||
hand.get_path(),
|
||||
)
|
||||
#hand_associations[index] = PlayerHandAssociation.new(
|
||||
#client_ids[index],
|
||||
#hand.get_path(),
|
||||
#)
|
||||
hand_associations[client_ids[index]] = hand
|
||||
|
||||
func _on_web_client_tcp_received_client_id(client_id: String) -> void:
|
||||
_own_client_id = client_id
|
||||
|
||||
|
||||
func _on_web_client_tcp_cards_received(cards: Dictionary) -> void:
|
||||
for client_id in cards.keys():
|
||||
var card_ids: Array[int]
|
||||
card_ids.assign(cards[client_id])
|
||||
hand_associations[client_id].add_cards(card_ids, client_id)
|
||||
|
||||
@@ -235,6 +235,7 @@ transform = Transform3D(-0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, -0.5, 3.2, 0.4
|
||||
|
||||
[node name="Table" parent="EnvironmentManager" instance=ExtResource("7_eow3j")]
|
||||
|
||||
[connection signal="cards_received" from="WebClientTCP" to="EnvironmentManager" method="_on_web_client_tcp_cards_received"]
|
||||
[connection signal="client_joined_lobby" from="WebClientTCP" to="HBoxContainer/ClientInterface" method="_on_web_client_tcp_client_joined_lobby"]
|
||||
[connection signal="client_joined_lobby" from="WebClientTCP" to="HBoxContainer/GameUI" method="_on_web_client_tcp_client_joined_lobby"]
|
||||
[connection signal="client_left_lobby" from="WebClientTCP" to="HBoxContainer/ClientInterface" method="_on_web_client_tcp_client_left_lobby"]
|
||||
|
||||
+4
-2
@@ -179,16 +179,18 @@ class LobbyManager:
|
||||
trump = None
|
||||
if cards["trump"]:
|
||||
trump = cards["trump"]
|
||||
cards.pop("trump")
|
||||
|
||||
for client_id in client_ids:
|
||||
client_cards = cards[client_id]
|
||||
# client_cards = cards[client_id]
|
||||
print(cards)
|
||||
await self.send_message(
|
||||
lobby_id,
|
||||
client_id,
|
||||
json.dumps({
|
||||
"response": "new_round_started",
|
||||
"current_round": round,
|
||||
"cards": client_cards,
|
||||
"cards": cards,
|
||||
"trump": trump,
|
||||
"playing_order": playing_order,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user