Eine Quest IST ein Trigger mit count = N — kein zweiter Mechanismus. Gezaehlt wird erst ab start_quest, erledigte bleiben mit done = true stehen, und die Belohnung darf die naechste starten: das ist die Kette. - fuenfzehnte Registry, Trigger per serde(flatten) eingebettet - give_item als Aktion, damit eine Belohnung mehr als Erfahrung zahlt - QuestLog auf q, Fortschritt im Speicherstand, unbekannte IDs verworfen - eine Funktion entscheidet fuer alle Traeger, wann ein Trigger feuert Befund: Die Ordnungszahlen im Aktionskatalog widersprechen sich — vier Tickets zaehlten je vom eigenen Stand. Sie sind raus, CONTEXT.md fuehrt die Liste.
30 lines
1.2 KiB
TOML
30 lines
1.2 KiB
TOML
# NPCs — die vierzehnte Registry (M4).
|
|
#
|
|
# Ein NPC ist kein Wesen: Er hat keine Attribute, keine Initiative und keinen
|
|
# Kampfzustand. Ihn in `creatures` zu pressen hiesse, jedem Gegner ein leeres
|
|
# `options`-Feld und jedem Haendler leere Grundwerte zu geben.
|
|
#
|
|
# Die Antwortliste ist FLACH, kein Knotengraph: Was erst nach einer Antwort
|
|
# erscheint, ist eine Option mit einer Bedingung. Ein Graph braeuchte Knoten-IDs,
|
|
# einen Zeiger auf den aktuellen Knoten im Speicherstand und eine Kreispruefung
|
|
# beim Laden — fuer einen Haendler mit vier Saetzen.
|
|
|
|
[[npcs]]
|
|
id = "blacksmith"
|
|
name = "Borin"
|
|
symbol = "B"
|
|
color = "yellow"
|
|
greeting = "Stahl kostet. Rede oder kauf."
|
|
shop = "core:blacksmith_stock"
|
|
options = [
|
|
{ text = "Zeig mir deine Waren.", actions = [ { action = "open_shop" } ] },
|
|
{ text = "Was gibt es hier unten?" },
|
|
{ text = "Hast du Arbeit für mich?",
|
|
actions = [ { action = "start_quest", quest = "core:rattenplage" } ] },
|
|
# Bedingte Option statt eines zweiten Dialogknotens — genau der Fall, fuer
|
|
# den der Knotengraph angeblich noetig waere.
|
|
{ text = "Diese Knochenklinge — kennst du sie?",
|
|
condition = [ { check = "has_item", item = "core:bone_blade" } ] },
|
|
{ text = "Nichts weiter." },
|
|
]
|