func: Added endstep trump value differences

This commit is contained in:
2026-04-03 13:31:09 +02:00
parent 4a05d2f4bd
commit 1958e1defd
4 changed files with 113 additions and 36 deletions
+12 -7
View File
@@ -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]
+29 -11
View File
@@ -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"]
+15
View File
@@ -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
+57 -18
View File
@@ -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