public void AddModifier(ICardModifier modifier, ModifierParameters p) { _modifiers.Add(modifier); ActivateModifier(modifier, p); if (IsPermanent) { Publish(new PermanentModifiedEvent(this, modifier)); } }
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); } }
private void ActivateModifier(ICardModifier modifier, ModifierParameters p) { p.Owner = this; modifier.Initialize(p, Game); foreach (var modifiable in ModifiableProperties) { modifiable.Accept(modifier); } modifier.Activate(); }
public void Initialize(ModifierParameters p, Engine game) { Game = game; SourceCard = p.SourceCard; //SourceEffect = p.SourceEffect; Owner = p.Owner; X = p.X; InitializeLifetimes(p.IsStatic); Initialize(); }