[][src]Struct weasel::creature::RemoveCreature

pub struct RemoveCreature<R: BattleRules> { /* fields omitted */ }

Event to remove a creature from the battle.

If the creature is the current actor, its turn will be terminated.
The creature will be removed from the corresponding team and its position will be freed.

Examples

use weasel::{
    battle_rules, rules::empty::*, Battle, BattleController, BattleRules, CreateCreature,
    CreateTeam, EventTrigger, RemoveCreature, 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();

RemoveCreature::trigger(&mut server, creature_id).fire().unwrap();
assert_eq!(server.battle().entities().creatures().count(), 0);

Implementations

impl<R: BattleRules> RemoveCreature<R>[src]

pub fn trigger<P: EventProcessor<R>>(
    processor: &mut P,
    id: CreatureId<R>
) -> RemoveCreatureTrigger<'_, R, P>
[src]

Returns a trigger for this event.

pub fn id(&self) -> &CreatureId<R>[src]

Returns the id of the creature to be removed.

Trait Implementations

impl<R: BattleRules> Clone for RemoveCreature<R>[src]

impl<R: BattleRules> Debug for RemoveCreature<R>[src]

impl<'de, R: BattleRules> Deserialize<'de> for RemoveCreature<R> where
    CreatureId<R>: Deserialize<'de>, 
[src]

impl<R: BattleRules + 'static> Event<R> for RemoveCreature<R>[src]

impl<R: BattleRules> Serialize for RemoveCreature<R> where
    CreatureId<R>: Serialize
[src]

Auto Trait Implementations

impl<R> RefUnwindSafe for RemoveCreature<R> where
    <<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: RefUnwindSafe

impl<R> Send for RemoveCreature<R> where
    <<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: Send

impl<R> Sync for RemoveCreature<R> where
    <<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: Sync

impl<R> Unpin for RemoveCreature<R> where
    <<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: Unpin

impl<R> UnwindSafe for RemoveCreature<R> where
    <<R as BattleRules>::CR as CharacterRules<R>>::CreatureId: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,