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