pub struct BalanceTuning {Show 21 fields
pub k_armor: f64,
pub k_dodge: f64,
pub power_norm: f64,
pub enemy_curve_anchor_chapter: i64,
pub enemy_curve_anchor_power: f64,
pub chapter_power_step: f64,
pub enemy_step_late: f64,
pub enemy_step_taper_start: i64,
pub sell_price_exp: f64,
pub sell_price_coef: f64,
pub class_counter_swing: f64,
pub regen_tick_max_pct: f64,
pub hot_tick_max_pct: f64,
pub dot_tick_max_pct: f64,
pub enemy_early_bump: f64,
pub enemy_mid_bump: f64,
pub eff_a1: f64,
pub eff_b1: f64,
pub eff_a2: f64,
pub eff_b2: f64,
pub eff_c2: f64,
}Fields§
§k_armor: f64DR knob for armor mitigation K/(armor+K). Env: OVERLORD_BAL_K_ARMOR.
k_dodge: f64DR knob for dodge/evasion ev/(ev+K). Env: OVERLORD_BAL_K_DODGE.
power_norm: f64Power-scalar normaliser. Env: OVERLORD_BAL_POWER_NORM.
enemy_curve_anchor_chapter: i64Last hand-made campaign chapter (formula curve starts above it). Env: OVERLORD_BAL_ENEMY_ANCHOR_CHAPTER.
enemy_curve_anchor_power: f64Enemy power at the anchor chapter. Env: OVERLORD_BAL_ENEMY_ANCHOR_POWER.
chapter_power_step: f64Enemy power geometric step per chapter — the progression gate. Env: OVERLORD_BAL_ENEMY_STEP.
enemy_step_late: f64Late-game enemy step floor. Past enemy_step_taper_start the per-chapter
step decays smoothly from chapter_power_step toward this value, so the
difficulty gate tracks the player’s DECELERATING late power growth
(~1.12×/ch) instead of staying at the early 1.30 — which out-paced late
power and produced multi-day chapter stalls / a hard wall. With >= chapter_power_step the taper is OFF (closed-form, unchanged). Env:
OVERLORD_BAL_ENEMY_STEP_LATE.
enemy_step_taper_start: i64Chapter at which the late-step taper begins. Env: OVERLORD_BAL_ENEMY_STEP_TAPER_START.
sell_price_exp: f64Item sale-price exponent on eff (income growth shape). Env: OVERLORD_BAL_SELL_EXP.
sell_price_coef: f64Item sale-price coefficient. Env: OVERLORD_BAL_SELL_COEF.
class_counter_swing: f64Soft 3-cycle class-counter swing (PvP). Env: OVERLORD_BAL_CLASS_SWING.
regen_tick_max_pct: f64Max per-tick combat regen heal as a fraction of max HP — bounds regen in
combat (the scalar bound is separate) so high regen can’t out-heal all
damage / instant-full a tank. Env: OVERLORD_BAL_REGEN_TICK_PCT.
hot_tick_max_pct: f64Max per-tick HoT heal as a fraction of max HP. Env: OVERLORD_BAL_HOT_TICK_PCT.
dot_tick_max_pct: f64Max per-tick DoT damage as a fraction of max HP. Env: OVERLORD_BAL_DOT_TICK_PCT.
enemy_early_bump: f64Early-game stat-check bump strength applied at ch3 (tapering ch4/ch5),
so the first gear conversions are forced. ch2 is left untouched (it is
resource-capped by the 20 starter cookies — a bump there DEADLOCKS, sim-
confirmed). 1.0 = off. Env: OVERLORD_BAL_ENEMY_EARLY_BUMP.
enemy_mid_bump: f64Mid-game boss-only bump applied at ch7–15 to enforce the gear-engagement gate.
Applied exclusively to CampaignBossFight in enemy_power_scalar; wave fights
are unaffected so the global enemy_power_for_chapter curve stays monotone.
At 8.0: a frozen player (stopped at ch5, power ~2121) faces P/E ≈ 0.34 at the
ch7 boss → ~7% first-try win rate; combined with stop_on_lose=true on bosses
and the lazy bot not retrying, this creates the hard wall. Engaged players
open more chests between attempts and eventually clear the boss. Tapers to 1.0
at ch16 (one past ability-slot unlock at ch15). 1.0 = off.
Env: OVERLORD_BAL_ENEMY_MID_BUMP.
eff_a1: f64eff_by_level early-branch (L ≤ 130) coefficient. Env: OVERLORD_BAL_EFF_A1.
eff_b1: f64eff_by_level early-branch exponent — THE early-power shape knob (lower =
flatter early growth, decouples power from level/clock). Env: OVERLORD_BAL_EFF_B1.
eff_a2: f64eff_by_level late-branch (L > 130) coefficient. Env: OVERLORD_BAL_EFF_A2.
eff_b2: f64eff_by_level late-branch exponent (raise above 0.1 so late power keeps
growing instead of plateauing). Env: OVERLORD_BAL_EFF_B2.
eff_c2: f64eff_by_level late-branch offset (re-fit for continuity at L=130). Env: OVERLORD_BAL_EFF_C2.
Implementations§
Source§impl BalanceTuning
impl BalanceTuning
Trait Implementations§
Source§impl Clone for BalanceTuning
impl Clone for BalanceTuning
Source§fn clone(&self) -> BalanceTuning
fn clone(&self) -> BalanceTuning
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BalanceTuning
impl Debug for BalanceTuning
Source§impl PartialEq for BalanceTuning
impl PartialEq for BalanceTuning
impl Copy for BalanceTuning
impl StructuralPartialEq for BalanceTuning
Auto Trait Implementations§
impl Freeze for BalanceTuning
impl RefUnwindSafe for BalanceTuning
impl Send for BalanceTuning
impl Sync for BalanceTuning
impl Unpin for BalanceTuning
impl UnwindSafe for BalanceTuning
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> 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].