From 2898e701c3504192816172192e16c5c868e0cbd5 Mon Sep 17 00:00:00 2001 From: Christopher Date: Thu, 2 Mar 2023 11:41:43 +1300 Subject: [PATCH] shield hit absorbtion --- 84_Super_Star_Trek/rust/src/model.rs | 4 ++-- 84_Super_Star_Trek/rust/src/view.rs | 4 ++++ 84_Super_Star_Trek/rust/tasks.md | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/84_Super_Star_Trek/rust/src/model.rs b/84_Super_Star_Trek/rust/src/model.rs index 103887f5..4f5a65ac 100644 --- a/84_Super_Star_Trek/rust/src/model.rs +++ b/84_Super_Star_Trek/rust/src/model.rs @@ -52,14 +52,14 @@ impl Enterprise { view::enterprise_hit(&hit_strength, §or); - // absorb into shields + self.shields = (self.shields - hit_strength).max(0); if self.shields <= 0 { view::enterprise_destroyed(); self.destroyed = true } - // report shields + view::shields_hit(self.shields); // take damage if strength is greater than 20 } } diff --git a/84_Super_Star_Trek/rust/src/view.rs b/84_Super_Star_Trek/rust/src/view.rs index 95cad41d..02c72815 100644 --- a/84_Super_Star_Trek/rust/src/view.rs +++ b/84_Super_Star_Trek/rust/src/view.rs @@ -191,3 +191,7 @@ pub fn shields_set(value: u16) { println!("Deflector control room report: 'Shields now at {value} units per your command.'") } + +pub fn shields_hit(shields: u16) { + println!(" ") +} diff --git a/84_Super_Star_Trek/rust/tasks.md b/84_Super_Star_Trek/rust/tasks.md index 7c7e1df8..918a0395 100644 --- a/84_Super_Star_Trek/rust/tasks.md +++ b/84_Super_Star_Trek/rust/tasks.md @@ -10,7 +10,7 @@ Started after movement and display of stats was finished (no energy management o - [x] remove energy on move - [x] shields - [x] shield control - - [ ] shield hit absorption + - [x] shield hit absorption - [ ] subsystem damage - and support for reports - [ ] lrs?