public KnightUnitArmourDecorator(KnightUnit knight)
     : base(knight)
 {
 }
 /// <summary>
 /// Конструктор копии.
 /// </summary>
 /// <param name="prototype">Прототип создаваемого объекта.</param>
 public KnightUnit(KnightUnit prototype)
     : base(prototype.Health)
 {
     availableAmmunition = new List<Type>(prototype.AvailableAmmunition);
 }
 public KnightUnitShieldDecorator(KnightUnit knight)
     : base(knight)
 {
 }
 public virtual UnitKeeper MagicallyClone()
 {
     KnightUnit clone = new KnightUnit(this);
     return new UnitKeeper(this, null, clone);
 }
        public override Unit CloneModifiedUnit(Int32 healthPoints)
        {
            // Копия с сохраненным здоровьем.
            if (healthPoints == 0)
                return new KnightUnit(this);

            // Сохраняем здоровье юнита и травмируем (лечим) его.
            Int32 thisHealth = this.Health;
            this.Health += healthPoints;

            // Создаем поврежденную (исцеленную) копию юнита, используя конструктор копии.
            KnightUnit clone = new KnightUnit(this);

            // Восстанавливаем здоровье прототипа.
            this.Health = thisHealth;

            return clone;
        }
 public KnightUnitSpearDecorator(KnightUnit knight)
     : base(knight)
 {
 }
 public KnightUnitBaseDecorator(KnightUnit knight)
 {
     this._knight = knight;
 }
 public KnightUnitHorseDecorator(KnightUnit knight)
     : base(knight)
 {
 }