feat: m1 vertikaler durchstich — mod-lader, registries, attributberechnung, screen-stack
Ersetzt src/ vollstaendig: print_box, include_str! und enum ItemType fallen, wie Ticket 01-03 es vorgezeichnet haben. - data/: Mod-Lader mit zwei Suchpfaden, selbstheilender load_order.toml, drei Phasen und zweistufiger Deserialisierung (03/04) - game/: Attributkatalog, Creature, Game::attribute ueber mehrere Quellen, Command mit Outcome (01/07/11/12) - ui/: Screen-Stack mit Response, Grid-Widget, Press-Filter (06/11/12) - mods/core/: echte TOML-Dateien auf der Platte statt include_str! 10 Tests, darunter der Borrow-Beweis fuer Registries-neben-Game, den Ticket 12 nicht fuehren konnte.
This commit is contained in:
32
src/game/command.rs
Normal file
32
src/game/command.rs
Normal file
@@ -0,0 +1,32 @@
|
||||
//! Kommandos der Oberflaeche an das Spiel — Ticket 11.
|
||||
//!
|
||||
//! **Nicht** zu verwechseln mit `Action`, dem TOML-Effektvokabular aus Ticket
|
||||
//! 01. „Geh nach Norden" ist keine der zehn Aktionen und wird nie eine.
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum Direction {
|
||||
North,
|
||||
South,
|
||||
West,
|
||||
East,
|
||||
}
|
||||
|
||||
/// Ticket 11 hat zwoelf Commands festgelegt; M1 braucht zwei davon.
|
||||
///
|
||||
// TODO(M2+): `UseAbility`, `UseItem`, `Equip`, `Unequip`, `Drop`, `PickUp`,
|
||||
// `Descend`, `Talk`, `Buy`, `Sell` — und `AssignPoints` aus 15.
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum Command {
|
||||
Move(Direction),
|
||||
Wait,
|
||||
}
|
||||
|
||||
/// Ergebnis eines Kommandos — der Befund aus dem Durchstich in Ticket 12:
|
||||
/// „alle Commands kosten einen Zug" heisst **alle ausgefuehrten**. Gegen eine
|
||||
/// Wand zu laufen darf keine Zeit verbrauchen, sonst tickt ein Gift-Debuff,
|
||||
/// weil jemand danebengetippt hat.
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum Outcome {
|
||||
TurnPassed,
|
||||
Rejected(&'static str),
|
||||
}
|
||||
Reference in New Issue
Block a user