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("");
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
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());
        }