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