Example #1
0
        private void CharacterVsCharacter(Character avatar1, Character avatar2, bool heroAttacksFirst)
        {
            Random random = new Random();
            short  damage;

            if (!loadingMessageShown)
            {
                loadingMessageShown = true;
                SpecialMessage.LoadingMessage("Selecting who has the first turn (at random)");
                if (heroAttacksFirst)
                {
                    ColorWriter.SpaceWriteLine("Gray", "The Hero attacks first!\n");
                }
                else
                {
                    ColorWriter.SpaceWriteLine("Gray", "The Villain attacks first!\n");
                }
                System.Threading.Thread.Sleep(1000);
            }
            //avatar1 attacks avatar2
            if (avatar2.Health > 0 && avatar1.Health > 0)
            {
                damage = (short)(avatar1.Attack * (random.Next(60, 101) / 100f));
                ColorWriter.SpaceWrite("Cyan", avatar1.Name);
                ColorWriter.SpaceWrite("Gray", "attacks");
                ColorWriter.SpaceWrite("Yellow", avatar2.Name);
                ColorWriter.SpaceWrite("Gray", "and deals");
                ColorWriter.SpaceWrite("Magenta", damage.ToString());
                ColorWriter.SpaceWriteLine("Gray", "points of damage");
                avatar2.Health = (short)(avatar2.Health - damage);
                ColorWriter.Write("Yellow", "\n " + avatar2.Name);
                ColorWriter.SpaceWrite("Gray", "Hp =");
                if (avatar2.Health > 0)
                {
                    ColorWriter.SpaceWriteLine("Green", avatar2.Health + "\n");
                }
                else
                {
                    ColorWriter.SpaceWriteLine("Red", avatar2.Health + "\n");
                }
            }
            if (avatar2.Health <= 0)
            {
                SpecialMessage.DefeatMessage(avatar2.Name + " was defeated!");
            }
            else
            {
                System.Threading.Thread.Sleep(2000);
            }
            //avatar2 attacks avatar1
            if (avatar2.Health > 0 && avatar1.Health > 0)
            {
                damage = (short)(avatar2.Attack * (random.Next(60, 101) / 100f));
                ColorWriter.SpaceWrite("Yellow", avatar2.Name);
                ColorWriter.SpaceWrite("Gray", "attacks");
                ColorWriter.SpaceWrite("Cyan", avatar1.Name);
                ColorWriter.SpaceWrite("Gray", "and deals");
                ColorWriter.SpaceWrite("Magenta", damage.ToString());
                ColorWriter.SpaceWriteLine("Gray", "points of damage");
                avatar1.Health = (short)(avatar1.Health - damage);
                ColorWriter.Write("Cyan", "\n " + avatar1.Name);
                ColorWriter.SpaceWrite("Gray", "Hp =");
                if (avatar1.Health > 0)
                {
                    ColorWriter.SpaceWriteLine("Green", avatar1.Health + "\n");
                }
                else
                {
                    ColorWriter.SpaceWriteLine("Red", avatar1.Health + "\n");
                }
            }
            if (avatar1.Health <= 0)
            {
                SpecialMessage.DefeatMessage(avatar1.Name + " was defeated!");
            }
            else
            {
                System.Threading.Thread.Sleep(2000);
            }
        }