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(); }
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>(); } }