diff --git a/cards/card.gd b/cards/card.gd new file mode 100644 index 0000000..04799b5 --- /dev/null +++ b/cards/card.gd @@ -0,0 +1,21 @@ +class_name Card +extends Resource + +@export_range(0, 60) var card_id: int +@export var card_type: CardType = CardType.NUMBERED +@export_range(1, 13) var card_value: int = 1 +@export var color: CardColor + +enum CardType { + NUMBERED = 0, + JESTER = 1, + MAGICIAN = 2, +} + +enum CardColor { + BLUE = 0, + GREEN = 1, + RED = 2, + YELLOW = 3, + WHITE = 4, +} diff --git a/cards/card.gd.uid b/cards/card.gd.uid new file mode 100644 index 0000000..5d2846f --- /dev/null +++ b/cards/card.gd.uid @@ -0,0 +1 @@ +uid://dx4cl2rk0a8a0 diff --git a/cards/card_manager.gd b/cards/card_manager.gd new file mode 100644 index 0000000..da2a509 --- /dev/null +++ b/cards/card_manager.gd @@ -0,0 +1,3 @@ +extends Node + +@export var full_deck: Dictionary[int, Card] diff --git a/cards/card_manager.gd.uid b/cards/card_manager.gd.uid new file mode 100644 index 0000000..a043931 --- /dev/null +++ b/cards/card_manager.gd.uid @@ -0,0 +1 @@ +uid://c5yx2hpj6lifp diff --git a/cards/card_manager.tscn b/cards/card_manager.tscn new file mode 100644 index 0000000..8db73dd --- /dev/null +++ b/cards/card_manager.tscn @@ -0,0 +1,540 @@ +[gd_scene load_steps=62 format=3 uid="uid://hr727kw8y2hb"] + +[ext_resource type="Script" uid="uid://c5yx2hpj6lifp" path="res://cards/card_manager.gd" id="1_de166"] +[ext_resource type="Script" uid="uid://dx4cl2rk0a8a0" path="res://cards/card.gd" id="2_vmpa3"] + +[sub_resource type="Resource" id="Resource_hq606"] +script = ExtResource("2_vmpa3") +card_id = 0 +card_type = 0 +card_value = 1 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_jsikl"] +script = ExtResource("2_vmpa3") +card_id = 1 +card_type = 0 +card_value = 2 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_yrbs8"] +script = ExtResource("2_vmpa3") +card_id = 2 +card_type = 0 +card_value = 3 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_ewh6u"] +script = ExtResource("2_vmpa3") +card_id = 3 +card_type = 0 +card_value = 4 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_1bvgt"] +script = ExtResource("2_vmpa3") +card_id = 4 +card_type = 0 +card_value = 5 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_ox1hg"] +script = ExtResource("2_vmpa3") +card_id = 5 +card_type = 0 +card_value = 6 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_8sw4h"] +script = ExtResource("2_vmpa3") +card_id = 6 +card_type = 0 +card_value = 7 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_qe28u"] +script = ExtResource("2_vmpa3") +card_id = 7 +card_type = 0 +card_value = 8 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_kasop"] +script = ExtResource("2_vmpa3") +card_id = 8 +card_type = 0 +card_value = 9 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_ovwu1"] +script = ExtResource("2_vmpa3") +card_id = 9 +card_type = 0 +card_value = 10 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_rdi1s"] +script = ExtResource("2_vmpa3") +card_id = 10 +card_type = 0 +card_value = 11 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_biie8"] +script = ExtResource("2_vmpa3") +card_id = 11 +card_type = 0 +card_value = 12 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_mtv24"] +script = ExtResource("2_vmpa3") +card_id = 12 +card_type = 0 +card_value = 13 +color = 0 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_mpbj3"] +script = ExtResource("2_vmpa3") +card_id = 13 +card_type = 0 +card_value = 1 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_vmpa3"] +script = ExtResource("2_vmpa3") +card_id = 14 +card_type = 0 +card_value = 2 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_oq2er"] +script = ExtResource("2_vmpa3") +card_id = 15 +card_type = 0 +card_value = 3 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_s4ixr"] +script = ExtResource("2_vmpa3") +card_id = 16 +card_type = 0 +card_value = 4 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_362ky"] +script = ExtResource("2_vmpa3") +card_id = 17 +card_type = 0 +card_value = 5 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_7ipk5"] +script = ExtResource("2_vmpa3") +card_id = 18 +card_type = 0 +card_value = 6 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_dh6xn"] +script = ExtResource("2_vmpa3") +card_id = 29 +card_type = 0 +card_value = 4 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_w0krc"] +script = ExtResource("2_vmpa3") +card_id = 20 +card_type = 0 +card_value = 8 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_j3326"] +script = ExtResource("2_vmpa3") +card_id = 21 +card_type = 0 +card_value = 9 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_jrrf5"] +script = ExtResource("2_vmpa3") +card_id = 22 +card_type = 0 +card_value = 10 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_27icn"] +script = ExtResource("2_vmpa3") +card_id = 23 +card_type = 0 +card_value = 11 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_38pwx"] +script = ExtResource("2_vmpa3") +card_id = 24 +card_type = 0 +card_value = 12 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_q5r7v"] +script = ExtResource("2_vmpa3") +card_id = 25 +card_type = 0 +card_value = 13 +color = 1 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_6o04h"] +script = ExtResource("2_vmpa3") +card_id = 26 +card_type = 0 +card_value = 1 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_xu28m"] +script = ExtResource("2_vmpa3") +card_id = 27 +card_type = 0 +card_value = 2 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_7oc7v"] +script = ExtResource("2_vmpa3") +card_id = 28 +card_type = 0 +card_value = 3 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_rcngd"] +script = ExtResource("2_vmpa3") +card_id = 30 +card_type = 0 +card_value = 5 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_vq3r5"] +script = ExtResource("2_vmpa3") +card_id = 31 +card_type = 0 +card_value = 6 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_4ycpb"] +script = ExtResource("2_vmpa3") +card_id = 32 +card_type = 0 +card_value = 7 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_8pqud"] +script = ExtResource("2_vmpa3") +card_id = 33 +card_type = 0 +card_value = 8 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_od3t8"] +script = ExtResource("2_vmpa3") +card_id = 34 +card_type = 0 +card_value = 9 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_o0m41"] +script = ExtResource("2_vmpa3") +card_id = 35 +card_type = 0 +card_value = 10 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_cu2ss"] +script = ExtResource("2_vmpa3") +card_id = 36 +card_type = 0 +card_value = 11 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_gjae0"] +script = ExtResource("2_vmpa3") +card_id = 37 +card_type = 0 +card_value = 12 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_be08t"] +script = ExtResource("2_vmpa3") +card_id = 38 +card_type = 0 +card_value = 13 +color = 2 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_t4ctl"] +script = ExtResource("2_vmpa3") +card_id = 39 +card_type = 0 +card_value = 1 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_r2ngu"] +script = ExtResource("2_vmpa3") +card_id = 40 +card_type = 0 +card_value = 2 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_xmcim"] +script = ExtResource("2_vmpa3") +card_id = 41 +card_type = 0 +card_value = 3 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_1sjcm"] +script = ExtResource("2_vmpa3") +card_id = 42 +card_type = 0 +card_value = 4 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_4vo3p"] +script = ExtResource("2_vmpa3") +card_id = 43 +card_type = 0 +card_value = 5 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_fq3sx"] +script = ExtResource("2_vmpa3") +card_id = 44 +card_type = 0 +card_value = 6 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_kpl5r"] +script = ExtResource("2_vmpa3") +card_id = 45 +card_type = 0 +card_value = 7 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_3f7jx"] +script = ExtResource("2_vmpa3") +card_id = 46 +card_type = 0 +card_value = 8 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_skc0u"] +script = ExtResource("2_vmpa3") +card_id = 47 +card_type = 0 +card_value = 9 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_oybdy"] +script = ExtResource("2_vmpa3") +card_id = 48 +card_type = 0 +card_value = 10 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_4r58b"] +script = ExtResource("2_vmpa3") +card_id = 49 +card_type = 0 +card_value = 11 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_qqebr"] +script = ExtResource("2_vmpa3") +card_id = 50 +card_type = 0 +card_value = 12 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_t2p7o"] +script = ExtResource("2_vmpa3") +card_id = 51 +card_type = 0 +card_value = 13 +color = 3 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_6cpt8"] +script = ExtResource("2_vmpa3") +card_id = 52 +card_type = 1 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_xnb0u"] +script = ExtResource("2_vmpa3") +card_id = 53 +card_type = 1 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_5isjf"] +script = ExtResource("2_vmpa3") +card_id = 54 +card_type = 1 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_2e2n5"] +script = ExtResource("2_vmpa3") +card_id = 55 +card_type = 1 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_ml51k"] +script = ExtResource("2_vmpa3") +card_id = 56 +card_type = 2 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_julvy"] +script = ExtResource("2_vmpa3") +card_id = 57 +card_type = 2 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_slqcy"] +script = ExtResource("2_vmpa3") +card_id = 58 +card_type = 2 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[sub_resource type="Resource" id="Resource_rxi2e"] +script = ExtResource("2_vmpa3") +card_id = 59 +card_type = 2 +card_value = 1 +color = 4 +metadata/_custom_type_script = "uid://dx4cl2rk0a8a0" + +[node name="CardManager" type="Node"] +script = ExtResource("1_de166") +full_deck = Dictionary[int, ExtResource("2_vmpa3")]({ +0: SubResource("Resource_hq606"), +1: SubResource("Resource_jsikl"), +2: SubResource("Resource_yrbs8"), +3: SubResource("Resource_ewh6u"), +4: SubResource("Resource_1bvgt"), +5: SubResource("Resource_ox1hg"), +6: SubResource("Resource_8sw4h"), +7: SubResource("Resource_qe28u"), +8: SubResource("Resource_kasop"), +9: SubResource("Resource_ovwu1"), +10: SubResource("Resource_rdi1s"), +11: SubResource("Resource_biie8"), +12: SubResource("Resource_mtv24"), +13: SubResource("Resource_mpbj3"), +14: SubResource("Resource_vmpa3"), +15: SubResource("Resource_oq2er"), +16: SubResource("Resource_s4ixr"), +17: SubResource("Resource_362ky"), +18: SubResource("Resource_7ipk5"), +20: SubResource("Resource_w0krc"), +21: SubResource("Resource_j3326"), +22: SubResource("Resource_jrrf5"), +23: SubResource("Resource_27icn"), +24: SubResource("Resource_38pwx"), +25: SubResource("Resource_q5r7v"), +26: SubResource("Resource_6o04h"), +27: SubResource("Resource_xu28m"), +28: SubResource("Resource_7oc7v"), +29: SubResource("Resource_dh6xn"), +30: SubResource("Resource_rcngd"), +31: SubResource("Resource_vq3r5"), +32: SubResource("Resource_4ycpb"), +33: SubResource("Resource_8pqud"), +34: SubResource("Resource_od3t8"), +35: SubResource("Resource_o0m41"), +36: SubResource("Resource_cu2ss"), +37: SubResource("Resource_gjae0"), +38: SubResource("Resource_be08t"), +39: SubResource("Resource_t4ctl"), +40: SubResource("Resource_r2ngu"), +41: SubResource("Resource_xmcim"), +42: SubResource("Resource_1sjcm"), +43: SubResource("Resource_4vo3p"), +44: SubResource("Resource_fq3sx"), +45: SubResource("Resource_kpl5r"), +46: SubResource("Resource_3f7jx"), +47: SubResource("Resource_skc0u"), +48: SubResource("Resource_oybdy"), +49: SubResource("Resource_4r58b"), +50: SubResource("Resource_qqebr"), +51: SubResource("Resource_t2p7o"), +52: SubResource("Resource_6cpt8"), +53: SubResource("Resource_xnb0u"), +54: SubResource("Resource_5isjf"), +55: SubResource("Resource_2e2n5"), +56: SubResource("Resource_ml51k"), +57: SubResource("Resource_julvy"), +58: SubResource("Resource_slqcy"), +59: SubResource("Resource_rxi2e") +}) diff --git a/globals/tcp_messages.gd b/globals/tcp_messages.gd index db5a7c2..72dd669 100644 --- a/globals/tcp_messages.gd +++ b/globals/tcp_messages.gd @@ -39,3 +39,11 @@ func send_chat_message( "client_id": client_id, "message": message, }) + +func start_game( + lobby_id: String, +) -> String: + return JSON.stringify({ + "response": "start_game", + "lobby_id": lobby_id, + }) diff --git a/project.godot b/project.godot index eb9c1d4..15f2edd 100644 --- a/project.godot +++ b/project.godot @@ -18,6 +18,7 @@ config/icon="res://icon.svg" [autoload] TCPMessages="*res://globals/tcp_messages.gd" +CardManager="*res://cards/card_manager.tscn" [display]