condition fragt Wesen, when filtert das Ereignis. Getrennt, weil dieselbe Bedingungsgrammatik auch beim Auslesen eines Attributs laeuft — dort gibt es kein Event, und eine Nutzlast-Pruefung in condition waere im Trigger sinnvoll und am Modifikator immer falsch, ohne dass der Modder es sieht. Nutzlast zurueck: damage_type und prefab. critical und amount bleiben draussen, bis jemand sie fordert. Dazu Item.triggers/actions/abilities und Trigger-Suche in der Ausruestung — mods/core/items.toml belegt es mit einem Dornenpanzer, der NUR Feuer reflektiert. 45 Tests.
56 lines
1.5 KiB
TOML
56 lines
1.5 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" } ] },
|
|
]
|