private void FillTabGuest(Rect rect) { //ConceptDatabase.KnowledgeDemonstrated(ConceptDefOf.PrisonerTab, KnowledgeAmount.GuiFrame); var friends = SelPawn.GetFriendsInColony(); var friendsRequired = GuestUtility.FriendsRequired(SelPawn.MapHeld) + SelPawn.GetEnemiesInColony(); float friendPercentage = 100f * friends / friendsRequired; { var tryImprove = SelPawn.ImproveRelationship(); var tryRecruit = SelPawn.TryRecruit(); listingStandard.ColumnWidth = size.x - 20; var comp = SelPawn.GetComp <CompGuest>(); if (comp != null) { listingStandard.Gap(); LabelWithTooltip("AreaToStay".Translate(), "AreaToStayTooltip".Translate()); DoAreaRestriction(listingStandard, comp.GuestArea, SetAreaRestriction, AreaUtility.AreaAllowedLabel_Area); LabelWithTooltip("AreaToBuy".Translate(), "AreaToBuyTooltip".Translate()); DoAreaRestriction(listingStandard, comp.ShoppingArea, SetAreaShopping, GetShoppingLabel); CheckboxLabeled(listingStandard, "ImproveRelationship".Translate(), ref tryImprove); CheckboxLabeled(listingStandard, "ShouldTryToRecruit".Translate(), ref tryRecruit); comp.chat = tryImprove; comp.recruit = tryRecruit; listingStandard.Gap(50); DrawSetDefaultButton(rect); DrawSendHomeButton(rect); } if (SelPawn.Faction != null) { listingStandard.Label(txtRecruitmentPenalty + ": " + SelPawn.RecruitPenalty().ToString("##0")); listingStandard.Label(txtFactionGoodwill + ": " + SelPawn.Faction.PlayerGoodwill.ToString("##0")); } listingStandard.Gap(); listingStandard.Label(string.Format("{0}:", "FriendsRequirement".Translate(friends, friendsRequired))); listingStandard.Slider(Mathf.Clamp(friendPercentage, 0, 100), 0, 100); if (friendPercentage <= 99) { var color = GUI.color; GUI.color = Color.red; listingStandard.Label("NotEnoughFriends".Translate(SelPawn.GetMinRecruitOpinion()).AdjustedFor(SelPawn)); GUI.color = color; } else { listingStandard.Label("CanNowBeRecruited".Translate().AdjustedFor(SelPawn)); } // Will only have lord while "checked in", becomes null again when guests leave float score; if (SelPawn.GetVisitScore(out score)) { listingStandard.Label(txtHospitality + ":"); listingStandard.Slider(score, 0f, 1f); } } }