Exemplo n.º 1
0
        // 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);
            }
        }
Exemplo n.º 3
0
 // Token: 0x060045D3 RID: 17875 RVA: 0x001780CB File Offset: 0x001762CB
 public override void Arrive(List <Pawn> pawns, IncidentParms parms)
 {
     PawnsArrivalModeWorkerUtility.PlaceInTunnelsNearSpawnCenter(parms, pawns);
 }