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);
        }
Пример #2
0
        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());
        }