fix(bogen): vorgemerkte Punkte beim Abschicken verbrauchen
Nach Enter stand unspent_points auf 0, waehrend der Screen den Punkt noch vorgemerkt hielt — die Anzeige rechnete 0 - 1 auf u32 und stuerzte ab. Der Screen leert sein Feld, waehrend er das Kommando uebergibt, dazu saturating_sub an den zwei Lesestellen: unspent_points kann sich auch unter dem offenen Screen aendern. Erster UI-Test des Projekts. handle_key ist ohne Terminal aufrufbar, und sobald ein Screen Zustand haelt, ist die Naht zum Spielzustand eine Fehlerquelle wie jede andere.
This commit is contained in:
@@ -578,7 +578,7 @@ fn draw_sheet(frame: &mut Frame, area: Rect, app: &App, pick: usize, pending: &[
|
||||
let mut lines = Vec::new();
|
||||
|
||||
// Erfahrung und Punkte stehen an `Game`, nicht am `Creature` (Ticket 15).
|
||||
let offen = app.game.unspent_points - pending.iter().sum::<u32>();
|
||||
let offen = app.game.unspent_points.saturating_sub(pending.iter().sum::<u32>());
|
||||
lines.push(Line::from(format!(
|
||||
"Erfahrung {}/{}",
|
||||
app.game.current_exp,
|
||||
|
||||
Reference in New Issue
Block a user