Beispiel #1
0
        internal int GetDamageToCharacter(IEnemy enemy, IProtagonist hero)
        {
            var damage     = new Random().Next(enemy.MinDamage, enemy.MaxDamage);
            var protection = hero.Protection;

            return(damage / protection * 10);
        }
Beispiel #2
0
        internal int GetDamageToEnemy(IProtagonist hero)
        {
            var baseDamage   = new Random().Next(hero.Weapon.MinDamage, hero.Weapon.MaxDamage);
            var strength     = hero.Strength;
            var needStrength = hero.Weapon.NeedStrength;

            return(baseDamage * strength / (strength > needStrength ? strength - needStrength : needStrength));
        }
Beispiel #3
0
        internal void Hit(IEnemy enemy, IProtagonist hero)
        {
            var damage = dc.GetDamageToCharacter(enemy, hero);

            if (hero.Health - damage > 0)
            {
                hero.Health            -= damage;
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.WriteLine($"[{enemy.Name}] hits [{hero.Name}] by [{damage}] damage." +
                                  $"\n\tCharacter has: [{hero.Health}] HP / " +
                                  $"Enemy has: [{enemy.Health}] HP");
                Console.ResetColor();
            }
            else
            {
                hero.Health             = 0;
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.WriteLine($"[{enemy.Name}] kills [{hero.Name}]." +
                                  $"\n\tCharacter has: [{hero.Health}] HP / " +
                                  $"Enemy has: [{enemy.Health}] HP");
                Console.ResetColor();
            }
        }