- data/: [[loot_tables]] und [[affixes]] als Registries; LootEntry mit guaranteed, nothing, table-in-table, count und affixes - game/loot.rs: EINE Ziehmaschinerie fuer Gegenstaende und Affixe, Tiefendeckel gegen wechselseitigen Bezug - PickUp zieht erst beim Aufheben (Ticket 16) — moeglich nur, weil alle Haufen dasselbe Symbol zeigen - UseItem/Equip/Unequip/Drop, Inventar-Screen als Registry-Schleife - Affixe im Attributpfad, in der Resistenz und in der Trigger-Suche; item_label stellt Affixnamen voran, item_price multipliziert Faktoren - Room haelt eine loot_table (nicht je Haufen eine), Prefab-loot ueberschreibt die Etagentabelle 53 Tests. Offen aus M4: Handel.
66 lines
1.7 KiB
TOML
66 lines
1.7 KiB
TOML
# Es gibt keinen Item-Typ (Ticket 02). Ein Schwert ist ein Gegenstand mit einem
|
|
# Modifikator auf `damage`, ein Helm einer mit einem Modifikator auf Rüstung —
|
|
# der Unterschied steht in den Modifikatoren, nicht in einer Kategorie.
|
|
|
|
[[items]]
|
|
id = "iron_sword"
|
|
name = "Eisenschwert"
|
|
base_price = 45
|
|
slot = "core:hand"
|
|
symbol = "/"
|
|
color = "white"
|
|
modifiers = [ { attribute = "damage", flat = 5 } ]
|
|
|
|
[[items]]
|
|
id = "leather_cap"
|
|
name = "Lederkappe"
|
|
base_price = 18
|
|
slot = "core:head"
|
|
symbol = "^"
|
|
color = "yellow"
|
|
modifiers = [ { attribute = "max_health", flat = 8 } ]
|
|
|
|
[[items]]
|
|
id = "health_potion"
|
|
name = "Heiltrank"
|
|
base_price = 12
|
|
stackable = true
|
|
consumed_on_use = true
|
|
symbol = "!"
|
|
color = "red"
|
|
|
|
[[items]]
|
|
id = "gold"
|
|
name = "Gold"
|
|
base_price = 1
|
|
stackable = true
|
|
symbol = "$"
|
|
color = "yellow"
|
|
|
|
# Belegt den `when`-Filter in Daten: Der Panzer reflektiert NUR Feuer.
|
|
# Zwei Schadenstypen braeuchten zwei Trigger — ODER ist im Vokabular
|
|
# ausdruecklich nicht vorgesehen (Ticket 08).
|
|
[[items]]
|
|
id = "thorn_mail"
|
|
name = "Dornenpanzer"
|
|
base_price = 90
|
|
slot = "core:body"
|
|
symbol = "["
|
|
color = "red"
|
|
modifiers = [ { attribute = "resistance", damage_type = "fire", flat = 25 } ]
|
|
triggers = [
|
|
{ on = "damage_taken",
|
|
when = { damage_type = "fire" },
|
|
actions = [ { action = "damage", amount = 3, damage_type = "fire", target = "target" } ] },
|
|
]
|
|
|
|
[[items]]
|
|
id = "bone_blade"
|
|
name = "Knochenklinge"
|
|
base_price = 210
|
|
slot = "core:hand"
|
|
symbol = "/"
|
|
color = "magenta"
|
|
modifiers = [ { attribute = "damage", flat = 11 },
|
|
{ attribute = "critical_chance", flat = 8 } ]
|