[][src]Trait weasel::event::Event

pub trait Event<R: BattleRules>: Debug {
    fn verify(&self, battle: &Battle<R>) -> WeaselResult<(), R>;
fn apply(&self, battle: &mut Battle<R>, queue: &mut Option<EventQueue<R>>);
fn kind(&self) -> EventKind;
fn box_clone(&self) -> Box<dyn Event<R> + Send>;
fn as_any(&self) -> &dyn Any; fn rights<'a>(&'a self, _battle: &'a Battle<R>) -> EventRights<'a, R> { ... } }

An event is the only mean to apply a change to the world.

Required methods

fn verify(&self, battle: &Battle<R>) -> WeaselResult<(), R>

Verifies if this event can be applied to the world.

fn apply(&self, battle: &mut Battle<R>, queue: &mut Option<EventQueue<R>>)

Applies this event to the world. This method is called only if verify succeeded.

If there's a failure inside this method, it immediately panic because we can't guarantee any consistency in the state of the world.

Events generated by this event are stored into queue, if there's one. Noe that they will keep a link with the original event.

fn kind(&self) -> EventKind

Returns the kind of this event.

fn box_clone(&self) -> Box<dyn Event<R> + Send>

Clones this event as a trait object.

fn as_any(&self) -> &dyn Any

Returns an Any reference this event.

Loading content...

Provided methods

fn rights<'a>(&'a self, _battle: &'a Battle<R>) -> EventRights<'a, R>

Returns the access rights required by this event.

The provided implementation returns EventRights::Server.

Loading content...

Implementors

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Loading content...