public override float VoluntaryJoinPriorityFor(Pawn p) { if (IsFiance(p)) { if (!MarriageCeremonyUtility.FianceCanContinueCeremony(p, (p == firstPawn) ? secondPawn : firstPawn)) { return(0f); } return(VoluntarilyJoinableLordJobJoinPriorities.MarriageCeremonyFiance); } if (IsGuest(p)) { if (!MarriageCeremonyUtility.ShouldGuestKeepAttendingCeremony(p)) { return(0f); } if (!lord.ownedPawns.Contains(p)) { if (IsCeremonyAboutToEnd()) { return(0f); } LordToil_MarriageCeremony lordToil_MarriageCeremony = lord.CurLordToil as LordToil_MarriageCeremony; if (lordToil_MarriageCeremony != null && !SpectatorCellFinder.TryFindSpectatorCellFor(p, lordToil_MarriageCeremony.Data.spectateRect, base.Map, out IntVec3 _, lordToil_MarriageCeremony.Data.spectateRectAllowedSides)) { return(0f); } } return(VoluntarilyJoinableLordJobJoinPriorities.MarriageCeremonyGuest); } return(0f); }
public static bool FianceReadyToStartCeremony(Pawn pawn) { if (!MarriageCeremonyUtility.FianceCanContinueCeremony(pawn)) { return(false); } if (pawn.health.hediffSet.BleedRateTotal > 0.0) { return(false); } if (HealthAIUtility.ShouldSeekMedicalRestUrgent(pawn)) { return(false); } if (PawnUtility.WillSoonHaveBasicNeed(pawn)) { return(false); } if (MarriageCeremonyUtility.IsCurrentlyMarryingSomeone(pawn)) { return(false); } if (pawn.GetLord() != null) { return(false); } return(!pawn.Drafted && !pawn.InMentalState && pawn.Awake() && !pawn.IsBurning() && !pawn.InBed()); }
public override float VoluntaryJoinPriorityFor(Pawn p) { if (this.IsFiance(p)) { if (!MarriageCeremonyUtility.FianceCanContinueCeremony(p)) { return(0f); } return(VoluntarilyJoinableLordJobJoinPriorities.MarriageCeremonyFiance); } if (this.IsGuest(p)) { if (!MarriageCeremonyUtility.ShouldGuestKeepAttendingCeremony(p)) { return(0f); } if (!base.lord.ownedPawns.Contains(p)) { if (this.IsCeremonyAboutToEnd()) { return(0f); } LordToil_MarriageCeremony lordToil_MarriageCeremony = base.lord.CurLordToil as LordToil_MarriageCeremony; IntVec3 intVec = default(IntVec3); if (lordToil_MarriageCeremony != null && !SpectatorCellFinder.TryFindSpectatorCellFor(p, lordToil_MarriageCeremony.Data.spectateRect, base.Map, out intVec, lordToil_MarriageCeremony.Data.spectateRectAllowedSides, 1, (List <IntVec3>)null)) { return(0f); } } return(VoluntarilyJoinableLordJobJoinPriorities.MarriageCeremonyGuest); } return(0f); }
private bool ShouldCeremonyBeCalledOff() { return(this.firstPawn.Destroyed || this.secondPawn.Destroyed || !this.firstPawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, this.secondPawn) || (this.spot.GetDangerFor(this.firstPawn, base.Map) != Danger.None || this.spot.GetDangerFor(this.secondPawn, base.Map) != Danger.None) || (!MarriageCeremonyUtility.AcceptableGameConditionsToContinueCeremony(base.Map) || !MarriageCeremonyUtility.FianceCanContinueCeremony(this.firstPawn, this.secondPawn) || !MarriageCeremonyUtility.FianceCanContinueCeremony(this.secondPawn, this.firstPawn))); }
/// <summary> /// /// </summary> /// <param name="pawn"></param> /// <returns></returns> public static bool FianceReadyToStartCeremony(Pawn pawn) { return(MarriageCeremonyUtility.FianceCanContinueCeremony(pawn) && pawn.health.hediffSet.BleedingRate <= 0f && !pawn.health.NeedsMedicalRest && !PawnUtility.WillSoonHaveBasicNeed(pawn) && !MarriageCeremonyUtility.IsCurrentlyMarryingSomeone(pawn) && (!pawn.Drafted && !pawn.InMentalState && pawn.Awake()) && !pawn.IsBurning()); }
private bool ShouldCeremonyBeCalledOff() { if (firstPawn.Destroyed || secondPawn.Destroyed) { return(true); } if (!firstPawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, secondPawn)) { return(true); } if (spot.GetDangerFor(firstPawn, base.Map) != Danger.None || spot.GetDangerFor(secondPawn, base.Map) != Danger.None) { return(true); } if (!GatheringsUtility.AcceptableGameConditionsToContinueGathering(base.Map) || !MarriageCeremonyUtility.FianceCanContinueCeremony(firstPawn, secondPawn) || !MarriageCeremonyUtility.FianceCanContinueCeremony(secondPawn, firstPawn)) { return(true); } return(false); }
private bool ShouldCeremonyBeCalledOff() { if (!this.firstPawn.Destroyed && !this.secondPawn.Destroyed) { if (!this.firstPawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, this.secondPawn)) { return(true); } if (this.spot.GetDangerFor(this.firstPawn, base.Map) == Danger.None && this.spot.GetDangerFor(this.secondPawn, base.Map) == Danger.None) { if (MarriageCeremonyUtility.AcceptableGameConditionsToContinueCeremony(base.Map) && MarriageCeremonyUtility.FianceCanContinueCeremony(this.firstPawn) && MarriageCeremonyUtility.FianceCanContinueCeremony(this.secondPawn)) { return(false); } return(true); } return(true); } return(true); }
public static bool FianceReadyToStartCeremony(Pawn pawn, Pawn otherPawn) { return(MarriageCeremonyUtility.FianceCanContinueCeremony(pawn, otherPawn) && pawn.health.hediffSet.BleedRateTotal <= 0f && !HealthAIUtility.ShouldSeekMedicalRestUrgent(pawn) && !PawnUtility.WillSoonHaveBasicNeed(pawn) && !MarriageCeremonyUtility.IsCurrentlyMarryingSomeone(pawn) && pawn.GetLord() == null && (!pawn.Drafted && !pawn.InMentalState && pawn.Awake() && !pawn.IsBurning()) && !pawn.InBed()); }