Anleitung mit Hervorhebungen, Rückgängig, Kapitel 2, Herausforderungen, Fallen, Wiederverbinden, CI
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QPgKvy5W9WRNFHjkm5QsHx
This commit is contained in:
42
scripts/ui/challenge_screen.gd
Normal file
42
scripts/ui/challenge_screen.gd
Normal file
@@ -0,0 +1,42 @@
|
||||
class_name ChallengeScreen
|
||||
extends Control
|
||||
## Wöchentliche Herausforderung: feste Regelvariante mit einmaliger Belohnung.
|
||||
|
||||
var app
|
||||
var msg: Label
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var p: Profile = app.profile
|
||||
var ch := Challenge.current()
|
||||
var done: bool = p.challenge_week == Challenge.week()
|
||||
var col := Style.column(self, 760, 60, 14)
|
||||
Style.clabel(col, "Herausforderung der Woche", 36, Style.GOLD, "center", true)
|
||||
Style.clabel(col, "Jede Woche eine andere Regel. Die Belohnung gibt es einmal pro Woche, danach die normale.", 16, Style.MUTED)
|
||||
Style.spacer(col, 20)
|
||||
var panel := PanelContainer.new()
|
||||
panel.add_theme_stylebox_override("panel", Style.box(Style.PANEL, 10, Style.GREEN if done else Style.GOLD, 2))
|
||||
col.add_child(panel)
|
||||
var inner := VBoxContainer.new()
|
||||
inner.add_theme_constant_override("separation", 10)
|
||||
panel.add_child(inner)
|
||||
Style.spacer(inner, 6)
|
||||
Style.clabel(inner, ch.name, 30, Style.TEXT, "center", true)
|
||||
Style.clabel(inner, ch.text, 18, Style.MUTED)
|
||||
Style.clabel(inner, "Belohnung: %d Münzen%s" % [ch.reward, " · diese Woche schon bestanden ✓" if done else ""], 16, Style.GOLD)
|
||||
Style.spacer(inner, 6)
|
||||
Style.spacer(col, 10)
|
||||
msg = Style.clabel(col, "", 16, Style.ORANGE)
|
||||
var deck_err := Challenge.deck_allowed(ch, p.deck_cards())
|
||||
if deck_err != "":
|
||||
msg.text = deck_err + " (aktives Deck: %s)" % p.deck_name()
|
||||
var br := Style.row(col, 20)
|
||||
br.alignment = BoxContainer.ALIGNMENT_CENTER
|
||||
var b := Style.cbutton(br, "Antreten", Vector2(200, 50), func(): app.show_screen(BattleScreen.weekly(ch)), Color("285a3c"))
|
||||
b.disabled = deck_err != "" or not p.deck_valid()[0]
|
||||
Style.cbutton(br, "Zurück", Vector2(160, 50), func(): app.show_screen(MenuScreen.new()))
|
||||
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventKey and event.pressed and event.keycode == KEY_ESCAPE:
|
||||
app.show_screen(MenuScreen.new())
|
||||
Reference in New Issue
Block a user