Example #1
0
        public override float GetValueUnfinalized(StatRequest req, bool applyPostProcess = true)
        {
            if (!req.HasThing)
            {
                return(0);
            }
            if (!(req.Thing is Pawn pawn))
            {
                return(0);
            }
            var factor = PriceUtility.PawnQualityPriceFactor(pawn);

            return(factor * stat.defaultBaseValue + stat.defaultBaseValue / 5);
        }
        public override void TransformValue(StatRequest req, ref float val)
        {
            if (req.Thing is Pawn pawn)
            {
                IEnumerable <Hediff> hediffs = GetRelevantHediffs(pawn);
                if (hediffs == null)
                {
                    return;
                }

                List <Hediff> hediffList = new List <Hediff>(hediffs);

                foreach (Hediff hediff in hediffList)
                {
                    val += (float)Math.Ceiling(PriceUtility.PawnQualityPriceFactor(pawn) * CalculateMarketValueFromHediff(hediff, pawn.RaceProps.baseBodySize));
                }
            }
        }
        public override float GetValueUnfinalized(StatRequest req, bool applyPostProcess = true)
        {
            var factor = req.HasThing && req.Thing is Pawn?PriceUtility.PawnQualityPriceFactor((Pawn)req.Thing) : 0;

            return(factor * stat.defaultBaseValue - stat.defaultBaseValue / 6);
        }
        public override string GetExplanationUnfinalized(StatRequest req, ToStringNumberSense numberSense)
        {
            var stringBuilder = new StringBuilder();

            if (!req.HasThing || !(req.Thing is Pawn))
            {
                return(base.GetExplanationUnfinalized(req, numberSense));
            }

            stringBuilder.AppendLine("StatsReport_BaseValue".Translate());
            float statValueAbstract = stat.defaultBaseValue;

            stringBuilder.AppendLine("    " + stat.ValueToString(statValueAbstract, numberSense));

            var pawn = req.Thing as Pawn;

            stringBuilder.AppendLine();
            stringBuilder.AppendLine(string.Format("{0}: x{1} {2}",
                                                   "StatsReport_CharacterQuality".Translate(), PriceUtility.PawnQualityPriceFactor(pawn).ToStringPercent(), -stat.defaultBaseValue / 6));
            return(stringBuilder.ToString());
        }
        public override string ExplanationPart(StatRequest req)
        {
            if (req.Thing is Pawn pawn)
            {
                IEnumerable <Hediff> hediffs = GetRelevantHediffs(pawn);
                if (hediffs == null)
                {
                    return(null);
                }

                List <Hediff> hediffList = new List <Hediff>(hediffs);
                if (hediffList.Count == 0)
                {
                    return(null);
                }

                StringBuilder builder = new StringBuilder();
                builder.AppendLine("AndroidMarketValueStatPartLabel".Translate());

                foreach (Hediff hediff in hediffList)
                {
                    builder.AppendLine("    " + hediff.LabelCap + ": +" + string.Format(parentStat.formatString, (float)Math.Ceiling(PriceUtility.PawnQualityPriceFactor(pawn) * CalculateMarketValueFromHediff(hediff, pawn.RaceProps.baseBodySize))));
                }

                return(builder.ToString());
            }

            return(null);
        }