public void AddModifier(IGameModifier modifier, ModifierParameters p) { p.Owner = this; _modifiers.Add(modifier); modifier.Initialize(p, this); modifier.Activate(); foreach (var modifiableProperty in ModifiableProperties) { modifiableProperty.Accept(modifier); } }
public void Accept(IGameModifier modifier) { modifier.Apply(this); }
public void RemoveModifier(IGameModifier modifier) { _modifiers.Remove(modifier); modifier.Dispose(); }