Struct veloren_common_net::synced_components::inner::buff::Buffs
pub struct Buffs {
pub kinds: EnumMap<BuffKind, Option<(Vec<BuffKey>, Time)>>,
pub buffs: SlotMap<BuffKey, Buff>,
}
Expand description
Component holding all de/buffs that gets resolved each tick.
On each tick, remaining time of buffs get lowered and
buff effect of each buff is applied or not, depending on the BuffEffect
(specs system will decide based on BuffEffect
, to simplify
implementation). TODO: Something like once
flag for Buff
to remove the
dependence on BuffEffect
enum?
In case of one-time buffs, buff effects will be applied on addition and undone on removal of the buff (by the specs system). Example could be decreasing max health, which, if repeated each tick, would be probably an undesired effect).
Fields§
§kinds: EnumMap<BuffKind, Option<(Vec<BuffKey>, Time)>>
Maps kinds of buff to currently applied buffs of that kind and the time that the first buff was added (time gets reset if entity no longer has buffs of that kind)
buffs: SlotMap<BuffKey, Buff>
Implementations§
§impl Buffs
impl Buffs
pub fn remove_kind(&mut self, kind: BuffKind)
pub fn insert(&mut self, buff: Buff, current_time: Time) -> BuffKey
pub fn contains(&self, kind: BuffKind) -> bool
pub fn iter_kind( &self, kind: BuffKind, ) -> impl Iterator<Item = (BuffKey, &Buff)>
pub fn iter_active(&self) -> impl Iterator<Item = impl Iterator<Item = &Buff>>
pub fn remove(&mut self, buff_key: BuffKey)
Trait Implementations§
§impl<'de> Deserialize<'de> for Buffs
impl<'de> Deserialize<'de> for Buffs
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Buffs, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Buffs, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl From<Buffs> for EcsCompPacket
impl From<Buffs> for EcsCompPacket
source§fn from(other: Buffs) -> EcsCompPacket
fn from(other: Buffs) -> EcsCompPacket
Converts to this type from the input type.
source§impl NetSync for Buffs
impl NetSync for Buffs
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 Buffs
impl Serialize for Buffs
§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 Buffs
impl RefUnwindSafe for Buffs
impl Send for Buffs
impl Sync for Buffs
impl Unpin for Buffs
impl UnwindSafe for Buffs
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<Context> SubContext<Context> for Context
impl<Context> SubContext<Context> for Context
fn sub_context(self) -> Context
§impl<T> TryDefault for Twhere
T: Default,
impl<T> TryDefault for Twhere
T: Default,
§fn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
Tries to create the default.
§fn unwrap_default() -> Self
fn unwrap_default() -> Self
Calls
try_default
and panics on an error case.