예제 #1
0
        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);
        }
예제 #3
0
 public static IEnumerable <HediffDef> PossibleHediffs(RimWorld.ScenPart_ForcedHediff scenPart)
 {
     return((IEnumerable <HediffDef>)ReflectionCache.Instance.ScenPart_ForcedHediff_PossibleHediffs.Invoke(scenPart, null));
 }