From e78466c44a4ed3b9ee3054d5b9b81490088c1b66 Mon Sep 17 00:00:00 2001 From: aspergerli Date: Fri, 17 Apr 2026 18:03:27 +0200 Subject: [PATCH] feat: card evaluation at end of turn, 9 turn round --- addons/card-framework/card_factory.tscn | 6 ++- cards/images/Back.png | Bin 0 -> 921 bytes cards/images/Back.png.import | 40 ++++++++++++++++++++ scenes/schematic.tscn | 16 ++++---- scripts/schematic_setup.gd | 48 ++++++++++++++++++++++-- 5 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 cards/images/Back.png create mode 100644 cards/images/Back.png.import diff --git a/addons/card-framework/card_factory.tscn b/addons/card-framework/card_factory.tscn index ccb821e..724593a 100644 --- a/addons/card-framework/card_factory.tscn +++ b/addons/card-framework/card_factory.tscn @@ -1,8 +1,10 @@ -[gd_scene load_steps=3 format=3 uid="uid://7qcsutlss3oj"] +[gd_scene format=3 uid="uid://7qcsutlss3oj"] [ext_resource type="Script" uid="uid://8n36yadkvxai" path="res://addons/card-framework/json_card_factory.gd" id="1_jlwb4"] [ext_resource type="PackedScene" uid="uid://brjlo8xing83p" path="res://addons/card-framework/card.tscn" id="2_1mca4"] +[ext_resource type="Texture2D" uid="uid://c1x31m6sr2jkr" path="res://cards/images/cardBack_blue5.png" id="3_1mca4"] -[node name="CardFactory" type="Node"] +[node name="CardFactory" type="Node" unique_id=1183620316] script = ExtResource("1_jlwb4") default_card_scene = ExtResource("2_1mca4") +back_image = ExtResource("3_1mca4") diff --git a/cards/images/Back.png b/cards/images/Back.png new file mode 100644 index 0000000000000000000000000000000000000000..5e2c333d40f8bbe0da9060a696e7ee067f56ec76 GIT binary patch literal 921 zcmV;K17`e*P)e5n(K`dK@fzoMFK>D9R(r-ev$$a5CajA0zb*%L=+ZL zkO7Z6-8U+=dvbNl>V(;8Bn2)Zf%F(U^+^0K zsYiM&>M3CrQtY}H6UP^A`J*q|Yjfx!c}6$`jlf%S$c-{$%H~5Zw#zfZwOi+Y*B#9L z=r!qeTl6!+Dy9iQ(cY57v?MbedaRWxVJEcIgcvewN(|{a?yKpZFTH%z#ei%F$>Ke7 zyoc+xe$@%r3U2M6j&NBC4#%x0*y=y;gx4&5>*}u==kfBs64#uvu*-yJS&6el$8U=* zQn{Xw9;fYjin&bVV5>`W>jDT7;&6MZ4(zyU|qD^g0rYjLaG8-Zut2L3IyjX|L#bDR4?*FQ)O{SN> zxx>90^};DT+}fR94KKyvSz_J^bBZsW!2hb7cfwQeu&;;fy6v*v7j0G}%ZWbEjjIwz@kv@@JV!jSYrfjY3;u6s=l$8%J>=E9qV9mJ=kW-Z$Z zIS#ck?t}1{>*b3>P6{G81u-6N@{o#y)yk!&CGQVEtqDCh-rV8mHt1bnc9>o3-Jlm9 z4?l%4hoV=5YvJ5i;#!ksC8nG3%OR{o$U$^HyXE9%F?_vp(g{0wO^-x8j~J2|62D7g zNRPRm683~8UEuuwmdu((U$liEebIIf7ZV1wCNm;5reNj=hIu9s&Cce=jRM0u?^ zSgpKP9Gt}olQfc?j&NCt*6xfl<#{K(cIj_5X&x`jU(F&i!|S+ve_h+()4kOsV_)a= v_`);q!24U;v1kOF!IndZV+3-MgLC@}ED;HsbLyCA00000NkvXXu0mjflxVw$ literal 0 HcmV?d00001 diff --git a/cards/images/Back.png.import b/cards/images/Back.png.import new file mode 100644 index 0000000..8f50680 --- /dev/null +++ b/cards/images/Back.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxkq0tqgdiy61" +path="res://.godot/imported/Back.png-08c77167688145adba4bb21ec59b3650.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://cards/images/Back.png" +dest_files=["res://.godot/imported/Back.png-08c77167688145adba4bb21ec59b3650.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/scenes/schematic.tscn b/scenes/schematic.tscn index ae66bfa..9002358 100644 --- a/scenes/schematic.tscn +++ b/scenes/schematic.tscn @@ -80,10 +80,10 @@ metadata/_custom_type_script = "uid://6ams8uvg43gu" [node name="Team1Stiche" type="Control" parent="CardManager" unique_id=740577652] anchors_preset = 0 -offset_left = 790.0 -offset_top = 880.0 -offset_right = 790.0 -offset_bottom = 880.0 +offset_left = 405.0 +offset_top = 435.0 +offset_right = 405.0 +offset_bottom = 435.0 script = ExtResource("7_rwigh") card_face_up = false sensor_texture = SubResource("CanvasTexture_unpya") @@ -114,10 +114,10 @@ metadata/_custom_type_script = "uid://6ams8uvg43gu" [node name="Team2Stiche" type="Control" parent="CardManager" unique_id=561191290] anchors_preset = 0 -offset_left = 980.0 -offset_top = -10.0 -offset_right = 980.0 -offset_bottom = -10.0 +offset_left = 1365.0 +offset_top = 435.0 +offset_right = 1365.0 +offset_bottom = 435.0 script = ExtResource("7_rwigh") card_face_up = false allow_card_movement = false diff --git a/scripts/schematic_setup.gd b/scripts/schematic_setup.gd index 2fc9f1e..f02420f 100644 --- a/scripts/schematic_setup.gd +++ b/scripts/schematic_setup.gd @@ -10,9 +10,12 @@ extends Node2D @onready var player_3_pile = $CardManager/Player3PlayPile @onready var player_4_hand = $CardManager/Player4Hand @onready var player_4_pile = $CardManager/Player4PlayPile +@onready var team_1_stiche = $CardManager/Team1Stiche +@onready var team_2_stiche = $CardManager/Team2Stiche @onready var trumpbuttons = $ButtonsTrumpSelect @onready var first_player = $CardManager/Player1PlayPile var trump : String +var rounds_played: int signal dealt @@ -62,6 +65,10 @@ func define_trump(suit : String): turn(first_player) func turn(first): + rounds_played += 1 + if rounds_played == 10: + count_points() + return first.sensor_visibility = true first.enable_drop_zone = true first._redraw_drop_zone() @@ -188,7 +195,8 @@ func turn(first): player_3_hand.allow_movement = false get_turn_winner() - +func count_points(): + print("end of round") func get_turn_winner(): @@ -213,10 +221,44 @@ func get_turn_winner(): print(cards[card]["value"]) elif trump == "Down": for card in cards: - cards[card]["value"] = cards[card]["value"]*-1 + cards[card]["value"] = cards[card]["value"] * (-1) print(cards[card]["value"]) + + var played_suit = first_player.get_top_cards(1)[0].card_info.suit + var highest_card: int + var highest_value: int + for i in cards: + var card = cards[i] + if card["suit"] == played_suit and card["value"] > highest_value: + highest_value = card["value"] + highest_card = i + + match highest_card: + 1: + first_player = player_1_pile + move_to_stiche(1) + 2: + first_player = player_2_pile + move_to_stiche(2) + 3: + first_player = player_3_pile + move_to_stiche(1) + 4: + first_player = player_4_pile + move_to_stiche(2) + func move_to_stiche(team: int): - pass + if team == 1: + team_1_stiche.move_cards(player_1_pile.get_top_cards(1)) + team_1_stiche.move_cards(player_2_pile.get_top_cards(1)) + team_1_stiche.move_cards(player_3_pile.get_top_cards(1)) + team_1_stiche.move_cards(player_4_pile.get_top_cards(1)) + else: + team_2_stiche.move_cards(player_1_pile.get_top_cards(1)) + team_2_stiche.move_cards(player_2_pile.get_top_cards(1)) + team_2_stiche.move_cards(player_3_pile.get_top_cards(1)) + team_2_stiche.move_cards(player_4_pile.get_top_cards(1)) + turn(first_player) func create_standard_deck(): var suits = ["Club", "Diamond", "Heart", "Spade"]