Files
rustkeep/mods/core/items.toml
MDietermann 197f62ce33 feat: m4 teil 1 — beute, inventar und affixe
- 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.
2026-08-12 17:56:28 +02:00

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 } ]