Example #1
0
        private void DoDamage(Character attackingCharacter, Character defendingCharacter)
        {
            int totalDamage    = attackingCharacter.Strenght - (defendingCharacter.Defense + AddModifier(Modifiers.Defense, defendingCharacter));
            int modifierDamage = 0;

            modifierDamage += AddModifier(Modifiers.Damage, attackingCharacter);

            totalDamage += modifierDamage;
            totalDamage  = Math.Max(0, totalDamage);

            defendingCharacter.Health -= totalDamage;
            defendingCharacter.Health  = Math.Max(0, defendingCharacter.Health);

            if (totalDamage == 0)
            {
                Console.WriteLine($"{attackingCharacter.Name} can't damage {defendingCharacter.Name}...");
                Console.WriteLine($"Maybe {attackingCharacter.Name} should just run away...");
            }
            else
            {
                Console.WriteLine($"{defendingCharacter.Name} takes " + totalDamage + $" damage! ({attackingCharacter.Strenght}" + (modifierDamage > 0 ? " + " + modifierDamage : "") + $" - {defendingCharacter.Defense})");
                Console.WriteLine($"{defendingCharacter.Name} has {defendingCharacter.Health} health left!");

                battleLog.AddToLog($"{attackingCharacter.Name} did damage to {defendingCharacter.Name}!");
            }
        }
Example #2
0
        /// <summary>
        /// Main loop of game.
        /// </summary>
        internal void Play()
        {
            bool       quitPlay = false;
            bool       showMenu = true;
            ConsoleKey key;

            do
            {
                if (showMenu)
                {
                    DisplayBattleMenu();
                    showMenu = false;
                }

                key = Console.ReadKey(false).Key;

                switch (key)
                {
                case ConsoleKey.E: {
                    DisplayCharacterEquipment(player.PlayerCharacter);
                    showMenu = true;
                    break;
                }

                case ConsoleKey.Q: {
                    quitPlay = true;
                    break;
                }

                case ConsoleKey.H: {
                    DoHeal(player.PlayerCharacter);
                    showMenu = true;
                    break;
                }

                case ConsoleKey.F: {
                    DoCombat();
                    showMenu = true;
                    break;
                }

                case ConsoleKey.C: {
                    DisplayCharacterInfo(player.PlayerCharacter);
                    showMenu = true;
                    break;
                }

                case ConsoleKey.S: {
                    DisplayItemShopMenu();
                    break;
                }

                case ConsoleKey.L: {
                    ShowBattleLog();
                    showMenu = true;
                    break;
                }

                case ConsoleKey.R: {
                    Console.WriteLine($"\n{player.PlayerCharacter.Name} has choosen to quit fighting and retire to live a peaceful life...");
                    player.PlayerCharacter.Retired = true;
                    quitPlay = true;
                    battleLog.AddToLog($"{player.PlayerCharacter.Name} retired from fighting.");
                    Console.ReadLine();
                    break;
                }
                }

                if (key != ConsoleKey.Enter)
                {
                    Console.WriteLine();
                }
            } while (!quitPlay && !player.PlayerCharacter.IsDefeated);

            BattleEnded = true;
        }