public static bool isPotentialHost(this ThingDef p) { return(XenomorphUtil.isInfectableThing(p) && !p.isXenomorph() && !p.isNeomorph()); }
public override void DoSettingsWindowContents(Rect inRect) { /* * this.settings.astartePunchingFactor = Widgets.HorizontalSlider( * inRect.TopHalf().TopHalf().TopHalf().ContractedBy(4), * this.settings.astartePunchingFactor, 0f, 5f, true, * "Astarte Punching Power : " + this.settings.astartePunchingFactor * 100 + * "% : [" + 15f * this.settings.astartePunchingFactor + "]\nDefault possible in single attack (Punch 15 at 100%)" * , "0%", "500%"); * * this.settings.astarteSplitFactor = Widgets.HorizontalSlider( * inRect.TopHalf().TopHalf().BottomHalf().ContractedBy(4), * this.settings.astarteSplitFactor, 0f, 5f, true, * "Astarte Spit Power : " + this.settings.astarteSplitFactor * 100 + * "% : [" + 80f * this.settings.astarteSplitFactor + * "]\nDefault possible in single attack (Caustic Spit 80 at 100%)" * , "0%", "500%"); * * this.settings.scale = Widgets.HorizontalSlider(inRect.TopHalf().BottomHalf().TopHalf().ContractedBy(4), * this.settings.scale, 0f, 2f, true, * "Astarte Size Scaler: " + this.settings.astartePunchingFactor * 100 + * "% for size of " + 3f * this.settings.scale * , "0%", "200%"); * */ Widgets.Label(inRect.TopHalf().TopHalf().TopHalf().TopHalf().ContractedBy(4), "Restart before playing to ensure your changes take effect."); Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().TopHalf().BottomHalf().ContractedBy(4), "RRY_AllowYautjaFaction".Translate(), ref settings.AllowYautjaFaction); Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().TopHalf().ContractedBy(4), "RRY_AllowXenomorphFaction".Translate(), ref settings.AllowXenomorphFaction); Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().BottomHalf().LeftHalf().ContractedBy(4), "RRY_AllowHiddenInfections".Translate(), ref settings.AllowHiddenInfections); Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().BottomHalf().RightHalf().ContractedBy(4), "RRY_AllowPredalienImpregnations".Translate(), ref settings.AllowHiddenInfections); this.settings.fachuggerRemovalFailureDeathChance = Widgets.HorizontalSlider(inRect.TopHalf().BottomHalf().TopHalf().TopHalf().ContractedBy(4), this.settings.fachuggerRemovalFailureDeathChance, 0f, 1f, true, "RRY_FacehuggerRemovalDeathChance".Translate(this.settings.fachuggerRemovalFailureDeathChance * 100) , "0%", "100%"); this.settings.embryoRemovalFailureDeathChance = Widgets.HorizontalSlider(inRect.TopHalf().BottomHalf().TopHalf().BottomHalf().ContractedBy(4), this.settings.embryoRemovalFailureDeathChance, 0f, 1f, true, "RRY_EmbryoRemovalDeathChance".Translate(this.settings.embryoRemovalFailureDeathChance * 100) , "0%", "100%"); // Widgets.BeginScrollView(inRect.BottomHalf().BottomHalf().BottomHalf().LeftHalf().ContractedBy(4), ref ); float num = 400f; float x = inRect.x; float num2 = inRect.y; float num3 = inRect.y; List <ThingDef> suitablehostDefs = DefDatabase <ThingDef> .AllDefsListForReading.FindAll(xx => XenomorphUtil.isInfectableThing(xx)); Widgets.Label(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().LeftHalf().ContractedBy(4), "RRY_SuitableHostKinds".Translate(suitablehostDefs.Count)); Widgets.BeginScrollView(inRect.BottomHalf().LeftHalf().ContractedBy(4), ref this.pos, new Rect(inRect.x, inRect.y, num, suitablehostDefs.Count * 22f), true); foreach (ThingDef pkd in suitablehostDefs.OrderBy(xy => xy.label)) { string text = pkd.LabelCap; /* * text += " possible Xenoforms:"; * foreach (var item in pkd.resultingXenomorph()) * { * text += " "+item.LabelCap; * } */ Widgets.Label(new Rect(x, num2, num, 32f), text); num2 += 22f; } Widgets.EndScrollView(); List <PawnKindDef> WorthyKillDefs = DefDatabase <PawnKindDef> .AllDefsListForReading.FindAll(xx => YautjaBloodedUtility.WorthyKill(xx)); Widgets.Label(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().RightHalf().ContractedBy(4), "RRY_WorthyKillKinds".Translate(WorthyKillDefs.Count)); Widgets.BeginScrollView(inRect.BottomHalf().RightHalf().ContractedBy(4), ref this.pos2, new Rect(inRect.x, inRect.y, num, WorthyKillDefs.Count * 22f), true); foreach (PawnKindDef pkd in WorthyKillDefs.OrderBy(xz => YautjaBloodedUtility.GetMark(xz).stages[0].label)) { Widgets.Label(new Rect(x, num3, num, 32f), YautjaBloodedUtility.GetMark(pkd).stages[0].label + " : " + pkd.LabelCap); num3 += 22f; } Widgets.EndScrollView(); /* * // Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().TopHalf().ContractedBy(4), "setting3: Desc", ref settings.setting3); * // Widgets.CheckboxLabeled(inRect.TopHalf().TopHalf().BottomHalf().BottomHalf().ContractedBy(4), "setting4: Desc", ref settings.setting4); * * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().TopHalf().TopHalf().ContractedBy(4), "setting5: Desc", ref settings.setting5); * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().TopHalf().BottomHalf().ContractedBy(4), "setting6: Desc", ref settings.setting6); * * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().BottomHalf().TopHalf().ContractedBy(4), "setting7: Desc", ref settings.setting7); * Widgets.CheckboxLabeled(inRect.TopHalf().BottomHalf().BottomHalf().BottomHalf().ContractedBy(4), "setting8: Desc", ref settings.setting8); */ this.settings.Write(); }