Der handgebaute Testraum ist weg; Etagen entstehen aus Daten. - game/rng.rs: xorshift64*, Seed im Game (Ticket 14) - game/generate.rs: freie Platzierung, Pflichtraeume zuerst, Kette i->i-1 fuer strukturelle Erreichbarkeit, acht Orientierungen - data/: [[prefabs]] und [[floors]] als neunte und zehnte Registry, Ladepruefungen fuer rechteckige Layouts und Pflichtraum-Flaeche - Descend plus Siegbedingung: keine [[floors]] mit der naechsten Nummer heisst gewonnen — die Zahl 5 steht nirgends im Code - GameOver-Screen, mitlaufender Bildausschnitt im Grid Befund: Korridore stanzten 2340 Loecher in gezeichnete Waende, weil sie AUF der Tuer starteten. Erst Schritt nach aussen, dann L-Form, sonst Wegsuche ueber den freien Raum — die kann eine Raumwand nicht beruehren. Der Test zaehlt jetzt null. 21 Tests.
54 lines
1.6 KiB
TOML
54 lines
1.6 KiB
TOML
# Etagen sind Registry-Eintraege (Ticket 10). Ausgewaehlt wird durchgehend
|
|
# ueber TAGS, nie ueber IDs — sonst kann ein Mod keinen eigenen Eingangsraum
|
|
# beisteuern, ohne die ganze Tabelle zu ueberschreiben.
|
|
#
|
|
# `core:merchant` steht unter `required`, nicht unter `prefabs`: Ticket 07 hat
|
|
# Backtracking ausgeschlossen, der Haendler muss also garantiert auftauchen.
|
|
#
|
|
# Es gibt keine Zahl "5" im Code — findet die Engine keine Etage mit der
|
|
# naechsten Nummer, ist der Lauf gewonnen.
|
|
|
|
[[floors]]
|
|
id = "floor_1"
|
|
number = 1
|
|
size = [72, 34]
|
|
rooms = 7
|
|
required = ["core:entrance", "core:stairs", "core:merchant"]
|
|
prefabs = [ { tag = "core:normal", weight = 10 } ]
|
|
|
|
[[floors]]
|
|
id = "floor_2"
|
|
number = 2
|
|
size = [72, 34]
|
|
rooms = 8
|
|
required = ["core:entrance", "core:stairs", "core:merchant"]
|
|
prefabs = [ { tag = "core:normal", weight = 10 },
|
|
{ tag = "core:treasure", weight = 2 } ]
|
|
|
|
[[floors]]
|
|
id = "floor_3"
|
|
number = 3
|
|
size = [80, 38]
|
|
rooms = 9
|
|
required = ["core:entrance", "core:stairs", "core:merchant"]
|
|
prefabs = [ { tag = "core:normal", weight = 10 },
|
|
{ tag = "core:treasure", weight = 3 } ]
|
|
|
|
[[floors]]
|
|
id = "floor_4"
|
|
number = 4
|
|
size = [80, 38]
|
|
rooms = 10
|
|
required = ["core:entrance", "core:stairs", "core:merchant"]
|
|
prefabs = [ { tag = "core:normal", weight = 10 },
|
|
{ tag = "core:treasure", weight = 3 } ]
|
|
|
|
[[floors]]
|
|
id = "floor_5"
|
|
number = 5
|
|
size = [88, 40]
|
|
rooms = 11
|
|
required = ["core:entrance", "core:stairs", "core:merchant"]
|
|
prefabs = [ { tag = "core:normal", weight = 10 },
|
|
{ tag = "core:treasure", weight = 4 } ]
|