pub struct WaveFightData {
pub entities: Vec<WaveEntityPower>,
pub waves: Vec<Vec<WaveSpawn>>,
pub time: f64,
pub power: Option<f64>,
pub stream_active_count: Option<u64>,
pub reward_mob_budget: Option<u64>,
pub summon_wave_at_hp_fraction: Option<f64>,
pub enemy_damage_mult: Option<f64>,
}Expand description
Typed form of the fight_data prepare-fight blob fed to spawn_wave.
Fields§
§entities: Vec<WaveEntityPower>entities[].{ entity_id, power } — the per-template relative powers.
waves: Vec<Vec<WaveSpawn>>waves[][].{ data: { entity_id, delay }, position }.
time: f64time — the fight time budget used to normalise mob HP.
power: Option<f64>The per-fight reference power (base_power for spawn_wave).
None mirrors a missing/unconfigured value (treated as 0.0 by callers).
stream_active_count: Option<u64>Max enemies on the field at once (the death-gated exit cap, revived under
the slot model — docs/growing-enemy-waves-plan.md). The first cap mobs
of a wave exit on their timers; the rest park off-screen (exit_gated)
and are released one per enemy kill, lowest queue position first.
None (or cap ≥ wave size) = all exits on timers, previous behaviour
bit-for-bit.
reward_mob_budget: Option<u64>Reward/weight budget (growing-enemy-waves plan §2): the fight’s ORIGINAL
total mob count. spawn_wave stamps wave_share = reward_mob_budget / actual_total_mob_count on every mob so per-kill drops / pet-ult charge /
counters stay count-invariant. None ⇒ share 1.0 (legacy, bit-identical).
summon_wave_at_hp_fraction: Option<f64>Boss summon: when set, the LAST wave is a summon wave — spawned by the
damage handler when a boss drops below this HP fraction, never by wave
clear (see PrepareFightWaves::summon_wave_at_hp_fraction). Its slots
anchor at the player’s CURRENT column (no formation dash precedes it).
enemy_damage_mult: Option<f64>Per-fight enemy damage multiplier: scales the fight’s damage budget
(eff_hp) only — HP, fight length and loot pacing unchanged.
None ⇒ 1.0 (see PrepareFightWaves::enemy_damage_mult).
Trait Implementations§
Source§impl Clone for WaveFightData
impl Clone for WaveFightData
Source§fn clone(&self) -> WaveFightData
fn clone(&self) -> WaveFightData
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for WaveFightData
impl Debug for WaveFightData
Source§impl Default for WaveFightData
impl Default for WaveFightData
Source§fn default() -> WaveFightData
fn default() -> WaveFightData
Source§impl PartialEq for WaveFightData
impl PartialEq for WaveFightData
Source§impl Serialize for WaveFightData
impl Serialize for WaveFightData
impl StructuralPartialEq for WaveFightData
Auto Trait Implementations§
impl Freeze for WaveFightData
impl RefUnwindSafe for WaveFightData
impl Send for WaveFightData
impl Sync for WaveFightData
impl Unpin for WaveFightData
impl UnwindSafe for WaveFightData
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].