Inheritance: MonoBehaviour
    /// <summary>
    /// Display message indicating that target was missed. Choose enemy artillery and perform a counterattack.
    /// </summary>
    private void MissedTarget()
    {
        UI.Output("MISSED TARGET BY " + (2 + RandomInteger(0, 30)) + " MILES!");
        UI.Output("NOW YOU'RE REALLY IN FOR IT !!");

        // Choose enemy and counterattack.
        EnemyArtillery enemyArtillery = ChooseEnemyArtillery();

        if (enemyArtillery == Missiles)
        {
            EnemyCounterattack(enemyArtillery, hitRatePercent: 0);
        }
        else
        {
            int hitRatePercent = EnemyHitRatePercentFromUI();
            if (hitRatePercent < MinEnemyHitRatePercent)
            {
                UI.Output("YOU LIE, BUT YOU'LL PAY...");
                MissionFailed();
            }
            else
            {
                EnemyCounterattack(enemyArtillery, hitRatePercent);
            }
        }
    }
    /// <summary>
    /// Choose enemy artillery from UI.
    /// </summary>
    /// <returns>Artillery chosen.</returns>
    private EnemyArtillery ChooseEnemyArtillery()
    {
        EnemyArtillery[] artilleries    = new EnemyArtillery[] { Guns, Missiles, Both };
        string[]         artilleryNames = artilleries.Select(a => a.Name).ToArray();
        int index = UI.Choose("DOES THE ENEMY HAVE", artilleryNames);

        return(artilleries[index]);
    }