Wöchentliche Herausforderung und die Netzwerk-Hinweise entfernt
- Challenge samt Bildschirm, Menüpunkt, Erfolg "Wochenheld" und Spielstandfeld entfernt; record_battle verliert den challenge-Parameter, die Bestenliste bleibt - Lobby: Erklärzeile unter dem Titel weg, "KI-Gegner (nur Host)" heißt jetzt "KI-Gegner" Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QPgKvy5W9WRNFHjkm5QsHx
This commit is contained in:
@@ -108,7 +108,7 @@ func _initialize() -> void:
|
||||
test_deck_umbenennen_und_auffuellen()
|
||||
test_neue_fallen()
|
||||
test_kapitel_zwei_und_merkmalwahl()
|
||||
test_herausforderung_und_bestenliste()
|
||||
test_bestenliste()
|
||||
test_deckstaerke_und_schwierigkeit()
|
||||
test_starter_gegen_passende_gegner()
|
||||
test_kurve_statistik_vorschlag_verbesserung()
|
||||
@@ -1145,32 +1145,19 @@ func test_kapitel_zwei_und_merkmalwahl() -> void:
|
||||
check(v.perk == "feuer_angriff" and v.campaign_stage == 20, "Version 5 gelesen")
|
||||
|
||||
|
||||
func test_herausforderung_und_bestenliste() -> void:
|
||||
Profile.today_override = "2026-09-16"
|
||||
var ch := Challenge.current()
|
||||
check(ch.has("rules") and ch.n_opp >= 1, "Herausforderung der Woche")
|
||||
var weeks := {}
|
||||
for d in range(1, 43, 7):
|
||||
Profile.today_override = "2026-%02d-%02d" % [1 + d / 28, 1 + d % 28]
|
||||
weeks[Challenge.current().id] = true
|
||||
check(weeks.size() >= 4, "Herausforderungen wechseln wöchentlich")
|
||||
func test_bestenliste() -> void:
|
||||
Profile.today_override = "2026-09-16"
|
||||
var mono := []
|
||||
for i in 20:
|
||||
mono.append(Cards.by_id("w_reiter"))
|
||||
check(Challenge.deck_allowed(Challenge.LIST[5], Profile.starter().deck_cards()) != "", "Reine Lehre lehnt Zwei-Element-Deck ab")
|
||||
check(Challenge.deck_allowed(Challenge.LIST[5], mono) == "", "Mono-Deck erlaubt")
|
||||
var r := RandomNumberGenerator.new()
|
||||
r.seed = 4
|
||||
var g := Game.new_battle(mono, 3, r, Challenge.LIST[0].rules)
|
||||
check(g.players.all(func(p): return p.life == 20 and "start_energie" in p.perks), "Eile: 20 Leben und Startenergie für alle")
|
||||
var g := Game.new_battle(mono, 3, r, {"everyone_perk": "start_energie", "start_life": 20})
|
||||
check(g.players.all(func(p): return p.life == 20 and "start_energie" in p.perks), "Regelvariante: 20 Leben und Startenergie für alle")
|
||||
check(g.players[0].max_energy == 3, "Startspieler hat 3 Energie")
|
||||
var p := Profile.starter()
|
||||
var coins := p.coins
|
||||
var reward := p.record_battle(true, 3, mono, -1, [], 7, Challenge.LIST[0])
|
||||
check(reward == Challenge.LIST[0].reward and p.challenge_week == Challenge.week() and "wochenheld" in p.achievements, "Herausforderung belohnt")
|
||||
reward = p.record_battle(true, 3, mono, -1, [], 9, Challenge.LIST[0])
|
||||
check(reward == Profile.REWARD_WIN[3], "nur einmal pro Woche")
|
||||
p.record_battle(true, 3, mono, -1, [], 7)
|
||||
p.record_battle(true, 3, mono, -1, [], 9)
|
||||
check(p.records.streak == 2 and p.records.best_streak == 2 and p.records.fastest_win == 7, "Serie und schnellster Sieg")
|
||||
p.record_battle(false, 1, mono, -1, [], 12)
|
||||
check(p.records.streak == 0 and p.records.best_streak == 2, "Niederlage bricht die Serie")
|
||||
@@ -1211,7 +1198,7 @@ func test_deckstaerke_und_schwierigkeit() -> void:
|
||||
check(is_equal_approx(p.target_rating(), rs * 1.2) and p.difficulty().smart, "Schwer: 1,2-fach mit Vorausschau-KI")
|
||||
p.settings.difficulty = "leicht"
|
||||
check(not p.difficulty().smart and is_equal_approx(p.target_rating(), rs * 0.9), "Leicht: einfache KI, 0,9-fach")
|
||||
var reward := p.record_battle(true, 1, starter, -1, [], 5, {}, p.difficulty().reward)
|
||||
var reward := p.record_battle(true, 1, starter, -1, [], 5, p.difficulty().reward)
|
||||
check(reward == int(round(Profile.REWARD_WIN[1] * 0.75)), "Leicht: weniger Münzen")
|
||||
var v := Profile.from_dict(JSON.parse_string(JSON.stringify(p.to_dict())))
|
||||
check(v.settings.difficulty == "leicht", "Schwierigkeit gespeichert")
|
||||
@@ -1268,17 +1255,17 @@ func test_kurve_statistik_vorschlag_verbesserung() -> void:
|
||||
var mono := starter
|
||||
check(p.suggest_difficulty() == "", "kein Vorschlag am Anfang")
|
||||
for i in 3:
|
||||
p.record_battle(true, 1, mono, -1, [], 6, {}, 1.0, 4)
|
||||
p.record_battle(true, 1, mono, -1, [], 6, 1.0, 4)
|
||||
check(p.suggest_difficulty() == "", "drei knappe Siege: noch kein Vorschlag")
|
||||
p.records.streak = 0
|
||||
p.records.margins = []
|
||||
for i in 3:
|
||||
p.record_battle(true, 1, mono, -1, [], 6, {}, 1.0, 20)
|
||||
p.record_battle(true, 1, mono, -1, [], 6, 1.0, 20)
|
||||
check(p.suggest_difficulty() == "schwer" and p.notices.any(func(n): return n.begins_with("Tipp: 3 Siege")), "drei deutliche Siege: Schwer vorschlagen")
|
||||
p.records.streak = 0
|
||||
p.records.margins = []
|
||||
for i in 5:
|
||||
p.record_battle(true, 1, mono, -1, [], 6, {}, 1.0, 2)
|
||||
p.record_battle(true, 1, mono, -1, [], 6, 1.0, 2)
|
||||
check(p.suggest_difficulty() == "schwer" and p.records.margins.size() == 5, "fünf Siege egal wie knapp")
|
||||
p.settings.difficulty = "schwer"
|
||||
p.take_notices()
|
||||
|
||||
Reference in New Issue
Block a user