Ejemplo n.º 1
0
        public virtual void DrawHighlight(LocalTargetInfo target)
        {
            verbProps.DrawRadiusRing(caster.Position);
            if (!target.IsValid)
            {
                return;
            }
            GenDraw.DrawTargetHighlight(target);
            bool  needLOSToCenter;
            float num = HighlightFieldRadiusAroundTarget(out needLOSToCenter);

            if (num > 0.2f && TryFindShootLineFromTo(caster.Position, target, out ShootLine resultingLine))
            {
                if (needLOSToCenter)
                {
                    GenExplosion.RenderPredictedAreaOfEffect(resultingLine.Dest, num);
                }
                else
                {
                    GenDraw.DrawFieldEdges((from x in GenRadial.RadialCellsAround(resultingLine.Dest, num, useCenter: true)
                                            where x.InBounds(Find.CurrentMap)
                                            select x).ToList());
                }
            }
        }
Ejemplo n.º 2
0
        protected void DrawHighlightFieldRadiusAroundTarget(LocalTargetInfo target)
        {
            bool  needLOSToCenter;
            float num = HighlightFieldRadiusAroundTarget(out needLOSToCenter);

            if (!(num > 0.2f) || !TryFindShootLineFromTo(caster.Position, target, out var resultingLine))
            {
                return;
            }
            if (needLOSToCenter)
            {
                GenExplosion.RenderPredictedAreaOfEffect(resultingLine.Dest, num);
                return;
            }
            GenDraw.DrawFieldEdges((from x in GenRadial.RadialCellsAround(resultingLine.Dest, num, useCenter: true)
                                    where x.InBounds(Find.CurrentMap)
                                    select x).ToList());
        }