Struct Fight

Source
struct Fight {
    lobby: SharedLobbyState,
    configs: ConfigSet,
    power_mode: [f64; 2],
    lightsabers: [f64; 6],
    matchup: (PlayerId, PlayerId, bool),
    winner: Option<Option<PlayerInMatchup>>,
    round: u64,
    living_units: Vec<FightingUnit>,
}

Fields§

§lobby: SharedLobbyState§configs: ConfigSet§power_mode: [f64; 2]

power mode for Player 1, then Player 2

§lightsabers: [f64; 6]

rgb for Player 1, then Player 2

§matchup: (PlayerId, PlayerId, bool)§winner: Option<Option<PlayerInMatchup>>§round: u64§living_units: Vec<FightingUnit>

Implementations§

Source§

impl Fight

Source

fn info(&self) -> FightInfo

Source

async fn try_move_unit( &mut self, uid: usize, movements: &mut Movement, pfx: &Prefix, ) -> bool

Makes one movement attempt, see gen_unit_movement. If the movement attempt succeeds, increments movements_this_round and adds the movement to the movements message.

Source

async fn gen_unit_movement( &mut self, uid: usize, pfx: &Prefix, ) -> Option<SingleMovement>

Makes one movement attempt. May return None if movement is not possible because another unit blocks the path, or if the unit has no target. Panics if this unit is dead. Not recommended to be called directly, use do_moves_if_target_not_in_range or try_move_unit instead.

Source

async fn do_moves_if_target_not_in_range( &mut self, movements: &mut Movement, filter: impl Fn(&FightingUnit) -> bool, pfx: &Prefix, )

Perform movements (and push them to movements) for all units for which filter returns true, and which do not have their target in range.

Auto Trait Implementations§

§

impl Freeze for Fight

§

impl !RefUnwindSafe for Fight

§

impl Send for Fight

§

impl Sync for Fight

§

impl Unpin for Fight

§

impl !UnwindSafe for Fight

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V