This commit is contained in:
team3
2026-09-16 16:15:13 +02:00
parent b9d6b115c0
commit f1c78f66f4
17 changed files with 676 additions and 458 deletions

View File

@@ -31,6 +31,8 @@ func _do_play(seat: int, id: String, target: int) -> void:
return
if BoosterDB.needs_bid(id) and g.bid.is_empty():
return
if BoosterDB.needs_room(id) and g.seats[seat].count >= g.dice_start:
return
var muenzen: Array = g.hand.get(seat, [])
if not muenzen.has(id):
return
@@ -156,7 +158,7 @@ func _bot_muenze(seat: int, a: Dictionary) -> bool:
var ziel := 0
# Wirklich hinten liegen: Nachschub ist der Weg zurück. Bei Gleichstand
# nicht - sonst wirft ihn zu Beginn jeder, und der Tisch wird nie leerer.
if muenzen.has("gain_die") and vals.size() < _groesste_hand():
if muenzen.has("gain_die") and vals.size() < _groesste_hand() and vals.size() < g.dice_start:
wahl = "gain_die"
# Vor dem Anfechten lieber noch nachsehen, wenn es knapp ist.
elif not will_bieten and liegt > 0.2 and liegt < 0.55 and muenzen.has("count"):
@@ -177,9 +179,12 @@ func _bot_muenze(seat: int, a: Dictionary) -> bool:
# Voller Vorrat: irgendwas Spielbares raus, sonst wird nie geworfen.
elif muenzen.size() >= BoosterDB.HANDLIMIT:
for id: String in muenzen:
if not BoosterDB.needs_bid(id) or not g.bid.is_empty():
wahl = id
break
if BoosterDB.needs_bid(id) and g.bid.is_empty():
continue
if BoosterDB.needs_room(id) and vals.size() >= g.dice_start:
continue
wahl = id
break
if wahl == "":
return false
await _do_play(seat, wahl, ziel)