private static bool Prefix(Site ___site, PawnsArrivalModeDef ___arrivalMode, List <ActiveDropPodInfo> pods) { if (___site.parts == null) { return(true); } foreach (var part in ___site.parts) { if (part.def != MFI_DefOf.MFI_HuntersLodgePart) { continue; } var lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); var num = !___site.HasMap; var orGenerateMap = GetOrGenerateMapUtility.GetOrGenerateMap(___site.Tile, ___site.PreferredMapSize, null); if (num) { Find.TickManager.Notify_GeneratedPotentiallyHostileMap(); PawnRelationUtility.Notify_PawnsSeenByPlayer_Letter_Send(orGenerateMap.mapPawns.AllPawns, "LetterRelatedPawnsInMapWherePlayerLanded".Translate(Faction.OfPlayer.def.pawnsPlural), LetterDefOf.NeutralEvent, true); } Messages.Message("MessageTransportPodsArrived".Translate(), lookTarget, MessageTypeDefOf.TaskCompletion); ___arrivalMode.Worker.TravelingTransportPodsArrived(pods, orGenerateMap); return(false); } return(true); }
public override void Arrived(List <ActiveDropPodInfo> pods, int tile) { Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); bool flag = !mapParent.HasMap; Map orGenerateMap = GetOrGenerateMapUtility.GetOrGenerateMap(tile, null); Settlement settlement; if ((settlement = orGenerateMap.Parent as Settlement) != null && settlement.Faction != Faction.OfPlayer) { TaggedString letterLabel = "LetterLabelCaravanEnteredEnemyBase".Translate(); TaggedString letterText = "LetterShuttleLandedInEnemyBase".Translate(settlement.Label).CapitalizeFirst(); SettlementUtility.AffectRelationsOnAttacked_NewTmp(settlement, ref letterText); if (flag) { Find.TickManager.Notify_GeneratedPotentiallyHostileMap(); PawnRelationUtility.Notify_PawnsSeenByPlayer_Letter(orGenerateMap.mapPawns.AllPawns, ref letterLabel, ref letterText, "LetterRelatedPawnsInMapWherePlayerLanded".Translate(Faction.OfPlayer.def.pawnsPlural), informEvenIfSeenBefore: true); } Find.LetterStack.ReceiveLetter(letterLabel, letterText, LetterDefOf.NeutralEvent, lookTarget, settlement.Faction); } foreach (ActiveDropPodInfo pod in pods) { pod.missionShuttleHome = missionShuttleHome; pod.missionShuttleTarget = missionShuttleTarget; pod.sendAwayIfQuestFinished = sendAwayIfQuestFinished; pod.questTags = questTags; } PawnsArrivalModeDefOf.Shuttle.Worker.TravelingTransportPodsArrived(pods, orGenerateMap); Messages.Message("MessageShuttleArrived".Translate(), lookTarget, MessageTypeDefOf.TaskCompletion); }
public static bool Prefix( TransportPodsArrivalAction_LandInSpecificCell __instance, List <ActiveDropPodInfo> pods, int tile) { foreach (ActiveDropPodInfo pod in pods) { for (int index = 0; index < pod.innerContainer.Count; index++) { if (pod.innerContainer[index].TryGetComp <CompLaunchableSRTS>() != null) { Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); Traverse traverse = Traverse.Create((object)__instance); IntVec3 c = traverse.Field("cell").GetValue <IntVec3>(); Map map = traverse.Field("mapParent").GetValue <MapParent>().Map; TransportPodsArrivalActionUtility.RemovePawnsFromWorldPawns(pods); for (int i = 0; i < pods.Count; ++i) { pods[i].openDelay = 0; DropPodUtility.MakeDropPodAt(c, map, pods[i]); } Messages.Message("MessageTransportPodsArrived".Translate(), (LookTargets)lookTarget, MessageTypeDefOf.TaskCompletion, true); return(false); } } } return(true); }
public static bool Prefix(TransportPodsArrivalAction_LandInSpecificCell __instance, List <ActiveDropPodInfo> pods, int tile, IntVec3 ___cell, MapParent ___mapParent) { // Log.Message(string.Format("pods: {0}", pods.Count)); foreach (ActiveDropPodInfo info in pods) { for (int i = 0; i < info.innerContainer.Count; i++) { Thing dropship = info.innerContainer[i]; CompDropship comp = dropship.TryGetCompFast <CompDropship>(); if (comp != null) { // Log.Message(string.Format("pods: {0}", info.innerContainer.ContentsString)); Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); Traverse tv = Traverse.Create(__instance); IntVec3 c = ___cell; Map map = ___mapParent.Map; TransportPodsArrivalActionUtility.RemovePawnsFromWorldPawns(pods); for (int ii = 0; ii < pods.Count; ii++) { DropPodUtility.MakeDropPodAt(c, map, pods[ii]); } Messages.Message("AvP_USCM_Dropship_MessageArrived".Translate(), lookTarget, MessageTypeDefOf.TaskCompletion, true); return(false); } } } return(true); }
public override void Arrived(List <ActiveDropPodInfo> pods, int tile) { Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); BombRunArrivalUtility.BombWithSRTS(pods, this.targetCellA, this.targetCellB, this.bombCells, this.bombType, this.mapParent.Map, originalMap, originalLandingSpot); Messages.Message("BombRunStarted".Translate(), lookTarget, MessageTypeDefOf.CautionInput, true); }
public override void TravelingTransportPodsArrived(List <ActiveDropPodInfo> dropPods, Map map) { if (!DropCellFinder.TryFindRaidDropCenterClose(out IntVec3 near, map, true, true, true, -1)) { near = DropCellFinder.FindRaidDropCenterDistant(map, false); } TransportPodsArrivalActionUtility.DropTravelingTransportPods(dropPods, near, map); }
public override void TravelingTransportPodsArrived(List <ActiveDropPodInfo> dropPods, Map map) { if (!DropCellFinder.TryFindRaidDropCenterClose(out IntVec3 spot, map)) { spot = DropCellFinder.FindRaidDropCenterDistant_NewTemp(map); } TransportPodsArrivalActionUtility.DropTravelingTransportPods(dropPods, spot, map); }
// Token: 0x0600738E RID: 29582 RVA: 0x002893F0 File Offset: 0x002875F0 public static void PlaceTravelingTunnelers(List <ActiveDropPodInfo> dropPods, IntVec3 near, Map map) { TransportPodsArrivalActionUtility.RemovePawnsFromWorldPawns(dropPods); for (int i = 0; i < dropPods.Count; i++) { IntVec3 c; DropCellFinder.TryFindDropSpotNear(near, map, out c, false, true, true, null); TunnelRaidUtility.MakeTunnelAt(c, map, dropPods[i]); } }
public static IEnumerable <FloatMenuOption> GetFloatMenuOptions(CompLaunchable representative, IEnumerable <IThingHolder> pods, MapParent site) { foreach (FloatMenuOption floatMenuOption in TransportPodsArrivalActionUtility.GetFloatMenuOptions(() => CanVisit(pods, site), () => new TransportPodsArrivalAction_VisitRuins(site, PawnsArrivalModeDefOf.EdgeDrop), "DropAtEdge".Translate(), representative, site.Tile)) { yield return(floatMenuOption); } foreach (FloatMenuOption floatMenuOption2 in TransportPodsArrivalActionUtility.GetFloatMenuOptions(() => CanVisit(pods, site), () => new TransportPodsArrivalAction_VisitRuins(site, PawnsArrivalModeDefOf.CenterDrop), "DropInCenter".Translate(), representative, site.Tile)) { yield return(floatMenuOption2); } }
public static FloatMenuAcceptanceReport CanVisit(IEnumerable <IThingHolder> pods, Settlement settlement) { if (settlement == null || !settlement.Spawned || !settlement.Visitable) { if (settlement.Faction.IsPlayer) { return(true); } return(false); } if (!TransportPodsArrivalActionUtility.AnyPotentialCaravanOwner(pods, Faction.OfPlayer)) { return(false); } return(true); }
public static FloatMenuAcceptanceReport CanVisit(IEnumerable <IThingHolder> pods, MapParent site) { if (site == null || !site.Spawned) { return(false); } if (!TransportPodsArrivalActionUtility.AnyNonDownedColonist(pods)) { return(false); } if (site.EnterCooldownBlocksEntering()) { return(FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(site.EnterCooldownDaysLeft().ToString("0.#")))); } return(true); }
public override void Arrived(List <ActiveDropPodInfo> pods, int tile) { Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); bool flag = !this.site.HasMap; Map orGenerateMap = GetOrGenerateMapUtility.GetOrGenerateMap(this.site.Tile, this.site.PreferredMapSize, null); if (flag) { Find.TickManager.Notify_GeneratedPotentiallyHostileMap(); PawnRelationUtility.Notify_PawnsSeenByPlayer_Letter_Send(orGenerateMap.mapPawns.AllPawns, "LetterRelatedPawnsInMapWherePlayerLanded".Translate(Faction.OfPlayer.def.pawnsPlural), LetterDefOf.NeutralEvent, true, true); } if (this.site.Faction != null && this.site.Faction != Faction.OfPlayer) { Faction.OfPlayer.TryAffectGoodwillWith(this.site.Faction, Faction.OfPlayer.GoodwillToMakeHostile(this.site.Faction), true, true, HistoryEventDefOf.AttackedSettlement, null); } Messages.Message("MessageTransportPodsArrived".Translate(), lookTarget, MessageTypeDefOf.TaskCompletion, true); this.arrivalMode.Worker.TravelingTransportPodsArrived(pods, orGenerateMap); }
public static bool DropSRTSExactSpot(List<ActiveDropPodInfo> dropPods, IntVec3 near, Map map) { foreach (ActiveDropPodInfo pod in dropPods) { foreach (Thing t in pod.innerContainer) { if (DefDatabase<ThingDef>.GetNamedSilentFail(t.def.defName.Split('_')[0])?.GetCompProperties<CompProperties_LaunchableSRTS>() != null) { TransportPodsArrivalActionUtility.RemovePawnsFromWorldPawns(dropPods); foreach (ActiveDropPodInfo pod2 in dropPods) { DropPodUtility.MakeDropPodAt(near, map, pod2); } return false; } } } return true; }
public override void Arrived(List <ActiveDropPodInfo> pods, int tile) { Debug.Log("Overridden arrive pods"); Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); bool flag = !site.HasMap; Map orGenerateMap = GetOrGenerateMapUtility.GetOrGenerateMap(site.Tile, RuinedBaseWorker.MapSize, null); if (flag) { Find.TickManager.Notify_GeneratedPotentiallyHostileMap(); PawnRelationUtility.Notify_PawnsSeenByPlayer_Letter_Send(orGenerateMap.mapPawns.AllPawns, "LetterRelatedPawnsInMapWherePlayerLanded".Translate(Faction.OfPlayer.def.pawnsPlural), LetterDefOf.NeutralEvent, informEvenIfSeenBefore: true); Find.LetterStack.ReceiveLetter("LetterLabelTransportPodsArrivedAtRuins".Translate(), "LetterTransportPodsArrivedAtRuins".Translate().CapitalizeFirst(), LetterDefOf.ThreatBig, lookTarget, null, null); } else { Messages.Message("MessageTransportPodsArrived".Translate(), lookTarget, MessageTypeDefOf.TaskCompletion); } arrivalMode.Worker.TravelingTransportPodsArrived(pods, orGenerateMap); }
public override void TravelingTransportPodsArrived(List <ActiveDropPodInfo> dropPods, Map map) { if (dropPods.Count > 1) { TransportPodsArrivalActionUtility.DropShuttle_NewTemp(dropPods, map, IntVec3.Invalid); return; } ActiveDropPodInfo activeDropPodInfo = dropPods[0]; List <Pawn> requiredPawns = activeDropPodInfo.innerContainer.Where((Thing t) => t is Pawn).Cast <Pawn>().ToList(); Thing thing = TransportPodsArrivalActionUtility.DropShuttle_NewTemp(dropPods, map, IntVec3.Invalid); thing.questTags = activeDropPodInfo.questTags; CompShuttle compShuttle = thing.TryGetComp <CompShuttle>(); if (compShuttle == null) { return; } compShuttle.sendAwayIfQuestFinished = activeDropPodInfo.sendAwayIfQuestFinished; if (activeDropPodInfo.missionShuttleHome == null && activeDropPodInfo.missionShuttleTarget == null) { return; } compShuttle.missionShuttleTarget = activeDropPodInfo.missionShuttleHome; compShuttle.missionShuttleHome = null; compShuttle.stayAfterDroppedEverythingOnArrival = true; compShuttle.requiredPawns = requiredPawns; compShuttle.hideControls = false; if (compShuttle.missionShuttleTarget != null) { return; } foreach (Thing item in (IEnumerable <Thing>)compShuttle.Transporter.innerContainer) { Pawn pawn; if ((pawn = item as Pawn) != null && pawn.IsColonist) { pawn.inventory.UnloadEverything = true; } } }
public static bool Prefix(TransportPodsArrivalAction_LandInSpecificCell __instance, List <ActiveDropPodInfo> pods, int tile) { foreach (ActiveDropPodInfo info in pods) { if (info.innerContainer.Contains(ThingDef.Named("Building_Helicopter"))) { Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); Traverse tv = Traverse.Create(__instance); IntVec3 c = tv.Field("cell").GetValue <IntVec3>(); Map map = tv.Field("mapParent").GetValue <MapParent>().Map; TransportPodsArrivalActionUtility.RemovePawnsFromWorldPawns(pods); for (int i = 0; i < pods.Count; i++) { DropPodUtility.MakeDropPodAt(c, map, pods[i]); } Messages.Message("MessageTransportPodsArrived".Translate(), lookTarget, MessageTypeDefOf.TaskCompletion, true); return(false); } } return(true); }
public override void Arrived(List <ActiveDropPodInfo> pods, int tile) { Debug.Log("Overridden arrive pods - visit POI"); Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); bool flag = !site.HasMap; TaggedString letterText = null; TaggedString letterCaption = null; LetterDef letterDef = LetterDefOf.NeutralEvent; if (flag) { if (site.Faction == null) { letterCaption = "LetterLabelCaravanEnteredUnownedPOI".Translate(); letterText = "LetterTransportPodsArrivedInUnownedPOI".Translate().CapitalizeFirst(); letterDef = LetterDefOf.NeutralEvent; } else { letterCaption = "LetterLabelTransportPodsAttackedPOI".Translate(); letterText = "LetterTransportPodsAttackedPOI".Translate().CapitalizeFirst(); letterDef = LetterDefOf.ThreatBig; } } AffectRelationsIfNeeded(ref letterText); Find.LetterStack.ReceiveLetter(letterCaption, letterText, letterDef, lookTarget, null, null); Map orGenerateMap = GetOrGenerateMapUtility.GetOrGenerateMap(site.Tile, new IntVec3(250, 0, 250), null); if (flag) { Find.TickManager.Notify_GeneratedPotentiallyHostileMap(); PawnRelationUtility.Notify_PawnsSeenByPlayer_Letter_Send(orGenerateMap.mapPawns.AllPawns, "LetterRelatedPawnsInMapWherePlayerLanded".Translate(Faction.OfPlayer.def.pawnsPlural), LetterDefOf.NeutralEvent, informEvenIfSeenBefore: true); } arrivalMode.Worker.TravelingTransportPodsArrived(pods, orGenerateMap); }
public static bool Prefix(TransportPodsArrivalAction_LandInSpecificCell __instance, List <ActiveDropPodInfo> pods, int tile) { // Log.Message(string.Format("pods: {0}", pods.Count)); foreach (ActiveDropPodInfo info in pods) { if (info.innerContainer.Contains(USCMDefOf.RRY_USCM_DropshipUD4L)) { // Log.Message(string.Format("pods: {0}", info.innerContainer.ContentsString)); Thing lookTarget = TransportPodsArrivalActionUtility.GetLookTarget(pods); Traverse tv = Traverse.Create(__instance); IntVec3 c = tv.Field("cell").GetValue <IntVec3>(); Map map = tv.Field("mapParent").GetValue <MapParent>().Map; TransportPodsArrivalActionUtility.RemovePawnsFromWorldPawns(pods); for (int i = 0; i < pods.Count; i++) { DropPodUtility.MakeDropPodAt(c, map, pods[i]); } Messages.Message("USCM_Dropship_MessageArrived".Translate(), lookTarget, MessageTypeDefOf.TaskCompletion, true); return(false); } } return(true); }
public override void TravelingTransportPodsArrived(List <ActiveDropPodInfo> dropPods, Map map) { IntVec3 near = DropCellFinder.FindRaidDropCenterDistant(map); TransportPodsArrivalActionUtility.DropTravelingTransportPods(dropPods, near, map); }
// Token: 0x06004602 RID: 17922 RVA: 0x001795D0 File Offset: 0x001777D0 public override void TravelingTransportPodsArrived(List <ActiveDropPodInfo> dropPods, Map map) { IntVec3 near = FindAGoodSpot(map); TransportPodsArrivalActionUtility.DropTravelingTransportPods(dropPods, near, map); }