class_name Challenge ## Wöchentliche Herausforderung: feste Regelvariante, einmal pro Woche belohnt. const LIST := [ {"id": "eile", "name": "Eile", "text": "Alle beginnen mit 3 Energie und 20 Leben, drei Gegner.", "n_opp": 3, "rules": {"everyone_perk": "start_energie", "start_life": 20}, "reward": 200}, {"id": "resonanz", "name": "Resonanzsturm", "text": "Resonanz zählt für alle doppelt, zwei Gegner.", "n_opp": 2, "rules": {"everyone_perk": "resonanz_doppelt"}, "reward": 180}, {"id": "flink", "name": "Blitzkrieg", "text": "Alle Wesen sind flink, vier Gegner.", "n_opp": 4, "rules": {"everyone_perk": "alle_flink"}, "reward": 250}, {"id": "schild", "name": "Panzerschlacht", "text": "Alle Wesen kommen mit Schild, Duell mit 40 Leben.", "n_opp": 1, "rules": {"everyone_perk": "schild_wesen", "start_life": 40}, "reward": 150}, {"id": "karten", "name": "Kartenflut", "text": "Jeder zieht 2 Karten pro Zug, fünf Gegner am Tisch.", "n_opp": 5, "rules": {"everyone_perk": "extra_karten"}, "reward": 300}, {"id": "mono", "name": "Reine Lehre", "text": "Nur Decks mit einem Element sind erlaubt, drei Gegner.", "n_opp": 3, "rules": {"mono_only": true}, "reward": 220}, ] static func week() -> int: var t := Profile.today() return int(Time.get_unix_time_from_datetime_string(t + "T00:00:00") / 604800) static func current() -> Dictionary: return LIST[week() % LIST.size()] ## Prüft, ob das Deck zur Herausforderung passt. Gibt "" oder eine Fehlermeldung zurück. static func deck_allowed(ch: Dictionary, deck: Array) -> String: if ch.rules.get("mono_only", false) and Game.deck_elements(deck).size() != 1: return "Diese Woche sind nur Decks mit einem Element erlaubt" return ""