diff --git a/addons/sourcemod/configs/chaos/effects.cfg b/addons/sourcemod/configs/chaos/effects.cfg index 32d234e9..99da1a16 100644 --- a/addons/sourcemod/configs/chaos/effects.cfg +++ b/addons/sourcemod/configs/chaos/effects.cfg @@ -1772,4 +1772,26 @@ "reinvoke_time" "120" } } + "meta_multi3" + { + "name" "#Chaos_MetaEffect_Multi3" + "cooldown" "4" + "meta" "1" + "effect_class" "MultiEffect" + "data" + { + "effect_count" "3" + } + } + "meta_multi6" + { + "name" "#Chaos_MetaEffect_Multi6" + "cooldown" "5" + "meta" "1" + "effect_class" "MultiEffect" + "data" + { + "effect_count" "6" + } + } } diff --git a/addons/sourcemod/scripting/chaos.sp b/addons/sourcemod/scripting/chaos.sp index 998c4b85..851f8bac 100644 --- a/addons/sourcemod/scripting/chaos.sp +++ b/addons/sourcemod/scripting/chaos.sp @@ -40,6 +40,7 @@ ProgressBarConfig g_stTimerBarConfig; // Meta effects #include "chaos/effects/meta/effect_duration.sp" +#include "chaos/effects/meta/multi_effect.sp" #include "chaos/effects/meta/no_chaos.sp" #include "chaos/effects/meta/reinvoke_effects.sp" #include "chaos/effects/meta/timer_speed.sp" diff --git a/addons/sourcemod/scripting/chaos/effects/meta/multi_effect.sp b/addons/sourcemod/scripting/chaos/effects/meta/multi_effect.sp new file mode 100644 index 00000000..1b2a1ffb --- /dev/null +++ b/addons/sourcemod/scripting/chaos/effects/meta/multi_effect.sp @@ -0,0 +1,38 @@ +// by pokemonpasta + +#pragma semicolon 1 +#pragma newdecls required + +static int g_iNumEffects; +static int g_iActivatedEffects; + +public bool MultiEffect_OnStart(ChaosEffect effect) +{ + if (!effect.data) + return false; + + // Only allow one active at a time + if (IsEffectOfClassActive(effect.effect_class)) + return false; + + g_iNumEffects = effect.data.GetNum("effect_count"); + if (g_iNumEffects < 1) + return false; + + g_iActivatedEffects = 0; + float flNextEffectDelay = 10.0 / float(g_iNumEffects); // n effects over 10 seconds + + CreateTimer(flNextEffectDelay, Timer_NextEffect, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE); + + return true; +} + +static Action Timer_NextEffect(Handle timer) +{ + SelectRandomEffect(false); // Don't allow meta effects within the multi + + if (++g_iActivatedEffects < g_iNumEffects) + return Plugin_Continue; + + return Plugin_Stop; +} diff --git a/addons/sourcemod/translations/chaos.phrases.txt b/addons/sourcemod/translations/chaos.phrases.txt index 8e4c0564..c494d5c0 100644 --- a/addons/sourcemod/translations/chaos.phrases.txt +++ b/addons/sourcemod/translations/chaos.phrases.txt @@ -768,6 +768,14 @@ { "en" "Reinvoke Previous Effects (Meta)" } + "#Chaos_MetaEffect_Multi3" + { + "en" "Combo Time (Meta)" + } + "#Chaos_MetaEffect_Multi6" + { + "en" "WOMBO COMBO TIME (Meta)" + } "#Chaos_Effect_JumpyProps" { "en" "Jumpy Props"