private static void DoLeftRect(Rect rect, Pawn pawn) { float num = 0f; RoyalTitleDef currentTitle = pawn.royalty.GetCurrentTitle(selectedFaction); Rect position = new Rect(rect); GUI.BeginGroup(position); if (selectedPermit != null) { Text.Font = GameFont.Medium; Rect rect2 = new Rect(0f, num, position.width, 0f); Widgets.LabelCacheHeight(ref rect2, selectedPermit.LabelCap); Text.Font = GameFont.Small; num += rect2.height; if (!selectedPermit.description.NullOrEmpty()) { Rect rect3 = new Rect(0f, num, position.width, 0f); Widgets.LabelCacheHeight(ref rect3, selectedPermit.description); num += rect3.height + 16f; } Rect rect4 = new Rect(0f, num, position.width, 0f); string text = "Cooldown".Translate() + ": " + "PeriodDays".Translate(selectedPermit.cooldownDays); if (selectedPermit.royalAid != null && selectedPermit.royalAid.favorCost > 0 && !selectedFaction.def.royalFavorLabel.NullOrEmpty()) { text = text + (string)("\n" + "CooldownUseFavorCost".Translate(selectedFaction.def.royalFavorLabel.Named("HONOR")).CapitalizeFirst() + ": ") + selectedPermit.royalAid.favorCost; } if (selectedPermit.minTitle != null) { text = text + "\n" + "RequiresTitle".Translate(selectedPermit.minTitle.GetLabelForBothGenders()).Resolve().Colorize((currentTitle != null && currentTitle.seniority >= selectedPermit.minTitle.seniority) ? Color.white : ColoredText.RedReadable); } if (selectedPermit.prerequisite != null) { text = text + "\n" + "UpgradeFrom".Translate(selectedPermit.prerequisite.LabelCap).Resolve().Colorize(PermitUnlocked(selectedPermit.prerequisite, pawn) ? Color.white : ColoredText.RedReadable); } Widgets.LabelCacheHeight(ref rect4, text); num += rect4.height + 4f; Rect rect5 = new Rect(0f, position.height - 50f, position.width, 50f); if (selectedPermit.AvailableForPawn(pawn, selectedFaction) && !PermitUnlocked(selectedPermit, pawn) && Widgets.ButtonText(rect5, "AcceptPermit".Translate())) { SoundDefOf.Quest_Accepted.PlayOneShotOnCamera(); pawn.royalty.AddPermit(selectedPermit, selectedFaction); } } GUI.EndGroup(); }
private static bool PermitAvailable(RoyalTitlePermitDef permit, Pawn pawn) { return(permit.AvailableForPawn(pawn, selectedFaction)); }
private static void DoRightRect(Rect rect, Pawn pawn) { Widgets.DrawMenuSection(rect); if (selectedFaction == null) { return; } List <RoyalTitlePermitDef> allDefsListForReading = DefDatabase <RoyalTitlePermitDef> .AllDefsListForReading; Rect outRect = rect.ContractedBy(10f); Rect rect2 = default(Rect); for (int i = 0; i < allDefsListForReading.Count; i++) { RoyalTitlePermitDef permit = allDefsListForReading[i]; if (CanDrawPermit(permit)) { rect2.width = Mathf.Max(rect2.width, DrawPosition(permit).x + 200f + 26f); rect2.height = Mathf.Max(rect2.height, DrawPosition(permit).y + 50f + 26f); } } Widgets.BeginScrollView(outRect, ref rightScrollPosition, rect2); GUI.BeginGroup(rect2.ContractedBy(10f)); DrawLines(); for (int j = 0; j < allDefsListForReading.Count; j++) { RoyalTitlePermitDef royalTitlePermitDef = allDefsListForReading[j]; if (CanDrawPermit(royalTitlePermitDef)) { Vector2 vector = DrawPosition(royalTitlePermitDef); Rect rect3 = new Rect(vector.x, vector.y, 200f, 50f); Color color = Widgets.NormalOptionColor; Color bgColor = (PermitUnlocked(royalTitlePermitDef, pawn) ? TexUI.FinishedResearchColor : TexUI.AvailResearchColor); Color borderColor; if (selectedPermit == royalTitlePermitDef) { borderColor = TexUI.HighlightBorderResearchColor; bgColor += TexUI.HighlightBgResearchColor; } else { borderColor = TexUI.DefaultBorderResearchColor; } if (!royalTitlePermitDef.AvailableForPawn(pawn, selectedFaction) && !PermitUnlocked(royalTitlePermitDef, pawn)) { color = Color.red; } if (Widgets.CustomButtonText(ref rect3, string.Empty, bgColor, color, borderColor)) { SoundDefOf.Click.PlayOneShotOnCamera(); selectedPermit = royalTitlePermitDef; } TextAnchor anchor = Text.Anchor; Color color2 = GUI.color; GUI.color = color; Text.Anchor = TextAnchor.MiddleCenter; Widgets.Label(rect3, royalTitlePermitDef.LabelCap); GUI.color = color2; Text.Anchor = anchor; } } GUI.EndGroup(); Widgets.EndScrollView(); }