server now rotates through playing order every round and lets the winning player go first
This commit is contained in:
+9
-20
@@ -35,25 +35,20 @@ func get_card_texture(card_id: int, style: CardStyle = CardStyle.STICKMAN) -> Te
|
||||
return load("res://cards/textures/" + style_name + "/" + _get_card_name(card_id) + ".webp")
|
||||
|
||||
func get_winning_card(card_ids: Array[int], trump: int) -> int:
|
||||
print("ids: " + str(card_ids) + ", trump: " + str(trump))
|
||||
if card_ids.has(56) or card_ids.has(57) or card_ids.has(58) or card_ids.has(59):
|
||||
# cards contain magician
|
||||
print("checking magician route")
|
||||
for card_id in card_ids:
|
||||
if full_deck[card_id].card_type == Card.CardType.MAGICIAN:
|
||||
print("picked magician")
|
||||
return card_id
|
||||
return -1 # should not happen
|
||||
elif not trump == -1:
|
||||
# trump exists, determine winner from this
|
||||
print("trump route")
|
||||
var largest_trump_card_id: int = -1
|
||||
var trump_color: Card.CardColor = full_deck[trump].color
|
||||
for card_id in card_ids:
|
||||
if full_deck[card_id].color == trump_color and card_id > largest_trump_card_id:
|
||||
largest_trump_card_id = card_id
|
||||
if not largest_trump_card_id == -1:
|
||||
print("picked " + str(largest_trump_card_id))
|
||||
return largest_trump_card_id
|
||||
|
||||
# no trump played; determine from highest played card
|
||||
@@ -64,16 +59,13 @@ func get_winning_card(card_ids: Array[int], trump: int) -> int:
|
||||
|
||||
func _get_largest_non_trump_card(card_ids: Array[int]) -> int:
|
||||
var largest_card_id: int = -1
|
||||
print("nontrump route")
|
||||
var first_color: Card.CardColor = _get_first_color_card(card_ids)
|
||||
if first_color == Card.CardColor.WHITE:
|
||||
print("all white")
|
||||
return card_ids[0] # first one wins if all played cards are white
|
||||
else:
|
||||
for card_id in card_ids:
|
||||
if full_deck[card_id].color == first_color and card_id > largest_card_id:
|
||||
largest_card_id = card_id
|
||||
print("picked " + str(largest_card_id))
|
||||
return largest_card_id
|
||||
|
||||
## Returns the color of the first non-white card played.
|
||||
@@ -93,14 +85,15 @@ func _get_card_name(card_id: int) -> String:
|
||||
elif card_id > 55:
|
||||
return "magician"
|
||||
|
||||
elif card_id < 13:
|
||||
color = "blue"
|
||||
elif card_id < 26:
|
||||
color = "green"
|
||||
elif card_id < 39:
|
||||
color = "violet"
|
||||
else:
|
||||
color = "orange"
|
||||
match get_card_color(card_id):
|
||||
Card.CardColor.BLUE:
|
||||
color = "blue"
|
||||
Card.CardColor.GREEN:
|
||||
color = "green"
|
||||
Card.CardColor.RED:
|
||||
color = "violet"
|
||||
Card.CardColor.YELLOW:
|
||||
color = "orange"
|
||||
|
||||
match card_id:
|
||||
0, 13, 26, 39:
|
||||
@@ -129,10 +122,6 @@ func _get_card_name(card_id: int) -> String:
|
||||
suffix = "12"
|
||||
12, 25, 38, 51:
|
||||
suffix = "13"
|
||||
52, 53, 54, 55:
|
||||
suffix = "joker"
|
||||
56, 57, 58, 59:
|
||||
suffix = "magician"
|
||||
|
||||
return color + "_" + suffix
|
||||
|
||||
|
||||
Reference in New Issue
Block a user