Files
rustkeep/mods/core/affixes.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

47 lines
1.5 KiB
TOML

# Affixe (Ticket 07/16): eine benannte Modifikatorliste, die an einem EINZELNEN
# Exemplar haengt. Strukturell dasselbe wie eine Charakteroption — der
# Unterschied ist, woran sie haengt.
#
# Abstufungen sind EIGENE EINTRAEGE, keine Zahl am Exemplar: Eine Staerke je
# Exemplar haette Save-Format (ID-Liste), Preisformel und Stapelregel auf einmal
# gekostet. Mit Stufen kann der Modder seine Abstufungen benennen.
[[affixes]]
id = "sharp"
name = "Scharfes"
price_factor = 1.3
modifiers = [ { attribute = "damage", flat = 2 } ]
[[affixes]]
id = "flaming"
name = "Flammendes"
price_factor = 1.6
modifiers = [ { attribute = "damage", flat = 3 } ]
triggers = [
{ on = "attack_hit", chance = 0.25,
actions = [ { action = "damage", amount = 4, damage_type = "fire", target = "target" } ] },
]
[[affixes]]
id = "greater_flaming"
name = "Stark flammendes"
price_factor = 2.4
modifiers = [ { attribute = "damage", flat = 6 } ]
triggers = [
{ on = "attack_hit", chance = 0.4,
actions = [ { action = "damage", amount = 9, damage_type = "fire", target = "target" } ] },
]
[[affixes]]
id = "sturdy"
name = "Robuste"
price_factor = 1.4
modifiers = [ { attribute = "max_health", flat = 12 } ]
[[affixes]]
id = "warding"
name = "Schirmende"
price_factor = 1.8
modifiers = [ { attribute = "resistance", damage_type = "fire", flat = 20 },
{ attribute = "resistance", damage_type = "ice", flat = 20 } ]