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"); }
private void RandomizeCurPawn() { if (TutorSystem.AllowAction("RandomizePawn")) { this.curPawn = StartingPawnUtility.RandomizeInPlace(this.curPawn); TutorSystem.Notify_Event("RandomizePawn"); } }
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]); } }
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"); }
/// <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); }
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"); } }
//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); }