refactor + lessen stamina usage

This commit is contained in:
HoherGeist 2025-07-12 23:02:07 +02:00
parent a8063216cc
commit 2f483ca113
2 changed files with 28 additions and 9 deletions

View File

@ -16,6 +16,17 @@ public class DisableStaminaRegenEffect : CustomPlayerEffect, IStaminaModifier
public override EffectClassification Classification => EffectClassification.Negative; 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 public class BloodFueledManager
{ {
private readonly CustomClasses _plugin; private readonly CustomClasses _plugin;

View File

@ -30,8 +30,15 @@ public abstract class CustomPlayerEffect : StatusEffectBase
_isLoaded = true; _isLoaded = true;
Type[] toLoad =
[
typeof(DisableStaminaRegenEffect),
typeof(BloodFueledStaminaEffect)
];
var playerEffects = NetworkManager.singleton.playerPrefab.GetComponent<ReferenceHub>().playerEffectsController.effectsGameObject.transform; var playerEffects = NetworkManager.singleton.playerPrefab.GetComponent<ReferenceHub>().playerEffectsController.effectsGameObject.transform;
var type = typeof(DisableStaminaRegenEffect); foreach (var type in toLoad)
{
if (!typeof(StatusEffectBase).IsAssignableFrom(type)) if (!typeof(StatusEffectBase).IsAssignableFrom(type))
{ {
Logger.Error($"[CustomPlayerEffect.Initialize] {type.FullName} is not a valid StatusEffectBase and thus could not be registered!"); Logger.Error($"[CustomPlayerEffect.Initialize] {type.FullName} is not a valid StatusEffectBase and thus could not be registered!");
@ -40,6 +47,7 @@ public abstract class CustomPlayerEffect : StatusEffectBase
// register effect into prefab // register effect into prefab
new GameObject(type.Name, type).transform.parent = playerEffects; new GameObject(type.Name, type).transform.parent = playerEffects;
}
}; };
} }
} }