feat: when-filter am trigger schliesst die luecke aus m3

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.
This commit is contained in:
2026-08-12 17:44:26 +02:00
parent b25dd1c49a
commit cdcabcce21
5 changed files with 170 additions and 24 deletions

View File

@@ -36,3 +36,20 @@ 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" } ] },
]