From 1958e1defdf8ae99d8ab4f575f274eefbae0a8b9 Mon Sep 17 00:00:00 2001 From: aspergerli Date: Fri, 3 Apr 2026 13:31:09 +0200 Subject: [PATCH] func: Added endstep trump value differences --- addons/card-framework/hand.gd | 19 ++++++--- scenes/schematic.tscn | 40 +++++++++++++----- scripts/buttons_trump_select.gd | 15 +++++++ scripts/schematic_setup.gd | 75 +++++++++++++++++++++++++-------- 4 files changed, 113 insertions(+), 36 deletions(-) diff --git a/addons/card-framework/hand.gd b/addons/card-framework/hand.gd index eab71db..1622089 100644 --- a/addons/card-framework/hand.gd +++ b/addons/card-framework/hand.gd @@ -48,6 +48,8 @@ extends CardContainer @export var align_drop_zone_size_with_current_hand_size := true ## If true, only swap the positions of two cards when reordering (a <-> b), otherwise shift the range (default behavior). @export var swap_only_on_reorder := false +## If false undoes any card movement to and from this Hand +@export var allow_movement = true var vertical_partitions_from_outside = [] @@ -88,26 +90,28 @@ func compare_cards(a,b): var suit_1 = a.card_info["suit"] var suit_2 = b.card_info["suit"] match suit_1: - "Diampnd": - val_1 -= 10 - "Spade": + "Diamond": val_1 -= 20 + "Spade": + val_1 -= 40 "Heart": - val_1 -= 30 + val_1 -= 60 #print(val_1,su_1) match suit_2: "Diamond": - val_2 -= 10 - "Spade": val_2 -= 20 + "Spade": + val_2 -= 40 "Heart": - val_2 -= 30 + val_2 -= 60 #print(val_2,su_2) return val_1 < val_2 func _card_can_be_added(_cards: Array) -> bool: + if not allow_movement: + return false var is_all_cards_contained = true for i in range(_cards.size()): var card = _cards[i] @@ -121,6 +125,7 @@ func _card_can_be_added(_cards: Array) -> bool: return _held_cards.size() + card_size <= max_hand_size + func _update_target_z_index() -> void: for i in range(_held_cards.size()): var card = _held_cards[i] diff --git a/scenes/schematic.tscn b/scenes/schematic.tscn index 8e86e6f..ae66bfa 100644 --- a/scenes/schematic.tscn +++ b/scenes/schematic.tscn @@ -16,6 +16,8 @@ [ext_resource type="Texture2D" uid="uid://7qs010wi55mj" path="res://cards/images/cardSpadesJ.png" id="13_vsw8n"] [ext_resource type="Texture2D" uid="uid://dvqxm048cpqso" path="res://cards/images/cardDiamondsJ.png" id="14_el68r"] [ext_resource type="Texture2D" uid="uid://d0fi2w3eqskmy" path="res://cards/images/cardClubsJ.png" id="15_ir868"] +[ext_resource type="Texture2D" uid="uid://pflyomkxrjws" path="res://cards/images/cardHeartsA.png" id="15_wiovv"] +[ext_resource type="Texture2D" uid="uid://dvjbl3cdjlxte" path="res://cards/images/cardClubs6.png" id="18_32sqw"] [sub_resource type="CanvasTexture" id="CanvasTexture_unpya"] diffuse_texture = ExtResource("9_ggwjq") @@ -71,7 +73,9 @@ offset_top = 560.0 offset_right = 790.0 offset_bottom = 560.0 script = ExtResource("7_rwigh") +enable_drop_zone = false sensor_texture = ExtResource("9_ggwjq") +sensor_visibility = true metadata/_custom_type_script = "uid://6ams8uvg43gu" [node name="Team1Stiche" type="Control" parent="CardManager" unique_id=740577652] @@ -93,7 +97,6 @@ offset_top = 880.0 offset_right = 1440.0 offset_bottom = 880.0 script = ExtResource("4_unpya") -card_face_up = false hand_rotation_curve = ExtResource("5_kdjyk") hand_vertical_curve = ExtResource("6_ikr1a") metadata/_custom_type_script = "uid://dj46jo3lfbclo" @@ -105,6 +108,7 @@ offset_top = 560.0 offset_right = 980.0 offset_bottom = 560.0 script = ExtResource("7_rwigh") +enable_drop_zone = false sensor_texture = SubResource("CanvasTexture_kdjyk") metadata/_custom_type_script = "uid://6ams8uvg43gu" @@ -116,6 +120,7 @@ offset_right = 980.0 offset_bottom = -10.0 script = ExtResource("7_rwigh") card_face_up = false +allow_card_movement = false metadata/_custom_type_script = "uid://6ams8uvg43gu" [node name="Player3Hand" type="Control" parent="CardManager" unique_id=1841661362] @@ -125,7 +130,6 @@ offset_top = -10.0 offset_right = 1440.0 offset_bottom = -10.0 script = ExtResource("4_unpya") -card_face_up = false hand_rotation_curve = ExtResource("10_kdjyk") hand_vertical_curve = ExtResource("10_unpya") metadata/_custom_type_script = "uid://dj46jo3lfbclo" @@ -149,10 +153,10 @@ offset_top = -10.0 offset_right = 480.0 offset_bottom = -10.0 script = ExtResource("4_unpya") -card_face_up = false card_hover_distance = 0.0 hand_rotation_curve = ExtResource("10_kdjyk") hand_vertical_curve = ExtResource("10_unpya") +allow_movement = false metadata/_custom_type_script = "uid://dj46jo3lfbclo" [node name="Player4PlayPile" type="Control" parent="CardManager" unique_id=1625790580] @@ -187,11 +191,11 @@ vertical_alignment = 1 [node name="GridContainer" type="GridContainer" parent="ButtonsTrumpSelect" unique_id=412936036] z_index = 10 layout_mode = 0 -offset_left = 810.0 +offset_left = 754.0 offset_top = 340.0 -offset_right = 1110.0 +offset_right = 1206.0 offset_bottom = 740.0 -columns = 2 +columns = 3 metadata/_edit_group_ = true [node name="ButtonHeart" type="Button" parent="ButtonsTrumpSelect/GridContainer" unique_id=1595325767] @@ -202,23 +206,37 @@ icon = ExtResource("12_gwibp") layout_mode = 2 icon = ExtResource("13_vsw8n") -[node name="ButtonDiamond" type="Button" parent="ButtonsTrumpSelect/GridContainer" unique_id=838232450] +[node name="ButtonTopDown" type="Button" parent="ButtonsTrumpSelect/GridContainer" unique_id=1650061945] layout_mode = 2 -icon = ExtResource("14_el68r") +icon = ExtResource("15_wiovv") [node name="ButtonClub" type="Button" parent="ButtonsTrumpSelect/GridContainer" unique_id=677142745] layout_mode = 2 icon = ExtResource("15_ir868") +[node name="ButtonDiamond" type="Button" parent="ButtonsTrumpSelect/GridContainer" unique_id=838232450] +layout_mode = 2 +icon = ExtResource("14_el68r") + +[node name="ButtonDownUp" type="Button" parent="ButtonsTrumpSelect/GridContainer" unique_id=1031871977] +layout_mode = 2 +icon = ExtResource("18_32sqw") + [connection signal="mouse_entered" from="ButtonsTrumpSelect/GridContainer/ButtonHeart" to="ButtonsTrumpSelect" method="_on_button_heart_mouse_entered"] [connection signal="mouse_exited" from="ButtonsTrumpSelect/GridContainer/ButtonHeart" to="ButtonsTrumpSelect" method="_on_button_heart_mouse_exited"] [connection signal="pressed" from="ButtonsTrumpSelect/GridContainer/ButtonHeart" to="ButtonsTrumpSelect" method="_on_button_heart_pressed"] [connection signal="mouse_entered" from="ButtonsTrumpSelect/GridContainer/ButtonSpade" to="ButtonsTrumpSelect" method="_on_button_spade_mouse_entered"] [connection signal="mouse_exited" from="ButtonsTrumpSelect/GridContainer/ButtonSpade" to="ButtonsTrumpSelect" method="_on_button_spade_mouse_exited"] [connection signal="pressed" from="ButtonsTrumpSelect/GridContainer/ButtonSpade" to="ButtonsTrumpSelect" method="_on_button_spade_pressed"] -[connection signal="mouse_entered" from="ButtonsTrumpSelect/GridContainer/ButtonDiamond" to="ButtonsTrumpSelect" method="_on_button_diamond_mouse_entered"] -[connection signal="mouse_exited" from="ButtonsTrumpSelect/GridContainer/ButtonDiamond" to="ButtonsTrumpSelect" method="_on_button_diamond_mouse_exited"] -[connection signal="pressed" from="ButtonsTrumpSelect/GridContainer/ButtonDiamond" to="ButtonsTrumpSelect" method="_on_button_diamond_pressed"] +[connection signal="mouse_entered" from="ButtonsTrumpSelect/GridContainer/ButtonTopDown" to="ButtonsTrumpSelect" method="_on_button_top_down_mouse_entered"] +[connection signal="mouse_exited" from="ButtonsTrumpSelect/GridContainer/ButtonTopDown" to="ButtonsTrumpSelect" method="_on_button_top_down_mouse_exited"] +[connection signal="pressed" from="ButtonsTrumpSelect/GridContainer/ButtonTopDown" to="ButtonsTrumpSelect" method="_on_button_top_down_pressed"] [connection signal="mouse_entered" from="ButtonsTrumpSelect/GridContainer/ButtonClub" to="ButtonsTrumpSelect" method="_on_button_club_mouse_entered"] [connection signal="mouse_exited" from="ButtonsTrumpSelect/GridContainer/ButtonClub" to="ButtonsTrumpSelect" method="_on_button_club_mouse_exited"] [connection signal="pressed" from="ButtonsTrumpSelect/GridContainer/ButtonClub" to="ButtonsTrumpSelect" method="_on_button_club_pressed"] +[connection signal="mouse_entered" from="ButtonsTrumpSelect/GridContainer/ButtonDiamond" to="ButtonsTrumpSelect" method="_on_button_diamond_mouse_entered"] +[connection signal="mouse_exited" from="ButtonsTrumpSelect/GridContainer/ButtonDiamond" to="ButtonsTrumpSelect" method="_on_button_diamond_mouse_exited"] +[connection signal="pressed" from="ButtonsTrumpSelect/GridContainer/ButtonDiamond" to="ButtonsTrumpSelect" method="_on_button_diamond_pressed"] +[connection signal="mouse_entered" from="ButtonsTrumpSelect/GridContainer/ButtonDownUp" to="ButtonsTrumpSelect" method="_on_button_down_up_mouse_entered"] +[connection signal="mouse_exited" from="ButtonsTrumpSelect/GridContainer/ButtonDownUp" to="ButtonsTrumpSelect" method="_on_button_down_up_mouse_exited"] +[connection signal="pressed" from="ButtonsTrumpSelect/GridContainer/ButtonDownUp" to="ButtonsTrumpSelect" method="_on_button_down_up_pressed"] diff --git a/scripts/buttons_trump_select.gd b/scripts/buttons_trump_select.gd index a9320ed..6416d7c 100644 --- a/scripts/buttons_trump_select.gd +++ b/scripts/buttons_trump_select.gd @@ -30,6 +30,15 @@ func _on_button_club_mouse_entered() -> void: func _on_button_club_mouse_exited() -> void: label.text = "Choose Trump" +func _on_button_top_down_mouse_entered() -> void: + label.text = "Top Down" +func _on_button_top_down_mouse_exited() -> void: + label.text = "Choose Trump" + +func _on_button_down_up_mouse_entered() -> void: + label.text = "Down Up" +func _on_button_down_up_mouse_exited() -> void: + label.text = "Choose Trump" func _on_button_heart_pressed() -> void: trump.emit("Heart") @@ -43,3 +52,9 @@ func _on_button_diamond_pressed() -> void: func _on_button_club_pressed() -> void: trump.emit("Club") self.visible = false +func _on_button_top_down_pressed() -> void: + trump.emit("Top") + self.visible = false +func _on_button_down_up_pressed() -> void: + trump.emit("Down") + self.visible = false diff --git a/scripts/schematic_setup.gd b/scripts/schematic_setup.gd index dfc4770..2fc9f1e 100644 --- a/scripts/schematic_setup.gd +++ b/scripts/schematic_setup.gd @@ -32,8 +32,13 @@ func setup_game(): create_standard_deck() deck._held_cards.shuffle() + player_1_hand.allow_movement = true + player_2_hand.allow_movement = true + player_3_hand.allow_movement = true + player_4_hand.allow_movement = true + # Deal initial hand - const DEAL_PAUSE = 0.1 + const DEAL_PAUSE = 0.5 var deal_r: int =1 while true: deal_cards_to_hand(3, player_1_hand) @@ -65,6 +70,8 @@ func turn(first): first._redraw_drop_zone() match first: player_1_pile: + await get_tree().create_timer(0.2).timeout + player_1_hand.enable_drop_zone = false player_2_pile.sensor_visibility = true player_2_pile.enable_drop_zone = true @@ -72,6 +79,8 @@ func turn(first): await player_2_pile.played player_2_pile.enable_drop_zone = false player_2_pile._redraw_drop_zone() + await get_tree().create_timer(0.2).timeout + player_2_hand.allow_movement = false player_3_pile.sensor_visibility = true player_3_pile.enable_drop_zone = true @@ -79,6 +88,8 @@ func turn(first): await player_3_pile.played player_3_pile.enable_drop_zone = false player_3_pile._redraw_drop_zone() + await get_tree().create_timer(0.2).timeout + player_3_hand.allow_movement = false player_4_pile.sensor_visibility = true player_4_pile.enable_drop_zone = true @@ -86,8 +97,10 @@ func turn(first): await player_4_pile.played player_4_pile.enable_drop_zone = false player_4_pile._redraw_drop_zone() - + await get_tree().create_timer(0.2).timeout + player_4_hand.allow_movement = false player_2_pile: + player_2_hand.allow_movement = false player_3_pile.sensor_visibility = true player_3_pile.enable_drop_zone = true @@ -96,6 +109,8 @@ func turn(first): player_3_pile.enable_drop_zone = false player_3_pile._redraw_drop_zone() + player_3_hand.allow_movement = false + player_4_pile.sensor_visibility = true player_4_pile.enable_drop_zone = true player_4_pile._redraw_drop_zone() @@ -103,6 +118,8 @@ func turn(first): player_4_pile.enable_drop_zone = false player_4_pile._redraw_drop_zone() + player_4_hand.allow_movement = false + player_1_pile.sensor_visibility = true player_1_pile.enable_drop_zone = true player_1_pile._redraw_drop_zone() @@ -110,7 +127,9 @@ func turn(first): player_1_pile.enable_drop_zone = false player_1_pile._redraw_drop_zone() + player_1_hand.allow_movement = false player_3_pile: + player_3_hand.allow_movement = false player_4_pile.sensor_visibility = true player_4_pile.enable_drop_zone = true @@ -119,6 +138,8 @@ func turn(first): player_4_pile.enable_drop_zone = false player_4_pile._redraw_drop_zone() + player_4_hand.allow_movement = false + player_1_pile.sensor_visibility = true player_1_pile.enable_drop_zone = true player_1_pile._redraw_drop_zone() @@ -126,6 +147,8 @@ func turn(first): player_1_pile.enable_drop_zone = false player_1_pile._redraw_drop_zone() + player_1_hand.allow_movement = false + player_2_pile.sensor_visibility = true player_2_pile.enable_drop_zone = true player_2_pile._redraw_drop_zone() @@ -133,7 +156,10 @@ func turn(first): player_2_pile.enable_drop_zone = false player_2_pile._redraw_drop_zone() + player_2_hand.allow_movement = false player_4_pile: + player_4_hand.allow_movement = false + player_1_pile.sensor_visibility = true player_1_pile.enable_drop_zone = true player_1_pile._redraw_drop_zone() @@ -141,6 +167,8 @@ func turn(first): player_1_pile.enable_drop_zone = false player_1_pile._redraw_drop_zone() + player_1_hand.allow_movement = false + player_2_pile.sensor_visibility = true player_2_pile.enable_drop_zone = true player_2_pile._redraw_drop_zone() @@ -148,34 +176,45 @@ func turn(first): player_2_pile.enable_drop_zone = false player_2_pile._redraw_drop_zone() + player_2_hand.allow_movement = false + player_3_pile.sensor_visibility = true player_3_pile.enable_drop_zone = true player_3_pile._redraw_drop_zone() await player_3_pile.played player_3_pile.enable_drop_zone = false player_3_pile._redraw_drop_zone() + + player_3_hand.allow_movement = false get_turn_winner() func get_turn_winner(): - var card_1 = player_1_pile.get_top_cards(1)[0] - var card_2 = player_2_pile.get_top_cards(1)[0] - var card_3 = player_3_pile.get_top_cards(1)[0] - var card_4 = player_4_pile.get_top_cards(1)[0] - var value_1 = card_1.card_info.value - var value_2 = card_2.card_info.value - var value_3 = card_3.card_info.value - var value_4 = card_4.card_info.value - - if trump == card_1.card_info.suit: - match value_1: - 11: - value_1 += 40 - 9: - value_1 += 30 - + var cards = { + 1: {"value": int(player_1_pile.get_top_cards(1)[0].card_info.value), "suit": player_1_pile.get_top_cards(1)[0].card_info.suit}, + 2: {"value": int(player_2_pile.get_top_cards(1)[0].card_info.value), "suit": player_2_pile.get_top_cards(1)[0].card_info.suit}, + 3: {"value": int(player_3_pile.get_top_cards(1)[0].card_info.value), "suit": player_3_pile.get_top_cards(1)[0].card_info.suit}, + 4: {"value": int(player_4_pile.get_top_cards(1)[0].card_info.value), "suit": player_4_pile.get_top_cards(1)[0].card_info.suit} + } + print(trump) + if trump != "Top" and trump != "Down": + print("pass") + for card in cards: + if trump == cards[card]["suit"]: + match cards[card]["value"]: + 11: + cards[card]["value"] += 40 + 9: + cards[card]["value"] += 30 + _: + cards[card]["value"] += 14 + print(cards[card]["value"]) + elif trump == "Down": + for card in cards: + cards[card]["value"] = cards[card]["value"]*-1 + print(cards[card]["value"]) func move_to_stiche(team: int): pass