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); }
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); } }
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); }
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); }
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); }