pub struct DifficultyProfile {
pub level: u8,
pub name: String,
pub reaction_delay_ms: f32,
pub prediction_accuracy: f32,
pub max_paddle_speed: f32,
pub error_magnitude: f32,
pub aggression: f32,
}Expand description
A single difficulty profile defining AI behavior.
Difficulty curve formula (from design spec):
reaction = 500 * (1-t)² + 50wheret = level/9accuracy = 0.30 + 0.65 * tspeed = 200 + 400 * terror = 50 * (1-t)² + 5
Fields§
§level: u8Difficulty level (0-9)
name: StringHuman-readable name for this level
reaction_delay_ms: f32Base reaction delay in milliseconds
prediction_accuracy: f32Ball position prediction accuracy (0.0-1.0)
max_paddle_speed: f32Maximum paddle movement speed (pixels/second)
error_magnitude: f32Random error magnitude in target position (pixels)
aggression: f32Aggression factor - how much to anticipate vs react (0.0-1.0)
Trait Implementations§
Source§impl Clone for DifficultyProfile
impl Clone for DifficultyProfile
Source§fn clone(&self) -> DifficultyProfile
fn clone(&self) -> DifficultyProfile
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DifficultyProfile
impl Debug for DifficultyProfile
Source§impl Default for DifficultyProfile
impl Default for DifficultyProfile
Source§impl<'de> Deserialize<'de> for DifficultyProfile
impl<'de> Deserialize<'de> for DifficultyProfile
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for DifficultyProfile
impl RefUnwindSafe for DifficultyProfile
impl Send for DifficultyProfile
impl Sync for DifficultyProfile
impl Unpin for DifficultyProfile
impl UnwindSafe for DifficultyProfile
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more