private static Pawn GenerateNewNakedPawn(ref PawnGenerationRequest request)
        {
            Pawn   pawn = null;
            string text = null;
            bool   ignoreScenarioRequirements = false;

            for (int i = 0; i < 100; i++)
            {
                if (i == 70)
                {
                    Log.Error("Could not generate a pawn after " + 70 + " tries. Last error: " + text + " Ignoring scenario requirements.");
                    ignoreScenarioRequirements = true;
                }
                PawnGenerationRequest pawnGenerationRequest = request;
                pawn = PawnGenerator.TryGenerateNewNakedPawn(ref pawnGenerationRequest, out text, ignoreScenarioRequirements);
                if (pawn != null)
                {
                    request = pawnGenerationRequest;
                    break;
                }
            }
            if (pawn == null)
            {
                Log.Error("Pawn generation error: " + text + " Too many tries (" + 100 + "), returning null. Generation request: " + request);
                return(null);
            }
            return(pawn);
        }
示例#2
0
        private static Pawn GenerateNewNakedPawn(ref PawnGenerationRequest request)
        {
            Pawn   pawn = null;
            string text = null;
            bool   ignoreScenarioRequirements = false;

            for (int i = 0; i < 100; i++)
            {
                if (i == 70)
                {
                    Log.Error(string.Concat(new object[]
                    {
                        "Could not generate a pawn after ",
                        70,
                        " tries. Last error: ",
                        text,
                        " Ignoring scenario requirements."
                    }));
                    ignoreScenarioRequirements = true;
                }
                PawnGenerationRequest pawnGenerationRequest = request;
                pawn = PawnGenerator.TryGenerateNewNakedPawn(ref pawnGenerationRequest, out text, ignoreScenarioRequirements);
                if (pawn != null)
                {
                    request = pawnGenerationRequest;
                    break;
                }
            }
            if (pawn == null)
            {
                Log.Error(string.Concat(new object[]
                {
                    "Pawn generation error: ",
                    text,
                    " Too many tries (",
                    100,
                    "), returning null. Generation request: ",
                    request
                }));
                return(null);
            }
            return(pawn);
        }