fix(kampf): Gegner bekommen endlich ihre Werte
Gemeldet als "Ratten vergiften zu 100 %". Dahinter lagen drei Fehler: 1. Creature::from_def parste Attributnamen mit toml::from_str, das eine ganze TOML-Datei erwartet. Der Aufruf schlug fuer jeden Namen fehl, der Zweig hiess Err(_) => continue — jeder Gegner hatte seit M3 still die Standardwerte. Die Riesenratte: 100 Leben statt 14, der Knochenfuerst war eine grosse Ratte. Kampf gegen den ersten Gegner: 22 Zuege statt 4. 2. attack_hit feuerte bei allen Traegern statt nur beim Angreifer, also vergiftete die Ratte auch bei eigenen Treffern. EventKind:: bound_to_source benennt die zwei seitengebundenen Ereignisse. 3. Action::Damage wuerfelte die Trefferformel auch bei Selbstschaden — ein flinker Held wich seinem eigenen Gift aus. Dazu ein Datenfehler: Das Gift stand in der Aktionsliste von rat_bite, und Aktionen haben kein chance. Es haengt jetzt am Trigger mit 25 %. Drei Regressionstests, darunter der, den es seit M3 haette geben muessen: ein Gegner bekommt die Werte aus seiner Definition.
This commit is contained in:
@@ -39,8 +39,7 @@ actions = [ { action = "damage", amount = 6, damage_type = "blunt", target =
|
||||
id = "rat_bite"
|
||||
name = "Biss"
|
||||
cost = 0
|
||||
actions = [ { action = "damage", scale = 1.0, damage_type = "slash", target = "target" },
|
||||
{ action = "apply_modifier", modifier = "core:poisoned", target = "target" } ]
|
||||
actions = [ { action = "damage", scale = 1.0, damage_type = "slash", target = "target" } ]
|
||||
|
||||
[[abilities]]
|
||||
id = "ghoul_claw"
|
||||
|
||||
@@ -14,6 +14,15 @@ tags = ["core:beast"]
|
||||
base = { max_health = 14, damage = 3, hit_chance = 0.65, dexterity = 4, critical_chance = 5 }
|
||||
abilities = ["core:rat_bite"]
|
||||
ai = [ { ability = "core:rat_bite" } ]
|
||||
# Das Gift haengt am TRIGGER, nicht in der Aktionsliste des Bisses: Aktionen
|
||||
# haben kein `chance`, Trigger schon (Ticket 08). In der Faehigkeit stand es
|
||||
# ohne Wahrscheinlichkeit — jeder Biss vergiftete, und weil ein erneutes
|
||||
# Auflegen die Dauer auffrischt, war der Held ab dem ersten Treffer dauerhaft
|
||||
# vergiftet (Befund M9).
|
||||
triggers = [
|
||||
{ on = "attack_hit", chance = 0.25,
|
||||
actions = [ { action = "apply_modifier", modifier = "core:poisoned", target = "target" } ] },
|
||||
]
|
||||
exp_reward = 4
|
||||
|
||||
[[creatures]]
|
||||
|
||||
Reference in New Issue
Block a user