public override void DoEditInterface(Listing_ScenEdit listing) { Rect scenPartRect = listing.GetScenPartRect(this, ScenPart.RowHeight * 3f + 31f); if (Widgets.ButtonText(scenPartRect.TopPartPixels(ScenPart.RowHeight), hediff.LabelCap)) { FloatMenuUtility.MakeMenu(PossibleHediffs(), (HediffDef hd) => hd.LabelCap, delegate(HediffDef hd) { ScenPart_ForcedHediff scenPart_ForcedHediff = this; return(delegate { scenPart_ForcedHediff.hediff = hd; if (scenPart_ForcedHediff.severityRange.max > scenPart_ForcedHediff.MaxSeverity) { scenPart_ForcedHediff.severityRange.max = scenPart_ForcedHediff.MaxSeverity; } if (scenPart_ForcedHediff.severityRange.min > scenPart_ForcedHediff.MaxSeverity) { scenPart_ForcedHediff.severityRange.min = scenPart_ForcedHediff.MaxSeverity; } }); }); } Widgets.FloatRange(new Rect(scenPartRect.x, scenPartRect.y + ScenPart.RowHeight, scenPartRect.width, 31f), listing.CurHeight.GetHashCode(), ref severityRange, 0f, MaxSeverity, "ConfigurableSeverity"); DoPawnModifierEditInterface(scenPartRect.BottomPartPixels(ScenPart.RowHeight * 2f)); }
public override bool TryMerge(ScenPart other) { ScenPart_ForcedHediff scenPart_ForcedHediff = other as ScenPart_ForcedHediff; if (scenPart_ForcedHediff != null && this.hediff == scenPart_ForcedHediff.hediff) { this.chance = GenMath.ChanceEitherHappens(this.chance, scenPart_ForcedHediff.chance); return(true); } return(false); }
public static IEnumerable <HediffDef> PossibleHediffs(RimWorld.ScenPart_ForcedHediff scenPart) { return((IEnumerable <HediffDef>)ReflectionCache.Instance.ScenPart_ForcedHediff_PossibleHediffs.Invoke(scenPart, null)); }