コード例 #1
0
        /// <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);
            }
        }