[][src]Trait weasel::character::CharacterRules

pub trait CharacterRules<R: BattleRules> {
    type CreatureId: Hash + Eq + Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>;
    type ObjectId: Hash + Eq + Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>;
    type Statistic: Id + 'static;
    type StatisticsSeed: Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>;
    type StatisticsAlteration: Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>;
    type Status: Id + 'static;
    type StatusesAlteration: Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>;
    fn generate_statistics(
        &self,
        _seed: &Option<Self::StatisticsSeed>,
        _entropy: &mut Entropy<R>,
        _metrics: &mut WriteMetrics<'_, R>
    ) -> Box<dyn Iterator<Item = Self::Statistic>> { ... }
fn alter_statistics(
        &self,
        _character: &mut dyn Character<R>,
        _alteration: &Self::StatisticsAlteration,
        _entropy: &mut Entropy<R>,
        _metrics: &mut WriteMetrics<'_, R>
    ) -> Option<Transmutation> { ... }
fn generate_status(
        &self,
        _character: &dyn Character<R>,
        _status_id: &StatusId<R>,
        _potency: &Option<Potency<R>>,
        _entropy: &mut Entropy<R>,
        _metrics: &mut WriteMetrics<'_, R>
    ) -> Option<Status<R>> { ... }
fn alter_statuses(
        &self,
        _character: &mut dyn Character<R>,
        _alteration: &Self::StatusesAlteration,
        _entropy: &mut Entropy<R>,
        _metrics: &mut WriteMetrics<'_, R>
    ) { ... }
fn on_character_added(
        &self,
        _state: &BattleState<R>,
        _character: &dyn Character<R>,
        _event_queue: &mut Option<EventQueue<R>>,
        _entropy: &mut Entropy<R>,
        _metrics: &mut WriteMetrics<'_, R>
    ) { ... }
fn on_character_transmuted(
        &self,
        _state: &BattleState<R>,
        _character: &dyn Character<R>,
        _transmutation: Transmutation,
        _event_queue: &mut Option<EventQueue<R>>,
        _entropy: &mut Entropy<R>,
        _metrics: &mut WriteMetrics<'_, R>
    ) { ... } }

Rules to define the structure and the behavior of characters.

Associated Types

type CreatureId: Hash + Eq + Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>

type ObjectId: Hash + Eq + Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>

See ObjectId.

type Statistic: Id + 'static

See Statistic.

type StatisticsSeed: Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>

type StatisticsAlteration: Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>

type Status: Id + 'static

See Status.

type StatusesAlteration: Clone + Debug + Send + Serialize + for<'a> Deserialize<'a>

Loading content...

Provided methods

fn generate_statistics(
    &self,
    _seed: &Option<Self::StatisticsSeed>,
    _entropy: &mut Entropy<R>,
    _metrics: &mut WriteMetrics<'_, R>
) -> Box<dyn Iterator<Item = Self::Statistic>>

Generates all statistics of a character. Statistics should have unique ids, otherwise only the last entry will be persisted.

The provided implementation generates an empty set of statistics.

fn alter_statistics(
    &self,
    _character: &mut dyn Character<R>,
    _alteration: &Self::StatisticsAlteration,
    _entropy: &mut Entropy<R>,
    _metrics: &mut WriteMetrics<'_, R>
) -> Option<Transmutation>

Alters one or more statistics starting from the given alteration object.
Returns an optional Transmutation to be applied to the character as result of this alteration.

The provided implementation does nothing.

fn generate_status(
    &self,
    _character: &dyn Character<R>,
    _status_id: &StatusId<R>,
    _potency: &Option<Potency<R>>,
    _entropy: &mut Entropy<R>,
    _metrics: &mut WriteMetrics<'_, R>
) -> Option<Status<R>>

Generates a status to be applied to the given character.
Returns the new status or nothing if no status should be added. Existing status with the same id will be replaced.

The provided implementation returns None.

fn alter_statuses(
    &self,
    _character: &mut dyn Character<R>,
    _alteration: &Self::StatusesAlteration,
    _entropy: &mut Entropy<R>,
    _metrics: &mut WriteMetrics<'_, R>
)

Alters one or more statuses starting from the given alteration object.

The provided implementation does nothing.

fn on_character_added(
    &self,
    _state: &BattleState<R>,
    _character: &dyn Character<R>,
    _event_queue: &mut Option<EventQueue<R>>,
    _entropy: &mut Entropy<R>,
    _metrics: &mut WriteMetrics<'_, R>
)

Invoked when a character is added to the battle.

The provided implementation does nothing.

fn on_character_transmuted(
    &self,
    _state: &BattleState<R>,
    _character: &dyn Character<R>,
    _transmutation: Transmutation,
    _event_queue: &mut Option<EventQueue<R>>,
    _entropy: &mut Entropy<R>,
    _metrics: &mut WriteMetrics<'_, R>
)

Invoked when a character is transmuted during the battle.

The provided implementation does nothing.

Loading content...

Implementors

Loading content...