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
impl LawColumnMods
Sourcepub fn is_inert(&self) -> bool
pub fn is_inert(&self) -> bool
Whether nothing here can change anything. The hot hooks check this first.
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.
Sourcepub fn effect_multiplier(
&self,
law_id: LawTemplateId,
charges: &LawBridgeCharges,
capacity_hundredths: i64,
) -> f64
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.
Sourcepub fn resonance_multiplier(
&self,
law_id: LawTemplateId,
charges: &LawBridgeCharges,
) -> f64
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.
Sourcepub fn first_activation_multiplier(&self) -> Option<f64>
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.
Sourcepub fn bridge_capacity(&self, base: i64) -> i64
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).
Sourcepub fn bridge_amplification_cap(&self, base: i64) -> i64
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.
Sourcepub fn extra_bridges(&self) -> i64
pub fn extra_bridges(&self) -> i64
Extra bridges allowed over the min(core level) − 1 budget (BL-01).
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.
Sourcepub fn linked_echo(
&self,
fired_law: LawTemplateId,
charges: &LawBridgeCharges,
) -> Option<(LawTemplateId, f64)>
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
impl Clone for LawColumnMods
Source§fn clone(&self) -> LawColumnMods
fn clone(&self) -> LawColumnMods
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LawColumnMods
impl Debug for LawColumnMods
Source§impl Default for LawColumnMods
impl Default for LawColumnMods
Source§fn default() -> LawColumnMods
fn default() -> LawColumnMods
Source§impl PartialEq for LawColumnMods
impl PartialEq for LawColumnMods
impl Copy for LawColumnMods
impl StructuralPartialEq for LawColumnMods
Auto Trait Implementations§
impl Freeze for LawColumnMods
impl RefUnwindSafe for LawColumnMods
impl Send for LawColumnMods
impl Sync for LawColumnMods
impl Unpin for LawColumnMods
impl UnwindSafe for LawColumnMods
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].