//public void AddListener(EffectType type, EffectListener listener) //{ // effectListeners[type].Add(listener); //} public void Trigger(EffectType type, BasePlayerController player = null) { var effect = EffectFactory.Create(type); Debug.Assert(effect != null, "EffectFactory returned null with type " + type); //foreach (var listener in effectListeners[type]) // listener.Begin(effect); effect.Begin(player); activeEffects[type].Add(effect); }