feat: m3 kampf, events und trigger
Der Dungeon hat jetzt Gegner, und man kann sterben.
- game/action.rs: sieben Schadenstypen, fuenf der zehn Aktionen, Target
- game/condition.rs: Bedingungsgrammatik (Liste = UND, not je Eintrag)
- game/event.rs: zwoelf Events, Trigger als vierte Wirkungsform
- game/combat.rs: Treffer- und Schadensformel mit drei Klemmbereichen
- Game::apply, drain_events (FIFO), Initiative, Rundenablauf aus Ticket 14
- data/: abilities-, creatures- und modifiers-Registry, [balance] feldweise
- ui/: Combat-Screen mit Faehigkeitsmenue und Sperrgrund
Drei Befunde:
- Die Trefferformel war toter Code — jeder Angriff traf. Nur der Compiler
hat es gemeldet ('hit_chance is never used'). Test haelt sie am Leben.
- Die Warteschlange war ein Stack (pop statt pop_front), obwohl Ticket 08
ausdruecklich 'haengt es hinten an' sagt. Jetzt VecDeque.
- Benannte Modifikatoren (core:poisoned) hatten keine Registry — Ticket 01
laesst apply_modifier per ID referenzieren, aber keine der zwoelf
definierte sie. Das ist die dreizehnte.
43 Tests.
This commit is contained in:
@@ -20,6 +20,14 @@ pub enum Command {
|
||||
Move(Direction),
|
||||
Wait,
|
||||
Descend,
|
||||
/// Der normale Angriff ist **keine eigene Variante**, sondern
|
||||
/// `UseAbility("core:attack")` — Faehigkeiten sind seit Ticket 02 eine
|
||||
/// Registry, also gehoert er dorthin, und ein Mod kann ihn ersetzen.
|
||||
/// Dasselbe gilt fuer die Flucht.
|
||||
UseAbility {
|
||||
ability: String,
|
||||
target: super::creature::CreatureRef,
|
||||
},
|
||||
}
|
||||
|
||||
/// Ergebnis eines Kommandos — der Befund aus dem Durchstich in Ticket 12:
|
||||
|
||||
Reference in New Issue
Block a user