internal int GetDamageToCharacter(IEnemy enemy, IProtagonist hero) { var damage = new Random().Next(enemy.MinDamage, enemy.MaxDamage); var protection = hero.Protection; return(damage / protection * 10); }
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)); }
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(); } }