This commit is contained in:
team3
2026-09-16 12:09:47 +02:00
parent 9b3cd55ba7
commit 7979d5c336
16 changed files with 974 additions and 342 deletions

View File

@@ -1,91 +1,66 @@
extends Node
## Katalog aller Münzen.
##
## Münzen gibt es nicht rundenweise zur Auswahl. Wer einen Würfel verliert,
## bekommt eine. Gespielt wird jederzeit während der Ansagen - deshalb wirkt
## jede Münze sofort und braucht keine eigene Phase mehr.
## Sechs Stück, jede mit einem klaren Zweck: entweder sie gibt Wissen, oder sie
## macht Druck, oder sie hilft der eigenen Hand nach. Keine würfelt an den
## Gegnern herum - das Lesen der anderen bleibt der Kern des Spiels.
##
## Beim Ausspielen wird die Münze geworfen. Wappen oben heißt verstärkt. Die
## Grundwirkung kommt immer, der Wurf legt nur eine Schippe drauf. Deshalb ist
## kein Zug verschenkt, und die Entscheidung bleibt beim Spieler.
## Geworfen wird nur am eigenen Zug, vor der Ansage. Die Münze landet im Topf
## in der Mitte. Wer das Aufdecken gewinnt, nimmt den Topf. Damit kostet jede
## Münze etwas, und das Aufdecken hat einen Einsatz.
##
## Beim Werfen entscheidet die Seite: Wappen verstärkt, Zahl lässt es bei der
## Grundwirkung. Die Grundwirkung kommt immer - kein Zug ist verschenkt.
enum Kind { BUFF, DEBUFF }
## Mehr als das passt nicht auf die Hand; sonst hortet man bis zum Schluss.
const HANDLIMIT := 3
## Mehr als das passt nicht in den Vorrat; sonst hortet man bis zum Schluss.
const HANDLIMIT := 4
## Mehr liegt nie im Topf. Die älteste Münze fällt vom Tisch, sonst wächst ein
## Haufen, den keiner mehr abholen kann.
const TOPF_MAX := 6
## Eine Münze hat zwei Seiten, also die Hälfte.
const WAPPEN_CHANCE := 0.5
## Die Würfelzahl wird bewusst nie verstärkt. Sie ist die Kernressource -
## ein Würfel mehr aus Glück würde die Partie kippen.
## `target`: fragt nach einem eigenen Würfel. `gebot`: geht nur, wenn eine
## Ansage auf dem Tisch liegt.
const ALL := [
{
"id": "reroll_all", "kind": Kind.BUFF, "target": false,
"name": "Neuwurf",
"desc": "Wirf alle deine Würfel noch einmal neu.",
"stark": "Danach wird einer davon zur 6.",
},
{
"id": "reroll_one", "kind": Kind.BUFF, "target": true,
"name": "Feinschliff",
"desc": "Wirf einen selbst gewählten Würfel neu.",
"stark": "Ein zweiter, zufälliger Würfel kommt mit.",
},
{
"id": "set_six", "kind": Kind.BUFF, "target": true,
"name": "Glücksgriff",
"desc": "Ein gewählter Würfel wird zur 6.",
"stark": "Ein zweiter, zufälliger Würfel wird auch zur 6.",
},
{
"id": "gain_die", "kind": Kind.BUFF, "target": false,
"name": "Nachschub",
"desc": "Du bekommst einen Würfel dazu.",
"stark": "Der neue Würfel zeigt sofort eine 6.",
},
{
"id": "cancel", "kind": Kind.BUFF, "target": false,
"name": "Widerruf",
"desc": "Hebt Nebel, Störfeuer und Maulkorb auf, die auf dir liegen.",
"stark": "Die Münze bleibt dir erhalten.",
"behalten": true,
},
{
"id": "peek", "kind": Kind.BUFF, "target": false,
"id": "peek", "kind": Kind.BUFF, "target": false, "gebot": false,
"name": "Spähen",
"desc": "Von jedem Gegner wird dir ein zufälliger Würfel aufgedeckt.",
"stark": "Es sind zwei Würfel je Gegner.",
},
{
"id": "bid_up", "kind": Kind.DEBUFF, "target": false,
"id": "count", "kind": Kind.BUFF, "target": false, "gebot": true,
"name": "Zählen",
"desc": "Du erfährst ungefähr, wie oft die angesagte Augenzahl am Tisch liegt.",
"stark": "Du erfährst die genaue Zahl.",
},
{
"id": "set_face", "kind": Kind.BUFF, "target": true, "gebot": true,
"name": "Falschspiel",
"desc": "Ein gewählter Würfel zeigt die angesagte Augenzahl.",
"stark": "Ein zweiter, zufälliger Würfel auch.",
},
{
"id": "gain_die", "kind": Kind.BUFF, "target": false, "gebot": false,
"name": "Nachschub",
"desc": "Du bekommst einen Würfel dazu.",
"stark": "Der neue Würfel zeigt sofort eine 6.",
},
{
"id": "bid_up", "kind": Kind.DEBUFF, "target": false, "gebot": true,
"name": "Erhöhen",
"desc": "Die laufende Ansage steigt um 1.",
"desc": "Die laufende Ansage steigt um 1. Der Ansager muss dafür geradestehen.",
"stark": "Sie steigt um 2.",
},
{
"id": "enemy_lower", "kind": Kind.DEBUFF, "target": false,
"name": "Absenken",
"desc": "Bei jedem Gegner sinkt ein zufälliger Würfel um 1 (1 bleibt 1).",
"stark": "Er sinkt um 2.",
},
{
"id": "fog", "kind": Kind.DEBUFF, "target": false,
"name": "Nebel",
"desc": "Jeder Gegner verliert die Sicht auf einen seiner eigenen Würfel.",
"stark": "Es sind zwei Würfel.",
},
{
"id": "raise_min", "kind": Kind.DEBUFF, "target": false,
"name": "Störfeuer",
"desc": "Alle Gegner müssen diese Runde um mindestens 2 erhöhen.",
"stark": "Es müssen mindestens 3 sein.",
},
{
"id": "gag", "kind": Kind.DEBUFF, "target": false,
"id": "gag", "kind": Kind.DEBUFF, "target": false, "gebot": false,
"name": "Maulkorb",
"desc": "Wer gerade dran ist, muss bieten und darf nicht anfechten.",
"stark": "Alle Gegner müssen bieten.",
"desc": "Der nächste Spieler muss diese Runde bieten und darf nicht anfechten.",
"stark": "Das gilt für alle Gegner.",
},
]
@@ -101,9 +76,8 @@ func needs_target(id: String) -> bool:
return get_booster(id).get("target", false)
## Münzen, die bei Wappen auf der Hand bleiben, statt in die Mitte zu wandern.
func keeps_on_wappen(id: String) -> bool:
return get_booster(id).get("behalten", false)
func needs_bid(id: String) -> bool:
return get_booster(id).get("gebot", false)
## Eine zufällige Münze, für den, der gerade einen Würfel verloren hat.