/// <summary>
 /// Helper method to print player info.
 /// </summary>
 /// <param name="player"></param>
 private static void PrintPlayerInfo(FNPlayer player)
 {
     Console.WriteLine("{0} is {1} => Health is {2} and Weapon is {3}",
                       player.GetType().Name,
                       player.Alive ? "alive" : "dead",
                       player.Health,
                       player.Weapon);
 }
        /// <summary>
        /// Static method which performs an attack.
        /// </summary>
        /// <param name="p1">Player who performs the attack.</param>
        /// <param name="p2">Player who suffers the attack.</param>
        private static void PerformAttack(FNPlayer p1, FNPlayer p2)
        {
            // Determine player classes
            string p1class = p1.GetType().Name;
            string p2class = p1 != p2?p2.GetType().Name : "himself";

            // Perform attack and show info
            Console.WriteLine($" == {p1class} attacks {p2class} == ");
            p1.Attack(p2);
            Console.WriteLine($"{p1}\n{p2}\n");
        }