Aufdecken: Ansage bleibt stehen, ueberzaehlige Wuerfel kommen gruen dazu

Bisher wurde die Ansage in der Tischmitte beim Aufdecken komplett
umgefaerbt: gruen was da war, rot was fehlte. Damit sah eine getroffene
Ansage genauso bunt aus wie eine daneben liegende.

Jetzt bleibt die Ansage so stehen, wie sie gemacht wurde. Fehlende
Wuerfel werden rot, die Anzahl aendert sich nicht. Gab es mehr als
angesagt, haengen die ueberzaehligen gruen hinten dran.

Ausserdem: bei einem frueheren Umbau des README sind die Abschnitte zu
Bildaufteilung, Physik, Regeln und Boostern verloren gegangen. Sie sind
wieder da.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
team3
2026-09-07 23:04:18 +02:00
parent f97d741c91
commit 318f9f3159
2 changed files with 113 additions and 6 deletions

View File

@@ -13,7 +13,7 @@ const DIM := Color(0.62, 0.64, 0.70)
## Wette werden so gross gewählt, dass sie dort hineinpassen.
const BID_BOX := Vector2(200.0, 150.0)
const TIMER_W := 52.0 ## Breite der Zeitanzeige in der Ansage-Leiste
const GRUEN := Color(0.55, 0.84, 0.55) ## vorhandener Würfel beim Aufdecken
const GRUEN := Color(0.55, 0.84, 0.55) ## überzähliger Würfel beim Aufdecken
const ROT := Color(0.94, 0.55, 0.52) ## fehlender Würfel beim Aufdecken
var root: Control
@@ -466,14 +466,20 @@ func update_state(st: Dictionary, my_seat: int) -> void:
else:
bid_name.text = String(st.seats[st.bid.seat].name)
bid_name.add_theme_color_override("font_color", ACCENT)
var px := _fit_dice(int(st.bid.count))
# Beim Aufdecken zeigen die Farben, wie viele der angesagten Würfel es
# wirklich gab: grün die vorhandenen, rot die fehlenden.
# Beim Aufdecken bleibt die Ansage stehen, wie sie war: die angesagten
# Würfel normal, die fehlenden davon rot. Gab es mehr als angesagt,
# kommen die überzähligen grün dahinter.
var faerben: bool = st.phase == "reveal"
for i in int(st.bid.count):
var angesagt := int(st.bid.count)
var gezeigt := maxi(angesagt, _actual) if faerben else angesagt
var px := _fit_dice(gezeigt)
for i in gezeigt:
var bg := Color.TRANSPARENT
if faerben:
bg = GRUEN if i < _actual else ROT
if i >= angesagt:
bg = GRUEN
elif i >= _actual:
bg = ROT
bid_row.add_child(DieIcon.new(int(st.bid.face), px, bg))
_clear(boosts_box)