From 36bfb34fae948761d1dfc7efb8229db0dc0cb691 Mon Sep 17 00:00:00 2001 From: LP Date: Thu, 20 May 2021 21:04:55 +0100 Subject: [PATCH] Added more extenstions --- .../Extensions/ActiveEffectsExtensions.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/OpenRpg.Combat/Extensions/ActiveEffectsExtensions.cs b/src/OpenRpg.Combat/Extensions/ActiveEffectsExtensions.cs index 90be568..1ed9d47 100644 --- a/src/OpenRpg.Combat/Extensions/ActiveEffectsExtensions.cs +++ b/src/OpenRpg.Combat/Extensions/ActiveEffectsExtensions.cs @@ -21,5 +21,16 @@ public static float GetStackedPotency(this ActiveEffect activeEffect) public static int TicksSoFar(this ActiveEffect activeEffect) { return (int)(activeEffect.ActiveTime / activeEffect.Effect.Frequency); } + + public static bool AttemptToStackEffectFor(this IHasActiveEffects entity, int timedEffectId) + { + var existingEffect = entity.ActiveEffects.SingleOrDefault(x => x.Effect.Id == timedEffectId); + if (existingEffect == null) { return false; } + if (existingEffect.Stacks >= existingEffect.Effect.MaxStack) { return false; } + + existingEffect.Stacks++; + existingEffect.ActiveTime = 0; + return true; + } } } \ No newline at end of file