Struct veloren_common_net::synced_components::inner::Health
pub struct Health {
current: u32,
base_max: u32,
maximum: u32,
pub last_change: HealthChange,
pub is_dead: bool,
damage_contributors: HashMap<DamageContributor, (u64, Time)>,
}
Expand description
Health is represented by u32s within the module, but treated as a float by the rest of the game.
Fields§
§current: u32
§base_max: u32
§maximum: u32
§last_change: HealthChange
The last change to health
is_dead: bool
§damage_contributors: HashMap<DamageContributor, (u64, Time)>
Implementations§
§impl Health
impl Health
pub const HEALTH_EPSILON: f32 = 2.98032319E-8f32
pub const HEALTH_EPSILON: f32 = 2.98032319E-8f32
Used when comparisons to health are needed outside this module.
pub fn set_fraction(&mut self, fraction: f32)
pub fn set_fraction(&mut self, fraction: f32)
Instantly set the health fraction.
pub fn needs_maximum_update(&self, modifiers: StatsModifier) -> Option<u32>
pub fn needs_maximum_update(&self, modifiers: StatsModifier) -> Option<u32>
Calculates a new maximum value and returns it if the value differs from the current maximum.
Note: The returned value uses an internal format so don’t expect it to
be useful for anything other than a parameter to
[Self::update_maximum
].
pub fn update_internal_integer_maximum(&mut self, maximum: u32)
pub fn update_internal_integer_maximum(&mut self, maximum: u32)
Updates the maximum value for health.
Note: The accepted u32
value is in the internal format of this type.
So attempting to pass values that weren’t returned from
Self::needs_maximum_update
can produce strange or unexpected
results.
pub fn new(body: Body) -> Health
pub fn change_by(&mut self, change: HealthChange) -> bool
pub fn change_by(&mut self, change: HealthChange) -> bool
Returns a boolean if the delta was not zero.
pub fn damage_contributions( &self, ) -> impl Iterator<Item = (&DamageContributor, &u64)>
pub fn recent_damagers(&self) -> impl Iterator<Item = (Uid, Time)>
pub fn should_die(&self) -> bool
pub fn kill(&mut self)
pub fn revive(&mut self)
Trait Implementations§
§impl<'de> Deserialize<'de> for Health
impl<'de> Deserialize<'de> for Health
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Health, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Health, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl From<Health> for EcsCompPacket
impl From<Health> for EcsCompPacket
source§fn from(other: Health) -> EcsCompPacket
fn from(other: Health) -> EcsCompPacket
Converts to this type from the input type.
source§impl NetSync for Health
impl NetSync for Health
source§const SYNC_FROM: SyncFrom = SyncFrom::AnyEntity
const SYNC_FROM: SyncFrom = SyncFrom::AnyEntity
Determines what for entities this component is synced to the client. Read more
source§fn pre_insert(&mut self, world: &World)
fn pre_insert(&mut self, world: &World)
Allows making modifications before the synced component is inserted on
the client.
source§fn pre_modify(&mut self, world: &World)
fn pre_modify(&mut self, world: &World)
Allows making modifications before the synced component is overwritten
with this version on the client.
§impl Serialize for Health
impl Serialize for Health
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for Health
impl RefUnwindSafe for Health
impl Send for Health
impl Sync for Health
impl Unpin for Health
impl UnwindSafe for Health
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<C, M> ConvertSaveload<M> for C
impl<C, M> ConvertSaveload<M> for C
§type Error = Infallible
type Error = Infallible
Error may occur during serialization or deserialization of component
§fn convert_into<F>(
&self,
_: F,
) -> Result<<C as ConvertSaveload<M>>::Data, <C as ConvertSaveload<M>>::Error>
fn convert_into<F>( &self, _: F, ) -> Result<<C as ConvertSaveload<M>>::Data, <C as ConvertSaveload<M>>::Error>
Convert this data type into serializable form (
Data
) using
entity to marker mapping function§fn convert_from<F>(
data: <C as ConvertSaveload<M>>::Data,
_: F,
) -> Result<C, <C as ConvertSaveload<M>>::Error>
fn convert_from<F>( data: <C as ConvertSaveload<M>>::Data, _: F, ) -> Result<C, <C as ConvertSaveload<M>>::Error>
Convert this data from a deserializable form (
Data
) using
entity to marker mapping function§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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