/// <summary> /// Does the enemies turn if it is still alive, otherwise, displays /// the enemy as dead and gives the player their reward /// </summary> /// <param name="enemy"></param> /// <param name="player"></param> private void enemyTurn(Enemy enemy, Player player) { if (enemy.IsAlive) { var oldHP = player.Health; Attack enemyAttack = enemy.Attack(); int defence = player.Defend(enemyAttack.Damage); double percentageLost = calcPercentageHPLost(oldHP, player.Health, player.MaxHealth); view.DisplayAttack(enemy.Name, player.Name, enemyAttack.Description, enemyAttack.Damage); view.DisplayDefence(player.Name, defence, oldHP - player.Health, percentageLost); view.DisplayHealth(player.Name, enemy.Name, player.Health, enemy.Health); } else { var heal = (int)((double)player.Health * 1.5) - player.Health; player.Health += heal; player.Gold += enemy.GoldReward; view.DisplayEnemySlain(enemy.Name, enemy.GoldReward, player.Gold, heal, player.Health); } }