pub struct RegenerateAbilities<R: BattleRules> { /* private fields */ }Expand description
An event to regenerate the abilities of an actor.
A new set of abilities is created from a seed.\
- Abilities already known by the actor won’t be modified.
- Abilities that the actor didn’t have before will be added.
- Current actor’s abilities that are not present in the new set will be removed from the actor.
§Examples
use weasel::{
battle_rules, rules::empty::*, Battle, BattleController, BattleRules, CreateCreature,
CreateTeam, EntityId, EventKind, EventTrigger, RegenerateAbilities, Server,
};
battle_rules! {}
let battle = Battle::builder(CustomRules::new()).build();
let mut server = Server::builder(battle).build();
let team_id = 1;
CreateTeam::trigger(&mut server, team_id).fire().unwrap();
let creature_id = 1;
let position = ();
CreateCreature::trigger(&mut server, creature_id, team_id, position)
.fire()
.unwrap();
RegenerateAbilities::trigger(&mut server, EntityId::Creature(creature_id))
.fire()
.unwrap();
assert_eq!(
server.battle().history().events().iter().last().unwrap().kind(),
EventKind::RegenerateAbilities
);Implementations§
Source§impl<R: BattleRules> RegenerateAbilities<R>
impl<R: BattleRules> RegenerateAbilities<R>
Sourcepub fn trigger<P: EventProcessor<R>>(
processor: &mut P,
id: EntityId<R>,
) -> RegenerateAbilitiesTrigger<'_, R, P>
pub fn trigger<P: EventProcessor<R>>( processor: &mut P, id: EntityId<R>, ) -> RegenerateAbilitiesTrigger<'_, R, P>
Returns a trigger for this event.
Sourcepub fn seed(&self) -> &Option<AbilitiesSeed<R>>
pub fn seed(&self) -> &Option<AbilitiesSeed<R>>
Returns the seed to regenerate the actor’s abilities.
Trait Implementations§
Source§impl<R: BattleRules> Clone for RegenerateAbilities<R>
impl<R: BattleRules> Clone for RegenerateAbilities<R>
Source§impl<R: BattleRules> Debug for RegenerateAbilities<R>
impl<R: BattleRules> Debug for RegenerateAbilities<R>
Source§impl<'de, R: BattleRules> Deserialize<'de> for RegenerateAbilities<R>
impl<'de, R: BattleRules> Deserialize<'de> for RegenerateAbilities<R>
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
Source§impl<R: BattleRules + 'static> Event<R> for RegenerateAbilities<R>
impl<R: BattleRules + 'static> Event<R> for RegenerateAbilities<R>
Source§impl<R: BattleRules> Serialize for RegenerateAbilities<R>
impl<R: BattleRules> Serialize for RegenerateAbilities<R>
Auto Trait Implementations§
impl<R> Freeze for RegenerateAbilities<R>where
<<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: Freeze,
<<R as BattleRules>::CR as CharacterRules<R>>::ObjectId: Freeze,
<<R as BattleRules>::AR as ActorRules<R>>::AbilitiesSeed: Freeze,
impl<R> RefUnwindSafe for RegenerateAbilities<R>where
<<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: RefUnwindSafe,
<<R as BattleRules>::CR as CharacterRules<R>>::ObjectId: RefUnwindSafe,
<<R as BattleRules>::AR as ActorRules<R>>::AbilitiesSeed: RefUnwindSafe,
impl<R> Send for RegenerateAbilities<R>
impl<R> Sync for RegenerateAbilities<R>where
<<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: Sync,
<<R as BattleRules>::CR as CharacterRules<R>>::ObjectId: Sync,
<<R as BattleRules>::AR as ActorRules<R>>::AbilitiesSeed: Sync,
impl<R> Unpin for RegenerateAbilities<R>where
<<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: Unpin,
<<R as BattleRules>::CR as CharacterRules<R>>::ObjectId: Unpin,
<<R as BattleRules>::AR as ActorRules<R>>::AbilitiesSeed: Unpin,
impl<R> UnsafeUnpin for RegenerateAbilities<R>where
<<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: UnsafeUnpin,
<<R as BattleRules>::CR as CharacterRules<R>>::ObjectId: UnsafeUnpin,
<<R as BattleRules>::AR as ActorRules<R>>::AbilitiesSeed: UnsafeUnpin,
impl<R> UnwindSafe for RegenerateAbilities<R>where
<<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: UnwindSafe,
<<R as BattleRules>::CR as CharacterRules<R>>::ObjectId: UnwindSafe,
<<R as BattleRules>::AR as ActorRules<R>>::AbilitiesSeed: UnwindSafe,
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