From 03b7504af2ec6ed078529738b88fb050b8783ef2 Mon Sep 17 00:00:00 2001 From: pongo1231 Date: Fri, 14 Feb 2025 22:09:30 +0000 Subject: [PATCH] ChaosMod/EffectDispatcher: Use exponential effect weight multiplier Intensifies the difference between the different weight multiplier levels Also fix still broken effect group weighting logic lol --- ChaosMod/Components/EffectDispatcher.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ChaosMod/Components/EffectDispatcher.cpp b/ChaosMod/Components/EffectDispatcher.cpp index e80e7aad5..6f9682057 100644 --- a/ChaosMod/Components/EffectDispatcher.cpp +++ b/ChaosMod/Components/EffectDispatcher.cpp @@ -38,17 +38,17 @@ static void _DispatchEffect(EffectDispatcher *effectDispatcher, const EffectDisp // Increase weight for all effects first for (auto &[effectId, enabledEffectData] : g_EnabledEffects) if (!enabledEffectData.IsMeta()) - enabledEffectData.Weight += enabledEffectData.WeightMult; + enabledEffectData.Weight += enabledEffectData.WeightMult * enabledEffectData.WeightMult; // Reset weight of this effect (or every effect in group) to reduce chance of same effect (group) happening multiple // times in a row if (effectData.GroupType.empty()) - effectData.Weight = effectData.WeightMult; + effectData.Weight = effectData.WeightMult * effectData.WeightMult; else { for (auto &[effectId, enabledEffectData] : g_EnabledEffects) if (enabledEffectData.GroupType == effectData.GroupType) - effectData.Weight = effectData.WeightMult; + enabledEffectData.Weight = enabledEffectData.WeightMult * enabledEffectData.WeightMult; } auto playEffectDispatchSound = [&](EffectDispatcher::ActiveEffect &activeEffect)