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 more