示例#1
0
        public override void DoSettingsWindowContents(Rect inRect)
        {
            Listing_Standard listingStandard = new Listing_Standard();

            listingStandard.Begin(inRect);
            listingStandard.Label("TraitRarityWarningLabel".Translate(), -1f, "TraitRarityWarningDescription".Translate());

            listingStandard.Gap(10f);
            listingStandard.CheckboxLabeled("TraitRarityCustomTierLabel".Translate(), ref traitRarityColorsModSettings.useCustomTraitTiers, "TraitRarityCustomTierDescription".Translate());
            if (traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(10f);
                if (listingStandard.ButtonText("TraitRarityCustomTierConfigurationLabel".Translate()))
                {
                    Find.WindowStack.Add(new TraitRarityColorCustomTierWindow());
                }
            }
            if (!traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(2f);
                listingStandard.CheckboxLabeled("TraitRarityOverwriteLabel".Translate(), ref traitRarityColorsModSettings.ignoreCustomTraitColors, "TraitRarityCustomTierConfigurationDescription".Translate());
            }
            else
            {
                traitRarityColorsModSettings.ignoreCustomTraitColors = true;
            }

            // Mystic
            listingStandard.Gap(10f);
            if (listingStandard.ButtonTextLabeled(string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorMystic, "TraitRarityCountMystic".Translate(), TraitRarityColors.GetCountForColor(traitRarityColorsModSettings.colorMystic)), "TraitRarityChangeColorMystic".Translate()))
            {
                Find.WindowStack.Add(new TraitRarityColorChangeWindow("mystic", traitRarityColorsModSettings.colorMystic, "<color=#FF0000>"));
            }
            if (!traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(5f);
                Rect rectMystic = listingStandard.GetRect(22f);
                traitRarityColorsModSettings.maxLimitMystic = Widgets.HorizontalSlider(rectMystic, traitRarityColorsModSettings.maxLimitMystic, 0f, 3f, false, string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorMystic, "TraitRarityMaxMommonality".Translate(), traitRarityColorsModSettings.maxLimitMystic.ToString()), "0", "3", 0.1f);
            }

            // Legendary
            listingStandard.Gap(10f);
            if (listingStandard.ButtonTextLabeled(string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorLegendary, "TraitRarityCountLegendary".Translate(), TraitRarityColors.GetCountForColor(traitRarityColorsModSettings.colorLegendary)), "TraitRarityChangeColorLegendary".Translate()))
            {
                Find.WindowStack.Add(new TraitRarityColorChangeWindow("legendary", traitRarityColorsModSettings.colorLegendary, "<color=#FF9900>"));
            }
            if (!traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(5f);
                Rect rectLegendary = listingStandard.GetRect(22f);
                traitRarityColorsModSettings.maxLimitLegendary = Widgets.HorizontalSlider(rectLegendary, traitRarityColorsModSettings.maxLimitLegendary, 0f, 3f, false, string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorLegendary, "TraitRarityMaxMommonality".Translate(), traitRarityColorsModSettings.maxLimitLegendary.ToString()), "0", "3", 0.1f);
            }
            // Epic
            listingStandard.Gap(10f);
            if (listingStandard.ButtonTextLabeled(string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorEpic, "TraitRarityCountEpic".Translate(), TraitRarityColors.GetCountForColor(traitRarityColorsModSettings.colorEpic)), "TraitRarityChangeColorEpic".Translate()))
            {
                Find.WindowStack.Add(new TraitRarityColorChangeWindow("epic", traitRarityColorsModSettings.colorEpic, "<color=#cc0099>"));
            }
            if (!traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(5f);
                Rect rectEpic = listingStandard.GetRect(22f);
                traitRarityColorsModSettings.maxLimitEpic = Widgets.HorizontalSlider(rectEpic, traitRarityColorsModSettings.maxLimitEpic, 0f, 3f, false, string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorEpic, "TraitRarityMaxMommonality".Translate(), traitRarityColorsModSettings.maxLimitEpic.ToString()), "0", "3", 0.1f);
            }
            // Rare
            listingStandard.Gap(10f);
            if (listingStandard.ButtonTextLabeled(string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorRare, "TraitRarityCountRare".Translate(), TraitRarityColors.GetCountForColor(traitRarityColorsModSettings.colorRare)), "TraitRarityChangeColorRare".Translate()))
            {
                Find.WindowStack.Add(new TraitRarityColorChangeWindow("rare", traitRarityColorsModSettings.colorRare, "<color=#0073e6>"));
            }
            if (!traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(5f);
                Rect rectRare = listingStandard.GetRect(22f);
                traitRarityColorsModSettings.maxLimitRare = Widgets.HorizontalSlider(rectRare, traitRarityColorsModSettings.maxLimitRare, 0f, 3f, false, string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorRare, "TraitRarityMaxMommonality".Translate(), traitRarityColorsModSettings.maxLimitRare.ToString()), "0", "3", 0.1f);
            }
            // Uncommon
            listingStandard.Gap(10f);
            if (listingStandard.ButtonTextLabeled(string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorUncommon, "TraitRarityCountUncommon".Translate(), TraitRarityColors.GetCountForColor(traitRarityColorsModSettings.colorUncommon)), "TraitRarityChangeColorUncommon".Translate()))
            {
                Find.WindowStack.Add(new TraitRarityColorChangeWindow("uncommon", traitRarityColorsModSettings.colorUncommon, "<color=#00ff00>"));
            }
            if (!traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(5f);
                Rect rectUncommon = listingStandard.GetRect(22f);
                traitRarityColorsModSettings.maxLimitUncommon = Widgets.HorizontalSlider(rectUncommon, traitRarityColorsModSettings.maxLimitUncommon, 0f, 3f, false, string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorUncommon, "TraitRarityMaxMommonality".Translate(), traitRarityColorsModSettings.maxLimitUncommon.ToString()), "0", "3", 0.1f);
            }
            // Common
            listingStandard.Gap(10f);
            if (listingStandard.ButtonTextLabeled(string.Format("{0}{1}</color>: {2}", traitRarityColorsModSettings.colorCommon, "TraitRarityCountCommon".Translate(), TraitRarityColors.GetCountForColor(traitRarityColorsModSettings.colorCommon)), "TraitRarityChangeColorCommon".Translate()))
            {
                Find.WindowStack.Add(new TraitRarityColorChangeWindow("common", traitRarityColorsModSettings.colorCommon, "<color=#FFFFFF>"));
            }

            if (!traitRarityColorsModSettings.useCustomTraitTiers)
            {
                listingStandard.Gap(20);
                if (listingStandard.ButtonText("TraitRarityResetLimitsLabel".Translate()))
                {
                    traitRarityColorsModSettings.maxLimitMystic    = 0.1f;
                    traitRarityColorsModSettings.maxLimitLegendary = 0.5f;
                    traitRarityColorsModSettings.maxLimitEpic      = 0.9f;
                    traitRarityColorsModSettings.maxLimitRare      = 1.9f;
                    traitRarityColorsModSettings.maxLimitUncommon  = 2.0f;
                }
            }

            listingStandard.Gap(10f);
            if (listingStandard.ButtonText("TraitRarityResetColorsLabel".Translate()))
            {
                traitRarityColorsModSettings.colorMystic    = "<color=#FF0000>";
                traitRarityColorsModSettings.colorLegendary = "<color=#FF9900>";
                traitRarityColorsModSettings.colorEpic      = "<color=#cc0099>";
                traitRarityColorsModSettings.colorRare      = "<color=#0073e6>";
                traitRarityColorsModSettings.colorUncommon  = "<color=#00ff00>";
                traitRarityColorsModSettings.colorCommon    = "<color=#FFFFFF>";
            }

            listingStandard.End();
        }
示例#2
0
        public override void DoWindowContents(Rect inRect)
        {
            Text.Anchor = TextAnchor.MiddleCenter;
            Rect mysticRect = new Rect(inRect.width * (5f / 6f), 0, inRect.width / 6, 48);

            Widgets.Label(mysticRect.TopHalf(), string.Format("{0}{1}</color>", LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorMystic, "TraitRarityMystic".Translate()));
            Widgets.Label(mysticRect.BottomHalf(), TraitRarityColors.GetCountForColor(LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorMystic).ToString());
            Rect legendaryRect = new Rect(inRect.width * (4f / 6f), 0, inRect.width / 6, 48);

            Widgets.Label(legendaryRect.TopHalf(), string.Format("{0}{1}</color>", LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorLegendary, "TraitRarityLegendary".Translate()));
            Widgets.Label(legendaryRect.BottomHalf(), TraitRarityColors.GetCountForColor(LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorLegendary).ToString());
            Rect epicRect = new Rect(inRect.width * (3f / 6f), 0, inRect.width / 6, 48);

            Widgets.Label(epicRect.TopHalf(), string.Format("{0}{1}</color>", LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorEpic, "TraitRarityEpic".Translate()));
            Widgets.Label(epicRect.BottomHalf(), TraitRarityColors.GetCountForColor(LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorEpic).ToString());
            Rect rareRect = new Rect(inRect.width * (2f / 6f), 0, inRect.width / 6, 48);

            Widgets.Label(rareRect.TopHalf(), string.Format("{0}{1}</color>", LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorRare, "TraitRarityRare".Translate()));
            Widgets.Label(rareRect.BottomHalf(), TraitRarityColors.GetCountForColor(LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorRare).ToString());
            Rect uncommonRect = new Rect(inRect.width * (1f / 6f), 0, inRect.width / 6, 48);

            Widgets.Label(uncommonRect.TopHalf(), string.Format("{0}{1}</color>", LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorUncommon, "TraitRarityUncommon".Translate()));
            Widgets.Label(uncommonRect.BottomHalf(), TraitRarityColors.GetCountForColor(LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorUncommon).ToString());
            Rect commonRect = new Rect(inRect.width * (0f / 6f), 0, inRect.width / 6, 48);

            Widgets.Label(commonRect.TopHalf(), string.Format("{0}{1}</color>", LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorCommon, "TraitRarityCommon".Translate()));
            Widgets.Label(commonRect.BottomHalf(), TraitRarityColors.GetCountForColor(LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().colorCommon).ToString());
            Text.Anchor = TextAnchor.UpperLeft;

            Widgets.DrawLineHorizontal(0f, 52f, inRect.width);
            Rect rect = inRect.AtZero().ContractedBy(7f);

            rect.position = new Vector2(rect.x, rect.y + 56f);
            rect.height  -= 56;  // 48 distance from top with labels and line with 4 above/below
            rect.height  -= 49f; // distance from bottom with buttons

            float viewRectHeight = 0;

            foreach (TraitDef traitDef in DefDatabase <TraitDef> .AllDefsListForReading)
            {
                foreach (TraitDegreeData traitDegreeData in traitDef.degreeDatas)
                {
                    viewRectHeight += 30; // height per trait option
                }
            }
            Rect viewRect = rect.AtZero();

            viewRect.height = viewRectHeight;
            viewRect.width -= GUI.skin.verticalScrollbar.fixedWidth;
            viewRect.width -= GUI.skin.verticalScrollbar.margin.left;
            scrollPosition  = GUI.BeginScrollView(rect, scrollPosition, viewRect, false, true);
            int currentY = 0;

            foreach (TraitDef traitDef in DefDatabase <TraitDef> .AllDefsListForReading)
            {
                foreach (TraitDegreeData traitDegreeData in traitDef.degreeDatas)
                {
                    Rect traitRect = new Rect(0, currentY, viewRect.width, 30);
                    Rect labelRect = new Rect(traitRect.width / 4, currentY, traitRect.width / 2, 30);
                    Text.Anchor = TextAnchor.MiddleCenter;
                    Widgets.Label(labelRect, traitDegreeData.label);
                    Text.Anchor = TextAnchor.UpperLeft;
                    TooltipHandler.TipRegion(labelRect, traitDegreeData.description);
                    Rect buttonRect = traitRect.RightHalf();
                    if (Widgets.ButtonText(traitRect.LeftHalf().LeftHalf(), "TraitRarityLowerTierLabel".Translate()))
                    {
                        TraitRarityColors.LowerTierFor(traitDegreeData.label);
                    }
                    if (Widgets.ButtonText(traitRect.RightHalf().RightHalf(), "TraitRarityLowerHigherLabel".Translate()))
                    {
                        TraitRarityColors.IncreaseTierFor(traitDegreeData.label);
                    }
                    currentY += 30;
                }
            }
            GUI.EndScrollView();
            Vector2 buttonSize      = new Vector2(120f, 40f);
            float   positionButtonY = InitialSize.y - buttonSize.y - 36f;
            float   positionOk      = InitialSize.x / 2 - buttonSize.x - 5f - 18f;
            float   positionReset   = positionOk + buttonSize.x + 10f;
            Rect    rectOk          = new Rect(positionOk, positionButtonY, buttonSize.x, buttonSize.y);
            Rect    rectReset       = new Rect(positionReset, positionButtonY, buttonSize.x, buttonSize.y);

            if (Widgets.ButtonText(rectOk, "OK".Translate()))
            {
                this.Close(true);
                Event.current.Use();
            }
            if (Widgets.ButtonText(rectReset, "TraitRarityResetButtonLabel".Translate()))
            {
                LoadedModManager.GetMod <TraitRarityColorsMod>().GetSettings <TraitRarityColorsModSettings>().traitTiers = new Dictionary <string, int>();
            }
        }