Files
rustkeep/mods/core/abilities.toml
MDietermann 69efa72d68 feat(charakterbau): Rasse und Klasse werden gewaehlt
Der Held war seit M1 als Zwergenkrieger verdrahtet, waehrend zwei Rassen
und zwei Klassen ungenutzt in der Registry lagen. Der Charakterbau ist
eine Schleife ueber categories_ordered() und options_of() — ein Mod, der
"Talent" mit pick = 2 ergaenzt, bekommt eine dritte Spalte ohne Code.

- CharacterOption bekommt abilities und on_create (Ticket 02, TODO seit M3)
- abilities_of liest jetzt Rasse und Klasse: Krieger traegt Wuchtschlag,
  Dieb Hinterhalt, Zwerg Steinsinn
- on_create gibt die Startausruestung als gewoehnliche Aktionen —
  starting_hero() schrumpft auf Creature::new(name)
- MainMenu trennt "neuer Held" von "Lauf fortsetzen"

Befund: Das Feld abilities fehlte, obwohl Ticket 15 sein ganzes Argument
darauf stuetzt — eine Klasse konnte nur flache Modifikatoren geben.
2026-08-13 08:03:19 +02:00

79 lines
2.7 KiB
TOML

# Eine Faehigkeit ist ein benanntes, wiederholt ausloesbares ANGEBOT an den
# Spieler, das Aktionen ausfuehrt (Ticket 02) — kein Gegenstand im Inventar,
# sonst koennte ein Magier seine Zauber verkaufen.
#
# Angriff und Flucht sind bewusst keine Engine-Sonderfaelle, sondern gewoehnliche
# Faehigkeiten (Ticket 11/14). Ein Mod kann beide ersetzen.
#
# Menge = amount + scale * damage-Attribut(Verursacher) — eine Formel fuer
# Basisangriff, Feuerball und Wuchtschlag (Nachtrag aus Ticket 14).
[[abilities]]
id = "attack"
name = "Angriff"
cost = 0
actions = [ { action = "damage", scale = 1.0, damage_type = "slash", target = "target" } ]
[[abilities]]
id = "flee"
name = "Fliehen"
cost = 10
actions = [ { action = "flee" } ]
[[abilities]]
id = "power_strike"
name = "Wuchtschlag"
description = "Holt weit aus. Kostet Luft."
cost = 15
cooldown = 3
actions = [ { action = "damage", scale = 1.5, damage_type = "blunt", target = "target" } ]
[[abilities]]
id = "bone_throw"
name = "Knochenwurf"
cost = 8
cooldown = 2
actions = [ { action = "damage", amount = 6, damage_type = "blunt", target = "target" } ]
[[abilities]]
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" } ]
[[abilities]]
id = "ghoul_claw"
name = "Klauenhieb"
cost = 0
actions = [ { action = "damage", scale = 1.2, damage_type = "slash", target = "target" } ]
[[abilities]]
id = "second_wind"
name = "Zweiter Atem"
description = "Sammelt sich, wenn es eng wird."
cost = 0
cooldown = 8
condition = [ { check = "health_below", who = "self", value = 0.4 } ]
actions = [ { action = "change_attribute", attribute = "health", amount = 25, target = "self" } ]
# Die Haelfte einer Charakteroption, die NICHT veraltet (Ticket 15): "+3 Staerke"
# ist auf Stufe 30 Rauschen, ein Wuchtschlag nicht.
[[abilities]]
id = "backstab"
name = "Hinterhalt"
description = "Trifft, wo es wehtut. Nur bei vollem Atem."
cost = 12
cooldown = 4
condition = [ { check = "attribute", who = "self", attribute = "dexterity", at_least = 2 } ]
actions = [ { action = "damage", scale = 2.0, damage_type = "slash", target = "target" } ]
[[abilities]]
id = "steinsinn"
name = "Steinsinn"
description = "Der Zwerg horcht ins Gestein und sammelt sich."
cost = 0
cooldown = 6
actions = [ { action = "change_attribute", attribute = "stamina", amount = 30, target = "self" } ]