public void AddEffectListener(IEffectOwner owner, string value) { { if (!effectOwners.ContainsKey(value)) { effectOwners.Add(value, new List <IEffectOwner>()); } if (!effectOwners[value].Contains(owner)) { effectOwners[value].Add(owner); } } }
public void RemoveEffectListener(IEffectOwner owner, string value) { if (!effectOwners.ContainsKey(value)) { return; } if (effectOwners[value].Contains(owner)) { effectOwners[value].Remove(owner); } if (effectOwners[value].Count == 0) { effectOwners.Remove(value); } }