public static IEnumerable <Pawn> MountAnimals(PawnGroupMakerParms groupParms, bool warnOnZeroResults, IncidentParms parms)
        {
            List <Pawn> list = PawnGroupMakerUtility.GeneratePawns(groupParms, true).ToList();

            if (list.Count == 0)
            {
                return(list);
            }
            parms.raidArrivalMode.Worker.Arrive(list, parms);
            if (!(parms.raidArrivalMode == null || parms.raidArrivalMode == PawnsArrivalModeDefOf.EdgeWalkIn) || (parms.raidStrategy != null && parms.raidStrategy.workerClass == typeof(RaidStrategyWorker_Siege)))
            {
                return(list);
            }
            NPCMountUtility.generateMounts(ref list, parms, Base.inBiomeWeight, Base.outBiomeWeight, Base.nonWildWeight, Base.enemyMountChance, Base.enemyMountChanceTribal);

            foreach (Pawn pawn in list)
            {
                if (pawn.equipment == null)
                {
                    pawn.equipment = new Pawn_EquipmentTracker(pawn);
                }
            }
            foreach (Pawn pawn in list)//Moved this code here so we can check if the pawn actually has apparel.
            {
                if (pawn.apparel != null && pawn.apparel.WornApparel != null && pawn.apparel.WornApparel.Any((Apparel ap) => ap is ShieldBelt))
                {
                    LessonAutoActivator.TeachOpportunity(ConceptDefOf.ShieldBelts, OpportunityType.Critical);
                    break;
                }
            }
            return(list);
        }
Beispiel #2
0
 public static void mountAnimals(ref List <Pawn> list, IncidentParms parms)
 {
     if (!list.NullOrEmpty())
     {
         NPCMountUtility.generateMounts(ref list, parms, Base.inBiomeWeight, Base.outBiomeWeight, Base.nonWildWeight, Base.visitorMountChance, Base.visitorMountChanceTribal);
     }
 }
Beispiel #3
0
 public static void mountAnimals(ref List <Pawn> list, IncidentParms parms)
 {
     if (list.Count == 0 || !(parms.raidArrivalMode == PawnsArriveMode.EdgeWalkIn || parms.raidArrivalMode == PawnsArriveMode.Undecided) || (parms.raidStrategy != null && parms.raidStrategy.workerClass == typeof(RaidStrategyWorker_Siege)))
     {
         return;
     }
     NPCMountUtility.generateMounts(ref list, parms, Base.inBiomeWeight, Base.outBiomeWeight, Base.nonWildWeight, Base.visitorMountChance, Base.visitorMountChanceTribal);
 }
Beispiel #4
0
        public static List <Pawn> MountAnimals(IncidentWorker_TravelerGroup instance, IncidentParms parms)
        {
            List <Pawn> pawns = Traverse.Create(instance).Method("SpawnPawns", new object[] { parms }).GetValue <List <Pawn> >();

            if (!pawns.NullOrEmpty())
            {
                NPCMountUtility.generateMounts(ref pawns, parms, Base.inBiomeWeight, Base.outBiomeWeight, Base.nonWildWeight, Base.visitorMountChance, Base.visitorMountChanceTribal);
            }
            return(pawns);
        }
Beispiel #5
0
 public static void mountAnimals(ref List <Pawn> list, IncidentParms parms)
 {
     if (list.Count == 0 || !(parms.raidArrivalMode == PawnsArriveMode.EdgeWalkIn || parms.raidArrivalMode == PawnsArriveMode.Undecided) || (parms.raidStrategy != null && parms.raidStrategy.workerClass == typeof(RaidStrategyWorker_Siege)))
     {
         return;
     }
     NPCMountUtility.generateMounts(ref list, parms, Base.inBiomeWeight, Base.outBiomeWeight, Base.nonWildWeight, Base.enemyMountChance, Base.enemyMountChanceTribal);
     foreach (Pawn pawn in list)
     {
         if (pawn.equipment == null)
         {
             pawn.equipment = new Pawn_EquipmentTracker(pawn);
         }
     }
 }
        public static IEnumerable <Pawn> MountAnimals(PawnGroupMakerParms groupParms, bool warnOnZeroResults, IncidentParms parms)
        {
            List <Pawn> list = PawnGroupMakerUtility.GeneratePawns(groupParms, true).ToList();

            if (list.Count == 0)
            {
                return(list);
            }
            parms.raidArrivalMode.Worker.Arrive(list, parms);
            if (!(parms.raidArrivalMode == null || parms.raidArrivalMode == PawnsArrivalModeDefOf.EdgeWalkIn) || (parms.raidStrategy != null && parms.raidStrategy.workerClass == typeof(RaidStrategyWorker_Siege)))
            {
                return(list);
            }
            NPCMountUtility.generateMounts(ref list, parms, Base.inBiomeWeight, Base.outBiomeWeight, Base.nonWildWeight, Base.enemyMountChance, Base.enemyMountChanceTribal);

            foreach (Pawn pawn in list)
            {
                if (pawn.equipment == null)
                {
                    pawn.equipment = new Pawn_EquipmentTracker(pawn);
                }
            }
            return(list);
        }