Elemente, Kombos, Fallen, KI mit Vorausschau, Kampagne, Hotseat und Netzwerk, Werkstatt, Erfolge, Tagesaufgaben, Tests und Exporte. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QPgKvy5W9WRNFHjkm5QsHx
34 lines
1.7 KiB
GDScript
34 lines
1.7 KiB
GDScript
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 ""
|