From 0192a740008ef6860961b1a1988ef8ddfe316312 Mon Sep 17 00:00:00 2001 From: jecrell Date: Sun, 23 Jul 2017 19:23:06 +0900 Subject: [PATCH] Caravan Enter Fixes Fixed issues with entering somewhere with a caravan. --- About/About.xml | 2 +- Assemblies/AbilityUser.dll | Bin 63488 -> 63488 bytes Assemblies/CompVehicle.dll | Bin 90112 -> 93696 bytes Source/.vs/JecsTools/v15/.suo | Bin 308736 -> 323072 bytes .../JobDriver_CastAbilitySelf.cs | 2 + .../CompVehicle/CompProperties_Vehicle.cs | 3 + .../CompVehicle/CompVehicle.cs | 128 +++++++-------- .../CompVehicle/HarmonyCompVehicle.cs | 151 ++++++++++++++++-- 8 files changed, 203 insertions(+), 83 deletions(-) diff --git a/About/About.xml b/About/About.xml index f4ede7c0..7ec1d066 100644 --- a/About/About.xml +++ b/About/About.xml @@ -5,7 +5,7 @@ 0.17.0 -[1.0.4.15] Adds modding components to RimWorld: vehicles, spell casting, weapon slots, oversized weapons, and more! +[1.0.4.16] Adds modding components to RimWorld: vehicles, spell casting, weapon slots, oversized weapons, and more! Note to players: This mod will not change your game, but rather it lets modders do more, so you can have an even more amazing RimWorld experience. diff --git a/Assemblies/AbilityUser.dll b/Assemblies/AbilityUser.dll index dfd1270dd81dd152b86f132432e18db064d62196..8d0c9c3a9f3d278d09971b097d7de0b88cbeff03 100644 GIT binary patch delta 38 wcmV+>0NMY5@B@JG1CWRV6f$(Ni&5MV&L>VDsMYOGm~&D)4LH!Yv+Udy8%n(qTL1t6 delta 38 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 X(x?e=6;yx}I#SA{b( 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Łp65NE@cxbW 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 W)xTi_*ih=d5QzW(-~ab8@c#f?@snr( diff --git a/Source/.vs/JecsTools/v15/.suo b/Source/.vs/JecsTools/v15/.suo index 1c5c4f674e8f269de6cf15c5b4d18291edab3694..1d54643ea5e60b97e937f78b535de007d04a5b25 100644 GIT binary patch delta 10408 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 D5;mTJ delta 7476 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 G{(l7)^yNkX diff --git a/Source/AllModdingComponents/CompAbilityUser/JobDriver_CastAbilitySelf.cs b/Source/AllModdingComponents/CompAbilityUser/JobDriver_CastAbilitySelf.cs index ac35195e..8f7d5e5f 100644 --- a/Source/AllModdingComponents/CompAbilityUser/JobDriver_CastAbilitySelf.cs +++ b/Source/AllModdingComponents/CompAbilityUser/JobDriver_CastAbilitySelf.cs @@ -351,6 +351,8 @@ public Toil GotoCastPosition(TargetIndex targetInd, bool closeIfDowned = false) } + + protected override IEnumerable MakeNewToils() { diff --git a/Source/AllModdingComponents/CompVehicle/CompProperties_Vehicle.cs b/Source/AllModdingComponents/CompVehicle/CompProperties_Vehicle.cs index 92a02613..c90bd82e 100644 --- a/Source/AllModdingComponents/CompVehicle/CompProperties_Vehicle.cs +++ b/Source/AllModdingComponents/CompVehicle/CompProperties_Vehicle.cs @@ -26,6 +26,9 @@ public enum HandlingType : int public class CompProperties_Vehicle : CompProperties { + //Added 7/23/17 + public float cargoCapacity = 385.554f; // Cargo capacity for your vehicle in kilograms. + public VehicleType vehicleType = VehicleType.LandWheeled; // Defaults to wheeled land vehicles. public HandlingType movementHandling = HandlingType.HandlerRequired; // Is the movement automatic? public HandlingType weaponHandling = HandlingType.HandlerRequired; // Are the weapons automatic? diff --git a/Source/AllModdingComponents/CompVehicle/CompVehicle.cs b/Source/AllModdingComponents/CompVehicle/CompVehicle.cs index 6e386065..9a8fa22c 100644 --- a/Source/AllModdingComponents/CompVehicle/CompVehicle.cs +++ b/Source/AllModdingComponents/CompVehicle/CompVehicle.cs @@ -47,6 +47,7 @@ public class CompVehicle : ThingComp public List repairCostList = new List(); private Sustainer movingSustainer; + #region SwenzisCode //------ Additions By Swenzi ------- //Purpose: Control the boolean warnedOnNoFuel //Logic: Needed to prevent spamming of the warning message @@ -67,6 +68,7 @@ public List PawnsInVehicle set => this.vehicleContents = value; } //------ Additions By Swenzi ------- +#endregion SwenzisCode public bool CanManipulate => this.Props.manipulationHandling > HandlingType.HandlerRequired || ManipulationHandlerAvailable; public bool ManipulationHandlerAvailable @@ -265,93 +267,85 @@ public void ResolveFactionPilots() } public void ResolveEjection() { - //----Additions Made By Swenzi----- + //----Additions Made By Swenzi----- //Purpose: Ejects pawns if the need of that pawn is below the threshold set by ejectIfBelowNeedPercent //Logic: Prevents pawns from starving to death or other need related issues i.e. moral from poor management of pawns in vehicles //Improvements: Have pawns remember the vehicle they left, so they return after needs are satisfied? - CompRefuelable refuelable = this.Pawn.GetComp(); - if (refuelable != null) + //CompRefuelable refuelable = this.Pawn.GetComp(); + //if (refuelable != null) + //{ + if (this.parent is Pawn vehicle && vehicle.Spawned && this.handlers != null && this.handlers.Count > 0) { - if (this.handlers != null && this.handlers.Count > 0) + //Find and remove all spawned characters from the vehicle list. + foreach (VehicleHandlerGroup group in this.handlers) { - foreach (VehicleHandlerGroup group in this.handlers) + Pawn toRemove = group?.handlers?.InnerListForReading?.FirstOrDefault(x => x.Spawned); + if (toRemove != null) { - if ((group?.handlers?.Count ?? 0) > 0) - { - for (int i = 0; i < group.handlers.Count; i++) - { - Pawn pawn = group.handlers[i]; - List pawnNeeds = pawn.needs.AllNeeds; - for (int j = 0; j < pawnNeeds.Count; j++) - { - if (pawnNeeds[j].CurLevelPercentage < this.Props.ejectIfBelowNeedPercent) - { - //Prevents annoying issues where the pawn leaves the vehicle due to needs when forming a caravan - //since they can wait till world map, world needs are handled seperately by the game - if (!this.Pawn.IsCaravanMember() && !((this.Pawn.GetLord()?.LordJob?.ToString()) == "RimWorld.LordJob_FormAndSendCaravan")) - { - //Prevents annoying issues where the pawn leaves the vehicle despite the player wanting - //the pawn to enter the vehicle. I.e. Life and death situation? Ignore Needs. Live!!!! - if (!this.Pawn.IsFighting() && !pawn.IsFighting()) - { - //Notify the player that "Johnny" has left the vehicle so the pawn can be punished as appropriate - Messages.Message("MessagePawnLeftVehicle".Translate(new object[] { pawn.Label, this.Pawn.Label, pawnNeeds[j].def.defName }), this.Pawn, MessageSound.SeriousAlert); - Eject(pawn, group.handlers); - group.handlers.Remove(pawn); - break; - } - } - } - } - - - } - } + //Log.Message("x"); + group.handlers.InnerListForReading.Remove(toRemove); + //return; + } + } + //Find and eject all characters who need to have their needs met. + foreach (VehicleHandlerGroup group in this.handlers) + { + Pawn toEject = group?.handlers?.InnerListForReading?.FirstOrDefault(x => !x.Spawned && x?.needs?.AllNeeds?.FirstOrDefault(y => y.CurLevelPercentage < this.Props.ejectIfBelowNeedPercent) != null); + if (toEject != null) + { + Messages.Message("MessagePawnLeftVehicle".Translate(new object[] { toEject.Label, this.Pawn.Label, "low" }), this.Pawn, MessageSound.SeriousAlert); + //Eject(p, ref group.handlers); + Pawn b; + //Log.Message("1"); + group.handlers.TryDrop(toEject, this.Pawn.PositionHeld, this.Pawn.MapHeld, ThingPlaceMode.Near, out b); + //Log.Message("2"); + //return; } } - } + //} - //----Additions Made By Swenzi----- + //----Additions Made By Swenzi----- - //Every 250 ticks - if (this.Props.ejectIfBelowHealthPercent > 0.0f) - { - if (Find.TickManager.TicksGame % 250 == 0) + //Every 250 ticks + if (this.Props.ejectIfBelowHealthPercent > 0.0f) { - if (this.Pawn.Dead || this.Pawn.Downed) + if (Find.TickManager.TicksGame % 250 == 0) { - if (this.handlers != null && this.handlers.Count > 0) + if (this.Pawn.Dead || this.Pawn.Downed) { - foreach (VehicleHandlerGroup group in this.handlers) + if (this.handlers != null && this.handlers.Count > 0) { - EjectAll(group.handlers); + foreach (VehicleHandlerGroup group in this.handlers) + { + EjectAll(ref group.handlers); + } + this.weaponStatus = WeaponState.frozen; + this.movingStatus = MovingState.frozen; + if (this.Pawn.Downed && this.Pawn.Faction != Faction.OfPlayerSilentFail) this.Pawn.SetFaction(Faction.OfPlayerSilentFail); + return; } - this.weaponStatus = WeaponState.frozen; - this.movingStatus = MovingState.frozen; - if (this.Pawn.Downed && this.Pawn.Faction != Faction.OfPlayerSilentFail) this.Pawn.SetFaction(Faction.OfPlayerSilentFail); - return; } - } - if (this.Pawn.health != null) - { - if (this.Pawn.health.summaryHealth != null) + if (this.Pawn.health != null) { - float currentHealthPercentage = this.Pawn.health.summaryHealth.SummaryHealthPercent; - if (currentHealthPercentage < this.Props.ejectIfBelowHealthPercent) + if (this.Pawn.health.summaryHealth != null) { - if (this.handlers != null && this.handlers.Count > 0) + float currentHealthPercentage = this.Pawn.health.summaryHealth.SummaryHealthPercent; + if (currentHealthPercentage < this.Props.ejectIfBelowHealthPercent) { - foreach (VehicleHandlerGroup group in this.handlers) + if (this.handlers != null && this.handlers.Count > 0) { - EjectAll(group.handlers); + foreach (VehicleHandlerGroup group in this.handlers) + { + EjectAll(ref group.handlers); + } + this.weaponStatus = WeaponState.frozen; + this.movingStatus = MovingState.frozen; + if (this.Pawn.Downed) this.Pawn.SetFaction(Faction.OfPlayerSilentFail); + return; } - this.weaponStatus = WeaponState.frozen; - this.movingStatus = MovingState.frozen; - if (this.Pawn.Downed) this.Pawn.SetFaction(Faction.OfPlayerSilentFail); - return; } } } @@ -497,7 +491,7 @@ public void ResolveNeeds(){ } // ------ Additions made by Swenzi ------ - public void Eject(Pawn pawn, ThingOwner list) + public void Eject(Pawn pawn, ref ThingOwner list) { if (!pawn.Spawned) { @@ -505,14 +499,14 @@ public void Eject(Pawn pawn, ThingOwner list) } list.Remove(pawn); } - public void EjectAll(ThingOwner pawns) + public void EjectAll(ref ThingOwner pawns) { List pawnsToEject = new List(pawns); if (pawnsToEject != null && pawnsToEject.Count > 0) { foreach (Pawn p in pawnsToEject) { - Eject(p, pawns); + Eject(p, ref pawns); } } } @@ -614,7 +608,7 @@ public void GetVehicleButtonFloatMenu(VehicleHandlerGroup group, bool canLoad) Func extraPartOnGUI = (Rect rect) => Widgets.InfoCardButton(rect.x + 5f, rect.y + (rect.height - 24f) / 2f, handler); list.Add(new FloatMenuOption(text, delegate { - Eject(handler, group.handlers); + Eject(handler, ref group.handlers); }, MenuOptionPriority.Default, null, null, 29f, extraPartOnGUI, null)); } } diff --git a/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs b/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs index 5b71c67d..db16f768 100644 --- a/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs +++ b/Source/AllModdingComponents/CompVehicle/HarmonyCompVehicle.cs @@ -13,6 +13,8 @@ using System.Text; using System; using Verse.Sound; +using Verse.AI.Group; + namespace CompVehicle { [StaticConstructorOnStartup] @@ -84,6 +86,12 @@ static HarmonyCompVehicle() harmony.Patch(AccessTools.Method(typeof(LordToil_PrepareCaravan_GatherAnimals), "UpdateAllDuties"), new HarmonyMethod(typeof(HarmonyCompVehicle), "UpdateAllDutiesTwo_Prefix"), null); harmony.Patch(AccessTools.Method(typeof(LordToil_PrepareCaravan_GatherSlaves), "LordToilTick"), new HarmonyMethod(typeof(HarmonyCompVehicle), "LordToilTick_PreFix"), null); + //Changes the caravan capacity for the vehicle. + harmony.Patch(AccessTools.Method(typeof(MassUtility), "Capacity"), null, new HarmonyMethod(typeof(HarmonyCompVehicle), "Capacity_PostFix"), null); + + //TB + harmony.Patch(AccessTools.Method(typeof(JobGiver_PrepareCaravan_GatherItems), "TryGiveJob"), new HarmonyMethod(typeof(HarmonyCompVehicle), "TryGiveItemJob_PreFix"), null); + //Adds fuel to Inspect Pane when a vehicle is selected that uses fuel. //harmony.Patch(AccessTools.Method(AccessTools.TypeByName("InspectPaneFiller"), "DrawMood"), null, new HarmonyMethod(typeof(HarmonyCompVehicle), "DrawMood_PostFix"), null); @@ -122,7 +130,7 @@ static HarmonyCompVehicle() harmony.Patch(AccessTools.Method(typeof(RimWorld.Planet.CaravanExitMapUtility), "ExitMapAndJoinOrCreateCaravan"), null, new HarmonyMethod(typeof(HarmonyCompVehicle),nameof(ExitMapAndJoinOrCreateCaravan_PostFix))); //Add pawns back to the vehicle and remove them from the caravan when entering the map - harmony.Patch(AccessTools.Method(typeof(RimWorld.Planet.CaravanEnterMapUtility), "Enter", new Type[] { typeof(Caravan), typeof(Map), typeof(Func), typeof(CaravanDropInventoryMode), typeof(bool) }), new HarmonyMethod(typeof(HarmonyCompVehicle),nameof(Enter_PreFix)), null); + harmony.Patch(AccessTools.Method(typeof(RimWorld.Planet.CaravanEnterMapUtility), "Enter", new Type[] { typeof(Caravan), typeof(Map), typeof(Func), typeof(CaravanDropInventoryMode), typeof(bool) }), null, new HarmonyMethod(typeof(HarmonyCompVehicle),nameof(Enter_PostFix)), null); //Modifies the caravan inspect string so fuel is shown harmony.Patch(AccessTools.Method(typeof(RimWorld.Planet.Caravan), "GetInspectString"), null, new HarmonyMethod(typeof(HarmonyCompVehicle),nameof(GetInspectString_PostFix))); @@ -145,6 +153,15 @@ static HarmonyCompVehicle() #endregion SwenziPatches } + // RimWorld.MassUtility + public static void Capacity_PostFix(ref float __result, Pawn p) + { + if (p?.TryGetComp() is CompVehicle v) + { + __result = (__result != 0) ? (v?.Props?.cargoCapacity ?? p.BodySize * 35) : 0; + } + } + ////InspectPaneFiller //public static void DrawMood_PostFix(WidgetRow row, Pawn pawn) //{ @@ -272,7 +289,6 @@ public static bool DoRows_PreFix(Vector2 size, ref List things, Caravan c } - public static bool set_Drafted_PreFix(Pawn_DraftController __instance, bool value) { if (__instance?.pawn?.TryGetComp() is CompVehicle v) @@ -671,7 +687,7 @@ public static void ExitMapAndJoinOrCreateCaravan_PostFix(Pawn pawn) //Improvements: Have this function for incidents? Or leave pawns outside since incidents "catch the player (pawns by extension) off guard" //RimWorld.Planet.CaravanExitMapUtility - public static void Enter_PreFix(Caravan caravan) + public static void Enter_PostFix(Caravan caravan) { List members = caravan.PawnsListForReading; for (int i = 0; i < members.Count; i++) @@ -692,7 +708,7 @@ public static void Enter_PreFix(Caravan caravan) if (pawn == members[j]) { //Add the pawn to the vehicle and remove it from the caravan - vehicle.handlers.Add(new VehicleHandlerGroup(members[j], group.role, new List())); + if (!pawn.Spawned) vehicle.handlers.Add(new VehicleHandlerGroup(members[j], group.role, new List())); caravan.RemovePawn(members[j]); } } @@ -752,7 +768,6 @@ public static void GetInspectString_PostFix(Caravan __instance, ref string __res //Purpose: Bug fixes IWTab social issue for caravans //Logic: Vehicles don't have socialinfo so skip them //Improvements: None I can think of - public static bool Recache_PreFix(Pawn selPawnForSocialInfo) { if (selPawnForSocialInfo == null || selPawnForSocialInfo.relations == null) @@ -762,7 +777,6 @@ public static bool Recache_PreFix(Pawn selPawnForSocialInfo) //Purpose: Modifies the Caravan Needs WITab to show vehicle fuel //Logic: Players should be able to see how much fuel each vehicle has - public static IEnumerable DoRow_Transpiler(IEnumerable instructions, ILGenerator ilg) { MethodInfo downedInfo = AccessTools.Property(typeof(Pawn), nameof(Pawn.Downed)).GetGetMethod(); @@ -1032,7 +1046,7 @@ public static void LordToilTick_PreFix(LordToil_PrepareCaravan_GatherSlaves __in if (Find.TickManager.TicksGame % 100 == 0) { IntVec3 meetingPoint = Traverse.Create(__instance).Field("meetingPoint").GetValue(); - GatherAnimalsAndSlavesForCaravanUtility.CheckArrived(__instance.lord, meetingPoint, "AllSlavesGathered", (Pawn x) => (!x.IsColonist && !(x.GetComp() is CompVehicle compVehicle && compVehicle.MovementHandlerAvailable)) && !x.RaceProps.Animal, (Pawn x) => GatherAnimalsAndSlavesForCaravanUtility.IsFollowingAnyone(x)); + GatherAnimalsAndSlavesForCaravanUtility.CheckArrived(__instance.lord, meetingPoint, "AllSlavesGathered", (Pawn x) => (!x.IsColonist && !(x.GetComp() is CompVehicle compVehicle && compVehicle.CanMove)) && !x.RaceProps.Animal, (Pawn x) => GatherAnimalsAndSlavesForCaravanUtility.IsFollowingAnyone(x)); } } @@ -1071,22 +1085,53 @@ public static void UpdateAllDutiesTwo_Prefix(LordToil_PrepareCaravan_GatherAnima } } + // RimWorld.JobGiver_PrepareCaravan_GatherItems + public static bool TryGiveItemJob_PreFix(ref Job __result, Pawn pawn) + { + Log.Message("Fail0"); + if (pawn?.TryGetComp() is CompVehicle v) + { + if (!pawn.health.capacities.CapableOf(PawnCapacityDefOf.Manipulation)) + { + Log.Message("Fail1"); + __result = null; + return false; + } + Lord lord = pawn.GetLord(); + Thing thing = GatherItemsForCaravanUtility.FindThingToHaul(pawn, lord); + if (thing == null) + { + Log.Message("Fail2"); + + __result = null; + return false; + } + __result = new Job(JobDefOf.PrepareCaravan_GatherItems, thing) + { + lord = lord + }; + Log.Message("Success"); + + return false; + } + return true; + } // RimWorld.LordToil_PrepareCaravan_GatherItems public static bool UpdateAllDuties_PreFix(LordToil_PrepareCaravan_GatherItems __instance) { //Log.Message("1"); - if (__instance.lord.ownedPawns is List pawns && !pawns.NullOrEmpty() && pawns.FirstOrDefault(x => x.GetComp() != null) != null) + if (__instance.lord.ownedPawns.FindAll(x => x.GetComp() != null) is List pawns && !pawns.NullOrEmpty()) { //Log.Message("2"); - for (int i = 0; i < pawns.Count; i++) + for (int i = 0; i < __instance.lord.ownedPawns.Count; i++) { Pawn pawn = pawns[i]; - if (pawn.IsColonist || pawn.GetComp() is CompVehicle comp && comp.MovementHandlerAvailable) + if (pawn.IsColonist || pawn.GetComp() is CompVehicle comp && comp.CanMove) { - //Log.Message("3"); + Log.Message("3"); pawn.mindState.duty = new PawnDuty(DutyDefOf.PrepareCaravan_GatherItems); } @@ -1107,15 +1152,91 @@ public static bool UpdateAllDuties_PreFix(LordToil_PrepareCaravan_GatherItems __ // RimWorld.Dialog_FormCaravan - public static bool CheckForErrors_PreFix(List pawns, ref bool __result) + // Modified vanilla method, because I'm terrible. + public static bool CheckForErrors_PreFix(Dialog_FormCaravan __instance, List pawns, ref bool __result) { if (pawns.FindAll((x) => x.GetComp() != null) is List vehicles) { - if (vehicles.Any((y) => y.GetComp() is CompVehicle vehicle && vehicle.MovementHandlerAvailable)) + Log.Message("TestA"); + bool localReform = Traverse.Create(__instance).Field("reform").GetValue(); + if (!localReform && + Traverse.Create(__instance).Field("startingTile").GetValue() < 0) { - __result = true; + Messages.Message("NoExitDirectionForCaravanChosen".Translate(), MessageSound.RejectInput); return false; } + if (!pawns.Any((Pawn x) => CaravanUtility.IsOwner(x, Faction.OfPlayer) && !x.Downed)) + { + if (!pawns.Any((Pawn y) => y.TryGetComp() is CompVehicle v)) + { + if (!pawns.Any((Pawn z) => z.TryGetComp() is CompVehicle v && v.CanMove)) + { + Messages.Message("CaravanMustHaveAtLeastOneColonist".Translate(), MessageSound.RejectInput); + return false; + } + } + } + if (!localReform && Traverse.Create(__instance).Property("MassUsage").GetValue() > Traverse.Create(__instance).Property("MassCapacity").GetValue()) + { + AccessTools.Method(typeof(Dialog_FormCaravan), "FlashMass").Invoke(__instance, null); + Messages.Message("TooBigCaravanMassUsage".Translate(), MessageSound.RejectInput); + return false; + } + Pawn pawn = pawns.Find((Pawn x) => + (x.TryGetComp() == null || x.TryGetComp() is CompVehicle v && !v.CanMove) && + !pawns.Any((Pawn y) => !y.IsPrisoner && !y.RaceProps.Animal && y.CanReach(x, PathEndMode.Touch, Danger.Deadly, false, TraverseMode.ByPawn))); + if (pawn != null) + { + Messages.Message("CaravanPawnIsUnreachable".Translate(new object[] + { + pawn.LabelShort + }).CapitalizeFirst(), pawn, MessageSound.RejectInput); + return false; + } + for (int i = 0; i < __instance.transferables.Count; i++) + { + if (__instance.transferables[i].ThingDef.category == ThingCategory.Item) + { + int countToTransfer = __instance.transferables[i].CountToTransfer; + int num = 0; + if (countToTransfer > 0) + { + for (int j = 0; j < __instance.transferables[i].things.Count; j++) + { + Thing t = __instance.transferables[i].things[j]; + if (!t.Spawned || pawns.Any((Pawn x) => (x.IsColonist || x.TryGetComp() is CompVehicle v && v.CanMove) && x.CanReach(t, PathEndMode.Touch, Danger.Deadly, false, TraverseMode.ByPawn))) + { + num += t.stackCount; + if (num >= countToTransfer) + { + break; + } + } + } + if (num < countToTransfer) + { + if (countToTransfer == 1) + { + Messages.Message("CaravanItemIsUnreachableSingle".Translate(new object[] + { + __instance.transferables[i].ThingDef.label + }), MessageSound.RejectInput); + } + else + { + Messages.Message("CaravanItemIsUnreachableMulti".Translate(new object[] + { + countToTransfer, + __instance.transferables[i].ThingDef.label + }), MessageSound.RejectInput); + } + //Log.Message("TestB"); + } + } + } + } + __result = true; + return false; } return true; } @@ -1916,7 +2037,7 @@ private static void DoBottomButtons(Rect rect, Dialog_FormCaravan instance, Pair if (Widgets.ButtonText(rect5, "EstimatedTimeToDestinationButton".Translate(), true, false, true)) { List pawnsFromTransferables = TransferableUtility.GetPawnsFromTransferables(transferables); - if (!pawnsFromTransferables.Any((Pawn x) => CaravanUtility.IsOwner(x, Faction.OfPlayer) && !x.Downed)) + if (!pawnsFromTransferables.Any((Pawn x) => (CaravanUtility.IsOwner(x, Faction.OfPlayer) && !x.Downed) || (x.GetComp() is CompVehicle))) { Messages.Message("CaravanMustHaveAtLeastOneColonist".Translate(), MessageSound.RejectInput); }