public override string GetExplanationUnfinalized(StatRequest req, ToStringNumberSense numberSense) { Pawn pawn = req.Thing as Pawn; if (GlowFor.CompFor(pawn) is Comp_NightVision comp && !IsDisabledFor(pawn)) { return(StatReportFor_NightVision_Combat.CombatPart(pawn, comp)); } return(""); }
public override string GetExplanationUnfinalized( StatRequest req, ToStringNumberSense numberSense ) { if (req.Thing is Pawn pawn && pawn.TryGetComp <Comp_NightVision>() is Comp_NightVision comp) { float glow = GlowFor.GlowAt(pawn); return(StatReportFor_NightVision.CompleteStatReport(Stat, GetEffectMaskForGlow(glow), comp, glow)); } return(string.Empty); }
public override float GetValueUnfinalized(StatRequest req, bool applyPostProcess = true) { if (req.Thing is Pawn pawn) { float glowFactor = GlowFor.FactorOrFallBack(pawn); if (glowFactor.FactorIsNonTrivial()) { return(CombatHelpers.RangedCooldownMultiplier(pawn.skills.GetSkill(DerivedFrom).Level, glowFactor)); } } return(Constants.TRIVIAL_FACTOR); }
public override float GetValueUnfinalized( StatRequest req, bool applyPostProcess = true ) { if (req.Thing is Pawn pawn) { if (pawn.TryGetComp <Comp_NightVision>() is Comp_NightVision comp) { float glow = GlowFor.GlowAt(pawn); return(comp.FactorFromGlow(glow)); } } return(1f); }
public static float ModifyTargetAcquireRadiusForGlow(float radius, Pawn pawn) { if (radius.IsNonTrivial() && pawn != null) { var glowFactor = GlowFor.FactorOrFallBack(pawn); if (glowFactor.FactorIsNonTrivial()) { radius = radius * glowFactor * glowFactor; } } else { Log.Message($"Odd Parameters for ModifyTargetAquireRadius: radius ={radius} with pawn={pawn}"); } return(radius); }
public static string RangedCoolDown(Pawn pawn, int skillLevel) { var strHelper = new CombatStatStrHelper(); float glow = GlowFor.GlowAt(thing: pawn); float glowFactor = GlowFor.FactorOrFallBack(pawn: pawn, glow: glow); strHelper.AddRangedCdRow(glow, skillLevel, glowFactor); glow = 1f; glowFactor = GlowFor.FactorOrFallBack(pawn: pawn, glow: glow); strHelper.AddRangedCdRow(glow, skillLevel, glowFactor); glow = 0f; glowFactor = GlowFor.FactorOrFallBack(pawn: pawn, glow: glow); strHelper.AddRangedCdRow(glow, skillLevel, glowFactor); return(strHelper.ToString()); }