public static IEnumerable <FloatMenuOption> GetATKFloatMenuOptions(
            CompLaunchableSRTS representative,
            IEnumerable <IThingHolder> pods,
            SettlementBase settlement,
            Caravan car)
        {
            Func <FloatMenuAcceptanceReport> acceptanceReportGetter1 = (Func <FloatMenuAcceptanceReport>)(() => TransportPodsArrivalAction_AttackSettlement.CanAttack(pods, settlement));
            Func <TransportPodsArrivalAction_AttackSettlement> arrivalActionGetter1 = (Func <TransportPodsArrivalAction_AttackSettlement>)(() => new TransportPodsArrivalAction_AttackSettlement(settlement, PawnsArrivalModeDefOf.EdgeDrop));

            object[] objArray1 = new object[1]
            {
                (object)settlement.Label
            };
            foreach (FloatMenuOption floatMenuOption in SRTSArrivalActionUtility.GetFloatMenuOptions <TransportPodsArrivalAction_AttackSettlement>(acceptanceReportGetter1, arrivalActionGetter1, "AttackAndDropAtEdge".Translate(objArray1), representative, settlement.Tile, car))
            {
                FloatMenuOption f = floatMenuOption;
                yield return(f);

                f = (FloatMenuOption)null;
            }
            Func <FloatMenuAcceptanceReport> acceptanceReportGetter2 = (Func <FloatMenuAcceptanceReport>)(() => TransportPodsArrivalAction_AttackSettlement.CanAttack(pods, settlement));
            Func <TransportPodsArrivalAction_AttackSettlement> arrivalActionGetter2 = (Func <TransportPodsArrivalAction_AttackSettlement>)(() => new TransportPodsArrivalAction_AttackSettlement(settlement, PawnsArrivalModeDefOf.CenterDrop));

            object[] objArray2 = new object[1]
            {
                (object)settlement.Label
            };
            foreach (FloatMenuOption floatMenuOption in SRTSArrivalActionUtility.GetFloatMenuOptions <TransportPodsArrivalAction_AttackSettlement>(acceptanceReportGetter2, arrivalActionGetter2, "AttackAndDropInCenter".Translate(objArray2), representative, settlement.Tile, car))
            {
                FloatMenuOption f2 = floatMenuOption;
                yield return(f2);

                f2 = (FloatMenuOption)null;
            }
        }
 public static IEnumerable <FloatMenuOption> GetVisitFloatMenuOptions(
     CompLaunchableSRTS representative,
     IEnumerable <IThingHolder> pods,
     SettlementBase settlement,
     Caravan car)
 {
     return(SRTSArrivalActionUtility.GetFloatMenuOptions <TransportPodsArrivalAction_VisitSettlement>((Func <FloatMenuAcceptanceReport>)(() => TransportPodsArrivalAction_VisitSettlement.CanVisit(pods, settlement)), (Func <TransportPodsArrivalAction_VisitSettlement>)(() => new TransportPodsArrivalAction_VisitSettlement(settlement)), "VisitSettlement".Translate((object)settlement.Label), representative, settlement.Tile, car));
 }
 public static IEnumerable <FloatMenuOption> GetGIFTFloatMenuOptions(CompLaunchableSRTS representative, IEnumerable <IThingHolder> pods, Settlement settlement, Caravan car)
 {
     if (settlement.Faction == Faction.OfPlayer)
     {
         return(Enumerable.Empty <FloatMenuOption>());
     }
     return(SRTSArrivalActionUtility.GetFloatMenuOptions <TransportPodsArrivalAction_GiveGift>((Func <FloatMenuAcceptanceReport>)(() => TransportPodsArrivalAction_GiveGift.CanGiveGiftTo(pods, settlement)), (Func <TransportPodsArrivalAction_GiveGift>)(() => new TransportPodsArrivalAction_GiveGift(settlement)), "GiveGiftViaTransportPods".Translate(settlement.Faction.Name, FactionGiftUtility.GetGoodwillChange(pods, settlement).ToStringWithSign()), representative, settlement.Tile, car));
 }
        public static IEnumerable <FloatMenuOption> GetVisitSite(
            CompLaunchableSRTS representative,
            IEnumerable <IThingHolder> pods,
            Site site,
            Caravan car)
        {
            foreach (FloatMenuOption floatMenuOption in SRTSArrivalActionUtility.GetFloatMenuOptions <TransportPodsArrivalAction_VisitSite>((Func <FloatMenuAcceptanceReport>)(() => TransportPodsArrivalAction_VisitSite.CanVisit(pods, site)), (Func <TransportPodsArrivalAction_VisitSite>)(() => new TransportPodsArrivalAction_VisitSite(site, PawnsArrivalModeDefOf.EdgeDrop)), "DropAtEdge".Translate(), representative, site.Tile, car))
            {
                FloatMenuOption f = floatMenuOption;
                yield return(f);

                f = (FloatMenuOption)null;
            }
            foreach (FloatMenuOption floatMenuOption in SRTSArrivalActionUtility.GetFloatMenuOptions <TransportPodsArrivalAction_VisitSite>((Func <FloatMenuAcceptanceReport>)(() => TransportPodsArrivalAction_VisitSite.CanVisit(pods, site)), (Func <TransportPodsArrivalAction_VisitSite>)(() => new TransportPodsArrivalAction_VisitSite(site, PawnsArrivalModeDefOf.CenterDrop)), "DropInCenter".Translate(), representative, site.Tile, car))
            {
                FloatMenuOption f2 = floatMenuOption;
                yield return(f2);

                f2 = (FloatMenuOption)null;
            }
        }
        public static IEnumerable <FloatMenuOption> GetSettle(
            Settlement bs,
            IEnumerable <IThingHolder> pods,
            CompLaunchableSRTS representative,
            Caravan car)
        {
            foreach (FloatMenuOption floatMenuOption in SRTSStatic.GetMapParent((MapParent)bs, pods, representative, car))
            {
                FloatMenuOption o = floatMenuOption;
                yield return(o);

                o = (FloatMenuOption)null;
            }
            foreach (FloatMenuOption visitFloatMenuOption in SRTSArrivalActionUtility.GetVisitFloatMenuOptions(representative, pods, bs, car))
            {
                FloatMenuOption f = visitFloatMenuOption;
                yield return(f);

                f = (FloatMenuOption)null;
            }
            /*Uncomment to allow gifting of Ship and contents to faction -SmashPhil*/

            /*foreach (FloatMenuOption giftFloatMenuOption in SRTSArrivalActionUtility.GetGIFTFloatMenuOptions(representative, pods, bs, car))
             * {
             * FloatMenuOption f2 = giftFloatMenuOption;
             * yield return f2;
             * f2 = (FloatMenuOption) null;
             * }*/
            foreach (FloatMenuOption atkFloatMenuOption in SRTSArrivalActionUtility.GetATKFloatMenuOptions(representative, pods, bs, car))
            {
                FloatMenuOption f3 = atkFloatMenuOption;
                yield return(f3);

                f3 = (FloatMenuOption)null;
            }
        }