Gegnerauswahl und Kampagne aufgeräumt, Hotseat entfernt

- Einzelspieler: Schwierigkeit, darunter nur die zwei Deckstärken, Gegnerzahl als
  Schieberegler, Starten und Zurück; kein Würfeln, die Gegnerdecks entstehen beim Start
- Kampagne: nur noch Name, Elementpunkte und Knopf, mit Innenabstand in den Zeilen
- Hotseat (Lokal zu mehreren) samt Übergabe-Vorhang, Auswahlbildschirm und Tests entfernt
- Netzwerktests laufen nur mit DINGER_NETZ=1, weil die Bot-Prozesse Minuten brauchen

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QPgKvy5W9WRNFHjkm5QsHx
This commit is contained in:
Team3
2026-09-17 21:05:09 +02:00
parent 5c1084fd79
commit 0f2dc22ef6
16 changed files with 95 additions and 381 deletions

View File

@@ -97,7 +97,6 @@ func _initialize() -> void:
test_kampagne()
test_fallen()
test_ki_sieht_fallen_nicht()
test_hotseat()
test_zufallssamen()
test_deck_slots_und_werkstatt()
test_spielstand_sicherung()
@@ -810,34 +809,6 @@ func test_ki_sieht_fallen_nicht() -> void:
check(g.clone_for(h).players[hi].traps.size() == 1, "eigene Fallen bleiben in der eigenen Kopie")
func test_hotseat() -> void:
var r := RandomNumberGenerator.new()
r.seed = 3
var d := Profile.starter().deck_cards()
var g := Game.new_hotseat([d, d], 1, r)
check(g.players.size() == 3 and g.humans.size() == 2, "zwei Menschen und eine KI")
check(g.humans[0].name == "Spieler 1" and g.humans[1].name == "Spieler 2", "Spielernamen")
var ai = g.players.filter(func(p): return not p.is_human)[0]
g.damage(ai, 99)
g.check_end()
check(g.winner == "", "zwei Menschen übrig: weiter")
g.damage(g.humans[1], 99)
g.check_end()
check(g.winner == "human" and g.winner_player == g.humans[0], "Spieler 1 gewinnt")
var g2 := Game.new_hotseat([d, d], 1, r)
for hu in g2.humans:
g2.damage(hu, 99)
g2.check_end()
check(g2.winner == "opponents" and g2.winner_player != null and not g2.winner_player.is_human, "KI gewinnt, wenn alle Menschen tot sind")
var g3 := Game.new_hotseat([d, d, d], 0, r)
check(g3.players.size() == 3 and g3.opponents.size() == 2, "drei Menschen ohne KI")
var guard := 0
while g3.winner == "" and guard < 300:
AI.take_turn(g3, g3.current(), true)
guard += 1
check(g3.winner == "human" and g3.winner_player != null, "Hotseat-Partie endet mit Sieger")
func test_zufallssamen() -> void:
Game.test_seed = 77
var a := Game.make_rng().randi()