static void Main() { IWeapon weapon = new Sword(); var rnd = new Random(); for (var i = 0; i < bonusesAmount; i++) { var randomBonus = rnd.Next(3); switch (randomBonus) { case 0: weapon = new Holy(weapon); break; case 1: weapon = new Sharp(weapon); break; case 2: weapon = new Agile(weapon); break; default: throw new Exception("Wrong Bonus"); } } Console.WriteLine(weapon.GetName()); Console.ReadKey(); }
static void Main(string[] args) { Weapon _weapon = new Sword("Mary"); //Weapon _weapon = new Knife("Jack"); var _long = new Long(); var _sharp = new Sharp(); var _beautiful = new Beautiful(); _long.Decorate(_weapon); _sharp.Decorate(_long); _beautiful.Decorate(_sharp); _beautiful.Show(); //print message by recursive Console.WriteLine("Attack Power=" + _beautiful.GetAttackPower().ToString()); Console.Read(); }