diff --git a/CustomClasses/BloodFueledManager.cs b/CustomClasses/BloodFueledManager.cs index b7d4455..4d521c2 100644 --- a/CustomClasses/BloodFueledManager.cs +++ b/CustomClasses/BloodFueledManager.cs @@ -16,6 +16,17 @@ public class DisableStaminaRegenEffect : CustomPlayerEffect, IStaminaModifier public override EffectClassification Classification => EffectClassification.Negative; } +public class BloodFueledStaminaEffect : CustomPlayerEffect, IStaminaModifier +{ + public bool StaminaModifierActive => IsEnabled; + public float StaminaUsageMultiplier => 0.1f; + + public float StaminaRegenMultiplier => 1; + public bool SprintingDisabled => false; + + public override EffectClassification Classification => EffectClassification.Negative; +} + public class BloodFueledManager { private readonly CustomClasses _plugin; diff --git a/CustomClasses/CustomPlayerEffect.cs b/CustomClasses/CustomPlayerEffect.cs index 8482bbf..0ced3de 100644 --- a/CustomClasses/CustomPlayerEffect.cs +++ b/CustomClasses/CustomPlayerEffect.cs @@ -30,16 +30,24 @@ public abstract class CustomPlayerEffect : StatusEffectBase _isLoaded = true; - var playerEffects = NetworkManager.singleton.playerPrefab.GetComponent().playerEffectsController.effectsGameObject.transform; - var type = typeof(DisableStaminaRegenEffect); - if (!typeof(StatusEffectBase).IsAssignableFrom(type)) - { - Logger.Error($"[CustomPlayerEffect.Initialize] {type.FullName} is not a valid StatusEffectBase and thus could not be registered!"); - return; - } + Type[] toLoad = + [ + typeof(DisableStaminaRegenEffect), + typeof(BloodFueledStaminaEffect) + ]; - // register effect into prefab - new GameObject(type.Name, type).transform.parent = playerEffects; + var playerEffects = NetworkManager.singleton.playerPrefab.GetComponent().playerEffectsController.effectsGameObject.transform; + foreach (var type in toLoad) + { + if (!typeof(StatusEffectBase).IsAssignableFrom(type)) + { + Logger.Error($"[CustomPlayerEffect.Initialize] {type.FullName} is not a valid StatusEffectBase and thus could not be registered!"); + return; + } + + // register effect into prefab + new GameObject(type.Name, type).transform.parent = playerEffects; + } }; } } \ No newline at end of file