private void RandomizeCurPawn()
        {
            if (!TutorSystem.AllowAction("RandomizePawn"))
            {
                return;
            }
            int num = 0;

            while (true)
            {
                this.curPawn = StartingPawnUtility.RandomizeInPlace(this.curPawn);
                num++;
                if (num > 15)
                {
                    break;
                }
                if (StartingPawnUtility.WorkTypeRequirementsSatisfied())
                {
                    goto Block_3;
                }
            }
            return;

Block_3:
            TutorSystem.Notify_Event("RandomizePawn");
        }
Ejemplo n.º 2
0
 private void RandomizeCurPawn()
 {
     if (TutorSystem.AllowAction("RandomizePawn"))
     {
         this.curPawn = StartingPawnUtility.RandomizeInPlace(this.curPawn);
         TutorSystem.Notify_Event("RandomizePawn");
     }
 }
Ejemplo n.º 3
0
 private void RollForPawns()
 {
     checked {
         for (int i = 0; i < Find.GameInitData.startingPawns.Count; i++)
         {
             Pawn pawn = Find.GameInitData.startingPawns[i];
             pawn = StartingPawnUtility.RandomizeInPlace(pawn);
         }
         this.callingPage.SelectPawn(Find.GameInitData.startingPawns[0]);
     }
 }
Ejemplo n.º 4
0
 public void RollColonist(int index)
 {
     try {
         Pawn pawn = Find.GameInitData.startingPawns[index];
         pawn = StartingPawnUtility.RandomizeInPlace(pawn);
     }
     catch {
         Log.Message("index is " + index);
         Log.Message("Find.GameInitData.startingPawns count is " + Find.GameInitData.startingPawns.Count);
     }
     ConfigureStartingPawns_Controller.SelectPawnOnPage(this.originalPage, Find.GameInitData.startingPawns[0]);
 }
 private void RandomizeCurPawn()
 {
     if (!TutorSystem.AllowAction("RandomizePawn"))
     {
         return;
     }
     do
     {
         this.curPawn = StartingPawnUtility.RandomizeInPlace(this.curPawn);
     }while (!StartingPawnUtility.WorkTypeRequirementsSatisfied());
     TutorSystem.Notify_Event("RandomizePawn");
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Перед запуском удалить всех колонистов игрока
        /// </summary>
        /// <param name="pawnsCount"></param>
        /// <param name="result"></param>
        public static void ShowDialog(int pawnsCount, Action <List <Pawn> > result)
        {
            List <Pawn> oldPawns = null;
            //запоминаем текущее
            var gameIsNull = Current.Game == null || Current.Game.InitData == null;

            if (gameIsNull)
            {
                GameUtils.ShortSetupForQuickTestPlay();
            }
            else
            {
                oldPawns = Current.Game.InitData.startingAndOptionalPawns.ToList();
            }

            //тяп-ляп и новые пешки
            Current.Game.InitData.startingAndOptionalPawns.Clear();
            for (int i = 0; i < pawnsCount; i++)
            {
                Current.Game.InitData.startingAndOptionalPawns.Add(PawnGenerateRandom());
            }
            //if (MainHelper.DebugMode) File.WriteAllText(Loger.PathLog + @"SrvTest.txt", DevelopTest.TextObj(Current.Game.InitData.startingPawns, true), Encoding.UTF8);
            for (int i = 0; i < pawnsCount; i++)
            {
                StartingPawnUtility.RandomizeInPlace(Current.Game.InitData.startingAndOptionalPawns[i]);
            }

            //запускаем форму редактирования
            var form = new Page_ConfigureStartingPawns();

            form.nextAct = () =>
            {
                var pawns = Current.Game.InitData.startingAndOptionalPawns.ToList();

                //восстанавливаем значеня
                if (gameIsNull)
                {
                    Current.Game = null;
                }
                else
                {
                    Current.Game.InitData.startingAndOptionalPawns.Clear();
                    for (int i = 0; i < oldPawns.Count; i++)
                    {
                        Current.Game.InitData.startingAndOptionalPawns.Add(oldPawns[i]);
                    }
                }

                result(pawns);
            };
            Find.WindowStack.Add(form);
        }
Ejemplo n.º 7
0
 private void RandomizeCurPawn()
 {
     if (TutorSystem.AllowAction("RandomizePawn"))
     {
         int num = 0;
         do
         {
             curPawn = StartingPawnUtility.RandomizeInPlace(curPawn);
             num++;
         }while (num <= 20 && !StartingPawnUtility.WorkTypeRequirementsSatisfied());
         TutorSystem.Notify_Event("RandomizePawn");
     }
 }
Ejemplo n.º 8
0
        //private void RandomizeCurPawn()
        //{
        //    if (!TutorSystem.AllowAction("RandomizePawn"))
        //    {
        //        return;
        //    }
        //    int num = 0;
        //    do
        //    {
        //        this.curPawn = StartingPawnUtility.RandomizeInPlace(this.curPawn);
        //        num++;
        //        if (num <= 15)
        //        {
        //            continue;
        //        }
        //        return;
        //    }
        //    while (!StartingPawnUtility.WorkTypeRequirementsSatisfied());
        //    TutorSystem.Notify_Event("RandomizePawn");
        //}

        private IEnumerator RandomizeAllPawns()
        {
            // Temp variable to store generated pawns
            Pawn[] aPawns = new Pawn[0];

            // Try 15 times to generate pawn with WorkTypeRequirementsSatisfied?
            int num = 0;

            do
            {
                // Loop through current pawns and generate random in place
                foreach (Pawn p in Find.GameInitData.startingPawns)
                {
                    Pawn curpawn = new Pawn();

                    curpawn = StartingPawnUtility.RandomizeInPlace(p);

                    aPawns = aPawns.Concat(new Pawn[] { curpawn }).ToArray();
                }

                NewGameRules.ClearCurPawns();

                Find.GameInitData.startingPawns = aPawns.ToList();
                aPawns = new Pawn[0];

                lstCardRects            = new List <Rect>();
                lstPNC_Cards            = new List <PNC_Card>();
                lstPNC_CardsInOrder     = new List <PNC_Card>();
                templstPNC_CardsInOrder = new List <PNC_Card>();
                intCardNum = 0;

                PopulateCards(false);

                if (num > 10 && StartingPawnUtility.WorkTypeRequirementsSatisfied())
                {
                    yield break;
                }

                num++;
                if (num <= 15)
                {
                    yield return(new WaitForSeconds(.05f));

                    //Log.Message(num.ToString());
                    continue;
                }
                yield break;
            }while (num < 3);
        }