Beispiel #1
0
        public static IEnumerable <FloatMenuOption> GetFloatMenuOptions <T>(Func <FloatMenuAcceptanceReport> acceptanceReportGetter, Func <T> arrivalActionGetter, string label, CompDropship representative, int destinationTile, Caravan car) where T : TransportPodsArrivalAction
        {
            FloatMenuAcceptanceReport rep = acceptanceReportGetter();

            if (rep.Accepted || !rep.FailReason.NullOrEmpty() || !rep.FailMessage.NullOrEmpty())
            {
                if (!rep.FailReason.NullOrEmpty())
                {
                    yield return(new FloatMenuOption(label + " (" + rep.FailReason + ")", null, MenuOptionPriority.Default, null, null, 0f, null, null));
                }
                else
                {
                    yield return(new FloatMenuOption(label, delegate
                    {
                        FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();
                        if (floatMenuAcceptanceReport.Accepted)
                        {
                            representative.TryLaunch(destinationTile, arrivalActionGetter(), car);
                        }
                        else if (!floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
                        {
                            Messages.Message(floatMenuAcceptanceReport.FailMessage, new GlobalTargetInfo(destinationTile), MessageTypeDefOf.RejectInput, false);
                        }
                    }, MenuOptionPriority.Default, null, null, 0f, null, null));
                }
            }
            yield break;
        }
Beispiel #2
0
        public static FloatMenuAcceptanceReport CanVisit(IEnumerable <IThingHolder> pods, Site site)
        {
            FloatMenuAcceptanceReport result;

            if (site == null || !site.Spawned || !site.core.def.transportPodsCanLandAndGenerateMap)
            {
                result = false;
            }
            else if (!TransportPodsArrivalActionUtility.AnyNonDownedColonist(pods))
            {
                result = false;
            }
            else if (site.EnterCooldownBlocksEntering())
            {
                result = FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(new object[]
                {
                    site.EnterCooldownDaysLeft().ToString("0.#")
                }));
            }
            else
            {
                result = true;
            }
            return(result);
        }
Beispiel #3
0
        public static FloatMenuAcceptanceReport CanAttack(IEnumerable <IThingHolder> pods, SettlementBase settlement)
        {
            FloatMenuAcceptanceReport result;

            if (settlement == null || !settlement.Spawned || !settlement.Attackable)
            {
                result = false;
            }
            else if (!TransportPodsArrivalActionUtility.AnyNonDownedColonist(pods))
            {
                result = false;
            }
            else if (settlement.EnterCooldownBlocksEntering())
            {
                result = FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(new object[]
                {
                    settlement.EnterCooldownDaysLeft().ToString("0.#")
                }));
            }
            else
            {
                result = true;
            }
            return(result);
        }
Beispiel #4
0
            public bool MoveNext()
            {
                uint num = (uint)this.$PC;

                this.$PC = -1;
                switch (num)
                {
                case 0u:
                    rep = acceptanceReportGetter();
                    if (rep.Accepted || !rep.FailReason.NullOrEmpty() || !rep.FailMessage.NullOrEmpty())
                    {
                        if (!rep.FailReason.NullOrEmpty())
                        {
                            this.$current = new FloatMenuOption(label + " (" + rep.FailReason + ")", null, MenuOptionPriority.Default, null, null, 0f, null, null);
                            if (!this.$disposing)
                            {
                                this.$PC = 1;
                            }
                            return(true);
                        }
                        string text   = label;
                        Action action = delegate()
                        {
                            FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();
                            if (floatMenuAcceptanceReport.Accepted)
                            {
                                caravan.pather.StartPath(pathDestination, arrivalActionGetter(), true, true);
                            }
                            else if (!floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
                            {
                                Messages.Message(floatMenuAcceptanceReport.FailMessage, new GlobalTargetInfo(pathDestination), MessageTypeDefOf.RejectInput, false);
                            }
                        };
                        WorldObject worldObject = revalidateWorldClickTarget;
                        this.$current = new FloatMenuOption(text, action, MenuOptionPriority.Default, null, null, 0f, null, worldObject);
                        if (!this.$disposing)
                        {
                            this.$PC = 2;
                        }
                        return(true);
                    }
                    break;

                case 1u:
                    break;

                case 2u:
                    if (Prefs.DevMode)
                    {
                        string text   = label + " (Dev: instantly)";
                        Action action = delegate()
                        {
                            FloatMenuAcceptanceReport floatMenuAcceptanceReport = < GetFloatMenuOptions > c__AnonStorey.acceptanceReportGetter();
                            if (floatMenuAcceptanceReport.Accepted)
                            {
                                < GetFloatMenuOptions > c__AnonStorey.caravan.Tile = < GetFloatMenuOptions > c__AnonStorey.pathDestination;
                                < GetFloatMenuOptions > c__AnonStorey.caravan.pather.StopDead();
                                T t = < GetFloatMenuOptions > c__AnonStorey.arrivalActionGetter();
                                t.Arrived(< GetFloatMenuOptions > c__AnonStorey.caravan);
                            }
        public static IEnumerable <FloatMenuOption> GetFloatMenuOptions <T>(Func <FloatMenuAcceptanceReport> acceptanceReportGetter, Func <T> arrivalActionGetter, string label, CompLaunchableSRTS representative, int destinationTile, Caravan car) where T : TransportPodsArrivalAction
        {
            FloatMenuAcceptanceReport rep = acceptanceReportGetter();

            if (rep.Accepted || !rep.FailReason.NullOrEmpty() || !rep.FailMessage.NullOrEmpty())
            {
                if (!rep.FailReason.NullOrEmpty())
                {
                    yield return(new FloatMenuOption(label + " (" + rep.FailReason + ")", null));
                }
                else
                {
                    yield return(new FloatMenuOption(label, (Action)(() =>
                    {
                        FloatMenuAcceptanceReport acceptanceReport = acceptanceReportGetter();
                        if (acceptanceReport.Accepted)
                        {
                            representative.TryLaunch(destinationTile, (TransportPodsArrivalAction)arrivalActionGetter(), car);
                        }
                        else
                        {
                            if (acceptanceReport.FailMessage.NullOrEmpty())
                            {
                                return;
                            }
                            Messages.Message(acceptanceReport.FailMessage, (LookTargets) new GlobalTargetInfo(destinationTile), MessageTypeDefOf.RejectInput, false);
                        }
                    })));
                }
            }
        }
Beispiel #6
0
        public static IEnumerable <FloatMenuOption> GetFloatMenuOptions <T>(Func <FloatMenuAcceptanceReport> acceptanceReportGetter, Func <T> arrivalActionGetter, string label, CompLaunchable representative, int destinationTile) where T : TransportPodsArrivalAction
        {
            _003CGetFloatMenuOptions_003Ec__Iterator0 <T> _003CGetFloatMenuOptions_003Ec__Iterator = (_003CGetFloatMenuOptions_003Ec__Iterator0 <T>) /*Error near IL_0036: stateMachine*/;
            FloatMenuAcceptanceReport rep = acceptanceReportGetter();

            if (rep.Accepted || !rep.FailReason.NullOrEmpty() || !rep.FailMessage.NullOrEmpty())
            {
                if (rep.FailReason.NullOrEmpty())
                {
                    yield return(new FloatMenuOption(label, delegate
                    {
                        FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();
                        if (floatMenuAcceptanceReport.Accepted)
                        {
                            representative.TryLaunch(destinationTile, arrivalActionGetter());
                        }
                        else if (!floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
                        {
                            Messages.Message(floatMenuAcceptanceReport.FailMessage, new GlobalTargetInfo(destinationTile), MessageTypeDefOf.RejectInput, historical: false);
                        }
                    }));

                    /*Error: Unable to find new state assignment for yield return*/;
                }
                yield return(new FloatMenuOption(label + " (" + rep.FailReason + ")", null));

                /*Error: Unable to find new state assignment for yield return*/;
            }
        }
Beispiel #7
0
        public static IEnumerable <FloatMenuOption> GetFloatMenuOptions <T>(Func <FloatMenuAcceptanceReport> acceptanceReportGetter, Func <T> arrivalActionGetter, string label, Caravan caravan, int pathDestination, WorldObject revalidateWorldClickTarget) where T : CaravanArrivalAction
        {
            _003CGetFloatMenuOptions_003Ec__Iterator0 <T> _003CGetFloatMenuOptions_003Ec__Iterator = (_003CGetFloatMenuOptions_003Ec__Iterator0 <T>) /*Error near IL_003a: stateMachine*/;
            FloatMenuAcceptanceReport rep = acceptanceReportGetter();

            if (rep.Accepted || !rep.FailReason.NullOrEmpty() || !rep.FailMessage.NullOrEmpty())
            {
                if (rep.FailReason.NullOrEmpty())
                {
                    Action action = delegate
                    {
                        FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();
                        if (floatMenuAcceptanceReport.Accepted)
                        {
                            caravan.pather.StartPath(pathDestination, arrivalActionGetter(), repathImmediately: true);
                        }
                        else if (!floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
                        {
                            Messages.Message(floatMenuAcceptanceReport.FailMessage, new GlobalTargetInfo(pathDestination), MessageTypeDefOf.RejectInput, historical: false);
                        }
                    };
                    yield return(new FloatMenuOption(label, action, MenuOptionPriority.Default, null, null, 0f, null, revalidateWorldClickTarget));

                    /*Error: Unable to find new state assignment for yield return*/;
                }
                yield return(new FloatMenuOption(label + " (" + rep.FailReason + ")", null));

                /*Error: Unable to find new state assignment for yield return*/;
            }
        }
        public static IEnumerable <FloatMenuOption> GetFloatMenuOptions <T>(Func <FloatMenuAcceptanceReport> acceptanceReportGetter, Func <T> arrivalActionGetter, string label, Action <int, TransportPodsArrivalAction> launchAction, int destinationTile) where T : TransportPodsArrivalAction
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();

            if (!floatMenuAcceptanceReport.Accepted && floatMenuAcceptanceReport.FailReason.NullOrEmpty() && floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
            {
                yield break;
            }
            if (!floatMenuAcceptanceReport.Accepted && !floatMenuAcceptanceReport.FailReason.NullOrEmpty())
            {
                label = label + " (" + floatMenuAcceptanceReport.FailReason + ")";
            }
            yield return(new FloatMenuOption(label, delegate
            {
                FloatMenuAcceptanceReport floatMenuAcceptanceReport2 = acceptanceReportGetter();
                if (floatMenuAcceptanceReport2.Accepted)
                {
                    launchAction(destinationTile, arrivalActionGetter());
                }
                else if (!floatMenuAcceptanceReport2.FailMessage.NullOrEmpty())
                {
                    Messages.Message(floatMenuAcceptanceReport2.FailMessage, new GlobalTargetInfo(destinationTile), MessageTypeDefOf.RejectInput, historical: false);
                }
            }));
        }
Beispiel #9
0
        public static FloatMenuAcceptanceReport WithFailReason(string failReason)
        {
            FloatMenuAcceptanceReport result = default(FloatMenuAcceptanceReport);

            result.acceptedInt   = false;
            result.failReasonInt = failReason;
            return(result);
        }
Beispiel #10
0
        public static FloatMenuAcceptanceReport WithFailMessage(string failMessage)
        {
            FloatMenuAcceptanceReport result = default(FloatMenuAcceptanceReport);

            result.acceptedInt    = false;
            result.failMessageInt = failMessage;
            return(result);
        }
Beispiel #11
0
        public override FloatMenuAcceptanceReport StillValid(Caravan caravan, int destinationTile)
        {
            if (Quest.AttackFail)
            {
                return(FloatMenuAcceptanceReport.WithFailReason("CaravanArrivalAction_EnterToRebelMap_AlreadyStart".Translate()));
            }

            return(base.StillValid(caravan, destinationTile));
        }
Beispiel #12
0
 static bool Prefix(ref FloatMenuAcceptanceReport __result, Caravan caravan, Settlement settlement)
 {
     if (settlement is City city && city.Abandoned)
     {
         __result = false;
         return(false);
     }
     return(true);
 }
Beispiel #13
0
        public override FloatMenuAcceptanceReport CanVisit(Caravan caravan, MapParent mapParent)
        {
            if (Quest.AttackFail)
            {
                return(FloatMenuAcceptanceReport.WithFailReason("CaravanArrivalAction_EnterToRebelMap_AlreadyStart".Translate()));
            }

            return(base.CanVisit(caravan, mapParent));
        }
Beispiel #14
0
        public FloatMenuAcceptanceReport CanUse(Caravan caravan)
        {
            if (Quest.Started)
            {
                return(FloatMenuAcceptanceReport.WithFailReason("CaravanArrivalAction_StartResearchSharing_Already".Translate()));
            }

            return(true);
        }
        public override FloatMenuAcceptanceReport StillValid(Caravan caravan, int destinationTile)
        {
            if (mapParent != null && mapParent.Tile != destinationTile)
            {
                return(FloatMenuAcceptanceReport.WithFailReason("NotEnoughItemsToQuest".Translate()));
            }

            return(CanGiveItems(caravan, mapParent));
        }
        public override FloatMenuAcceptanceReport StillValid(IEnumerable <IThingHolder> pods, int destinationTile)
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = base.StillValid(pods, destinationTile);

            if (!floatMenuAcceptanceReport)
            {
                return(floatMenuAcceptanceReport);
            }
            return(CanFormCaravanAt(pods, destinationTile));
        }
Beispiel #17
0
            public bool MoveNext()
            {
                uint num = (uint)this.$PC;

                this.$PC = -1;
                switch (num)
                {
                case 0u:
                    rep = acceptanceReportGetter();
                    if (rep.Accepted || !rep.FailReason.NullOrEmpty() || !rep.FailMessage.NullOrEmpty())
                    {
                        if (!rep.FailReason.NullOrEmpty())
                        {
                            this.$current = new FloatMenuOption(label + " (" + rep.FailReason + ")", null, MenuOptionPriority.Default, null, null, 0f, null, null);
                            if (!this.$disposing)
                            {
                                this.$PC = 1;
                            }
                        }
                        else
                        {
                            this.$current = new FloatMenuOption(label, delegate()
                            {
                                FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();
                                if (floatMenuAcceptanceReport.Accepted)
                                {
                                    representative.TryLaunch(destinationTile, arrivalActionGetter());
                                }
                                else if (!floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
                                {
                                    Messages.Message(floatMenuAcceptanceReport.FailMessage, new GlobalTargetInfo(destinationTile), MessageTypeDefOf.RejectInput, false);
                                }
                            }, MenuOptionPriority.Default, null, null, 0f, null, null);
                            if (!this.$disposing)
                            {
                                this.$PC = 2;
                            }
                        }
                        return(true);
                    }
                    break;

                case 1u:
                    break;

                case 2u:
                    break;

                default:
                    return(false);
                }
                this.$PC = -1;
                return(false);
            }
 public static FloatMenuAcceptanceReport CanAttack(Caravan caravan, Settlement settlement)
 {
     if (settlement == null || !settlement.Spawned || !settlement.Attackable)
     {
         return(false);
     }
     if (settlement.EnterCooldownBlocksEntering())
     {
         return(FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(settlement.EnterCooldownTicksLeft().ToStringTicksToPeriod())));
     }
     return(true);
 }
Beispiel #19
0
 public static bool CanLandInSpecificCell(IEnumerable <IThingHolder> pods, MapParent mapParent)
 {
     if (mapParent == null || !mapParent.Spawned || !mapParent.HasMap)
     {
         return(false);
     }
     if (mapParent.EnterCooldownBlocksEntering())
     {
         return(FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(mapParent.EnterCooldownDaysLeft().ToString("0.#"))));
     }
     return(true);
 }
Beispiel #20
0
        public static IEnumerable <FloatMenuOption> GetFloatMenuOptions <T>(Func <FloatMenuAcceptanceReport> acceptanceReportGetter, Func <T> arrivalActionGetter, string label, VehiclePawn vehicle, int destinationTile, Action <Action> uiConfirmationCallback = null) where T : AerialVehicleArrivalAction
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();

            if (!floatMenuAcceptanceReport.Accepted && floatMenuAcceptanceReport.FailReason.NullOrEmpty() && floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
            {
                yield break;
            }
            if (!floatMenuAcceptanceReport.FailReason.NullOrEmpty())
            {
                yield return(new FloatMenuOption(label + " (" + floatMenuAcceptanceReport.FailReason + ")", null));

                yield break;
            }
            yield return(new FloatMenuOption(label, delegate
            {
                FloatMenuAcceptanceReport floatMenuAcceptanceReport2 = acceptanceReportGetter();
                if (floatMenuAcceptanceReport2.Accepted)
                {
                    if (uiConfirmationCallback == null)
                    {
                        if (!vehicle.Spawned && VehicleWorldObjectsHolder.Instance.AerialVehicleObject(vehicle) is AerialVehicleInFlight aerialVehicle)
                        {
                            aerialVehicle.OrderFlyToTiles(LaunchTargeter.FlightPath, aerialVehicle.DrawPos, arrivalActionGetter());
                        }
                        else
                        {
                            vehicle.CompVehicleLauncher.TryLaunch(destinationTile, arrivalActionGetter());
                        }
                    }
                    else
                    {
                        if (!vehicle.Spawned && VehicleWorldObjectsHolder.Instance.AerialVehicleObject(vehicle) is AerialVehicleInFlight aerialVehicle)
                        {
                            uiConfirmationCallback(delegate
                            {
                                aerialVehicle.OrderFlyToTiles(LaunchTargeter.FlightPath, aerialVehicle.DrawPos, arrivalActionGetter());
                            });
                        }
                        else
                        {
                            uiConfirmationCallback(delegate
                            {
                                vehicle.CompVehicleLauncher.TryLaunch(destinationTile, arrivalActionGetter());
                            });
                        }
                    }
                }
                else if (!floatMenuAcceptanceReport2.FailMessage.NullOrEmpty())
                {
                    Messages.Message(floatMenuAcceptanceReport2.FailMessage, new GlobalTargetInfo(destinationTile), MessageTypeDefOf.RejectInput, historical: false);
                }
            }));
 public static FloatMenuAcceptanceReport CanVisit(Caravan caravan, Site site)
 {
     if (site == null || !site.Spawned)
     {
         return(false);
     }
     if (site.EnterCooldownBlocksEntering())
     {
         return(FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(site.EnterCooldownTicksLeft().ToStringTicksToPeriod())));
     }
     return(true);
 }
Beispiel #22
0
 public static FloatMenuAcceptanceReport CanEnter(Caravan caravan, MapParent mapParent)
 {
     if (mapParent == null || !mapParent.Spawned || !mapParent.HasMap)
     {
         return(false);
     }
     if (mapParent.EnterCooldownBlocksEntering())
     {
         return(FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(mapParent.EnterCooldownDaysLeft().ToString("0.#"))));
     }
     return(true);
 }
 public static FloatMenuAcceptanceReport CanVisit(Caravan caravan, MapParent escapeShip)
 {
     if (escapeShip == null || !escapeShip.Spawned || escapeShip.GetComponent <EscapeShipComp>() == null)
     {
         return(false);
     }
     if (escapeShip.EnterCooldownBlocksEntering())
     {
         return(FloatMenuAcceptanceReport.WithFailMessage("MessageEnterCooldownBlocksEntering".Translate(escapeShip.EnterCooldownTicksLeft().ToStringTicksToPeriod())));
     }
     return(true);
 }
Beispiel #24
0
		public override FloatMenuAcceptanceReport StillValid(Caravan caravan, int destinationTile)
		{
			FloatMenuAcceptanceReport floatMenuAcceptanceReport = base.StillValid(caravan, destinationTile);
			if (!floatMenuAcceptanceReport)
			{
				return floatMenuAcceptanceReport;
			}
			if (this.settlement != null && this.settlement.Tile != destinationTile)
			{
				return false;
			}
			return CaravanArrivalAction_AttackSettlement.CanAttack(caravan, this.settlement);
		}
        public static IEnumerable <FloatMenuOption> GetFloatMenuOptions <T>(Func <FloatMenuAcceptanceReport> acceptanceReportGetter, Func <T> arrivalActionGetter, string label, Caravan caravan, int pathDestination, WorldObject revalidateWorldClickTarget, Action <Action> confirmActionProxy = null) where T : CaravanArrivalAction
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = acceptanceReportGetter();

            if (!floatMenuAcceptanceReport.Accepted && floatMenuAcceptanceReport.FailReason.NullOrEmpty() && floatMenuAcceptanceReport.FailMessage.NullOrEmpty())
            {
                yield break;
            }
            if (!floatMenuAcceptanceReport.FailReason.NullOrEmpty())
            {
                yield return(new FloatMenuOption(label + " (" + floatMenuAcceptanceReport.FailReason + ")", null));

                yield break;
            }
            Action action = delegate
            {
                FloatMenuAcceptanceReport floatMenuAcceptanceReport3 = acceptanceReportGetter();
                if (floatMenuAcceptanceReport3.Accepted)
                {
                    caravan.pather.StartPath(pathDestination, arrivalActionGetter(), repathImmediately: true);
                }
                else if (!floatMenuAcceptanceReport3.FailMessage.NullOrEmpty())
                {
                    Messages.Message(floatMenuAcceptanceReport3.FailMessage, new GlobalTargetInfo(pathDestination), MessageTypeDefOf.RejectInput, historical: false);
                }
            };

            yield return(new FloatMenuOption(label, (confirmActionProxy == null) ? action : ((Action) delegate
            {
                confirmActionProxy(action);
            }), MenuOptionPriority.Default, null, null, 0f, null, revalidateWorldClickTarget));

            if (!Prefs.DevMode)
            {
                yield break;
            }
            yield return(new FloatMenuOption(label + " (Dev: instantly)", delegate
            {
                FloatMenuAcceptanceReport floatMenuAcceptanceReport2 = acceptanceReportGetter();
                if (floatMenuAcceptanceReport2.Accepted)
                {
                    caravan.Tile = pathDestination;
                    caravan.pather.StopDead();
                    arrivalActionGetter().Arrived(caravan);
                }
                else if (!floatMenuAcceptanceReport2.FailMessage.NullOrEmpty())
                {
                    Messages.Message(floatMenuAcceptanceReport2.FailMessage, new GlobalTargetInfo(pathDestination), MessageTypeDefOf.RejectInput, historical: false);
                }
            }, MenuOptionPriority.Default, null, null, 0f, null, revalidateWorldClickTarget));
        }
        public override FloatMenuAcceptanceReport StillValid(IEnumerable <IThingHolder> pods, int destinationTile)
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = base.StillValid(pods, destinationTile);

            if (!floatMenuAcceptanceReport)
            {
                return(floatMenuAcceptanceReport);
            }
            if (this.caravan != null && !Find.WorldGrid.IsNeighborOrSame(this.caravan.Tile, destinationTile))
            {
                return(false);
            }
            return(TransportPodsArrivalAction_GiveToCaravan.CanGiveTo(pods, this.caravan));
        }
Beispiel #27
0
        public override FloatMenuAcceptanceReport StillValid(IEnumerable <IThingHolder> pods, int destinationTile)
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = base.StillValid(pods, destinationTile);

            if (!floatMenuAcceptanceReport)
            {
                return(floatMenuAcceptanceReport);
            }
            if (mapParent != null && mapParent.Tile != destinationTile)
            {
                return(false);
            }
            return(CanLandInSpecificCell(pods, mapParent));
        }
Beispiel #28
0
        public override FloatMenuAcceptanceReport StillValid(Caravan caravan, int destinationTile)
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = base.StillValid(caravan, destinationTile);

            if (!floatMenuAcceptanceReport)
            {
                return(floatMenuAcceptanceReport);
            }
            if (settlement != null && settlement.Tile != destinationTile)
            {
                return(false);
            }
            return(CanOfferGiftsTo(caravan, settlement));
        }
        public override FloatMenuAcceptanceReport StillValid(IEnumerable <IThingHolder> pods, int destinationTile)
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = base.StillValid(pods, destinationTile);

            if (!floatMenuAcceptanceReport)
            {
                return(floatMenuAcceptanceReport);
            }
            if (this.site != null && this.site.Tile != destinationTile)
            {
                return(false);
            }
            return(TransportPodsArrivalAction_VisitSite.CanVisit(pods, this.site));
        }
        public override FloatMenuAcceptanceReport StillValid(Caravan caravan, int destinationTile)
        {
            FloatMenuAcceptanceReport floatMenuAcceptanceReport = base.StillValid(caravan, destinationTile);

            if (!floatMenuAcceptanceReport)
            {
                return(floatMenuAcceptanceReport);
            }
            if (this.target != null && this.target.Tile != destinationTile)
            {
                return(false);
            }
            return(CaravanArrivalAction_VisitEscapeShip.CanVisit(caravan, this.target));
        }