示例#1
0
        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();
        }
示例#2
0
 private static bool PermitAvailable(RoyalTitlePermitDef permit, Pawn pawn)
 {
     return(permit.AvailableForPawn(pawn, selectedFaction));
 }
示例#3
0
        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();
        }