protected void ActivateEffect(Targetable target) { foreach (ActiveEffect activeEffect in effects) { if (!CheckConditions()) { continue; } List <Targetable> targets; if (activeEffect.targetType == TargetType.SingleTarget) { targets = new List <Targetable> { target }; } else { targets = GetTargets(activeEffect, activeEffect.targetType); } if (activatedEffects.ContainsKey(activeEffect)) { activatedEffects[activeEffect].Initialize(targets); } else { EffectActivator effectActivator = Instantiate(activeEffect.effectActivator, transform); effectActivator.Initialize(targets); activatedEffects.Add(activeEffect, effectActivator); } } }
public override void ActivateEffect() { foreach (var target in newTargets) { ApplyVisualization(target.Key); effectActivator.Initialize(target.Value); } }
public override void ActivateEffect() { currentStacks++; if (currentStacks == maxStacks) { if (OnMaxStacksEffect != null) { OnMaxStacksEffect.Initialize(targets); maxStacksReached?.Invoke(); } currentStacks = 0; } else { OnEveryStackEffect.Initialize(targets); } }
private void OnEffectEnds() { OnEndEffect.Initialize(targets); visualizer.StopVisualizer(); timer = null; }
private void OnEverySecond() { OnEverySecondEffect.Initialize(targets); }
private void OnEffectStarts() { OnStartEffect.Initialize(targets); }