public override void Initialize(List <Targetable> targets) { foreach (Targetable target in targets) { ActiveUnit unit = target as ActiveUnit; EffectActivator appliedEffect = null; foreach (EffectActivator effect in unit.appliedEffects) { if (effect.activeEffect.UID == activeEffect.UID) { appliedEffect = effect; } } if (appliedEffect != null) { appliedEffect.ActivateEffect(); } else { EffectActivator newEffect = Instantiate(activeEffect.effectActivator, target.transform.position, Quaternion.identity, target.transform); unit.appliedEffects.Add(newEffect); StacksEffectActivator effect = newEffect.gameObject.GetComponent <StacksEffectActivator>(); effect.targets = new List <Targetable> { target }; effect.ActivateEffect(); } } }
private void Start() { towerStacksEffect = gameObject.GetComponent <StacksEffectActivator>(); towerStacksEffect.maxStacksReached += MaxStacksReached; }