class_name StartDeckScreen extends Control ## Erster Start: eines von vier Startdecks wählen, je eines mit einem Element im Mittelpunkt ## (25 Karten davon, je fünf der anderen). Danach geht es ins Menü. var app func _ready() -> void: Style.label(self, tr("Wähle dein Startdeck"), 40, Style.GOLD, Rect2(0, 60, 1280, 60), "center", true) Style.label(self, tr("25 Karten des Elements, dazu je fünf der anderen. Booster und Werkstatt bringen später den Rest."), 17, Style.MUTED, Rect2(140, 124, 1000, 30), "center") for i in Cards.ELEMENTS.size(): var e: String = Cards.ELEMENTS[i] var x := 70 + i * 290 var col: Color = Cards.ELEMENT_COLORS[e] Style.panel(self, Rect2(x, 190, 260, 470), Style.darker(col, 0.75), 12, col, 2) var ids := DeckGen.start_deck(e) var sample: Array = ids.filter(func(id): return Cards.by_id(id).elements[0] == e) sample.sort_custom(func(a, b): return Cards.by_id(a).cost > Cards.by_id(b).cost) for k in 3: var c: Cards.Card = Cards.by_id(sample[k * 7]) var v := CardView.new(c, Vector2(120, 152), false, "Common") v.position = Vector2(x + 20 + k * 40, 210 + k * 14) v.rotation_degrees = -6 + k * 6 v.mouse_filter = Control.MOUSE_FILTER_IGNORE add_child(v) Style.label(self, tr(e), 28, Style.TEXT, Rect2(x, 400, 260, 40), "center", true) Style.label(self, tr(Cards.KEYWORD_TEXT[Cards.ELEMENT_KEYWORD[e]]), 15, Style.MUTED, Rect2(x + 16, 446, 228, 60), "center") var b := Style.button(self, tr("%s wählen") % tr(e), Rect2(x + 30, 590, 200, 50), choose.bind(e), Style.PRIMARY) b.add_theme_font_size_override("font_size", 18) func choose(element: String) -> void: app.profile.choose_start(element) app.save() app.sfx.play("combo") app.show_screen(MenuScreen.new())