Struct LawColumnMods

Source
pub struct LawColumnMods { /* private fields */ }
Expand description

Everything the right column does to the law runtime, resolved in ONE read.

One value, three sockets plus the World Law — read once per hook, exactly like live_aspect_in_socket does for the left column. The all-neutral LawColumnMods::NONE is what a player with no artifact gets, and every method below answers 1.0 / None / the untouched base for it, so that player’s path through logic::laws is byte-identical to the one before this feature.

Implementations§

Source§

impl LawColumnMods

Source

pub const NONE: Self

A player with no artifact, no Law stones and no World Law.

Source

pub fn is_inert(&self) -> bool

Whether nothing here can change anything. The hot hooks check this first.

Source

pub fn wakes_hidden_laws(&self) -> bool

Whether any source can wake a law of the side that is down. Gating the whole hidden-evaluation path on this is what keeps hidden counters from advancing for a player who has no way to use them.

Source

pub fn effect_multiplier( &self, law_id: LawTemplateId, charges: &LawBridgeCharges, capacity_hundredths: i64, ) -> f64

Multiplier on the numbers of law_id’s effect, from the Visible Law socket alone. Bridge amplification is priced separately and multiplies on top.

charges and capacity are needed by VL-04 Full Confidence, whose gate is “the chosen law has filled its outgoing bridge”. The charge only grows inside a phase and the flip zeroes it, so reading it live is already “until the Flip” — no latch needed.

Source

pub fn resonance_multiplier( &self, law_id: LawTemplateId, charges: &LawBridgeCharges, ) -> f64

Multiplier on law_id’s Resonance. The Visible Law and Bridge Law sockets are different sockets, so a build may wear one of each and both apply.

Source

pub fn first_activation_multiplier(&self) -> Option<f64>

VL-05 First Article: the share the FIRST activation of every active-side law in a phase applies its effect at, or None when the stone is not worn. Resonance is deliberately untouched — without that clause the stone would also speed up bridges and simply be stronger than its socket neighbours instead of different.

Source

pub fn bridge_capacity(&self, base: i64) -> i64

Bridge capacity after the Bridge Law socket, in the same units as the base. Floored at one unit: a stone may shorten a bridge, never delete it.

BL-01 Extra Span is deliberately absent: it buys an extra bridge and a richer Resonance gain, and leaves capacity at the base (BAL-028).

Source

pub fn bridge_amplification_cap(&self, base: i64) -> i64

Recipient amplification cap after the Bridge Law socket, in permyriad.

BL-02 Deep Span moves capacity and ceiling on the SAME rank ladder, so each rank keeps the value of one unit of Resonance while raising the ceiling (BAL-028); BL-03 Short Span keeps its own authored trade in secondary_magnitude.

Source

pub fn extra_bridges(&self) -> i64

Extra bridges allowed over the min(core level) − 1 budget (BL-01).

Source

pub fn hidden_wake( &self, law_id: LawTemplateId, gauge_fill: f64, charges: &LawBridgeCharges, capacity_hundredths: i64, ) -> HiddenWake

The strongest wake available to law_id, a law of the side that is currently DOWN.

Design §3.3: several sources may name one law, and the answer is the LARGEST multiplier, never the sum. The two shares are kept apart so a spent once-per-phase source falls back instead of silencing the law.

Source

pub fn linked_echo( &self, fired_law: LawTemplateId, charges: &LawBridgeCharges, ) -> Option<(LawTemplateId, f64)>

HL-02 Linked Echo: the law at the far end of the chosen law’s bridge, and the share it applies its effect at, when fired_law is the chosen one.

The only wake that does NOT evaluate the woken law’s own condition — that is the whole rule, and it is why it lives outside Self::hidden_wake.

Trait Implementations§

Source§

impl Clone for LawColumnMods

Source§

fn clone(&self) -> LawColumnMods

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LawColumnMods

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for LawColumnMods

Source§

fn default() -> LawColumnMods

Returns the “default value” for a type. Read more
Source§

impl PartialEq for LawColumnMods

Source§

fn eq(&self, other: &LawColumnMods) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for LawColumnMods

Source§

impl StructuralPartialEq for LawColumnMods

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more