// Token: 0x060045ED RID: 17901 RVA: 0x00178868 File Offset: 0x00176A68 public static List <Pair <List <Pawn>, IntVec3> > SplitIntoRandomGroupsNearMapEdge(List <Pawn> pawns, Map map, bool arriveInPods) { List <Pair <List <Pawn>, IntVec3> > list = new List <Pair <List <Pawn>, IntVec3> >(); if (!pawns.Any <Pawn>()) { return(list); } int maxGroupsCount = PawnsArrivalModeWorkerUtility.GetMaxGroupsCount(pawns.Count); Rand.PushState(); int num = (maxGroupsCount == 1) ? 1 : Rand.RangeInclusive(2, maxGroupsCount); Rand.PopState(); for (int i = 0; i < num; i++) { IntVec3 second = PawnsArrivalModeWorkerUtility.FindNewMapEdgeGroupCenter(map, list, arriveInPods); list.Add(new Pair <List <Pawn>, IntVec3>(new List <Pawn>(), second) { First = { pawns[i] } }); } for (int j = num; j < pawns.Count; j++) { list.RandomElement <Pair <List <Pawn>, IntVec3> >().First.Add(pawns[j]); } return(list); }
// Token: 0x060045D7 RID: 17879 RVA: 0x001782AC File Offset: 0x001764AC public override void Arrive(List <Pawn> pawns, IncidentParms parms) { Map map = (Map)parms.target; bool canRoofPunch = parms.faction != null && parms.faction.HostileTo(Faction.OfPlayer); List <Pair <List <Pawn>, IntVec3> > list = PawnsArrivalModeWorkerUtility.SplitIntoRandomGroupsNearMapEdge(pawns, map, true); PawnsArrivalModeWorkerUtility.SetPawnGroupsInfo(parms, list); for (int i = 0; i < list.Count; i++) { TunnelRaidUtility.DropThingsNear(list[i].Second, map, list[i].First.Cast <Thing>(), parms.podOpenDelay, false, true, canRoofPunch); } }
// Token: 0x060045D3 RID: 17875 RVA: 0x001780CB File Offset: 0x001762CB public override void Arrive(List <Pawn> pawns, IncidentParms parms) { PawnsArrivalModeWorkerUtility.PlaceInTunnelsNearSpawnCenter(parms, pawns); }