Exemplo n.º 1
0
        Actor GetFiringActor(World world, CPos cell)
        {
            var pos   = world.Map.CenterOfCell(cell);
            var range = attack.GetMaximumRange().LengthSquared;

            return(instance.Instances.Where(i => !i.Self.IsDisabled()).MinByOrDefault(a => (a.Self.CenterPosition - pos).HorizontalLengthSquared).Self);
        }
Exemplo n.º 2
0
        bool IsValidTarget(World world, CPos cell)
        {
            var pos   = world.Map.CenterOfCell(cell);
            var range = attack.GetMaximumRange().LengthSquared;

            return(world.Map.Contains(cell) && instance.Instances.Any(a => !a.IsTraitPaused && (a.Self.CenterPosition - pos).HorizontalLengthSquared < range));
        }
Exemplo n.º 3
0
        public IEnumerable <IRenderable> RangeCircleRenderables(WorldRenderer wr)
        {
            if (!self.Owner.IsAlliedWith(self.World.RenderPlayer))
            {
                yield break;
            }

            var range = attack.GetMaximumRange();

            if (range == WDist.Zero)
            {
                yield break;
            }

            yield return(new RangeCircleRenderable(
                             self.CenterPosition,
                             range,
                             0,
                             Color.FromArgb(128, Color.Yellow),
                             Color.FromArgb(96, Color.Black)));
        }
Exemplo n.º 4
0
        public IEnumerable <IRenderable> RangeCircleRenderables(WorldRenderer wr)
        {
            if (!self.Owner.IsAlliedWith(self.World.RenderPlayer))
            {
                yield break;
            }

            var range = Info.RangeCircleMode == RangeCircleMode.Minimum ? attack.GetMinimumRange() : attack.GetMaximumRange();

            if (range == WDist.Zero)
            {
                yield break;
            }

            yield return(new RangeCircleRenderable(
                             self.CenterPosition,
                             range,
                             0,
                             Info.Color,
                             Info.BorderColor));
        }