static void Main() { Warrior firstWarrior = new Warrior(78, 180, "Amy", Faction.GoodGuy); Mage firstMage = new Mage(); Console.WriteLine(firstWarrior.AddNumber(7, 5)); Console.WriteLine(firstWarrior.HealthPoints); Console.WriteLine(firstMage.Mana); firstMage.CastSpell(firstWarrior); Character secondWarrior = new Warrior(); List <Character> theCharacters = new List <Character>(); List <ICalculator> calculators = new List <ICalculator>(); calculators.Add(firstWarrior); calculators.Add(firstMage); theCharacters.Add(firstWarrior); theCharacters.Add(firstMage); foreach (var character in theCharacters) { if (character is Warrior) { Warrior tempWarrior = character as Warrior; Console.WriteLine(tempWarrior.SwordWeapon.Damage); } } Console.WriteLine("After spell cast:" + firstWarrior.HealthPoints); Console.WriteLine("After spell cast:" + firstMage.Mana); PerformGreeting(theCharacters); Character[] theCharactersAgain = new Character[2]; theCharactersAgain[0] = firstMage; theCharactersAgain[1] = firstWarrior; PerformGreeting(theCharactersAgain); }