diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cad3bd..09bc8fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v0.12.0-dev + +- Add power-hungry optional thruster boost +- Add different flashlight power settings +- Add different light amplification settings + # v0.11.1 - Added space suit thruster particle effects diff --git a/doc/gamedesign.md b/doc/gamedesign.md index 935d479..96b3b7d 100644 --- a/doc/gamedesign.md +++ b/doc/gamedesign.md @@ -118,8 +118,6 @@ A variety of relatively simple game systems should interact with each other to c - [ ] Thruster boost - [ ] G-force dampeners - [ ] Life support, material recyclers (air, water, etc) - - [ ] Noise cancellation? - - [ ] Radio? - [ ] High energy particle shield? - [ ] Micrometeorite shield? diff --git a/src/actor.rs b/src/actor.rs index ead1691..5641ddf 100644 --- a/src/actor.rs +++ b/src/actor.rs @@ -21,6 +21,8 @@ use bevy_xpbd_3d::prelude::*; pub const ENGINE_SPEED_FACTOR: f32 = 30.0; const MAX_TRANSMISSION_DISTANCE: f32 = 100.0; const MAX_INTERACT_DISTANCE: f32 = 50.0; +const POWER_DRAIN_THRUSTER: [f32; 3] = [3e6, 3e6, 0.0]; +const THRUSTER_BOOST_FACTOR: [f64; 3] = [3.0, 3.0, 0.0]; const POWER_DRAIN_FLASHLIGHT: [f32; 3] = [200e3, 1500e3, 2500e3]; pub const FLASHLIGHT_INTENSITY: [f32; 3] = [10e6, 400e6, 2e9]; // in lumens @@ -212,6 +214,9 @@ pub struct Engine { pub engine_type: EngineType, pub warmup_seconds: f32, pub current_warmup: f32, // between 0.0 and 1.0 + pub current_boost_factor: f64, + pub currently_firing: bool, + pub currently_matching_velocity: bool, } impl Default for Engine { fn default() -> Self { @@ -223,6 +228,9 @@ impl Default for Engine { engine_type: EngineType::Monopropellant, warmup_seconds: 1.5, current_warmup: 0.0, + current_boost_factor: 1.0, + currently_firing: false, + currently_matching_velocity: false, } } } @@ -266,13 +274,13 @@ pub fn update_power( time: Res