// Token: 0x060011D5 RID: 4565 RVA: 0x000EC6D0 File Offset: 0x000EA8D0 public static bool Prefix(IntVec3 c, Map map, ActiveDropPodInfo info) { bool result = true; if (info.innerContainer.Any(x => x.def.thingClass == typeof(Pawn) && (x.Faction != null && x.Faction.def.HasModExtension <FactionDefExtension>()))) { List <Thing> list = info.innerContainer.Where(x => x.def.thingClass == typeof(Pawn) && (x.Faction != null && x.Faction.def.HasModExtension <FactionDefExtension>())).ToList(); FactionDefExtension extension = list.RandomElement().Faction.def.GetModExtension <FactionDefExtension>(); if (extension.DropPodOverride == DeepStrikeType.Drop) { DeepStrikeUtility.MakeDropPodAt(c, map, info, extension); result = false; } else if (extension.DropPodOverride == DeepStrikeType.Fly) { DeepStrikeUtility.MakeFlyerLandAt(c, map, info, extension); result = false; } else if (extension.DropPodOverride == DeepStrikeType.Teleport) { DeepStrikeUtility.MakeTeleportAt(c, map, info, extension); result = false; } else if (extension.DropPodOverride == DeepStrikeType.Tunnel) { DeepStrikeUtility.MakeTunnelAt(c, map, info, extension); result = false; } } return(result); }
// Token: 0x060011D5 RID: 4565 RVA: 0x000EC6D0 File Offset: 0x000EA8D0 public static bool Prefix(IntVec3 c, Map map, ActiveDropPodInfo info) { bool result = true; List <Thing> list = new List <Thing>(); for (int i = 0; i < info.innerContainer.Count; i++) { Thing t = info.innerContainer[i]; if (t?.Faction?.def.GetModExtensionFast <FactionDefExtension>() != null) { list.Add(t); } } if (!list.NullOrEmpty()) { Thing thing = list.RandomElement(); FactionDefExtension extension = thing.Faction.def.GetModExtensionFast <FactionDefExtension>(); if (thing.Faction.IsPlayer || extension.DropPodOverride == DeepStrikeType.DropPod && extension.DropPodIncoming == ThingDefOf.DropPodIncoming) { return(result); } if (extension.DropPodOverride == DeepStrikeType.DropPod) { DeepStrikeUtility.MakeDropPodAt(c, map, info, extension); result = false; } else if (extension.DropPodOverride == DeepStrikeType.Fly) { DeepStrikeUtility.MakeFlyerLandAt(c, map, info, extension); result = false; } else if (extension.DropPodOverride == DeepStrikeType.Teleport) { DeepStrikeUtility.MakeTeleportAt(c, map, info, extension); result = false; } else if (extension.DropPodOverride == DeepStrikeType.Tunnel) { DeepStrikeUtility.MakeTunnelAt(c, map, info, extension); result = false; } } return(result); }
public static void Prefix(ref PawnKindDef kindDef) { if (kindDef == PawnKindDefOf.Refugee) { Faction ofPlayer = Faction.OfPlayer; FactionDefExtension extension = ofPlayer.def.GetModExtensionFast <FactionDefExtension>(); if (extension != null && !extension.RefugeeFactions.NullOrEmpty()) { // Log.Message(string.Format("{0}", ofPlayer.def.defName)); var list = (from def in DefDatabase <PawnKindDef> .AllDefs where def.defaultFactionType != null && extension.RefugeeFactions.Contains(def.defaultFactionType) && def.defName.Contains("Refugee") select def).ToList(); if (list.Count > 0) { kindDef = list.RandomElement <PawnKindDef>(); } } } }
public static void Prefix(ref FactionDef facDef) { if (ModLister.RoyaltyInstalled) { if (facDef == FactionDefOf.OutlanderRefugee) { Faction ofPlayer = Faction.OfPlayer; FactionDefExtension extension = ofPlayer.def.GetModExtensionFast <FactionDefExtension>(); if (extension != null && !extension.RefugeeFactions.NullOrEmpty()) { List <FactionDef> list = extension.RefugeeFactions; if (list.Count > 0) { facDef = list.RandomElement <FactionDef>(); } } } } }