public static void TryAbandonOrBanishViaInterface(Thing t, Caravan caravan) { Pawn p = t as Pawn; if (p != null) { if (!caravan.PawnsListForReading.Any((Pawn x) => x != p && caravan.IsOwner(x))) { Messages.Message("MessageCantBanishLastColonist".Translate(), caravan, MessageTypeDefOf.RejectInput, historical: false); } else { PawnBanishUtility.ShowBanishPawnConfirmationDialog(p); } } else { Dialog_MessageBox window = Dialog_MessageBox.CreateConfirmation("ConfirmAbandonItemDialog".Translate(t.Label), delegate { Pawn ownerOf = CaravanInventoryUtility.GetOwnerOf(caravan, t); if (ownerOf == null) { Log.Error("Could not find owner of " + t); } else { ownerOf.inventory.innerContainer.Remove(t); t.Destroy(); caravan.RecacheImmobilizedNow(); caravan.RecacheDaysWorthOfFood(); } }, destructive: true); Find.WindowStack.Add(window); } }
public virtual IEnumerable <Thing> ColonyThingsWillingToBuy(Pawn playerNegotiator) { Caravan caravan = playerNegotiator.GetCaravan(); using (List <Thing> .Enumerator enumerator = CaravanInventoryUtility.AllInventoryItems(caravan).GetEnumerator()) { if (enumerator.MoveNext()) { Thing item = enumerator.Current; yield return(item); /*Error: Unable to find new state assignment for yield return*/; } } List <Pawn> pawns = caravan.PawnsListForReading; int i = 0; while (true) { if (i >= pawns.Count) { yield break; } if (!caravan.IsOwner(pawns[i])) { break; } i++; } yield return((Thing)pawns[i]); /*Error: Unable to find new state assignment for yield return*/; IL_0156: /*Error near IL_0157: Unexpected return in MoveNext()*/; }
private static bool IsConsciousOwner(Pawn pawn, Caravan caravan) { if (!pawn.Dead && !pawn.Downed && !pawn.InMentalState) { return(caravan.IsOwner(pawn)); } return(false); }
public IEnumerable <Thing> ColonyThingsWillingToBuy(Pawn playerNegotiator) { Caravan playerCaravan = playerNegotiator.GetCaravan(); foreach (Thing item in CaravanInventoryUtility.AllInventoryItems(playerCaravan)) { yield return(item); } List <Pawn> pawns = playerCaravan.PawnsListForReading; for (int i = 0; i < pawns.Count; i++) { if (!playerCaravan.IsOwner(pawns[i])) { yield return(pawns[i]); } } }
private static bool IsValidDoctorFor(Pawn doctor, Pawn patient, Caravan caravan) { if (!doctor.RaceProps.Humanlike) { return(false); } if (!caravan.IsOwner(doctor)) { return(false); } if (doctor == patient && (!doctor.IsColonist || !doctor.playerSettings.selfTend)) { return(false); } if (doctor.Downed || doctor.InMentalState) { return(false); } if (doctor.story != null && doctor.story.WorkTypeIsDisabled(WorkTypeDefOf.Doctor)) { return(false); } return(true); }
public static Pawn RandomOwner(this Caravan caravan) { return((from p in caravan.PawnsListForReading where caravan.IsOwner(p) select p).RandomElement()); }
public static string GenerateCaravanName(Caravan caravan) { Pawn arg_4D_0; if ((arg_4D_0 = BestCaravanPawnUtility.FindBestNegotiator(caravan)) == null) { arg_4D_0 = (BestCaravanPawnUtility.FindBestDiplomat(caravan) ?? caravan.PawnsListForReading.Find((Pawn x) => caravan.IsOwner(x))); } Pawn pawn = arg_4D_0; string text = (pawn == null) ? caravan.def.label : "CaravanLeaderCaravanName".Translate(pawn.LabelShort, pawn).CapitalizeFirst(); for (int i = 1; i <= 1000; i++) { string text2 = text; if (i != 1) { text2 = text2 + " " + i; } if (!CaravanNameGenerator.CaravanNameInUse(text2)) { return(text2); } } Log.Error("Ran out of caravan names.", false); return(caravan.def.label); }
public static Pawn RandomOwner(this Caravan caravan) { return(caravan.PawnsListForReading.Where((Pawn p) => caravan.IsOwner(p)).RandomElement()); }
public static string GenerateCaravanName(Caravan caravan) { Pawn pawn = BestCaravanPawnUtility.FindBestNegotiator(caravan) ?? BestCaravanPawnUtility.FindBestDiplomat(caravan) ?? caravan.PawnsListForReading.Find((Pawn x) => caravan.IsOwner(x)); TaggedString taggedString = (pawn != null) ? "CaravanLeaderCaravanName".Translate(pawn.LabelShort, pawn).CapitalizeFirst() : ((TaggedString)caravan.def.label); for (int i = 1; i <= 1000; i++) { TaggedString taggedString2 = taggedString; if (i != 1) { taggedString2 += " " + i; } if (!CaravanNameInUse(taggedString2)) { return(taggedString2); } } Log.Error("Ran out of caravan names."); return(caravan.def.label); }
private static bool IsValidDoctorFor(Pawn doctor, Pawn patient, Caravan caravan) { return(doctor.RaceProps.Humanlike && caravan.IsOwner(doctor) && (doctor != patient || (doctor.IsColonist && doctor.playerSettings.selfTend)) && !doctor.Downed && !doctor.InMentalState && (doctor.story == null || !doctor.story.WorkTypeIsDisabled(WorkTypeDefOf.Doctor))); }
private static bool IsConsciousOwner(Pawn pawn, Caravan caravan) { return(!pawn.Dead && !pawn.Downed && !pawn.InMentalState && caravan.IsOwner(pawn) && pawn.health.capacities.CanBeAwake); }