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.
This commit is contained in:
@@ -56,3 +56,23 @@ 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" } ]
|
||||
|
||||
@@ -21,6 +21,7 @@ name = "Zwerg"
|
||||
description = "Zäh, misstrauisch, trinkfest."
|
||||
modifiers = [ { attribute = "constitution", flat = 2 },
|
||||
{ attribute = "max_health", flat = 10 } ]
|
||||
abilities = ["core:steinsinn"]
|
||||
|
||||
[[options]]
|
||||
id = "elf"
|
||||
@@ -37,6 +38,12 @@ name = "Krieger"
|
||||
description = "Schlägt zu, wo andere nachdenken."
|
||||
modifiers = [ { attribute = "strength", flat = 3 },
|
||||
{ attribute = "damage", percent = 10 } ]
|
||||
abilities = ["core:power_strike"]
|
||||
# `on_create` ist KEINE neue Mechanik, sondern gewoehnliche Aktionen, einmal
|
||||
# beim Bau ausgefuehrt (Ticket 02). Die Engine kennt den Begriff
|
||||
# "Startausruestung" deshalb gar nicht.
|
||||
on_create = [ { action = "give_item", item = "core:iron_sword" },
|
||||
{ action = "give_item", item = "core:health_potion", count = 2 } ]
|
||||
|
||||
[[options]]
|
||||
id = "thief"
|
||||
@@ -46,3 +53,6 @@ description = "Nimmt, was nicht niet- und nagelfest ist."
|
||||
modifiers = [ { attribute = "dexterity", flat = 2 },
|
||||
{ attribute = "luck", flat = 2 },
|
||||
{ attribute = "critical_chance", percent = 15 } ]
|
||||
abilities = ["core:backstab"]
|
||||
on_create = [ { action = "give_item", item = "core:leather_cap" },
|
||||
{ action = "give_item", item = "core:gold", count = 40 } ]
|
||||
|
||||
Reference in New Issue
Block a user