Example #1
0
        public void RemoveModifier(ICardModifier modifier)
        {
            _modifiers.Remove(modifier);
            modifier.Dispose();

            if (IsPermanent)
            {
                Publish(new PermanentModifiedEvent(this, modifier));
            }
        }
Example #2
0
        public void AddModifier(ICardModifier modifier, ModifierParameters p)
        {
            _modifiers.Add(modifier);
            ActivateModifier(modifier, p);

            if (IsPermanent)
            {
                Publish(new PermanentModifiedEvent(this, modifier));
            }
        }
Example #3
0
        private void ActivateModifier(ICardModifier modifier, ModifierParameters p)
        {
            p.Owner = this;
            modifier.Initialize(p, Game);

            foreach (var modifiable in ModifiableProperties)
            {
                modifiable.Accept(modifier);
            }

            modifier.Activate();
        }
Example #4
0
 public void Accept(ICardModifier modifier)
 {
     modifier.Apply(this);
 }
 public void Accept(ICardModifier modifier)
 {
     modifier.Apply(this);
 }
Example #6
0
        public void RemoveModifier(ICardModifier modifier)
        {
            _modifiers.Remove(modifier);
            modifier.Dispose();

            if (IsPermanent)
            {
                Publish(new PermanentModifiedEvent(this, modifier));
            }
        }
Example #7
0
        public void AddModifier(ICardModifier modifier, ModifierParameters p)
        {
            _modifiers.Add(modifier);
            ActivateModifier(modifier, p);

            if (IsPermanent)
            {
                Publish(new PermanentModifiedEvent(this, modifier));
            }
        }
Example #8
0
        private void ActivateModifier(ICardModifier modifier, ModifierParameters p)
        {
            p.Owner = this;
            modifier.Initialize(p, Game);

            foreach (var modifiable in ModifiableProperties)
            {
                modifiable.Accept(modifier);
            }

            modifier.Activate();
        }