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