public override void GenerateIntoMap(Map map) { if (Find.GameInitData != null) { List <List <Thing> > list = new List <List <Thing> >(); foreach (Pawn startingAndOptionalPawn in Find.GameInitData.startingAndOptionalPawns) { List <Thing> list2 = new List <Thing>(); list2.Add(startingAndOptionalPawn); list.Add(list2); } List <Thing> list3 = new List <Thing>(); foreach (ScenPart allPart in Find.Scenario.AllParts) { list3.AddRange(allPart.PlayerStartingThings()); } int num = 0; foreach (Thing item in list3) { if (item.def.CanHaveFaction) { item.SetFactionDirect(Faction.OfPlayer); } list[num].Add(item); num++; if (num >= list.Count) { num = 0; } } DropPodUtility.DropThingGroupsNear_NewTmp(MapGenerator.PlayerStartSpot, map, list, 110, Find.GameInitData.QuickStarted || method != PlayerPawnsArriveMethod.DropPods, leaveSlag: true, canRoofPunch: true, forbid: true, allowFogged: false); } }