/// <summary>
 /// Chooses an action to perform and is randomly successful or not
 /// </summary>
 private void _ChooseAIAction()
 {
     //  TODO:   Maybe make the action choice more sophisticated than just random
     ActionLabel.GameAction _gameAction = (ActionLabel.GameAction)Random.Range(0, System.Enum.GetValues(typeof(ActionLabel.GameAction)).Length);
     _gameAction = (countryName == GameManager.CountryName.USSR && _gameAction == ActionLabel.GameAction.Propaganda) ? ActionLabel.GameAction.Experiment : _gameAction;
     _gameAction = (_nationalPride < 200) ? ActionLabel.GameAction.Launch : _gameAction;
     if (HasFunding(_gameAction))
     {
         if (_gameAction == ActionLabel.GameAction.Launch && !HasTestedLevel())
         {
             _gameAction = ActionLabel.GameAction.Test;
             if (!HasFunding(_gameAction))
             {
                 return;
             }
         }
         if ((_gameAction == ActionLabel.GameAction.Launch && !HasLaunchResearchPoints()) ||
             (_gameAction == ActionLabel.GameAction.Test && !HasTestResearchPoints()))
         {
             if (Random.Range(0f, 1f) > 0.5f)
             {
                 if (!HasFunding(ActionLabel.GameAction.Report))
                 {
                     return;
                 }
                 CompleteReport(UseWorkForceToken() || (Random.Range(0f, _aiActionProbabilities[(int)GameManager.difficulty]) > 0.5f));
                 return;
             }
             else
             {
                 if (!HasFunding(ActionLabel.GameAction.Experiment))
                 {
                     return;
                 }
                 CompleteExperiment(UseWorkForceToken() || (Random.Range(0f, _aiActionProbabilities[(int)GameManager.difficulty]) > 0.5f));
                 return;
             }
         }
         _aiInstantActions[_gameAction]?.Invoke(UseWorkForceToken() || (Random.Range(0f, _aiActionProbabilities[(int)GameManager.difficulty]) > 0.5f));
     }
     else
     {
         if (Random.Range(0f, 1f) > 0.5f)
         {
             if (!HasFunding(ActionLabel.GameAction.Report))
             {
                 return;
             }
             CompleteReport(UseWorkForceToken() || (Random.Range(0f, _aiActionProbabilities[(int)GameManager.difficulty]) > 0.5f));
         }
         else
         {
             if (!HasFunding(ActionLabel.GameAction.Experiment))
             {
                 return;
             }
             CompleteExperiment(UseWorkForceToken() || (Random.Range(0f, _aiActionProbabilities[(int)GameManager.difficulty]) > 0.5f));
         }
     }
 }
    /// <summary>
    /// Returns whether or not the country has funding points for an action
    /// </summary>
    /// <param name="_pAction"></param>
    /// <returns></returns>
    public bool HasFunding(ActionLabel.GameAction _pAction)
    {
        switch (_pAction)
        {
        case ActionLabel.GameAction.Experiment: return(_fundingPoints >= (_level + 1) * 100 / ((isUSA) ? 10 : 8));

        case ActionLabel.GameAction.Propaganda: return(_fundingPoints >= (_level + 1) * 100 / ((isUSA) ? 4 : 3));

        case ActionLabel.GameAction.Report: return(true);

        case ActionLabel.GameAction.Test: return(_fundingPoints >= (_level + 1) * ((isUSA)? 110: 100) / 2);

        case ActionLabel.GameAction.Launch: return(_fundingPoints >= (_level + 1) * 100);
        }
        return(false);
    }